From c61cd2789961633aa690adb5a98aa7c7c88eb9df Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 02:07:21 +0100 Subject: [PATCH 01/47] docs: retarget sync tooling to Agno v2.7.4 --- scripts/check_imports.py | 34 +------------------------------ scripts/check_install_coverage.py | 21 +++++++++++-------- scripts/examples_sync/generate.py | 2 +- scripts/examples_sync/plan.py | 33 ++++-------------------------- 4 files changed, 18 insertions(+), 72 deletions(-) diff --git a/scripts/check_imports.py b/scripts/check_imports.py index b7bf95dc4..21335a683 100644 --- a/scripts/check_imports.py +++ b/scripts/check_imports.py @@ -6,9 +6,6 @@ (module + names must exist). Reports REAL failures (agno-side module/name missing) grouped by statement; exits 1 if any. -Imports introduced by docs merged after the pinned source tag are accepted -only for an exact reviewed statement and file set. - Agno repo defaults to the ./agno symlink at the repo root; override with the AGNO_REPO env var. @@ -53,26 +50,6 @@ ), } -POST_TAG_IMPORT_FILES = { - "from agno.tools.plivo import PlivoTools": { - "tools/toolkits/social/plivo.mdx", - }, - "from agno.tools.superserve import SuperserveTools": { - "tools/toolkits/others/superserve.mdx", - }, - "from agno.db.valkey import ValkeyDb": { - "database/providers/valkey/overview.mdx", - "database/providers/valkey/usage/valkey-for-agent.mdx", - "database/providers/valkey/usage/valkey-for-team.mdx", - "database/providers/valkey/usage/valkey-for-workflow.mdx", - }, - "from agno.vectordb.valkey import ValkeyDB": { - "knowledge/vector-stores/valkey/overview.mdx", - "knowledge/vector-stores/valkey/usage/async-valkey-db.mdx", - "knowledge/vector-stores/valkey/usage/valkey-db.mdx", - }, -} - CODEBLOCK_RE = re.compile(r"```(\w+)?[^\n]*\n(.*?)```", re.DOTALL) IMPORT_START_RE = re.compile(r"^\s*(from\s+agno[.\s]|import\s+agno)") @@ -223,7 +200,6 @@ def main(): real_failures = {} dep_only = 0 - post_tag = 0 ok_count = 0 for stmt in sorted(stmt_files): r = subprocess.run([VENV_PY, "-c", stmt], capture_output=True, text=True) @@ -232,14 +208,6 @@ def main(): continue err = r.stderr.strip().split("\n")[-1] if REAL_FAIL_RE.search(err): - expected_files = POST_TAG_IMPORT_FILES.get(stmt) - actual_files = { - os.path.relpath(path, DOCS_ROOT) - for path in stmt_files[stmt] - } - if expected_files is not None and actual_files == expected_files: - post_tag += 1 - continue real_failures[stmt] = {"error": err, "files": sorted(stmt_files[stmt])} continue # dependency-blocked: verify statically against source @@ -251,7 +219,7 @@ def main(): print( f"OK: {ok_count} dep-only (verified in source): {dep_only} " - f"post-tag (reviewed): {post_tag} REAL FAIL: {len(real_failures)}", + f"REAL FAIL: {len(real_failures)}", file=sys.stderr, ) print(json.dumps(real_failures, indent=2)) diff --git a/scripts/check_install_coverage.py b/scripts/check_install_coverage.py index 26954cd67..2bb119d22 100644 --- a/scripts/check_install_coverage.py +++ b/scripts/check_install_coverage.py @@ -12,8 +12,7 @@ distribution (e.g. `agno[os]`) also counts; extras are parsed from the agno repo's libs/agno/pyproject.toml. -Requirements are derived from a curated mapping built by reading the agno -source at tag v2.7.2: +Requirements are derived from a curated mapping built against Agno v2.7.4: - agno.db.* / agno.vectordb.* the module's ImportError-guard package(s), plus sqlalchemy and a SQL driver (taken from the db_url dialect in the page's fences, or @@ -65,15 +64,14 @@ SKIP_PREFIXES = ("examples/", "reference-api/", "deploy/") -# Distributions bundled with core agno (pyproject [project] dependencies at -# v2.7.2); never reported as missing. +# Distributions bundled with core Agno 2.7.4; never reported as missing. CORE_DISTS = { "agno", "agnoctl", "docstring-parser", "h11", "httpx", "packaging", "pydantic", "pydantic-settings", "pyyaml", "rich", "typing-extensions", } # --------------------------------------------------------------------------- -# Curated requirement mapping, built from the agno source at tag v2.7.2 +# Curated requirement mapping, built from the Agno v2.7.4 source # (libs/agno). Keys are dotted module paths; lookup takes the longest matching # prefix. BY_NAME means the imported class name decides (see NAME_DISTS); # a plain module import of a BY_NAME key goes to the review list. @@ -106,6 +104,7 @@ "agno.db.sqlite": ("sqlalchemy",), "agno.db.surrealdb": ("surrealdb",), "agno.db.utils": (), + "agno.db.valkey": ("valkey-glide-sync",), # ---- vector databases (agno/vectordb/*) "agno.vectordb": (), "agno.vectordb.base": (), @@ -129,11 +128,11 @@ "agno.vectordb.singlestore": ("sqlalchemy",), "agno.vectordb.surrealdb": ("surrealdb",), "agno.vectordb.upstashdb": ("upstash-vector",), + "agno.vectordb.valkey": ("valkey-glide-sync",), "agno.vectordb.weaviate": ("weaviate-client",), # ---- models (agno/models/*; provider SDK, or openai for OpenAILike) "agno.models": (), "agno.models.base": (), - "agno.models.defaults": (), "agno.models.fallback": (), "agno.models.message": (), "agno.models.metrics": (), @@ -184,6 +183,7 @@ "agno.models.sambanova": ("openai",), "agno.models.siliconflow": ("openai",), "agno.models.together": ("openai",), + "agno.models.tokenlab": ("openai",), "agno.models.tuning_engines": ("openai",), "agno.models.vercel": ("openai",), "agno.models.vertexai": ("anthropic",), @@ -288,11 +288,13 @@ "agno.tools.pandas": ("pandas",), "agno.tools.parallel": ("parallel-web",), "agno.tools.perplexity": (), + "agno.tools.plivo": ("plivo",), "agno.tools.postgres": ("psycopg",), "agno.tools.pubmed": (), "agno.tools.python": (), "agno.tools.reasoning": (), "agno.tools.reddit": ("praw",), + "agno.tools.redmine": ("python-redmine",), "agno.tools.redshift": ("redshift-connector",), "agno.tools.replicate": ("replicate",), "agno.tools.resend": ("resend",), @@ -315,6 +317,7 @@ "agno.tools.sql": ("sqlalchemy",), "agno.tools.streamlit": ("streamlit",), "agno.tools.studio": (), + "agno.tools.superserve": ("superserve",), "agno.tools.tavily": ("tavily-python",), "agno.tools.telegram": ("pytelegrambotapi",), "agno.tools.todoist": ("todoist-api-python",), @@ -413,12 +416,12 @@ ) # Vector db classes whose constructor defaults embedder to OpenAIEmbedder -# (checked in the v2.7.2 source; Upstash, LangChain, LlamaIndex, and LightRag +# (checked in the v2.7.4 source; Upstash, LangChain, LlamaIndex, and LightRag # wrappers do not). EMBEDDER_DEFAULT_CLASSES = { "Cassandra", "ChromaDb", "Clickhouse", "CouchbaseSearch", "LanceDb", "Milvus", "MongoDb", "PgVector", "PineconeDb", "Qdrant", "RedisDB", - "SingleStore", "SurrealDb", "Weaviate", + "SingleStore", "SurrealDb", "ValkeyDB", "Weaviate", } # SQL backends: which imports imply which default driver when the page shows @@ -685,7 +688,7 @@ def resolve_import(module: str, name: str | None): return val, None if in_family(module): what = f"from {module} import {name}" if name else f"import {module}" - return None, f"'{what}': module not in the v2.7.2 mapping" + return None, f"'{what}': module not in the v2.7.4 mapping" return (), None diff --git a/scripts/examples_sync/generate.py b/scripts/examples_sync/generate.py index 650f87da4..6b3aa7d64 100644 --- a/scripts/examples_sync/generate.py +++ b/scripts/examples_sync/generate.py @@ -4737,7 +4737,7 @@ def apply_source_render_override( def source_link(cookbook_rel: str, render_override: dict[str, object], agno_root: Path) -> str: """Build a source link, optionally pinned to the exact Agno source tag.""" - ref = render_override.get("source_link_ref", "main") + ref = render_override.get("source_link_ref", "pinned-tag") assert isinstance(ref, str), f"{cookbook_rel}: source_link_ref must be a string" if ref == "pinned-tag": result = subprocess.run( diff --git a/scripts/examples_sync/plan.py b/scripts/examples_sync/plan.py index 40bd29650..8a132a92e 100644 --- a/scripts/examples_sync/plan.py +++ b/scripts/examples_sync/plan.py @@ -127,35 +127,10 @@ "examples/reasoning/models/xai/overview", } -# These examples landed on docs main after the pinned v2.7.2 source tag. Keep -# their shipped pages while this sync remains pinned to that tag. The strict -# source-field and navigation assertions make a renamed or replaced page fail -# closed instead of silently bypassing source validation. -POST_TAG_CURATED_SOURCE_OVERRIDES = { - "examples/agent-os/dbs/valkey-db": "05_agent_os/dbs/valkey_db.py", - "examples/integrations/observability/the-context-company": "observability/the_context_company.py", - "examples/storage/valkey/valkey-for-agent": "06_storage/valkey/valkey_for_agent.py", - "examples/storage/valkey/valkey-for-team": "06_storage/valkey/valkey_for_team.py", - "examples/storage/valkey/valkey-for-workflow": "06_storage/valkey/valkey_for_workflow.py", - "examples/tools/tavily-tools-advanced": "91_tools/tavily_tools_advanced.py", -} - -# These generated examples were updated on docs main after the pinned source -# tag while their cookbook paths continued to exist. Preserve the shipped -# pages until the sync target advances past v2.7.2, otherwise regeneration -# would restore the older callback API from the pinned source. -POST_TAG_EXISTING_SOURCE_OVERRIDES = { - "examples/agent-os/workflow/customer-research-workflow-parallel": - "05_agent_os/workflow/customer_research_workflow_parallel.py", - "examples/workflows/advanced-concepts/session-state/state-in-condition": - "04_workflows/06_advanced_concepts/session_state/state_in_condition.py", - "examples/workflows/advanced-concepts/session-state/state-in-function": - "04_workflows/06_advanced_concepts/session_state/state_in_function.py", - "examples/workflows/advanced-concepts/session-state/state-in-router": - "04_workflows/06_advanced_concepts/session_state/state_in_router.py", - "examples/workflows/cel-expressions/condition/cel-session-state": - "04_workflows/07_cel_expressions/condition/cel_session_state.py", -} +# Every previously post-tag source ships in v2.7.4. Classify those pages +# against the sealed cookbook like every other generated example. +POST_TAG_CURATED_SOURCE_OVERRIDES = {} +POST_TAG_EXISTING_SOURCE_OVERRIDES = {} # --------------------------------------------------------------------------- # Parsing helpers From 56afee5e5a00b8d978eee6146184318dd2f74ab4 Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 02:38:05 +0100 Subject: [PATCH 02/47] docs: sync examples to Agno v2.7.4 --- docs.json | 42 ++- examples/agent-os/advanced-demo/agents.mdx | 2 +- .../agent-os/advanced-demo/checkpointing.mdx | 2 +- examples/agent-os/advanced-demo/demo.mdx | 2 +- .../agent-os/advanced-demo/file-output.mdx | 2 +- examples/agent-os/advanced-demo/mcp-demo.mdx | 2 +- .../multiple-knowledge-bases.mdx | 2 +- .../agent-os/advanced-demo/reasoning-demo.mdx | 2 +- .../advanced-demo/reasoning-model.mdx | 2 +- .../agent-os/advanced-demo/teams-demo.mdx | 2 +- examples/agent-os/advanced-demo/teams.mdx | 2 +- examples/agent-os/agno-assist.mdx | 2 +- examples/agent-os/antigravity/basic.mdx | 2 +- .../agent-os/antigravity/data-enrichment.mdx | 2 +- .../approvals/agent/approval-basic.mdx | 2 +- .../approvals/agent/approval-user-input.mdx | 2 +- .../team/member-agent-level-approval.mdx | 2 +- ...m-and-member-agent-both-level-approval.mdx | 2 +- .../background-evals-example.mdx | 2 +- .../background-hooks-decorator.mdx | 2 +- .../background-hooks-example.mdx | 2 +- .../background-hooks-team.mdx | 2 +- .../background-hooks-workflow.mdx | 2 +- .../background-output-evaluation.mdx | 2 +- .../agent-os/background-tasks/evals-demo.mdx | 2 +- examples/agent-os/basic.mdx | 2 +- .../agent-os/client-a2a/basic-messaging.mdx | 2 +- .../client-a2a/connect-to-google-adk.mdx | 2 +- .../agent-os/client-a2a/error-handling.mdx | 2 +- examples/agent-os/client-a2a/multi-turn.mdx | 2 +- .../client-a2a/servers/agno-server.mdx | 2 +- .../client-a2a/servers/google-adk-server.mdx | 2 +- examples/agent-os/client-a2a/streaming.mdx | 2 +- examples/agent-os/client/basic-client.mdx | 2 +- .../client/continue-run-sse-reconnect.mdx | 2 +- examples/agent-os/client/knowledge-search.mdx | 2 +- .../agent-os/client/memory-operations.mdx | 2 +- examples/agent-os/client/run-agents.mdx | 2 +- examples/agent-os/client/run-evals.mdx | 2 +- examples/agent-os/client/run-teams.mdx | 2 +- examples/agent-os/client/run-workflows.mdx | 2 +- examples/agent-os/client/server.mdx | 2 +- .../agent-os/client/session-management.mdx | 2 +- examples/agent-os/client/sse-reconnect.mdx | 2 +- .../agent-os/client/team-sse-reconnect.mdx | 2 +- examples/agent-os/client/upload-content.mdx | 2 +- .../client/workflow-sse-reconnect.mdx | 2 +- .../agent-os/customize/custom-fastapi-app.mdx | 2 +- .../customize/custom-health-endpoint.mdx | 2 +- .../agent-os/customize/custom-lifespan.mdx | 2 +- .../customize/handle-custom-events.mdx | 3 +- .../agent-os/customize/override-routes.mdx | 2 +- .../customize/pass-dependencies-to-agent.mdx | 2 +- .../customize/update-from-lifespan.mdx | 2 +- examples/agent-os/dbs/agentos-default-db.mdx | 2 +- examples/agent-os/dbs/dynamo.mdx | 3 +- examples/agent-os/dbs/firestore.mdx | 3 +- examples/agent-os/dbs/gcs-json.mdx | 3 +- examples/agent-os/dbs/json-db.mdx | 3 +- examples/agent-os/dbs/mongo.mdx | 2 +- examples/agent-os/dbs/mysql.mdx | 2 +- examples/agent-os/dbs/neon.mdx | 3 +- examples/agent-os/dbs/overview.mdx | 2 +- examples/agent-os/dbs/postgres.mdx | 2 +- examples/agent-os/dbs/redis-db.mdx | 2 +- examples/agent-os/dbs/singlestore.mdx | 3 +- examples/agent-os/dbs/sqlite.mdx | 3 +- examples/agent-os/dbs/supabase.mdx | 3 +- examples/agent-os/dbs/surreal-db/agents.mdx | 2 +- examples/agent-os/dbs/surreal-db/db.mdx | 2 +- examples/agent-os/dbs/surreal-db/run.mdx | 2 +- examples/agent-os/dbs/surreal-db/teams.mdx | 2 +- .../agent-os/dbs/surreal-db/workflows.mdx | 2 +- examples/agent-os/dbs/surreal.mdx | 2 +- examples/agent-os/dbs/valkey-db.mdx | 31 +-- examples/agent-os/demo.mdx | 2 +- .../factories/agent/basic-factory.mdx | 2 +- .../factories/agent/input-schema-factory.mdx | 2 +- .../factories/agent/tiered-model-factory.mdx | 2 +- examples/agent-os/factories/hitl-factory.mdx | 2 +- .../factories/team/basic-team-factory.mdx | 2 +- .../factories/team/tiered-team-factory.mdx | 2 +- .../workflow/basic-workflow-factory.mdx | 2 +- .../workflow/tiered-workflow-factory.mdx | 2 +- .../file-generation/file-generation-os.mdx | 3 +- .../agent-os/followup/followups-agentos.mdx | 2 +- .../google/gemini-3/data-labeling.mdx | 2 +- .../agent-tool-requires-confirmation.mdx | 2 +- .../team/confirmation-required.mdx | 2 +- .../team/external-tool-execution.mdx | 2 +- .../team/multi-round-user-input.mdx | 136 ++++++++++ .../team/team-tool-confirmation.mdx | 2 +- .../team/user-input-required.mdx | 2 +- .../workflow/condition-user-decision.mdx | 2 +- .../workflow/decision-tree.mdx | 2 +- .../workflow/dual-level-hitl.mdx | 2 +- .../workflow/loop-confirmation.mdx | 2 +- .../human-in-the-loop/workflow/main.mdx | 2 +- .../workflow/output-review.mdx | 2 +- .../workflow/router-user-selection.mdx | 2 +- .../workflow/step-confirmation.mdx | 2 +- .../workflow/step-user-input.mdx | 2 +- .../workflow/workflow-db.mdx | 2 +- .../agent-os/integrations/shopify-demo.mdx | 2 +- .../interfaces/a2a/agent-with-tools.mdx | 3 +- examples/agent-os/interfaces/a2a/basic.mdx | 2 +- .../a2a/multi-agent-a2a/airbnb-agent.mdx | 2 +- .../trip-planning-a2a-client.mdx | 2 +- .../a2a/multi-agent-a2a/weather-agent.mdx | 2 +- .../interfaces/a2a/reasoning-agent.mdx | 2 +- .../agent-os/interfaces/a2a/research-team.mdx | 3 +- .../interfaces/a2a/structured-output.mdx | 2 +- .../interfaces/agui/agent-with-media.mdx | 4 +- .../interfaces/agui/agent-with-tools.mdx | 5 +- .../agent-os/interfaces/agui/agentic-chat.mdx | 2 +- .../interfaces/agui/backend-feedback.mdx | 77 ++++++ .../agui/backend-tool-rendering.mdx | 4 +- examples/agent-os/interfaces/agui/basic.mdx | 4 +- .../interfaces/agui/hitl-backend-feedback.mdx | 74 ++++++ .../agui/hitl-tool-confirmation.mdx | 74 ++++++ .../interfaces/agui/hitl-user-input.mdx | 74 ++++++ .../interfaces/agui/human-in-the-loop.mdx | 82 +++--- .../interfaces/agui/multiple-instances.mdx | 2 +- .../interfaces/agui/reasoning-agent.mdx | 4 +- .../interfaces/agui/research-team.mdx | 7 +- .../agent-os/interfaces/agui/shared-state.mdx | 4 +- .../agent-os/interfaces/agui/showcase.mdx | 251 ++++++++++++++---- .../agent-os/interfaces/agui/state-events.mdx | 4 +- .../interfaces/agui/structured-output.mdx | 4 +- .../agui/team-human-in-the-loop.mdx | 114 ++++++++ .../interfaces/agui/team-state-events.mdx | 7 +- .../agui/tool-based-generative-ui.mdx | 4 +- .../interfaces/agui/tool-confirmation.mdx | 91 +++++++ .../agent-os/interfaces/agui/user-input.mdx | 87 ++++++ .../agent-os/interfaces/all-interfaces.mdx | 2 +- .../slack/agent-with-user-memory.mdx | 2 +- .../interfaces/slack/basic-workflow.mdx | 2 +- examples/agent-os/interfaces/slack/basic.mdx | 2 +- .../interfaces/slack/channel-summarizer.mdx | 2 +- .../interfaces/slack/file-analyst.mdx | 2 +- .../interfaces/slack/hitl-audit-flow.mdx | 2 +- .../interfaces/slack/hitl-confirmation.mdx | 2 +- .../slack/hitl-external-execution.mdx | 2 +- .../slack/hitl-incident-commander.mdx | 2 +- .../slack/hitl-required-approval.mdx | 2 +- .../agent-os/interfaces/slack/hitl-simple.mdx | 2 +- .../interfaces/slack/hitl-user-feedback.mdx | 2 +- .../interfaces/slack/hitl-user-input.mdx | 2 +- .../agent-os/interfaces/slack/multi-bot.mdx | 2 +- .../interfaces/slack/multimodal-team.mdx | 2 +- .../interfaces/slack/multimodal-workflow.mdx | 2 +- .../interfaces/slack/multiple-instances.mdx | 2 +- .../interfaces/slack/reasoning-agent.mdx | 2 +- .../interfaces/slack/research-assistant.mdx | 2 +- .../slack/streaming-deep-research.mdx | 2 +- .../interfaces/slack/support-team.mdx | 2 +- .../slack/team-hitl-confirmation.mdx | 2 +- .../team-hitl-external-execution-simple.mdx | 2 +- .../slack/team-hitl-team-tool-simple.mdx | 2 +- .../slack/team-hitl-user-input-simple.mdx | 2 +- .../interfaces/telegram/agent-with-media.mdx | 2 +- .../telegram/agent-with-user-memory.mdx | 2 +- .../agent-os/interfaces/telegram/basic.mdx | 2 +- .../telegram/multiple-instances.mdx | 2 +- .../interfaces/telegram/reasoning-agent.mdx | 2 +- .../telegram/streaming-workflow.mdx | 2 +- .../interfaces/telegram/streaming.mdx | 2 +- .../agent-os/interfaces/telegram/team.mdx | 2 +- .../agent-os/interfaces/telegram/workflow.mdx | 2 +- .../interfaces/whatsapp/agent-with-media.mdx | 2 +- .../whatsapp/agent-with-user-memory.mdx | 2 +- .../agent-os/interfaces/whatsapp/basic.mdx | 2 +- .../interfaces/whatsapp/deep-research.mdx | 2 +- .../whatsapp/image-generation-model.mdx | 2 +- .../whatsapp/interactive-concierge.mdx | 2 +- .../interfaces/whatsapp/multimodal-team.mdx | 2 +- .../whatsapp/multimodal-workflow.mdx | 2 +- .../whatsapp/multiple-instances.mdx | 2 +- .../interfaces/whatsapp/reasoning-agent.mdx | 2 +- .../interfaces/whatsapp/support-team.mdx | 2 +- .../interfaces/whatsapp/tourist-guide.mdx | 2 +- .../interfaces/whatsapp/video-generation.mdx | 2 +- .../agentos-docling-markdown-analyst.mdx | 2 +- .../knowledge/agentos-excel-analyst.mdx | 2 +- .../agent-os/knowledge/agentos-knowledge.mdx | 2 +- .../agent-os/knowledge/agno-docs-agent.mdx | 2 +- .../learnings/learnings-with-agentos.mdx | 2 +- .../agent-os/learnings/rest-api-learnings.mdx | 2 +- .../mcp-demo/custom-mcp-tool-example.mdx | 2 +- .../mcp-demo/dynamic-headers/client.mdx | 2 +- .../mcp-demo/dynamic-headers/server.mdx | 2 +- .../agent-os/mcp-demo/mcp-server-example.mdx | 2 +- .../mcp-demo/mcp-tools-advanced-example.mdx | 2 +- .../agent-os/mcp-demo/mcp-tools-example.mdx | 2 +- .../mcp-demo/mcp-tools-existing-lifespan.mdx | 2 +- .../mcp-demo/oauth-authkit-example.mdx | 2 +- .../mcp-demo/oauth-builtin-example.mdx | 2 +- examples/agent-os/mcp-demo/test-client.mdx | 2 +- .../agent-os-with-custom-middleware.mdx | 2 +- .../agent-os-with-jwt-middleware-cookies.mdx | 2 +- .../agent-os-with-jwt-middleware.mdx | 2 +- .../agent-os-with-service-accounts.mdx | 2 +- ...custom-fastapi-app-with-jwt-middleware.mdx | 2 +- .../middleware/extract-content-middleware.mdx | 2 +- .../agent-os/middleware/guardrails-demo.mdx | 2 +- examples/agent-os/os-config/basic.mdx | 2 +- examples/agent-os/os-config/yaml-config.mdx | 2 +- examples/agent-os/rbac/asymmetric/basic.mdx | 2 +- .../rbac/asymmetric/custom-scope-mappings.mdx | 2 +- .../agent-os/rbac/asymmetric/workos-byot.mdx | 2 +- .../rbac/symmetric/advanced-scopes.mdx | 2 +- .../rbac/symmetric/agent-permissions.mdx | 2 +- examples/agent-os/rbac/symmetric/basic.mdx | 2 +- .../rbac/symmetric/custom-scope-mappings.mdx | 2 +- .../rbac/symmetric/user-isolation.mdx | 2 +- .../agent-os/rbac/symmetric/with-cookie.mdx | 2 +- examples/agent-os/rbac/test-scopes.mdx | 2 +- .../remote/a2a-agent-as-team-member.mdx | 2 +- examples/agent-os/remote/adk-server.mdx | 2 +- examples/agent-os/remote/agent-os-gateway.mdx | 2 +- examples/agent-os/remote/agno-a2a-server.mdx | 2 +- examples/agent-os/remote/remote-adk-agent.mdx | 2 +- .../remote/remote-agent-as-team-member.mdx | 2 +- examples/agent-os/remote/remote-agent.mdx | 2 +- .../agent-os/remote/remote-agno-a2a-agent.mdx | 2 +- examples/agent-os/remote/remote-team.mdx | 2 +- examples/agent-os/remote/server.mdx | 2 +- .../agent-os/scheduler/async-schedule.mdx | 2 +- .../agent-os/scheduler/basic-schedule.mdx | 2 +- examples/agent-os/scheduler/demo.mdx | 2 +- .../scheduler/multi-agent-schedules.mdx | 2 +- .../agent-os/scheduler/rest-api-schedules.mdx | 2 +- examples/agent-os/scheduler/run-history.mdx | 2 +- .../scheduler/schedule-management.mdx | 2 +- .../scheduler/schedule-validation.mdx | 2 +- .../scheduler/scheduler-tools-agent.mdx | 2 +- .../scheduler/scheduler-with-agentos.mdx | 2 +- .../scheduler/team-workflow-schedules.mdx | 2 +- examples/agent-os/schemas/agent-schemas.mdx | 2 +- examples/agent-os/schemas/team-schemas.mdx | 2 +- .../system-info/scripts/get-system-info.mdx | 2 +- .../system-info/scripts/list-directory.mdx | 2 +- .../agent-os/skills/skills-with-agentos.mdx | 2 +- .../studio-tool/standalone-studio-agent.mdx | 2 +- .../studio-tool/studio-hitl-agent-os.mdx | 2 +- .../studio-tool/studio-hitl-agent.mdx | 2 +- .../studio-tool/studio-tools-agent.mdx | 2 +- .../team-tasks/team-tasks-streaming.mdx | 4 +- .../tracing/advanced-trace-filtering.mdx | 2 +- .../tracing/agent-with-knowledge-tracing.mdx | 2 +- .../agent-with-reasoning-tools-tracing.mdx | 2 +- .../agent-os/tracing/basic-agent-tracing.mdx | 2 +- .../agent-os/tracing/basic-team-tracing.mdx | 2 +- .../tracing/basic-workflow-tracing.mdx | 2 +- .../dbs/basic-agent-with-clickhousedb.mdx | 2 +- .../tracing/dbs/basic-agent-with-mongodb.mdx | 2 +- .../dbs/basic-agent-with-postgresdb.mdx | 2 +- .../tracing/dbs/basic-agent-with-sqlite.mdx | 2 +- ...tracing-with-multi-db-and-tracing-flag.mdx | 2 +- .../tracing-with-multi-db-scenario.mdx | 2 +- .../workflow/basic-chat-workflow-agent.mdx | 2 +- .../agent-os/workflow/basic-workflow-team.mdx | 2 +- examples/agent-os/workflow/basic-workflow.mdx | 2 +- .../customer-research-workflow-parallel.mdx | 17 +- .../workflow/workflow-with-conditional.mdx | 2 +- ...custom-function-updating-session-state.mdx | 2 +- .../workflow-with-custom-function.mdx | 2 +- .../workflow/workflow-with-history.mdx | 2 +- .../workflow/workflow-with-input-schema.mdx | 2 +- .../agent-os/workflow/workflow-with-loop.mdx | 2 +- .../workflow/workflow-with-nested-steps.mdx | 2 +- ...rallel-and-custom-function-step-stream.mdx | 2 +- .../workflow/workflow-with-parallel.mdx | 2 +- .../workflow/workflow-with-router.mdx | 2 +- .../agent-os/workflow/workflow-with-steps.mdx | 2 +- .../workflow-with-workflow-as-step.mdx | 2 +- .../agents/advanced/advanced-compression.mdx | 2 +- .../advanced/agent-run-cancel-persistence.mdx | 2 +- .../agents/advanced/agent-serialization.mdx | 2 +- .../automatic-cultural-management.mdx | 2 +- .../advanced/background-execution-metrics.mdx | 2 +- .../background-execution-structured.mdx | 2 +- .../agents/advanced/background-execution.mdx | 2 +- .../agents/advanced/basic-agent-events.mdx | 2 +- .../agents/advanced/cache-model-response.mdx | 2 +- examples/agents/advanced/cancel-run.mdx | 2 +- examples/agents/advanced/combined-metrics.mdx | 2 +- .../agents/advanced/compression-events.mdx | 2 +- .../agents/advanced/concurrent-execution.mdx | 2 +- .../advanced/create-cultural-knowledge.mdx | 2 +- examples/agents/advanced/culture-metrics.mdx | 2 +- .../advanced/custom-cancellation-manager.mdx | 2 +- examples/agents/advanced/custom-logging.mdx | 2 +- examples/agents/advanced/debug.mdx | 2 +- .../interchange-model/all-providers.mdx | 3 +- .../interchange-model/claude-gemini.mdx | 3 +- .../openai-chat-responses.mdx | 3 +- .../interchange-model/openai-claude.mdx | 3 +- .../interchange-model/openai-gemini.mdx | 3 +- .../agents/advanced/manually-add-culture.mdx | 2 +- examples/agents/advanced/metrics.mdx | 2 +- .../agents/advanced/multi-model-metrics.mdx | 2 +- .../advanced/reasoning-agent-events.mdx | 2 +- examples/agents/advanced/retries.mdx | 2 +- examples/agents/advanced/session-metrics.mdx | 2 +- .../advanced/session-summary-metrics.mdx | 2 +- .../agents/advanced/streaming-metrics.mdx | 2 +- .../agents/advanced/tool-call-compression.mdx | 2 +- .../agents/advanced/tool-call-metrics.mdx | 2 +- .../use-cultural-knowledge-in-agent.mdx | 2 +- examples/agents/approvals/approval-async.mdx | 2 +- examples/agents/approvals/approval-basic.mdx | 2 +- .../approvals/approval-external-execution.mdx | 2 +- .../approvals/approval-list-and-resolve.mdx | 2 +- .../agents/approvals/approval-post-hook.mdx | 2 +- .../agents/approvals/approval-user-input.mdx | 2 +- .../agents/approvals/audit-approval-async.mdx | 2 +- .../approvals/audit-approval-confirmation.mdx | 2 +- .../approvals/audit-approval-external.mdx | 2 +- .../approvals/audit-approval-overview.mdx | 2 +- .../approvals/audit-approval-user-input.mdx | 2 +- .../agents/basics/agent-with-instructions.mdx | 2 +- examples/agents/basics/agent-with-tools.mdx | 2 +- examples/agents/basics/basic-agent.mdx | 2 +- .../checkpointing/checkpoint-endpoints.mdx | 2 +- .../agents/checkpointing/crash-recovery.mdx | 2 +- .../checkpointing/tool-error-persistence.mdx | 2 +- .../context-management/datetime-format.mdx | 2 +- .../context-management/few-shot-learning.mdx | 2 +- .../filter-tool-calls-from-history.mdx | 2 +- .../instructions-with-state.mdx | 2 +- .../context-management/instructions.mdx | 2 +- .../introduction-message.mdx | 2 +- .../context-management/system-message.mdx | 2 +- .../dependencies/dependencies-in-context.mdx | 2 +- .../dependencies/dependencies-in-tools.mdx | 2 +- .../agents/dependencies/dynamic-tools.mdx | 2 +- .../agents/fallback-models/basic-fallback.mdx | 2 +- .../error-specific-fallbacks.mdx | 2 +- .../fallback-models/fallback-callback.mdx | 2 +- .../fallback-models/mid-run-fallback.mdx | 2 +- examples/agents/fork-session/fork-session.mdx | 2 +- .../agents/guardrails/custom-guardrail.mdx | 2 +- examples/agents/guardrails/mixed-hooks.mdx | 2 +- .../agents/guardrails/openai-moderation.mdx | 2 +- .../agents/guardrails/output-guardrail.mdx | 2 +- examples/agents/guardrails/pii-detection.mdx | 4 +- .../agents/guardrails/prompt-injection.mdx | 2 +- .../agents/hooks/message-history-hooks.mdx | 2 +- examples/agents/hooks/post-hook-output.mdx | 2 +- examples/agents/hooks/pre-hook-input.mdx | 4 +- examples/agents/hooks/session-state-hooks.mdx | 2 +- examples/agents/hooks/stream-hook.mdx | 2 +- examples/agents/hooks/tool-hooks.mdx | 2 +- .../human-in-the-loop/agentic-user-input.mdx | 2 +- .../confirmation-advanced.mdx | 2 +- .../confirmation-required-mcp-toolkit.mdx | 2 +- .../confirmation-required.mdx | 2 +- .../confirmation-toolkit.mdx | 2 +- .../confirmation-with-session-state.mdx | 2 +- .../external-tool-execution.mdx | 2 +- .../mixed-external-and-regular-tools.mdx | 2 +- .../human-in-the-loop/user-feedback.mdx | 2 +- .../human-in-the-loop/user-input-required.mdx | 2 +- .../agents/input-output/expected-output.mdx | 2 +- .../followup-suggestions-streaming.mdx | 2 +- .../input-output/followup-suggestions.mdx | 2 +- .../agents/input-output/input-formats.mdx | 2 +- examples/agents/input-output/input-schema.mdx | 2 +- examples/agents/input-output/output-model.mdx | 2 +- .../agents/input-output/output-schema.mdx | 2 +- examples/agents/input-output/parser-model.mdx | 2 +- .../input-output/response-as-variable.mdx | 2 +- examples/agents/input-output/save-to-file.mdx | 2 +- examples/agents/input-output/streaming.mdx | 2 +- .../knowledge/agentic-rag-with-reasoning.mdx | 2 +- .../knowledge/agentic-rag-with-reranking.mdx | 2 +- examples/agents/knowledge/agentic-rag.mdx | 2 +- .../agents/knowledge/custom-retriever.mdx | 2 +- .../agents/knowledge/knowledge-filters.mdx | 2 +- .../knowledge/rag-custom-embeddings.mdx | 2 +- .../agents/knowledge/references-format.mdx | 2 +- examples/agents/knowledge/traditional-rag.mdx | 2 +- .../memory-and-learning/learning-machine.mdx | 2 +- .../memory-and-learning/memory-manager.mdx | 2 +- .../agents/multimodal/audio-input-output.mdx | 2 +- .../multimodal/audio-sentiment-analysis.mdx | 2 +- .../agents/multimodal/audio-streaming.mdx | 2 +- examples/agents/multimodal/audio-to-text.mdx | 2 +- examples/agents/multimodal/image-to-audio.mdx | 2 +- examples/agents/multimodal/image-to-image.mdx | 2 +- .../multimodal/image-to-structured-output.mdx | 2 +- examples/agents/multimodal/image-to-text.mdx | 2 +- .../multimodal/media-input-for-tool.mdx | 3 +- examples/agents/multimodal/video-caption.mdx | 2 +- examples/agents/reasoning/basic-reasoning.mdx | 2 +- .../agents/reasoning/reasoning-with-model.mdx | 2 +- examples/agents/regenerate/regenerate.mdx | 2 +- examples/agents/skills/basic-skills.mdx | 2 +- .../code-review/scripts/check-style.mdx | 2 +- .../git-workflow/scripts/commit-message.mdx | 2 +- .../agentic-session-state.mdx | 2 +- .../agents/state-and-session/chat-history.mdx | 2 +- .../dynamic-session-state.mdx | 2 +- .../last-n-session-messages.mdx | 2 +- .../state-and-session/persistent-session.mdx | 2 +- .../search-session-history.mdx | 2 +- .../state-and-session/session-options.mdx | 2 +- .../session-state-advanced.mdx | 2 +- .../state-and-session/session-state-basic.mdx | 2 +- .../session-state-events.mdx | 2 +- .../session-state-manual-update.mdx | 4 +- .../session-state-multiple-users.mdx | 2 +- .../state-and-session/session-summary.mdx | 2 +- examples/agents/time-travel/continue-from.mdx | 2 +- examples/agents/time-travel/fork-run.mdx | 2 +- examples/agents/tools/callable-tools.mdx | 2 +- examples/agents/tools/session-state-tools.mdx | 2 +- .../agents/tools/team-callable-members.mdx | 2 +- examples/agents/tools/tool-call-limit.mdx | 2 +- examples/agents/tools/tool-choice.mdx | 2 +- .../tools/tools-with-literal-type-param.mdx | 2 +- .../basics/agent-search-over-knowledge.mdx | 2 +- examples/basics/agent-with-guardrails.mdx | 2 +- examples/basics/agent-with-memory.mdx | 2 +- .../basics/agent-with-state-management.mdx | 2 +- examples/basics/agent-with-storage.mdx | 2 +- .../basics/agent-with-structured-output.mdx | 2 +- examples/basics/agent-with-tools.mdx | 2 +- .../basics/agent-with-typed-input-output.mdx | 2 +- .../basics/custom-tool-for-self-learning.mdx | 2 +- examples/basics/human-in-the-loop.mdx | 2 +- examples/basics/multi-agent-team.mdx | 2 +- examples/basics/run.mdx | 2 +- examples/basics/sequential-workflow.mdx | 2 +- examples/components/agent-os-registry.mdx | 2 +- .../components/auto-populate-registry-os.mdx | 2 +- .../components/auto-populate-registry.mdx | 2 +- examples/components/demo.mdx | 2 +- examples/components/get-agent.mdx | 2 +- examples/components/get-team.mdx | 2 +- examples/components/get-workflow.mdx | 2 +- examples/components/registry.mdx | 2 +- examples/components/save-agent.mdx | 2 +- examples/components/save-team.mdx | 2 +- examples/components/save-workflow.mdx | 2 +- .../workflows/registry-agents-in-workflow.mdx | 2 +- .../workflows/save-conditional-steps.mdx | 2 +- .../workflows/save-custom-steps.mdx | 2 +- .../save-hitl-condition-loop-router.mdx | 2 +- .../save-hitl-confirmation-steps.mdx | 2 +- .../workflows/save-hitl-user-input-steps.mdx | 2 +- .../components/workflows/save-loop-steps.mdx | 2 +- .../workflows/save-parallel-steps.mdx | 2 +- .../workflows/save-router-steps.mdx | 2 +- examples/context/calendar.mdx | 2 +- examples/context/custom-provider.mdx | 2 +- examples/context/database-read-write.mdx | 2 +- examples/context/engineering-briefing.mdx | 2 +- examples/context/filesystem.mdx | 2 +- examples/context/gdrive-office.mdx | 2 +- examples/context/gmail.mdx | 2 +- examples/context/google-drive.mdx | 2 +- examples/context/google-workspace.mdx | 2 +- examples/context/mcp-server.mdx | 2 +- examples/context/multi-context-streaming.mdx | 2 +- examples/context/multi-provider.mdx | 2 +- examples/context/slack-search-media.mdx | 2 +- examples/context/slack.mdx | 2 +- examples/context/web-exa-mcp.mdx | 2 +- examples/context/web-exa.mdx | 2 +- examples/context/web-parallel-mcp.mdx | 2 +- examples/context/web-parallel.mdx | 2 +- examples/context/web-plus-slack.mdx | 2 +- examples/context/wiki-agentos-streaming.mdx | 2 +- examples/context/wiki-dual.mdx | 2 +- examples/context/wiki-filesystem.mdx | 2 +- examples/context/wiki-git.mdx | 2 +- examples/context/wiki-notion.mdx | 2 +- examples/context/wiki-streaming-events.mdx | 2 +- examples/context/wiki-with-web.mdx | 2 +- examples/context/workspace.mdx | 2 +- .../accuracy/accuracy-9-11-bigger-or-9-99.mdx | 2 +- examples/evals/accuracy/accuracy-basic.mdx | 2 +- .../evals/accuracy/accuracy-eval-metrics.mdx | 2 +- examples/evals/accuracy/accuracy-team.mdx | 2 +- .../accuracy/accuracy-with-given-answer.mdx | 2 +- .../evals/accuracy/accuracy-with-tools.mdx | 2 +- examples/evals/accuracy/db-logging.mdx | 2 +- examples/evals/accuracy/evaluator-agent.mdx | 2 +- .../agent-as-judge/agent-as-judge-basic.mdx | 2 +- .../agent-as-judge/agent-as-judge-batch.mdx | 2 +- .../agent-as-judge/agent-as-judge-binary.mdx | 2 +- .../agent-as-judge-custom-evaluator.mdx | 2 +- .../agent-as-judge-eval-metrics.mdx | 2 +- .../agent-as-judge-post-hook.mdx | 2 +- .../agent-as-judge-team-post-hook.mdx | 2 +- .../agent-as-judge/agent-as-judge-team.mdx | 2 +- .../agent-as-judge-with-guidelines.mdx | 2 +- .../agent-as-judge-with-tools.mdx | 2 +- examples/evals/performance/async-function.mdx | 2 +- .../comparison/autogen-instantiation.mdx | 2 +- .../comparison/crewai-instantiation.mdx | 2 +- .../comparison/langgraph-instantiation.mdx | 2 +- .../openai-agents-instantiation.mdx | 2 +- .../comparison/pydantic-ai-instantiation.mdx | 2 +- .../comparison/smolagents-instantiation.mdx | 2 +- examples/evals/performance/db-logging.mdx | 2 +- .../instantiate-agent-with-tool.mdx | 2 +- .../evals/performance/instantiate-agent.mdx | 2 +- .../evals/performance/instantiate-team.mdx | 2 +- .../response-with-memory-updates.mdx | 2 +- .../performance/response-with-storage.mdx | 2 +- .../evals/performance/simple-response.mdx | 2 +- ...eam-response-with-memory-and-reasoning.mdx | 3 +- .../team-response-with-memory-multi-user.mdx | 3 +- .../team-response-with-memory-simple.mdx | 3 +- examples/evals/reliability/db-logging.mdx | 2 +- .../multiple-tool-calls/calculator.mdx | 2 +- .../evals/reliability/reliability-async.mdx | 2 +- .../single-tool-calls/calculator.mdx | 2 +- examples/evals/reliability/team/ai-news.mdx | 2 +- examples/evals/suite/suite-basic.mdx | 2 +- examples/evals/suite/suite-team-scoring.mdx | 2 +- .../integrations/a2a/basic-agent/--main--.mdx | 2 +- .../a2a/basic-agent/basic-agent.mdx | 2 +- .../integrations/a2a/basic-agent/client.mdx | 2 +- .../integrations/discord/agent-with-media.mdx | 2 +- .../discord/agent-with-user-memory.mdx | 3 +- examples/integrations/discord/basic.mdx | 2 +- .../integrations/memory/mem0-integration.mdx | 2 +- .../memory/memori-integration.mdx | 2 +- .../integrations/memory/zep-integration.mdx | 2 +- .../integrations/observability/agent-ops.mdx | 2 +- ...ix-moving-traces-to-different-projects.mdx | 2 +- .../arize-phoenix-via-openinference-local.mdx | 3 +- .../arize-phoenix-via-openinference.mdx | 2 +- .../integrations/observability/atla-op.mdx | 3 +- ...gfuse-via-openinference-response-model.mdx | 3 +- .../langfuse-via-openinference.mdx | 2 +- .../observability/langfuse-via-openlit.mdx | 3 +- .../langsmith-via-openinference.mdx | 3 +- .../observability/langtrace-op.mdx | 3 +- .../observability/langwatch-op.mdx | 3 +- .../latitude-via-openinference.mdx | 2 +- .../logfire-via-openinference.mdx | 2 +- .../integrations/observability/maxim-ops.mdx | 2 +- .../observability/mlflow-via-autolog.mdx | 2 +- .../mlflow-via-openinference.mdx | 2 +- .../observability/opik-via-openinference.mdx | 3 +- .../teams/langfuse-via-openinference-team.mdx | 2 +- .../observability/the-context-company.mdx | 8 +- .../observability/trace-to-database.mdx | 2 +- .../observability/traceloop-op.mdx | 3 +- .../integrations/observability/weave-op.mdx | 4 +- ...ize-phoenix-via-openinference-workflow.mdx | 2 +- .../langfuse-via-openinference-workflows.mdx | 2 +- .../integrations/parallel/agent-os-app.mdx | 2 +- .../parallel/competitive-intel-monitor.mdx | 2 +- .../integrations/parallel/deep-research.mdx | 2 +- .../integrations/parallel/extract-content.mdx | 2 +- examples/integrations/parallel/quickstart.mdx | 2 +- .../parallel/research-assistant.mdx | 2 +- .../integrations/parallel/research-team.mdx | 2 +- .../parallel/research-workflow.mdx | 2 +- .../parallel/web-plus-knowledge.mdx | 2 +- .../surrealdb/custom-memory-instructions.mdx | 2 +- .../surrealdb/db-tools-control.mdx | 2 +- .../surrealdb/memory-creation.mdx | 2 +- .../surrealdb/memory-search-surreal.mdx | 2 +- .../surrealdb/standalone-memory-surreal.mdx | 2 +- .../knowledge/advanced/custom-chunking.mdx | 2 +- .../knowledge/advanced/custom-retriever.mdx | 2 +- examples/knowledge/advanced/graph-rag.mdx | 2 +- .../knowledge/advanced/knowledge-protocol.mdx | 2 +- .../knowledge/advanced/knowledge-tools.mdx | 2 +- .../advanced/per-user-isolation/valkey-db.mdx | 134 ++++++++++ examples/knowledge/advanced/prefix-search.mdx | 2 +- .../building-blocks/agentic-filtering.mdx | 2 +- .../building-blocks/chunking-strategies.mdx | 2 +- .../knowledge/building-blocks/embedders.mdx | 2 +- .../knowledge/building-blocks/filtering.mdx | 2 +- .../building-blocks/hybrid-search.mdx | 2 +- .../knowledge/building-blocks/reranking.mdx | 2 +- .../knowledge/getting-started/agentic-rag.mdx | 2 +- .../knowledge/getting-started/basic-rag.mdx | 2 +- .../getting-started/loading-content.mdx | 2 +- examples/knowledge/integrations/cloud/aws.mdx | 2 +- .../integrations/cloud/azure-sas.mdx | 2 +- .../knowledge/integrations/cloud/azure.mdx | 2 +- examples/knowledge/integrations/cloud/gcp.mdx | 2 +- .../cloud/github-dynamic-repo.mdx | 2 +- .../integrations/cloud/multi-source.mdx | 2 +- .../integrations/cloud/sharepoint.mdx | 2 +- .../rag/agentic-rag-infinity-reranker.mdx | 2 +- .../rag/agentic-rag-with-lightrag.mdx | 2 +- .../rag/local-rag-langchain-qdrant.mdx | 2 +- .../knowledge/integrations/readers/data.mdx | 2 +- .../readers/docling/docling-audio.mdx | 2 +- .../readers/docling/docling-documents.mdx | 2 +- .../readers/docling/docling-images.mdx | 2 +- .../readers/docling/docling-input-types.mdx | 98 +++++++ .../readers/docling/docling-markup.mdx | 2 +- .../readers/docling/docling-pdf.mdx | 2 +- .../readers/docling/docling-xlsx.mdx | 2 +- .../integrations/readers/documents.mdx | 2 +- .../knowledge/integrations/readers/web.mdx | 2 +- .../integrations/vector-dbs/local.mdx | 2 +- .../integrations/vector-dbs/managed.mdx | 2 +- .../integrations/vector-dbs/pgvector.mdx | 2 +- .../integrations/vector-dbs/qdrant.mdx | 2 +- .../integrations/vector-dbs/scylladb.mdx | 147 ++++++++++ examples/knowledge/production/agent-os.mdx | 2 +- .../knowledge/production/error-handling.mdx | 2 +- .../production/knowledge-lifecycle.mdx | 2 +- .../knowledge/production/multi-source-rag.mdx | 2 +- .../knowledge/production/multi-tenant.mdx | 2 +- .../production/ssrf-allowed-hosts.mdx | 2 +- .../basics/a-entity-memory-always.mdx | 2 +- .../basics/a-session-context-summary.mdx | 2 +- .../learning/basics/a-user-memory-always.mdx | 2 +- .../learning/basics/a-user-profile-always.mdx | 2 +- .../basics/b-entity-memory-agentic.mdx | 2 +- .../basics/b-session-context-planning.mdx | 2 +- .../learning/basics/b-user-memory-agentic.mdx | 2 +- .../basics/b-user-profile-agentic.mdx | 2 +- .../learning/basics/learned-knowledge.mdx | 2 +- .../custom-stores/custom-store-with-db.mdx | 2 +- .../custom-stores/minimal-custom-store.mdx | 2 +- .../decision-logs/basic-decision-log.mdx | 2 +- .../decision-logs/decision-log-always.mdx | 2 +- examples/learning/demo/agents.mdx | 2 +- examples/learning/demo/run.mdx | 2 +- examples/learning/demo/seed.mdx | 2 +- .../entity-memory/entity-relationships.mdx | 2 +- .../entity-memory/facts-and-events.mdx | 2 +- .../learned-knowledge/agentic-mode.mdx | 2 +- .../learned-knowledge/propose-mode.mdx | 2 +- .../learning/patterns/personal-assistant.mdx | 2 +- .../learning/patterns/research-assistant.mdx | 2 +- examples/learning/patterns/support-agent.mdx | 2 +- .../quick-tests/async-user-profile.mdx | 2 +- .../learning/quick-tests/claude-model.mdx | 2 +- .../quick-tests/learning-true-shorthand.mdx | 2 +- .../learning/quick-tests/no-db-graceful.mdx | 2 +- .../learning/quickstart/agentic-learn.mdx | 2 +- examples/learning/quickstart/always-learn.mdx | 2 +- .../learning/quickstart/learned-knowledge.mdx | 2 +- .../session-context/planning-mode.mdx | 2 +- .../learning/session-context/summary-mode.mdx | 2 +- .../learning/user-profile/agentic-mode.mdx | 2 +- .../user-profile/always-extraction.mdx | 2 +- .../learning/user-profile/custom-schema.mdx | 2 +- examples/memory/agent-with-memory.mdx | 2 +- examples/memory/agentic-memory.mdx | 2 +- examples/memory/agents-share-memory.mdx | 2 +- examples/memory/custom-memory-manager.mdx | 2 +- .../integrations/dakera-integration.mdx | 2 +- .../custom-memory-instructions.mdx | 2 +- .../memory-manager/db-tools-control.mdx | 2 +- .../memory/memory-manager/memory-creation.mdx | 2 +- .../memory/memory-manager/memory-search.mdx | 2 +- .../memory-manager/standalone-memory.mdx | 2 +- examples/memory/memory-tools.mdx | 2 +- ...lti-user-multi-session-chat-concurrent.mdx | 2 +- .../memory/multi-user-multi-session-chat.mdx | 2 +- .../custom-memory-strategy.mdx | 2 +- .../memory-summarize-strategy.mdx | 2 +- ...hare-memory-and-history-between-agents.mdx | 2 +- examples/models/aimlapi/basic.mdx | 2 +- examples/models/aimlapi/image-agent-bytes.mdx | 2 +- .../aimlapi/image-agent-with-memory.mdx | 2 +- examples/models/aimlapi/image-agent.mdx | 2 +- examples/models/aimlapi/retry.mdx | 2 +- examples/models/aimlapi/structured-output.mdx | 2 +- examples/models/aimlapi/tool-use.mdx | 2 +- .../models/anthropic/adaptive-thinking.mdx | 2 +- .../append-trailing-user-message.mdx | 2 +- .../models/anthropic/basic-with-timeout.mdx | 2 +- examples/models/anthropic/basic.mdx | 2 +- examples/models/anthropic/betas.mdx | 4 +- examples/models/anthropic/code-execution.mdx | 2 +- .../models/anthropic/context-management.mdx | 2 +- examples/models/anthropic/csv-input.mdx | 2 +- examples/models/anthropic/db.mdx | 2 +- .../anthropic/financial-analyst-thinking.mdx | 2 +- .../models/anthropic/image-input-bytes.mdx | 2 +- .../anthropic/image-input-file-upload.mdx | 2 +- .../anthropic/image-input-local-file.mdx | 2 +- examples/models/anthropic/image-input-url.mdx | 2 +- examples/models/anthropic/knowledge.mdx | 2 +- examples/models/anthropic/markdown-input.mdx | 2 +- examples/models/anthropic/mcp-connector.mdx | 2 +- examples/models/anthropic/memory.mdx | 2 +- examples/models/anthropic/pdf-input-bytes.mdx | 2 +- .../anthropic/pdf-input-file-upload.mdx | 2 +- examples/models/anthropic/pdf-input-local.mdx | 2 +- examples/models/anthropic/pdf-input-url.mdx | 2 +- .../anthropic/prompt-caching-extended.mdx | 2 +- .../anthropic/prompt-caching-multi-block.mdx | 2 +- .../prompt-caching-with-dynamic-block.mdx | 2 +- examples/models/anthropic/prompt-caching.mdx | 2 +- .../models/anthropic/pydantic-tool-input.mdx | 2 +- examples/models/anthropic/retry.mdx | 2 +- .../anthropic/server-tools-multi-turn.mdx | 2 +- .../anthropic/skills/agent-with-documents.mdx | 2 +- .../anthropic/skills/agent-with-excel.mdx | 2 +- .../skills/agent-with-powerpoint.mdx | 2 +- .../anthropic/skills/multi-skill-agent.mdx | 2 +- .../structured-output-strict-tools.mdx | 2 +- .../models/anthropic/structured-output.mdx | 2 +- examples/models/anthropic/thinking.mdx | 2 +- examples/models/anthropic/tool-use.mdx | 2 +- examples/models/anthropic/web-fetch.mdx | 2 +- examples/models/anthropic/web-search.mdx | 2 +- examples/models/aws/bedrock/basic.mdx | 2 +- .../models/aws/bedrock/image-agent-bytes.mdx | 2 +- .../models/aws/bedrock/pdf-agent-bytes.mdx | 2 +- .../models/aws/bedrock/structured-output.mdx | 2 +- examples/models/aws/bedrock/tool-use.mdx | 2 +- .../models/aws/claude/adaptive-thinking.mdx | 2 +- .../claude/append-trailing-user-message.mdx | 2 +- examples/models/aws/claude/basic.mdx | 2 +- examples/models/aws/claude/db.mdx | 2 +- examples/models/aws/claude/image-agent.mdx | 2 +- examples/models/aws/claude/knowledge.mdx | 2 +- .../models/aws/claude/structured-output.mdx | 2 +- examples/models/aws/claude/tool-use.mdx | 2 +- examples/models/aws/retry.mdx | 2 +- examples/models/azure/ai-foundry/basic.mdx | 2 +- examples/models/azure/ai-foundry/db.mdx | 2 +- .../models/azure/ai-foundry/demo-cohere.mdx | 2 +- .../models/azure/ai-foundry/demo-mistral.mdx | 2 +- .../azure/ai-foundry/image-agent-bytes.mdx | 2 +- .../models/azure/ai-foundry/image-agent.mdx | 2 +- .../models/azure/ai-foundry/knowledge.mdx | 2 +- examples/models/azure/ai-foundry/overview.mdx | 2 +- .../azure/ai-foundry/structured-output.mdx | 8 +- examples/models/azure/ai-foundry/tool-use.mdx | 2 +- examples/models/azure/claude/basic.mdx | 2 +- examples/models/azure/claude/thinking.mdx | 2 +- examples/models/azure/claude/tool-use.mdx | 2 +- examples/models/azure/openai/basic.mdx | 2 +- examples/models/azure/openai/db.mdx | 2 +- examples/models/azure/openai/knowledge.mdx | 2 +- .../models/azure/openai/structured-output.mdx | 2 +- examples/models/azure/openai/tool-use.mdx | 2 +- examples/models/azure/retry.mdx | 2 +- examples/models/cerebras-openai/basic.mdx | 2 +- examples/models/cerebras-openai/db.mdx | 2 +- examples/models/cerebras-openai/knowledge.mdx | 2 +- examples/models/cerebras-openai/oss-gpt.mdx | 2 +- .../cerebras-openai/structured-output.mdx | 2 +- examples/models/cerebras-openai/tool-use.mdx | 2 +- examples/models/cerebras/basic.mdx | 2 +- examples/models/cerebras/db.mdx | 2 +- examples/models/cerebras/knowledge.mdx | 2 +- examples/models/cerebras/oss-gpt.mdx | 2 +- examples/models/cerebras/retry.mdx | 2 +- .../models/cerebras/structured-output.mdx | 2 +- examples/models/cerebras/tool-use.mdx | 2 +- .../models/clients/http-client-caching.mdx | 2 +- examples/models/cloudflare/basic.mdx | 2 +- .../models/cloudflare/structured-output.mdx | 2 +- examples/models/cloudflare/switch-model.mdx | 2 +- examples/models/cloudflare/tool-use.mdx | 2 +- examples/models/cohere/basic.mdx | 2 +- examples/models/cohere/db.mdx | 2 +- examples/models/cohere/image-agent-bytes.mdx | 2 +- .../models/cohere/image-agent-local-file.mdx | 2 +- examples/models/cohere/image-agent.mdx | 2 +- examples/models/cohere/knowledge.mdx | 2 +- examples/models/cohere/memory.mdx | 2 +- examples/models/cohere/retry.mdx | 2 +- examples/models/cohere/structured-output.mdx | 2 +- examples/models/cohere/tool-use.mdx | 2 +- examples/models/cometapi/basic.mdx | 2 +- .../cometapi/image-agent-with-memory.mdx | 2 +- examples/models/cometapi/image-agent.mdx | 2 +- examples/models/cometapi/multi-model.mdx | 2 +- examples/models/cometapi/retry.mdx | 2 +- .../models/cometapi/structured-output.mdx | 2 +- examples/models/cometapi/tool-use.mdx | 2 +- examples/models/dashscope/basic.mdx | 2 +- .../models/dashscope/image-agent-bytes.mdx | 2 +- examples/models/dashscope/image-agent.mdx | 2 +- examples/models/dashscope/knowledge-tools.mdx | 2 +- examples/models/dashscope/retry.mdx | 2 +- .../models/dashscope/structured-output.mdx | 2 +- examples/models/dashscope/thinking-agent.mdx | 2 +- examples/models/dashscope/tool-use.mdx | 2 +- examples/models/deepinfra/basic.mdx | 2 +- examples/models/deepinfra/json-output.mdx | 2 +- examples/models/deepinfra/retry.mdx | 2 +- examples/models/deepinfra/tool-use.mdx | 2 +- examples/models/deepseek/basic.mdx | 2 +- examples/models/deepseek/reasoning-agent.mdx | 2 +- examples/models/deepseek/reasoning-effort.mdx | 2 +- examples/models/deepseek/retry.mdx | 2 +- .../models/deepseek/structured-output.mdx | 2 +- examples/models/deepseek/thinking-mode.mdx | 2 +- .../models/deepseek/thinking-tool-calls.mdx | 2 +- examples/models/deepseek/tool-use.mdx | 2 +- examples/models/fireworks/basic.mdx | 2 +- examples/models/fireworks/retry.mdx | 2 +- .../models/fireworks/structured-output.mdx | 2 +- examples/models/fireworks/tool-use.mdx | 2 +- .../antigravity-environment-config.mdx | 2 +- .../antigravity-multi-turn.mdx | 2 +- .../antigravity-streaming.mdx | 2 +- .../gemini-interactions/antigravity.mdx | 2 +- .../audio-understanding.mdx | 2 +- .../google/gemini-interactions/basic.mdx | 2 +- .../deep-research-collaborative-planning.mdx | 2 +- .../deep-research-file-search.mdx | 2 +- .../gemini-interactions/deep-research-mcp.mdx | 2 +- .../deep-research-multi-turn.mdx | 2 +- .../deep-research-multimodal.mdx | 2 +- .../deep-research-streaming.mdx | 2 +- .../deep-research-visualization.mdx | 2 +- .../gemini-interactions/deep-research.mdx | 2 +- .../document-processing.mdx | 2 +- .../gemini-interactions/image-generation.mdx | 2 +- .../image-understanding.mdx | 2 +- .../google/gemini-interactions/multi-turn.mdx | 2 +- .../google/gemini-interactions/search.mdx | 2 +- .../gemini-interactions/structured-output.mdx | 2 +- .../google/gemini-interactions/thinking.mdx | 2 +- .../google/gemini-interactions/tool-use.mdx | 2 +- .../video-understanding.mdx | 2 +- .../gemini/agent-with-thinking-budget.mdx | 2 +- .../gemini/audio-input-bytes-content.mdx | 2 +- .../google/gemini/audio-input-file-upload.mdx | 2 +- .../gemini/audio-input-local-file-upload.mdx | 2 +- examples/models/google/gemini/basic.mdx | 2 +- examples/models/google/gemini/csv-input.mdx | 2 +- examples/models/google/gemini/db.mdx | 2 +- .../google/gemini/external-url-input.mdx | 2 +- .../google/gemini/file-search-advanced.mdx | 2 +- .../google/gemini/file-search-basic.mdx | 2 +- .../gemini/file-search-image-upload.mdx | 2 +- .../gemini/file-search-rag-pipeline.mdx | 2 +- .../google/gemini/file-upload-with-cache.mdx | 2 +- .../models/google/gemini/gcs-file-input.mdx | 2 +- .../models/google/gemini/gemini-2-to-3.mdx | 2 +- .../gemini/gemini-3-pro-thinking-level.mdx | 2 +- .../models/google/gemini/gemini-3-pro.mdx | 2 +- examples/models/google/gemini/grounding.mdx | 2 +- .../models/google/gemini/image-editing.mdx | 2 +- .../models/google/gemini/image-generation.mdx | 2 +- .../google/gemini/image-input-file-upload.mdx | 2 +- examples/models/google/gemini/image-input.mdx | 2 +- .../google/gemini/imagen-tool-advanced.mdx | 2 +- examples/models/google/gemini/imagen-tool.mdx | 2 +- examples/models/google/gemini/knowledge.mdx | 2 +- .../google/gemini/parallel-grounding.mdx | 2 +- .../google/gemini/pdf-input-file-upload.mdx | 2 +- .../models/google/gemini/pdf-input-local.mdx | 2 +- .../models/google/gemini/pdf-input-url.mdx | 2 +- examples/models/google/gemini/retry.mdx | 2 +- .../google/gemini/s3-url-file-input.mdx | 2 +- examples/models/google/gemini/search.mdx | 2 +- .../google/gemini/storage-and-memory.mdx | 2 +- .../google/gemini/structured-output.mdx | 2 +- .../models/google/gemini/text-to-speech.mdx | 2 +- .../models/google/gemini/thinking-agent.mdx | 2 +- examples/models/google/gemini/timeout.mdx | 2 +- examples/models/google/gemini/tool-use.mdx | 2 +- .../google/gemini/url-context-with-search.mdx | 2 +- examples/models/google/gemini/url-context.mdx | 4 +- .../models/google/gemini/vertex-ai-search.mdx | 2 +- .../gemini/vertexai-with-credentials.mdx | 2 +- examples/models/google/gemini/vertexai.mdx | 2 +- .../gemini/video-input-bytes-content.mdx | 2 +- .../google/gemini/video-input-file-upload.mdx | 2 +- .../gemini/video-input-local-file-upload.mdx | 2 +- .../google/gemini/video-input-youtube.mdx | 2 +- examples/models/groq/agent-team.mdx | 2 +- examples/models/groq/basic.mdx | 2 +- examples/models/groq/browser-search.mdx | 2 +- examples/models/groq/db.mdx | 2 +- examples/models/groq/deep-knowledge.mdx | 2 +- examples/models/groq/image-agent.mdx | 2 +- examples/models/groq/knowledge.mdx | 2 +- examples/models/groq/metrics.mdx | 2 +- examples/models/groq/reasoning-agent.mdx | 2 +- examples/models/groq/reasoning/basic.mdx | 2 +- .../groq/reasoning/demo-deepseek-qwen.mdx | 2 +- .../groq/reasoning/demo-qwen-2-5-32b.mdx | 2 +- .../models/groq/reasoning/finance-agent.mdx | 2 +- examples/models/groq/research-agent-exa.mdx | 2 +- examples/models/groq/research-agent-seltz.mdx | 2 +- examples/models/groq/retry.mdx | 2 +- examples/models/groq/structured-output.mdx | 2 +- examples/models/groq/tool-use.mdx | 2 +- examples/models/groq/transcription-agent.mdx | 2 +- examples/models/groq/translation-agent.mdx | 2 +- examples/models/huggingface/basic.mdx | 2 +- .../models/huggingface/llama-essay-writer.mdx | 2 +- examples/models/huggingface/retry.mdx | 2 +- examples/models/huggingface/tool-use.mdx | 2 +- examples/models/ibm/retry.mdx | 2 +- examples/models/ibm/watsonx/basic.mdx | 2 +- examples/models/ibm/watsonx/db.mdx | 2 +- .../models/ibm/watsonx/image-agent-bytes.mdx | 2 +- examples/models/ibm/watsonx/knowledge.mdx | 2 +- .../models/ibm/watsonx/structured-output.mdx | 2 +- examples/models/ibm/watsonx/tool-use.mdx | 2 +- examples/models/inception/basic.mdx | 2 +- .../models/inception/structured-output.mdx | 2 +- examples/models/inception/tool-use.mdx | 2 +- examples/models/internlm/retry.mdx | 2 +- examples/models/langdb/agent.mdx | 4 +- examples/models/langdb/basic.mdx | 2 +- examples/models/langdb/data-analyst.mdx | 2 +- examples/models/langdb/finance-agent.mdx | 2 +- examples/models/langdb/retry.mdx | 2 +- examples/models/langdb/structured-output.mdx | 2 +- examples/models/langdb/web-search.mdx | 2 +- .../litellm-openai/audio-input-agent.mdx | 2 +- examples/models/litellm-openai/basic.mdx | 2 +- examples/models/litellm-openai/tool-use.mdx | 2 +- .../litellm/append-trailing-user-message.mdx | 2 +- examples/models/litellm/audio-input-agent.mdx | 2 +- examples/models/litellm/basic-gpt.mdx | 2 +- examples/models/litellm/basic.mdx | 2 +- examples/models/litellm/db.mdx | 2 +- examples/models/litellm/image-agent-bytes.mdx | 2 +- examples/models/litellm/image-agent.mdx | 2 +- examples/models/litellm/knowledge.mdx | 2 +- examples/models/litellm/memory.mdx | 2 +- examples/models/litellm/metrics.mdx | 2 +- examples/models/litellm/pdf-input-bytes.mdx | 2 +- examples/models/litellm/pdf-input-local.mdx | 2 +- examples/models/litellm/pdf-input-url.mdx | 2 +- examples/models/litellm/reasoning-agent.mdx | 2 +- examples/models/litellm/retry.mdx | 2 +- examples/models/litellm/structured-output.mdx | 2 +- examples/models/litellm/tool-use.mdx | 2 +- examples/models/llama-cpp/basic.mdx | 2 +- examples/models/llama-cpp/retry.mdx | 2 +- .../models/llama-cpp/structured-output.mdx | 2 +- examples/models/llama-cpp/tool-use.mdx | 2 +- examples/models/lmstudio/basic.mdx | 2 +- examples/models/lmstudio/db.mdx | 2 +- examples/models/lmstudio/image-agent.mdx | 2 +- examples/models/lmstudio/knowledge.mdx | 2 +- examples/models/lmstudio/memory.mdx | 2 +- examples/models/lmstudio/retry.mdx | 2 +- .../models/lmstudio/structured-output.mdx | 2 +- examples/models/lmstudio/tool-use.mdx | 2 +- examples/models/meta/llama-openai/basic.mdx | 2 +- .../meta/llama-openai/image-input-bytes.mdx | 2 +- .../meta/llama-openai/image-input-file.mdx | 2 +- .../models/meta/llama-openai/knowledge.mdx | 2 +- examples/models/meta/llama-openai/memory.mdx | 3 +- examples/models/meta/llama-openai/metrics.mdx | 2 +- examples/models/meta/llama-openai/storage.mdx | 2 +- .../meta/llama-openai/structured-output.mdx | 2 +- .../models/meta/llama-openai/tool-use.mdx | 2 +- .../models/meta/llama/async-knowledge.mdx | 2 +- examples/models/meta/llama/basic.mdx | 2 +- examples/models/meta/llama/db.mdx | 2 +- .../models/meta/llama/image-input-bytes.mdx | 2 +- .../models/meta/llama/image-input-file.mdx | 2 +- examples/models/meta/llama/knowledge.mdx | 2 +- examples/models/meta/llama/memory.mdx | 2 +- examples/models/meta/llama/metrics.mdx | 2 +- .../models/meta/llama/structured-output.mdx | 2 +- examples/models/meta/llama/tool-use.mdx | 2 +- examples/models/meta/retry.mdx | 2 +- examples/models/minimax/basic.mdx | 2 +- examples/models/minimax/structured-output.mdx | 2 +- examples/models/minimax/tool-use.mdx | 2 +- examples/models/mistral/basic.mdx | 2 +- .../mistral/image-bytes-input-agent.mdx | 2 +- .../models/mistral/image-compare-agent.mdx | 2 +- .../models/mistral/image-file-input-agent.mdx | 2 +- .../image-ocr-with-structured-output.mdx | 2 +- .../image-transcribe-document-agent.mdx | 2 +- examples/models/mistral/memory.mdx | 2 +- examples/models/mistral/mistral-small.mdx | 2 +- examples/models/mistral/retry.mdx | 2 +- .../structured-output-with-tool-use.mdx | 2 +- examples/models/mistral/structured-output.mdx | 2 +- examples/models/mistral/tool-use.mdx | 2 +- examples/models/moonshot/basic.mdx | 2 +- examples/models/moonshot/tool-use.mdx | 2 +- examples/models/n1n/basic.mdx | 2 +- examples/models/n1n/tool-use.mdx | 2 +- examples/models/nebius/basic.mdx | 2 +- examples/models/nebius/db.mdx | 2 +- examples/models/nebius/knowledge.mdx | 2 +- examples/models/nebius/retry.mdx | 2 +- examples/models/nebius/structured-output.mdx | 2 +- examples/models/nebius/tool-use.mdx | 2 +- examples/models/neosantara/basic.mdx | 2 +- .../models/neosantara/structured-output.mdx | 2 +- examples/models/neosantara/tool-use.mdx | 2 +- examples/models/nexus/basic.mdx | 2 +- examples/models/nexus/retry.mdx | 2 +- examples/models/nexus/tool-use.mdx | 2 +- examples/models/nvidia/basic.mdx | 2 +- examples/models/nvidia/retry.mdx | 2 +- examples/models/nvidia/tool-use.mdx | 2 +- examples/models/ollama/chat/basic.mdx | 2 +- examples/models/ollama/chat/db.mdx | 2 +- .../models/ollama/chat/demo-deepseek-r1.mdx | 2 +- examples/models/ollama/chat/demo-gemma.mdx | 2 +- examples/models/ollama/chat/demo-phi4.mdx | 2 +- examples/models/ollama/chat/demo-qwen.mdx | 2 +- examples/models/ollama/chat/image-agent.mdx | 2 +- examples/models/ollama/chat/knowledge.mdx | 2 +- examples/models/ollama/chat/memory.mdx | 2 +- examples/models/ollama/chat/ollama-cloud.mdx | 2 +- .../models/ollama/chat/reasoning-agent.mdx | 3 +- examples/models/ollama/chat/retry.mdx | 2 +- examples/models/ollama/chat/set-client.mdx | 2 +- .../models/ollama/chat/set-temperature.mdx | 2 +- .../models/ollama/chat/structured-output.mdx | 2 +- examples/models/ollama/chat/tool-use.mdx | 2 +- examples/models/ollama/responses/basic.mdx | 2 +- .../ollama/responses/structured-output.mdx | 2 +- examples/models/ollama/responses/tool-use.mdx | 2 +- ...ess-memories-in-memory-completed-event.mdx | 2 +- .../models/openai/chat/agent-flex-tier.mdx | 2 +- .../models/openai/chat/audio-input-agent.mdx | 2 +- .../audio-input-and-output-multi-turn.mdx | 2 +- .../chat/audio-input-local-file-upload.mdx | 2 +- .../models/openai/chat/audio-output-agent.mdx | 2 +- .../openai/chat/audio-output-stream.mdx | 2 +- .../openai/chat/basic-stream-metrics.mdx | 2 +- examples/models/openai/chat/basic.mdx | 2 +- examples/models/openai/chat/citations.mdx | 2 +- .../models/openai/chat/custom-role-map.mdx | 2 +- examples/models/openai/chat/db.mdx | 2 +- .../models/openai/chat/generate-images.mdx | 2 +- .../models/openai/chat/image-agent-bytes.mdx | 2 +- .../models/openai/chat/image-agent-file.mdx | 2 +- .../openai/chat/image-agent-with-memory.mdx | 2 +- examples/models/openai/chat/image-agent.mdx | 2 +- examples/models/openai/chat/knowledge.mdx | 2 +- examples/models/openai/chat/memory.mdx | 2 +- examples/models/openai/chat/metrics.mdx | 2 +- .../models/openai/chat/pdf-input-bytes.mdx | 2 +- .../openai/chat/pdf-input-file-upload.mdx | 2 +- .../models/openai/chat/pdf-input-local.mdx | 2 +- examples/models/openai/chat/pdf-input-url.mdx | 2 +- .../models/openai/chat/reasoning-o3-mini.mdx | 2 +- examples/models/openai/chat/retry.mdx | 2 +- .../models/openai/chat/structured-output.mdx | 2 +- .../openai/chat/text-to-speech-agent.mdx | 2 +- examples/models/openai/chat/tool-use.mdx | 2 +- .../models/openai/chat/verbosity-control.mdx | 2 +- examples/models/openai/chat/with-retries.mdx | 2 +- .../openai/responses/agent-flex-tier.mdx | 2 +- .../models/openai/responses/background.mdx | 2 +- examples/models/openai/responses/basic.mdx | 2 +- examples/models/openai/responses/db.mdx | 2 +- .../openai/responses/deep-research-agent.mdx | 2 +- .../openai/responses/file-input-direct.mdx | 2 +- .../openai/responses/image-agent-bytes.mdx | 2 +- .../openai/responses/image-agent-file.mdx | 2 +- .../responses/image-agent-with-memory.mdx | 2 +- .../models/openai/responses/image-agent.mdx | 2 +- .../responses/image-generation-agent.mdx | 2 +- .../models/openai/responses/knowledge.mdx | 2 +- examples/models/openai/responses/memory.mdx | 2 +- .../openai/responses/pdf-input-local.mdx | 2 +- .../models/openai/responses/pdf-input-url.mdx | 2 +- .../openai/responses/reasoning-o3-mini.mdx | 2 +- .../structured-output-with-tools.mdx | 2 +- .../openai/responses/structured-output.mdx | 2 +- .../openai/responses/tool-use-gpt-5.mdx | 2 +- .../models/openai/responses/tool-use-o3.mdx | 2 +- examples/models/openai/responses/tool-use.mdx | 2 +- .../openai/responses/verbosity-control.mdx | 2 +- .../responses/websearch-builtin-tool.mdx | 2 +- .../openai/responses/zdr-reasoning-agent.mdx | 2 +- examples/models/openrouter/chat/basic.mdx | 2 +- .../openrouter/chat/dynamic-model-router.mdx | 2 +- .../openrouter/chat/image-generation.mdx | 67 +++++ examples/models/openrouter/chat/retry.mdx | 2 +- .../openrouter/chat/structured-output.mdx | 2 +- examples/models/openrouter/chat/tool-use.mdx | 2 +- .../models/openrouter/responses/basic.mdx | 2 +- .../models/openrouter/responses/fallback.mdx | 2 +- .../models/openrouter/responses/stream.mdx | 2 +- .../models/openrouter/responses/tool-use.mdx | 2 +- examples/models/perplexity/basic.mdx | 2 +- examples/models/perplexity/knowledge.mdx | 2 +- examples/models/perplexity/memory.mdx | 2 +- examples/models/perplexity/retry.mdx | 2 +- .../models/perplexity/structured-output.mdx | 2 +- examples/models/perplexity/web-search.mdx | 2 +- examples/models/portkey/basic.mdx | 2 +- examples/models/portkey/retry.mdx | 2 +- examples/models/portkey/structured-output.mdx | 2 +- examples/models/portkey/tool-use.mdx | 2 +- examples/models/requesty/basic.mdx | 2 +- examples/models/requesty/retry.mdx | 2 +- .../models/requesty/structured-output.mdx | 2 +- examples/models/requesty/tool-use.mdx | 2 +- examples/models/sambanova/basic.mdx | 2 +- examples/models/sambanova/retry.mdx | 2 +- examples/models/siliconflow/basic.mdx | 2 +- examples/models/siliconflow/retry.mdx | 2 +- .../models/siliconflow/structured-output.mdx | 2 +- examples/models/siliconflow/tool-use.mdx | 4 +- examples/models/together/basic.mdx | 2 +- .../models/together/image-agent-bytes.mdx | 2 +- .../together/image-agent-with-memory.mdx | 2 +- examples/models/together/image-agent.mdx | 2 +- examples/models/together/overview.mdx | 2 +- examples/models/together/reasoning-agent.mdx | 2 +- examples/models/together/retry.mdx | 2 +- .../models/together/structured-output.mdx | 2 +- examples/models/together/tool-use.mdx | 2 +- examples/models/tokenlab/basic.mdx | 83 ++++++ examples/models/tuning-engines/basic.mdx | 2 +- examples/models/vercel/basic.mdx | 2 +- examples/models/vercel/image-agent.mdx | 2 +- examples/models/vercel/knowledge.mdx | 2 +- examples/models/vercel/retry.mdx | 2 +- examples/models/vercel/tool-use.mdx | 2 +- .../vertexai/claude/adaptive-thinking.mdx | 2 +- .../vertexai/claude/basic-with-timeout.mdx | 2 +- examples/models/vertexai/claude/basic.mdx | 2 +- examples/models/vertexai/claude/betas.mdx | 4 +- examples/models/vertexai/claude/db.mdx | 2 +- .../vertexai/claude/image-input-bytes.mdx | 2 +- .../vertexai/claude/image-input-url.mdx | 2 +- examples/models/vertexai/claude/knowledge.mdx | 2 +- examples/models/vertexai/claude/memory.mdx | 2 +- .../vertexai/claude/pdf-input-bytes.mdx | 2 +- .../vertexai/claude/pdf-input-local.mdx | 2 +- .../models/vertexai/claude/prompt-caching.mdx | 2 +- .../vertexai/claude/structured-output.mdx | 2 +- examples/models/vertexai/claude/thinking.mdx | 2 +- examples/models/vertexai/claude/tool-use.mdx | 2 +- examples/models/vertexai/retry.mdx | 2 +- examples/models/vllm/basic.mdx | 2 +- examples/models/vllm/code-generation.mdx | 2 +- examples/models/vllm/db.mdx | 2 +- examples/models/vllm/memory.mdx | 2 +- examples/models/vllm/retry.mdx | 2 +- examples/models/vllm/structured-output.mdx | 2 +- examples/models/vllm/tool-use.mdx | 2 +- examples/models/xai/basic.mdx | 2 +- examples/models/xai/finance-agent.mdx | 2 +- examples/models/xai/image-agent-bytes.mdx | 2 +- .../models/xai/image-agent-with-memory.mdx | 2 +- examples/models/xai/image-agent.mdx | 2 +- .../models/xai/live-search-agent-stream.mdx | 2 +- examples/models/xai/live-search-agent.mdx | 2 +- examples/models/xai/reasoning-agent.mdx | 2 +- examples/models/xai/retry.mdx | 2 +- examples/models/xai/structured-output.mdx | 2 +- examples/models/xai/tool-use.mdx | 2 +- examples/models/xiaomi/basic.mdx | 2 +- examples/models/xiaomi/reasoning-agent.mdx | 2 +- examples/models/xiaomi/string-model.mdx | 2 +- examples/models/xiaomi/structured-output.mdx | 2 +- examples/models/xiaomi/thinking-mode.mdx | 2 +- examples/models/xiaomi/tool-use.mdx | 2 +- .../agents/analyse-treaty-of-versailles.mdx | 2 +- .../capture-reasoning-content-default-cot.mdx | 2 +- .../agents/cerebras-llama-default-cot.mdx | 3 +- .../agents/default-chain-of-thought.mdx | 2 +- examples/reasoning/agents/fibonacci.mdx | 2 +- examples/reasoning/agents/finance-agent.mdx | 2 +- .../agents/ibm-watsonx-default-cot.mdx | 3 +- .../agents/is-9-11-bigger-than-9-9.mdx | 2 +- .../reasoning/agents/life-in-500000-years.mdx | 2 +- examples/reasoning/agents/logical-puzzle.mdx | 2 +- .../reasoning/agents/mathematical-proof.mdx | 2 +- .../agents/mistral-reasoning-cot.mdx | 2 +- .../agents/python-101-curriculum.mdx | 2 +- .../reasoning/agents/scientific-research.mdx | 2 +- examples/reasoning/agents/ship-of-theseus.mdx | 2 +- examples/reasoning/agents/strawberry.mdx | 2 +- examples/reasoning/agents/trolley-problem.mdx | 2 +- .../anthropic/async-reasoning-stream.mdx | 2 +- .../anthropic/basic-reasoning-stream.mdx | 2 +- .../models/anthropic/basic-reasoning.mdx | 2 +- .../reasoning-model-deepseek.mdx | 2 +- .../reasoning-model-stream-deepseek.mdx | 2 +- .../azure-openai/basic-reasoning-stream.mdx | 2 +- .../azure-openai/o3-mini-with-tools.mdx | 2 +- .../azure-openai/reasoning-model-gpt-4-1.mdx | 2 +- .../models/deepseek/ethical-dilemma.mdx | 2 +- .../models/deepseek/plan-itinerary.mdx | 2 +- .../models/gemini/async-reasoning-stream.mdx | 2 +- .../models/gemini/basic-reasoning-stream.mdx | 2 +- .../models/gemini/basic-reasoning.mdx | 2 +- .../models/groq/deepseek-plus-claude.mdx | 2 +- .../reasoning/models/groq/fast-reasoning.mdx | 2 +- examples/reasoning/models/groq/or-9-9.mdx | 2 +- .../models/ollama/local-reasoning.mdx | 2 +- .../ollama/reasoning-model-deepseek.mdx | 2 +- .../models/openai/o3-mini-with-tools.mdx | 2 +- examples/reasoning/models/openai/o3-mini.mdx | 2 +- .../models/openai/reasoning-effort.mdx | 2 +- .../models/openai/reasoning-model-gpt-4-1.mdx | 2 +- .../models/openai/reasoning-stream.mdx | 2 +- .../models/openai/reasoning-summary.mdx | 2 +- .../vertex-ai/basic-reasoning-stream.mdx | 2 +- .../reasoning/models/xai/reasoning-effort.mdx | 2 +- .../teams/finance-team-chain-of-thought.mdx | 2 +- .../reasoning/teams/knowledge-tool-team.mdx | 2 +- .../teams/reasoning-finance-team.mdx | 2 +- .../tools/azure-openai-reasoning-tools.mdx | 2 +- ...ture-reasoning-content-knowledge-tools.mdx | 2 +- ...ture-reasoning-content-reasoning-tools.mdx | 2 +- .../tools/cerebras-llama-reasoning-tools.mdx | 2 +- .../tools/claude-reasoning-tools.mdx | 2 +- .../reasoning/tools/gemini-finance-agent.mdx | 2 +- .../tools/gemini-reasoning-tools.mdx | 2 +- .../tools/groq-llama-finance-agent.mdx | 2 +- .../tools/ibm-watsonx-reasoning-tools.mdx | 2 +- examples/reasoning/tools/knowledge-tools.mdx | 2 +- .../reasoning/tools/llama-reasoning-tools.mdx | 2 +- examples/reasoning/tools/memory-tools.mdx | 2 +- .../tools/ollama-reasoning-tools.mdx | 2 +- .../tools/openai-reasoning-tools.mdx | 2 +- examples/reasoning/tools/reasoning-tools.mdx | 2 +- .../tools/vercel-reasoning-tools.mdx | 2 +- examples/reasoning/tools/workflow-tools.mdx | 2 +- examples/storage/chat-history.mdx | 2 +- .../storage/dynamodb/dynamo-for-agent.mdx | 2 +- examples/storage/dynamodb/dynamo-for-team.mdx | 2 +- .../examples/multi-user-multi-session.mdx | 2 +- .../storage/examples/selecting-tables.mdx | 2 +- .../storage/firestore/firestore-for-agent.mdx | 2 +- examples/storage/gcs/gcs-json-for-agent.mdx | 2 +- .../in-memory/in-memory-storage-for-agent.mdx | 2 +- .../in-memory/in-memory-storage-for-team.mdx | 2 +- .../in-memory-storage-for-workflow.mdx | 2 +- examples/storage/json-db/json-for-agent.mdx | 2 +- examples/storage/json-db/json-for-team.mdx | 2 +- .../storage/json-db/json-for-workflows.mdx | 2 +- .../async-mongo/async-mongodb-for-agent.mdx | 2 +- .../async-mongo/async-mongodb-for-team.mdx | 2 +- .../async-mongodb-for-workflow.mdx | 2 +- examples/storage/mongo/mongodb-for-team.mdx | 2 +- .../async-mysql/async-mysql-for-agent.mdx | 2 +- .../async-mysql/async-mysql-for-team.mdx | 2 +- .../async-mysql/async-mysql-for-workflow.mdx | 2 +- examples/storage/mysql/mysql-for-agent.mdx | 2 +- examples/storage/mysql/mysql-for-team.mdx | 2 +- .../storage/persistent-session-storage.mdx | 2 +- .../async-postgres-for-agent.mdx | 2 +- .../async-postgres-for-team.mdx | 2 +- .../async-postgres-for-workflow.mdx | 2 +- .../storage/postgres/postgres-for-agent.mdx | 2 +- .../storage/postgres/postgres-for-team.mdx | 2 +- .../postgres/postgres-for-workflow.mdx | 2 +- examples/storage/redis/redis-for-agent.mdx | 2 +- examples/storage/redis/redis-for-team.mdx | 2 +- examples/storage/redis/redis-for-workflow.mdx | 2 +- examples/storage/session-summary-limits.mdx | 2 +- examples/storage/session-summary.mdx | 2 +- .../singlestore/singlestore-for-agent.mdx | 2 +- .../singlestore/singlestore-for-team.mdx | 2 +- .../async-sqlite/async-sqlite-for-agent.mdx | 2 +- .../async-sqlite/async-sqlite-for-team.mdx | 2 +- .../async-sqlite-for-workflow.mdx | 2 +- examples/storage/sqlite/sqlite-for-agent.mdx | 2 +- examples/storage/sqlite/sqlite-for-team.mdx | 2 +- .../storage/sqlite/sqlite-for-workflow.mdx | 2 +- .../storage/surrealdb/surrealdb-for-agent.mdx | 2 +- .../storage/surrealdb/surrealdb-for-team.mdx | 2 +- .../surrealdb/surrealdb-for-workflow.mdx | 2 +- examples/storage/valkey/valkey-for-agent.mdx | 33 +-- examples/storage/valkey/valkey-for-team.mdx | 33 +-- .../storage/valkey/valkey-for-workflow.mdx | 31 +-- examples/teams/basics/basic-coordination.mdx | 2 +- examples/teams/basics/broadcast-mode.mdx | 2 +- examples/teams/basics/caching.mdx | 3 +- .../teams/basics/concurrent-member-agents.mdx | 2 +- .../teams/basics/delegate-to-all-members.mdx | 2 +- examples/teams/basics/history-of-members.mdx | 2 +- examples/teams/basics/nested-teams.mdx | 2 +- .../basics/respond-directly-router-team.mdx | 2 +- .../basics/respond-directly-with-history.mdx | 2 +- .../basics/share-member-interactions.mdx | 2 +- examples/teams/basics/task-mode.mdx | 2 +- examples/teams/basics/team-history.mdx | 2 +- .../checkpointing/checkpoint-endpoints.mdx | 2 +- .../teams/checkpointing/crash-recovery.mdx | 2 +- .../checkpointing/tool-error-persistence.mdx | 2 +- .../tool-call-compression-with-manager.mdx | 2 +- .../tool-call-compression.mdx | 2 +- .../context-management/additional-context.mdx | 2 +- .../custom-system-message.mdx | 2 +- .../context-management/datetime-format.mdx | 2 +- .../context-management/few-shot-learning.mdx | 2 +- .../filter-tool-calls-from-history.mdx | 2 +- .../teams/context-management/introduction.mdx | 2 +- .../context-management/location-context.mdx | 2 +- .../dependencies/dependencies-in-context.mdx | 3 +- .../dependencies/dependencies-in-tools.mdx | 2 +- .../dependencies/dependencies-to-members.mdx | 3 +- .../distributed-rag-lancedb.mdx | 2 +- .../distributed-rag-pgvector.mdx | 2 +- .../distributed-rag-with-reranking.mdx | 4 +- .../teams/fallback-models/basic-fallback.mdx | 2 +- .../error-specific-fallbacks.mdx | 2 +- examples/teams/fork-session/fork-session.mdx | 2 +- .../teams/guardrails/openai-moderation.mdx | 2 +- examples/teams/guardrails/pii-detection.mdx | 2 +- .../teams/guardrails/prompt-injection.mdx | 2 +- examples/teams/hooks/post-hook-output.mdx | 2 +- examples/teams/hooks/pre-hook-input.mdx | 3 +- examples/teams/hooks/stream-hook.mdx | 2 +- .../confirmation-rejected-stream.mdx | 2 +- .../confirmation-rejected.mdx | 2 +- .../confirmation-required-async-stream.mdx | 2 +- .../confirmation-required-async.mdx | 2 +- .../confirmation-required-stream.mdx | 2 +- ...onfirmation-required-with-dependencies.mdx | 2 +- .../confirmation-required.mdx | 2 +- .../external-tool-execution-stream.mdx | 2 +- .../external-tool-execution.mdx | 2 +- .../multi-round-user-input.mdx | 139 ++++++++++ .../team-tool-confirmation-stream.mdx | 2 +- .../team-tool-confirmation.mdx | 2 +- .../user-input-required-stream.mdx | 2 +- .../human-in-the-loop/user-input-required.mdx | 2 +- .../teams/knowledge/team-update-knowledge.mdx | 2 +- .../team-with-agentic-knowledge-filters.mdx | 2 +- .../knowledge/team-with-custom-retriever.mdx | 2 +- .../knowledge/team-with-knowledge-filters.mdx | 2 +- .../teams/knowledge/team-with-knowledge.mdx | 2 +- .../teams/learning/team-agentic-learning.mdx | 4 +- examples/teams/learning/team-always-learn.mdx | 2 +- .../teams/learning/team-async-learning.mdx | 2 +- .../learning/team-configured-learning.mdx | 2 +- examples/teams/learning/team-decision-log.mdx | 2 +- .../teams/learning/team-entity-memory.mdx | 2 +- .../teams/learning/team-learned-knowledge.mdx | 2 +- .../teams/learning/team-session-planning.mdx | 2 +- examples/teams/learning/team-user-memory.mdx | 2 +- examples/teams/learning/team-user-profile.mdx | 2 +- examples/teams/memory/learning-machine.mdx | 2 +- examples/teams/memory/memories-in-context.mdx | 2 +- .../teams/memory/team-with-agentic-memory.mdx | 2 +- .../teams/memory/team-with-memory-manager.mdx | 2 +- .../metrics/loop-team-and-member-metrics.mdx | 2 +- examples/teams/metrics/team-eval-metrics.mdx | 2 +- examples/teams/metrics/team-metrics.mdx | 2 +- .../teams/metrics/team-session-metrics.mdx | 2 +- .../teams/metrics/team-streaming-metrics.mdx | 2 +- examples/teams/metrics/team-tool-metrics.mdx | 2 +- examples/teams/modes/broadcast/basic.mdx | 2 +- examples/teams/modes/broadcast/debate.mdx | 2 +- .../teams/modes/broadcast/research-sweep.mdx | 2 +- .../modes/broadcast/structured-debate.mdx | 2 +- examples/teams/modes/coordinate/basic.mdx | 2 +- .../modes/coordinate/structured-output.mdx | 2 +- .../teams/modes/coordinate/with-tools.mdx | 2 +- examples/teams/modes/route/basic.mdx | 2 +- .../teams/modes/route/specialist-router.mdx | 2 +- examples/teams/modes/route/with-fallback.mdx | 2 +- examples/teams/modes/tasks-stream.mdx | 2 +- examples/teams/modes/tasks/basic.mdx | 2 +- examples/teams/modes/tasks/dependencies.mdx | 2 +- examples/teams/modes/tasks/parallel.mdx | 2 +- .../teams/modes/tasks/streaming-events.mdx | 2 +- .../multimodal/audio-sentiment-analysis.mdx | 2 +- examples/teams/multimodal/audio-to-text.mdx | 2 +- .../multimodal/generate-image-with-team.mdx | 2 +- .../image-to-image-transformation.mdx | 2 +- .../multimodal/image-to-structured-output.mdx | 2 +- examples/teams/multimodal/image-to-text.mdx | 2 +- .../teams/multimodal/media-input-for-tool.mdx | 3 +- .../multimodal/video-caption-generation.mdx | 2 +- examples/teams/other/background-execution.mdx | 2 +- .../reasoning-multi-purpose-team.mdx | 2 +- examples/teams/regenerate/regenerate.mdx | 2 +- .../remote-agents/basic-remote-member.mdx | 2 +- .../background-execution-metrics.mdx | 2 +- .../run-control/cancel-run-persistence.mdx | 2 +- examples/teams/run-control/cancel-run.mdx | 2 +- .../teams/run-control/model-inheritance.mdx | 2 +- examples/teams/run-control/remote-team.mdx | 2 +- examples/teams/run-control/retries.mdx | 2 +- .../team-cancel-while-member-runs.mdx | 2 +- .../coordinated-agentic-rag.mdx | 2 +- .../coordinated-reasoning-rag.mdx | 2 +- .../distributed-infinity-search.mdx | 2 +- examples/teams/session/chat-history.mdx | 2 +- .../teams/session/custom-session-summary.mdx | 2 +- examples/teams/session/persistent-session.mdx | 2 +- .../teams/session/search-session-history.mdx | 2 +- examples/teams/session/session-options.mdx | 2 +- examples/teams/session/session-summary.mdx | 2 +- .../session/share-session-with-agent.mdx | 2 +- examples/teams/skills/basic-skills-team.mdx | 2 +- .../teams/state/agentic-session-state.mdx | 2 +- examples/teams/state/change-state-on-run.mdx | 2 +- examples/teams/state/nested-shared-state.mdx | 2 +- .../state/overwrite-stored-session-state.mdx | 2 +- examples/teams/state/state-sharing.mdx | 3 +- examples/teams/streaming/team-events.mdx | 2 +- examples/teams/streaming/team-streaming.mdx | 2 +- .../expected-output.mdx | 2 +- .../structured-input-output/input-formats.mdx | 2 +- .../structured-input-output/input-schema.mdx | 2 +- .../json-schema-output.mdx | 2 +- .../structured-input-output/output-model.mdx | 2 +- .../output-schema-override.mdx | 2 +- .../structured-input-output/parser-model.mdx | 2 +- .../pydantic-input.mdx | 2 +- .../pydantic-output.mdx | 2 +- .../response-as-variable.mdx | 2 +- .../structured-output-streaming.mdx | 2 +- examples/teams/task-mode/async-task-mode.mdx | 2 +- examples/teams/task-mode/basic-task-mode.mdx | 3 +- examples/teams/task-mode/custom-tools.mdx | 2 +- examples/teams/task-mode/dependency-chain.mdx | 2 +- .../teams/task-mode/multi-run-session.mdx | 2 +- examples/teams/task-mode/parallel-tasks.mdx | 2 +- .../teams/task-mode/task-mode-with-tools.mdx | 2 +- examples/teams/time-travel/continue-from.mdx | 2 +- examples/teams/time-travel/fork-run.mdx | 2 +- .../teams/tools/async-toolkit-context.mdx | 2 +- examples/teams/tools/async-tools.mdx | 2 +- examples/teams/tools/custom-tools.mdx | 2 +- examples/teams/tools/member-information.mdx | 2 +- examples/teams/tools/member-tool-hooks.mdx | 2 +- .../tools/message-history-in-tool-hooks.mdx | 2 +- examples/teams/tools/tool-call-limit.mdx | 2 +- examples/teams/tools/tool-choice.mdx | 2 +- examples/teams/tools/tool-hooks.mdx | 2 +- .../antigravity-agents-crud-tools.mdx | 2 +- .../antigravity-directory-tools.mdx | 2 +- .../antigravity-snapshot-tools.mdx | 2 +- .../tools/antigravity/antigravity-tools.mdx | 2 +- examples/tools/arxiv-tools.mdx | 2 +- ...sync-generator-tool-with-pydantic-args.mdx | 2 +- examples/tools/baidusearch-tools.mdx | 2 +- examples/tools/bravesearch-tools.mdx | 2 +- examples/tools/brightdata-tools.mdx | 2 +- examples/tools/browserbase-tools.mdx | 2 +- examples/tools/calcom-tools.mdx | 2 +- examples/tools/calculator-tools.mdx | 2 +- examples/tools/clickup-tools.mdx | 2 +- examples/tools/coding-tools/all-tools.mdx | 2 +- examples/tools/coding-tools/basic-usage.mdx | 2 +- examples/tools/composio-tools.mdx | 2 +- examples/tools/confluence-tools.mdx | 2 +- examples/tools/crawl4ai-tools.mdx | 2 +- examples/tools/csv-tools.mdx | 2 +- examples/tools/custom-tool-events.mdx | 2 +- examples/tools/custom-tools.mdx | 2 +- examples/tools/dalle-tools.mdx | 2 +- examples/tools/discord-tools.mdx | 2 +- examples/tools/docker-tools.mdx | 2 +- .../tools/docling-tools/basic-examples.mdx | 2 +- examples/tools/docling-tools/ocr-example.mdx | 2 +- examples/tools/docling-tools/paths.mdx | 2 +- examples/tools/docling-tools/run.mdx | 2 +- examples/tools/duckdb-tools.mdx | 2 +- examples/tools/duckduckgo-tools-advanced.mdx | 2 +- examples/tools/duckduckgo-tools.mdx | 2 +- examples/tools/e2b-tools.mdx | 2 +- examples/tools/email-tools.mdx | 2 +- examples/tools/exa-tools.mdx | 2 +- .../retry-tool-call-from-post-hook.mdx | 2 +- examples/tools/exceptions/retry-tool-call.mdx | 2 +- .../tools/exceptions/stop-agent-exception.mdx | 2 +- examples/tools/fal-tools.mdx | 2 +- examples/tools/file-generation-tools.mdx | 2 +- examples/tools/file-tools.mdx | 2 +- examples/tools/financial-datasets-tools.mdx | 2 +- examples/tools/firecrawl-tools.mdx | 2 +- examples/tools/giphy-tools.mdx | 2 +- examples/tools/gitlab-tools.mdx | 2 +- examples/tools/google-bigquery-tools.mdx | 2 +- .../tools/google/calendar/daily-briefing.mdx | 2 +- .../tools/google/calendar/event-creator.mdx | 2 +- .../google/calendar/meeting-scheduler.mdx | 2 +- examples/tools/google/drive/basic.mdx | 2 +- .../tools/google/drive/document-reader.mdx | 2 +- examples/tools/google/drive/file-search.mdx | 2 +- .../tools/google/drive/folder-organizer.mdx | 2 +- .../google/drive/shared-drive-search.mdx | 2 +- examples/tools/google/gmail/action-items.mdx | 2 +- examples/tools/google/gmail/basic.mdx | 2 +- examples/tools/google/gmail/daily-digest.mdx | 2 +- examples/tools/google/gmail/draft-reply.mdx | 2 +- .../tools/google/gmail/followup-tracker.mdx | 2 +- examples/tools/google/gmail/inbox-triage.mdx | 2 +- .../tools/google/sheets/action-tracker.mdx | 2 +- .../tools/google/sheets/sales-pipeline.mdx | 2 +- examples/tools/google/slides/basic.mdx | 2 +- .../tools/google/slides/content-reader.mdx | 2 +- examples/tools/google/slides/media-slides.mdx | 2 +- .../google/slides/presentation-builder.mdx | 2 +- .../google/workspace/document-workflow.mdx | 2 +- .../tools/google/workspace/meeting-prep.mdx | 2 +- .../tools/google/workspace/multi-toolkit.mdx | 2 +- .../google/workspace/service-account.mdx | 2 +- examples/tools/googlesheets-tools.mdx | 2 +- examples/tools/hackernews-tools.mdx | 2 +- examples/tools/jinareader-tools.mdx | 2 +- examples/tools/jira-tools.mdx | 2 +- examples/tools/knowledge-tool.mdx | 2 +- examples/tools/linkup-tools.mdx | 2 +- examples/tools/llms-txt-tools-knowledge.mdx | 2 +- examples/tools/llms-txt-tools.mdx | 2 +- examples/tools/local-file-system-tools.mdx | 2 +- examples/tools/lumalabs-tools.mdx | 2 +- examples/tools/mcp-tools.mdx | 2 +- examples/tools/mcp/agno-mcp.mdx | 2 +- examples/tools/mcp/airbnb.mdx | 2 +- examples/tools/mcp/bgpt.mdx | 2 +- examples/tools/mcp/brave.mdx | 2 +- examples/tools/mcp/cli.mdx | 4 +- examples/tools/mcp/dynamic-headers/client.mdx | 2 +- examples/tools/mcp/dynamic-headers/server.mdx | 2 +- examples/tools/mcp/filesystem.mdx | 2 +- examples/tools/mcp/gibsonai.mdx | 2 +- examples/tools/mcp/github.mdx | 2 +- examples/tools/mcp/graphiti.mdx | 2 +- examples/tools/mcp/groq-mcp.mdx | 2 +- examples/tools/mcp/include-exclude-tools.mdx | 2 +- examples/tools/mcp/include-tools.mdx | 2 +- examples/tools/mcp/local-server/client.mdx | 2 +- examples/tools/mcp/local-server/server.mdx | 2 +- .../tools/mcp/mcp-toolbox-demo/agent-os.mdx | 2 +- examples/tools/mcp/mcp-toolbox-demo/agent.mdx | 3 +- .../hotel-management-typesafe.mdx | 3 +- .../hotel-management-workflows.mdx | 2 +- examples/tools/mcp/mcp-toolbox-for-db.mdx | 8 +- examples/tools/mcp/mem0.mdx | 2 +- ...multiple-servers-allow-partial-failure.mdx | 2 +- examples/tools/mcp/multiple-servers.mdx | 2 +- examples/tools/mcp/notion-mcp-agent.mdx | 2 +- examples/tools/mcp/oxylabs.mdx | 2 +- examples/tools/mcp/pipedream-auth.mdx | 2 +- .../tools/mcp/pipedream-google-calendar.mdx | 2 +- examples/tools/mcp/pipedream-linkedin.mdx | 4 +- examples/tools/mcp/pipedream-slack.mdx | 4 +- examples/tools/mcp/qdrant.mdx | 2 +- examples/tools/mcp/sequential-thinking.mdx | 2 +- examples/tools/mcp/sse-transport/client.mdx | 2 +- examples/tools/mcp/sse-transport/server.mdx | 2 +- examples/tools/mcp/stagehand.mdx | 2 +- .../mcp/streamable-http-transport/client.mdx | 2 +- .../mcp/streamable-http-transport/server.mdx | 2 +- examples/tools/mcp/structured-content.mdx | 144 ++++++++++ examples/tools/mcp/supabase.mdx | 2 +- examples/tools/mcp/tool-name-prefix.mdx | 2 +- examples/tools/mlx-transcribe-tools.mdx | 2 +- examples/tools/models-lab-tools.mdx | 2 +- examples/tools/models/azure-openai-tools.mdx | 5 +- .../tools/models/gemini-image-generation.mdx | 3 +- .../tools/models/gemini-video-generation.mdx | 3 +- examples/tools/models/morph.mdx | 3 +- examples/tools/models/nebius-tools.mdx | 2 +- examples/tools/models/openai-tools.mdx | 6 +- examples/tools/moviepy-video-tools.mdx | 2 +- examples/tools/newspaper-tools.mdx | 2 +- examples/tools/newspaper4k-tools.mdx | 2 +- examples/tools/openbb-tools.mdx | 2 +- .../other/add-tool-after-initialization.mdx | 2 +- examples/tools/other/cache-tool-calls.mdx | 2 +- examples/tools/other/complex-input-types.mdx | 2 +- examples/tools/other/human-in-the-loop.mdx | 2 +- .../include-exclude-tools-custom-toolkit.mdx | 2 +- .../tools/other/include-exclude-tools.mdx | 2 +- examples/tools/other/session-state-tool.mdx | 2 +- .../stop-after-tool-call-dual-inheritance.mdx | 2 +- .../other/stop-after-tool-call-in-toolkit.mdx | 2 +- examples/tools/other/stop-after-tool-call.mdx | 2 +- examples/tools/oxylabs-tools.mdx | 31 ++- examples/tools/pandas-tools.mdx | 2 +- .../tools/parallel/company-enrichment.mdx | 2 +- .../tools/parallel/competitor-tracker.mdx | 2 +- .../tools/parallel/investment-monitor.mdx | 2 +- examples/tools/parallel/market-research.mdx | 2 +- examples/tools/parallel/news-search.mdx | 2 +- examples/tools/parallel/output-schemas.mdx | 2 +- examples/tools/parallel/parallel-tools.mdx | 2 +- examples/tools/perplexity-tools.mdx | 4 +- examples/tools/postgres-tools.mdx | 2 +- examples/tools/pubmed-tools.mdx | 2 +- examples/tools/python-function-as-tool.mdx | 2 +- examples/tools/redmine-tools.mdx | 95 +++++++ examples/tools/redshift-tools.mdx | 2 +- examples/tools/replicate-tools.mdx | 2 +- examples/tools/resend-tools.mdx | 2 +- examples/tools/scavio-tools.mdx | 2 +- examples/tools/scheduler-tools.mdx | 2 +- examples/tools/scrapegraph-tools.mdx | 2 +- examples/tools/searchapi-tools.mdx | 2 +- examples/tools/searxng-tools.mdx | 2 +- examples/tools/serpapi-tools.mdx | 2 +- examples/tools/shell-tools.mdx | 41 ++- examples/tools/slack-tools.mdx | 2 +- examples/tools/sleep-tools.mdx | 2 +- examples/tools/sofya-tools.mdx | 2 +- examples/tools/spider-tools.mdx | 2 +- examples/tools/spotify-tools.mdx | 2 +- examples/tools/sql-tools.mdx | 2 +- examples/tools/tavily-tools-advanced.mdx | 4 +- examples/tools/tavily-tools.mdx | 2 +- examples/tools/todoist-tools.mdx | 2 +- examples/tools/tool-calls-accesing-agent.mdx | 2 +- .../tool-decorator/async-tool-decorator.mdx | 2 +- .../tools/tool-decorator/cache-tool-calls.mdx | 2 +- .../tool-decorator/stop-after-tool-call.mdx | 2 +- .../tool-decorator-on-class-method.mdx | 2 +- .../tool-decorator-with-hook.mdx | 2 +- .../tool-decorator-with-instructions.mdx | 2 +- .../tools/tool-decorator/tool-decorator.mdx | 2 +- .../toolkit-per-tool-instructions.mdx | 2 +- .../tool-hooks/message-history-in-hooks.mdx | 2 +- .../tools/tool-hooks/pre-and-post-hooks.mdx | 2 +- ...tool-hook-in-toolkit-with-state-nested.mdx | 2 +- .../tool-hook-in-toolkit-with-state.mdx | 2 +- .../tools/tool-hooks/tool-hook-in-toolkit.mdx | 2 +- examples/tools/tool-hooks/tool-hook.mdx | 2 +- .../tool-hooks-in-toolkit-nested.mdx | 2 +- examples/tools/trafilatura-tools.mdx | 2 +- examples/tools/twelvelabs-tools.mdx | 2 +- examples/tools/web-tools.mdx | 2 +- examples/tools/webbrowser-tools.mdx | 2 +- examples/tools/websearch-tools-advanced.mdx | 2 +- examples/tools/websearch-tools.mdx | 2 +- examples/tools/website-tools.mdx | 2 +- examples/tools/whatsapp-tools.mdx | 2 +- examples/tools/wikipedia-tools.mdx | 2 +- .../tools/workspace-tools/basic-usage.mdx | 2 +- .../workspace-tools-with-confirmation.mdx | 2 +- examples/tools/x402scan-mcp-tools.mdx | 2 +- examples/tools/yfinance-tools.mdx | 2 +- examples/tools/youcom-tools.mdx | 2 +- examples/tools/youtube-tools.mdx | 2 +- examples/tools/zendesk-tools.mdx | 2 +- .../background-execution/background-poll.mdx | 2 +- .../background-execution/websocket-client.mdx | 2 +- .../background-execution/websocket-server.mdx | 2 +- .../early-stopping/early-stop-basic.mdx | 2 +- .../early-stopping/early-stop-condition.mdx | 2 +- .../early-stopping/early-stop-loop.mdx | 2 +- .../early-stopping/early-stop-parallel.mdx | 2 +- .../file-generation-workflow.mdx | 2 +- .../guardrails/prompt-injection.mdx | 2 +- .../history/continuous-execution.mdx | 2 +- .../history/history-in-function.mdx | 2 +- .../history/intent-routing-with-history.mdx | 2 +- .../history/step-history.mdx | 2 +- .../long-running/disruption-catchup.mdx | 2 +- .../long-running/events-replay.mdx | 2 +- .../long-running/websocket-reconnect.mdx | 2 +- .../deeply-nested-workflow.mdx | 2 +- .../nested-workflow-auto-wrap.mdx | 2 +- .../nested-workflow-events.mdx | 2 +- .../nested-workflow-with-condition.mdx | 2 +- .../nested-workflow-with-loop.mdx | 2 +- .../nested-workflow-with-router.mdx | 2 +- .../nested-workflows/nested-workflow.mdx | 2 +- .../access-previous-outputs.mdx | 2 +- .../run-control/cancel-run.mdx | 3 +- .../run-control/deep-copy.mdx | 2 +- .../run-control/event-storage.mdx | 2 +- .../run-control/executor-events.mdx | 2 +- .../advanced-concepts/run-control/metrics.mdx | 2 +- .../run-control/remote-workflow.mdx | 2 +- .../run-control/workflow-cli.mdx | 2 +- .../run-control/workflow-serialization.mdx | 2 +- .../run-params/workflow-all-params.mdx | 2 +- .../run-params/workflow-dependencies.mdx | 2 +- .../session-state/job-application-tracker.mdx | 2 +- .../session-state/rename-session.mdx | 3 +- .../session-state/state-in-condition.mdx | 10 +- .../session-state/state-in-function.mdx | 9 +- .../session-state/state-in-router.mdx | 6 +- .../session-state/state-with-agent.mdx | 2 +- .../session-state/state-with-team.mdx | 2 +- .../structured-io/image-input.mdx | 2 +- .../structured-io/input-schema.mdx | 2 +- .../structured-io/pydantic-input.mdx | 2 +- .../structured-io/structured-io-agent.mdx | 2 +- .../structured-io/structured-io-function.mdx | 2 +- .../structured-io/structured-io-team.mdx | 2 +- .../tools/workflow-tools.mdx | 3 +- .../workflow-agent/basic-workflow-agent.mdx | 2 +- .../workflow-agent-with-condition.mdx | 2 +- .../function-workflows/function-workflow.mdx | 2 +- .../sequence-of-steps/sequence-of-steps.mdx | 2 +- .../sequence-with-functions.mdx | 2 +- .../workflow-using-steps-nested.mdx | 2 +- .../workflow-using-steps.mdx | 2 +- .../workflow-with-file-input.mdx | 2 +- .../workflow-with-session-metrics.mdx | 2 +- .../step-with-additional-data.mdx | 2 +- .../step-with-function/step-with-class.mdx | 2 +- .../step-with-function/step-with-function.mdx | 2 +- .../condition/cel-additional-data.mdx | 2 +- .../cel-expressions/condition/cel-basic.mdx | 2 +- .../condition/cel-previous-step-outputs.mdx | 2 +- .../condition/cel-previous-step.mdx | 2 +- .../condition/cel-session-state.mdx | 2 +- .../loop/cel-compound-exit.mdx | 2 +- .../loop/cel-content-keyword.mdx | 2 +- .../loop/cel-iteration-limit.mdx | 2 +- .../loop/cel-step-outputs-check.mdx | 2 +- .../router/cel-additional-data-route.mdx | 2 +- .../router/cel-previous-step-route.mdx | 2 +- .../router/cel-session-state-route.mdx | 2 +- .../cel-expressions/router/cel-ternary.mdx | 2 +- .../router/cel-using-step-choices.mdx | 2 +- .../conditional-branching/loop-in-choices.mdx | 2 +- .../conditional-branching/nested-choices.mdx | 2 +- .../conditional-branching/router-basic.mdx | 2 +- .../router-with-loop.mdx | 2 +- .../selector-media-pipeline.mdx | 2 +- .../conditional-branching/selector-types.mdx | 2 +- .../step-choices-parameter.mdx | 2 +- .../conditional-branching/string-selector.mdx | 2 +- .../conditional-execution/condition-basic.mdx | 2 +- .../condition-with-else.mdx | 2 +- .../condition-with-list.mdx | 2 +- .../condition-with-parallel.mdx | 2 +- .../condition/condition-on-error.mdx | 2 +- .../condition/condition-user-decision.mdx | 2 +- .../confirmation/async-step-confirmation.mdx | 2 +- .../confirmation/basic-step-confirmation.mdx | 2 +- .../custom-function-step-confirmation.mdx | 2 +- .../step-confirmation-streaming.mdx | 2 +- .../confirmation/step-continued-event.mdx | 2 +- .../decision-tree/decision-tree.mdx | 2 +- .../multi-component-decision-tree.mdx | 2 +- .../condition-and-tool-confirmation.mdx | 2 +- ...oop-confirmation-and-tool-confirmation.mdx | 2 +- .../dual-level-hitl/multi-step-mixed-hitl.mdx | 2 +- .../output-review-and-tool-confirmation.mdx | 2 +- ...ter-confirmation-and-tool-confirmation.mdx | 2 +- ...router-selection-and-tool-confirmation.mdx | 2 +- ...tep-confirmation-and-tool-confirmation.mdx | 2 +- .../step-user-input-and-tool-confirmation.mdx | 2 +- .../error/error-retry-skip-streaming.mdx | 2 +- .../error/error-retry-skip.mdx | 2 +- .../agent-confirmation-in-condition-step.mdx | 2 +- .../agent-confirmation-in-loop-step.mdx | 2 +- .../agent-confirmation-in-router-step.mdx | 2 +- .../agent-confirmation-in-steps-container.mdx | 2 +- .../agent-confirmation-stream.mdx | 2 +- .../executor-hitl/agent-confirmation.mdx | 2 +- .../executor-hitl/agent-user-input-step.mdx | 2 +- .../executor-continued-event.mdx | 2 +- .../executor-hitl/team-in-step.mdx | 2 +- .../loop/loop-confirmation-streaming.mdx | 2 +- .../loop/loop-confirmation.mdx | 2 +- .../loop/loop-iteration-review.mdx | 2 +- .../output-review/basic-output-review.mdx | 2 +- .../conditional-output-review.mdx | 2 +- .../output-review/edit-output.mdx | 2 +- .../output-review/full-review-cycle.mdx | 2 +- .../output-review-with-retry.mdx | 2 +- .../router/router-confirmation.mdx | 2 +- .../router/router-multi-selection.mdx | 2 +- .../router/router-nested-choices.mdx | 2 +- .../router/router-output-review.mdx | 2 +- .../router/router-user-selection.mdx | 2 +- .../steps/steps-pipeline-confirmation.mdx | 2 +- .../timeout/confirmation-timeout.mdx | 2 +- .../timeout/hitl-timeout.mdx | 2 +- .../user-input/basic-user-input.mdx | 2 +- .../user-input/step-user-input-streaming.mdx | 2 +- .../user-input/step-user-input.mdx | 2 +- .../workflows/loop-execution/loop-basic.mdx | 2 +- .../loop-iterative-accumulation.mdx | 2 +- .../loop-execution/loop-with-parallel.mdx | 2 +- .../parallel-execution/parallel-basic.mdx | 2 +- .../parallel-with-condition.mdx | 2 +- scripts/examples_sync/apply_oneoffs.py | 190 ++----------- .../examples_sync/description-overrides.json | 4 +- scripts/examples_sync/generate.py | 28 +- 1783 files changed, 3862 insertions(+), 2251 deletions(-) create mode 100644 examples/agent-os/human-in-the-loop/team/multi-round-user-input.mdx create mode 100644 examples/agent-os/interfaces/agui/backend-feedback.mdx create mode 100644 examples/agent-os/interfaces/agui/hitl-backend-feedback.mdx create mode 100644 examples/agent-os/interfaces/agui/hitl-tool-confirmation.mdx create mode 100644 examples/agent-os/interfaces/agui/hitl-user-input.mdx create mode 100644 examples/agent-os/interfaces/agui/team-human-in-the-loop.mdx create mode 100644 examples/agent-os/interfaces/agui/tool-confirmation.mdx create mode 100644 examples/agent-os/interfaces/agui/user-input.mdx create mode 100644 examples/knowledge/advanced/per-user-isolation/valkey-db.mdx create mode 100644 examples/knowledge/integrations/readers/docling/docling-input-types.mdx create mode 100644 examples/knowledge/integrations/vector-dbs/scylladb.mdx create mode 100644 examples/models/openrouter/chat/image-generation.mdx create mode 100644 examples/models/tokenlab/basic.mdx create mode 100644 examples/teams/human-in-the-loop/multi-round-user-input.mdx create mode 100644 examples/tools/mcp/structured-content.mdx create mode 100644 examples/tools/redmine-tools.mdx diff --git a/docs.json b/docs.json index be79f9dc6..57a2fe928 100644 --- a/docs.json +++ b/docs.json @@ -5415,7 +5415,8 @@ "examples/teams/human-in-the-loop/external-tool-execution-stream", "examples/teams/human-in-the-loop/team-tool-confirmation-stream", "examples/teams/human-in-the-loop/user-input-required-stream", - "examples/teams/human-in-the-loop/confirmation-required-with-dependencies" + "examples/teams/human-in-the-loop/confirmation-required-with-dependencies", + "examples/teams/human-in-the-loop/multi-round-user-input" ] }, { @@ -6052,7 +6053,13 @@ "examples/knowledge/advanced/graph-rag", "examples/knowledge/advanced/knowledge-tools", "examples/knowledge/advanced/knowledge-protocol", - "examples/knowledge/advanced/prefix-search" + "examples/knowledge/advanced/prefix-search", + { + "group": "Per User Isolation", + "pages": [ + "examples/knowledge/advanced/per-user-isolation/valkey-db" + ] + } ] }, { @@ -6090,6 +6097,7 @@ "examples/knowledge/integrations/readers/docling/docling-audio", "examples/knowledge/integrations/readers/docling/docling-documents", "examples/knowledge/integrations/readers/docling/docling-images", + "examples/knowledge/integrations/readers/docling/docling-input-types", "examples/knowledge/integrations/readers/docling/docling-markup", "examples/knowledge/integrations/readers/docling/docling-pdf", "examples/knowledge/integrations/readers/docling/docling-xlsx" @@ -6103,7 +6111,8 @@ "examples/knowledge/integrations/vector-dbs/qdrant", "examples/knowledge/integrations/vector-dbs/local", "examples/knowledge/integrations/vector-dbs/managed", - "examples/knowledge/integrations/vector-dbs/pgvector" + "examples/knowledge/integrations/vector-dbs/pgvector", + "examples/knowledge/integrations/vector-dbs/scylladb" ] } ] @@ -7052,7 +7061,8 @@ "examples/models/openrouter/chat/dynamic-model-router", "examples/models/openrouter/chat/retry", "examples/models/openrouter/chat/structured-output", - "examples/models/openrouter/chat/tool-use" + "examples/models/openrouter/chat/tool-use", + "examples/models/openrouter/chat/image-generation" ] } ] @@ -7137,6 +7147,12 @@ "pages": [ "examples/models/tuning-engines/basic" ] + }, + { + "group": "Tokenlab", + "pages": [ + "examples/models/tokenlab/basic" + ] } ] }, @@ -7254,7 +7270,8 @@ "examples/tools/mcp/stripe", "examples/tools/mcp/supabase", "examples/tools/mcp/tool-name-prefix", - "examples/tools/mcp/bgpt" + "examples/tools/mcp/bgpt", + "examples/tools/mcp/structured-content" ] }, { @@ -7412,7 +7429,8 @@ "examples/tools/tool-calls-accesing-agent", "examples/tools/twelvelabs-tools", "examples/tools/websearch-tools-advanced", - "examples/tools/x402scan-mcp-tools" + "examples/tools/x402scan-mcp-tools", + "examples/tools/redmine-tools" ] }, { @@ -7765,7 +7783,14 @@ "examples/agent-os/interfaces/agui/showcase", "examples/agent-os/interfaces/agui/state-events", "examples/agent-os/interfaces/agui/team-state-events", - "examples/agent-os/interfaces/agui/tool-based-generative-ui" + "examples/agent-os/interfaces/agui/tool-based-generative-ui", + "examples/agent-os/interfaces/agui/backend-feedback", + "examples/agent-os/interfaces/agui/hitl-backend-feedback", + "examples/agent-os/interfaces/agui/hitl-tool-confirmation", + "examples/agent-os/interfaces/agui/hitl-user-input", + "examples/agent-os/interfaces/agui/team-human-in-the-loop", + "examples/agent-os/interfaces/agui/tool-confirmation", + "examples/agent-os/interfaces/agui/user-input" ] }, { @@ -8052,7 +8077,8 @@ "examples/agent-os/human-in-the-loop/team/confirmation-required", "examples/agent-os/human-in-the-loop/team/external-tool-execution", "examples/agent-os/human-in-the-loop/team/team-tool-confirmation", - "examples/agent-os/human-in-the-loop/team/user-input-required" + "examples/agent-os/human-in-the-loop/team/user-input-required", + "examples/agent-os/human-in-the-loop/team/multi-round-user-input" ] }, { diff --git a/examples/agent-os/advanced-demo/agents.mdx b/examples/agent-os/advanced-demo/agents.mdx index 1a0dc5f5e..553ce6673 100644 --- a/examples/agent-os/advanced-demo/agents.mdx +++ b/examples/agent-os/advanced-demo/agents.mdx @@ -220,4 +220,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/advanced_demo/_agents.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/advanced_demo/_agents.py) +Full source: [cookbook/05_agent_os/advanced_demo/_agents.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/advanced_demo/_agents.py) diff --git a/examples/agent-os/advanced-demo/checkpointing.mdx b/examples/agent-os/advanced-demo/checkpointing.mdx index 1e3b6c0d4..2bdc960b6 100644 --- a/examples/agent-os/advanced-demo/checkpointing.mdx +++ b/examples/agent-os/advanced-demo/checkpointing.mdx @@ -69,4 +69,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/advanced_demo/checkpointing.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/advanced_demo/checkpointing.py) +Full source: [cookbook/05_agent_os/advanced_demo/checkpointing.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/advanced_demo/checkpointing.py) diff --git a/examples/agent-os/advanced-demo/demo.mdx b/examples/agent-os/advanced-demo/demo.mdx index b48afb8cd..5a9679c2f 100644 --- a/examples/agent-os/advanced-demo/demo.mdx +++ b/examples/agent-os/advanced-demo/demo.mdx @@ -346,4 +346,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/advanced_demo/demo.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/advanced_demo/demo.py) +Full source: [cookbook/05_agent_os/advanced_demo/demo.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/advanced_demo/demo.py) diff --git a/examples/agent-os/advanced-demo/file-output.mdx b/examples/agent-os/advanced-demo/file-output.mdx index 40386d603..0ff98ff6b 100644 --- a/examples/agent-os/advanced-demo/file-output.mdx +++ b/examples/agent-os/advanced-demo/file-output.mdx @@ -78,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/advanced_demo/file_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/advanced_demo/file_output.py) +Full source: [cookbook/05_agent_os/advanced_demo/file_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/advanced_demo/file_output.py) diff --git a/examples/agent-os/advanced-demo/mcp-demo.mdx b/examples/agent-os/advanced-demo/mcp-demo.mdx index 8d8fe43d2..d47e9a7f2 100644 --- a/examples/agent-os/advanced-demo/mcp-demo.mdx +++ b/examples/agent-os/advanced-demo/mcp-demo.mdx @@ -144,4 +144,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/advanced_demo/mcp_demo.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/advanced_demo/mcp_demo.py) +Full source: [cookbook/05_agent_os/advanced_demo/mcp_demo.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/advanced_demo/mcp_demo.py) diff --git a/examples/agent-os/advanced-demo/multiple-knowledge-bases.mdx b/examples/agent-os/advanced-demo/multiple-knowledge-bases.mdx index 03ab940d2..a426460c6 100644 --- a/examples/agent-os/advanced-demo/multiple-knowledge-bases.mdx +++ b/examples/agent-os/advanced-demo/multiple-knowledge-bases.mdx @@ -105,4 +105,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/advanced_demo/multiple_knowledge_bases.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/advanced_demo/multiple_knowledge_bases.py) +Full source: [cookbook/05_agent_os/advanced_demo/multiple_knowledge_bases.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/advanced_demo/multiple_knowledge_bases.py) diff --git a/examples/agent-os/advanced-demo/reasoning-demo.mdx b/examples/agent-os/advanced-demo/reasoning-demo.mdx index 95470811b..d82137b99 100644 --- a/examples/agent-os/advanced-demo/reasoning-demo.mdx +++ b/examples/agent-os/advanced-demo/reasoning-demo.mdx @@ -198,4 +198,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/advanced_demo/reasoning_demo.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/advanced_demo/reasoning_demo.py) +Full source: [cookbook/05_agent_os/advanced_demo/reasoning_demo.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/advanced_demo/reasoning_demo.py) diff --git a/examples/agent-os/advanced-demo/reasoning-model.mdx b/examples/agent-os/advanced-demo/reasoning-model.mdx index ee864506e..0c5a62849 100644 --- a/examples/agent-os/advanced-demo/reasoning-model.mdx +++ b/examples/agent-os/advanced-demo/reasoning-model.mdx @@ -88,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/advanced_demo/reasoning_model.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/advanced_demo/reasoning_model.py) +Full source: [cookbook/05_agent_os/advanced_demo/reasoning_model.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/advanced_demo/reasoning_model.py) diff --git a/examples/agent-os/advanced-demo/teams-demo.mdx b/examples/agent-os/advanced-demo/teams-demo.mdx index abf003439..9efee6810 100644 --- a/examples/agent-os/advanced-demo/teams-demo.mdx +++ b/examples/agent-os/advanced-demo/teams-demo.mdx @@ -242,4 +242,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/advanced_demo/teams_demo.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/advanced_demo/teams_demo.py) +Full source: [cookbook/05_agent_os/advanced_demo/teams_demo.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/advanced_demo/teams_demo.py) diff --git a/examples/agent-os/advanced-demo/teams.mdx b/examples/agent-os/advanced-demo/teams.mdx index 233122d3f..cf6dc95cb 100644 --- a/examples/agent-os/advanced-demo/teams.mdx +++ b/examples/agent-os/advanced-demo/teams.mdx @@ -95,4 +95,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/advanced_demo/_teams.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/advanced_demo/_teams.py) +Full source: [cookbook/05_agent_os/advanced_demo/_teams.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/advanced_demo/_teams.py) diff --git a/examples/agent-os/agno-assist.mdx b/examples/agent-os/agno-assist.mdx index e3ea34ee4..307325c5c 100644 --- a/examples/agent-os/agno-assist.mdx +++ b/examples/agent-os/agno-assist.mdx @@ -77,4 +77,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/agno_assist.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/agno_assist.py) +Full source: [cookbook/05_agent_os/agno_assist.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/agno_assist.py) diff --git a/examples/agent-os/antigravity/basic.mdx b/examples/agent-os/antigravity/basic.mdx index 24adb2ed7..62b9ce299 100644 --- a/examples/agent-os/antigravity/basic.mdx +++ b/examples/agent-os/antigravity/basic.mdx @@ -84,4 +84,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/antigravity/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/antigravity/basic.py) +Full source: [cookbook/05_agent_os/antigravity/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/antigravity/basic.py) diff --git a/examples/agent-os/antigravity/data-enrichment.mdx b/examples/agent-os/antigravity/data-enrichment.mdx index 67720c1a9..fbb4500dd 100644 --- a/examples/agent-os/antigravity/data-enrichment.mdx +++ b/examples/agent-os/antigravity/data-enrichment.mdx @@ -194,4 +194,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/antigravity/data_enrichment.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/antigravity/data_enrichment.py) +Full source: [cookbook/05_agent_os/antigravity/data_enrichment.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/antigravity/data_enrichment.py) diff --git a/examples/agent-os/approvals/agent/approval-basic.mdx b/examples/agent-os/approvals/agent/approval-basic.mdx index 33337622b..855a76923 100644 --- a/examples/agent-os/approvals/agent/approval-basic.mdx +++ b/examples/agent-os/approvals/agent/approval-basic.mdx @@ -107,4 +107,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/approvals/agent/approval_basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/approvals/agent/approval_basic.py) +Full source: [cookbook/05_agent_os/approvals/agent/approval_basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/approvals/agent/approval_basic.py) diff --git a/examples/agent-os/approvals/agent/approval-user-input.mdx b/examples/agent-os/approvals/agent/approval-user-input.mdx index 9a20f39d6..d1db643db 100644 --- a/examples/agent-os/approvals/agent/approval-user-input.mdx +++ b/examples/agent-os/approvals/agent/approval-user-input.mdx @@ -117,4 +117,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/approvals/agent/approval_user_input.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/approvals/agent/approval_user_input.py) +Full source: [cookbook/05_agent_os/approvals/agent/approval_user_input.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/approvals/agent/approval_user_input.py) diff --git a/examples/agent-os/approvals/team/member-agent-level-approval.mdx b/examples/agent-os/approvals/team/member-agent-level-approval.mdx index b9c4c8dc1..d5d19d755 100644 --- a/examples/agent-os/approvals/team/member-agent-level-approval.mdx +++ b/examples/agent-os/approvals/team/member-agent-level-approval.mdx @@ -130,4 +130,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/approvals/team/member_agent_level_approval.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/approvals/team/member_agent_level_approval.py) +Full source: [cookbook/05_agent_os/approvals/team/member_agent_level_approval.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/approvals/team/member_agent_level_approval.py) diff --git a/examples/agent-os/approvals/team/team-and-member-agent-both-level-approval.mdx b/examples/agent-os/approvals/team/team-and-member-agent-both-level-approval.mdx index 02d0a9d4c..00b139e43 100644 --- a/examples/agent-os/approvals/team/team-and-member-agent-both-level-approval.mdx +++ b/examples/agent-os/approvals/team/team-and-member-agent-both-level-approval.mdx @@ -155,4 +155,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/approvals/team/team_and_member_agent_both_level_approval.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/approvals/team/team_and_member_agent_both_level_approval.py) +Full source: [cookbook/05_agent_os/approvals/team/team_and_member_agent_both_level_approval.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/approvals/team/team_and_member_agent_both_level_approval.py) diff --git a/examples/agent-os/background-tasks/background-evals-example.mdx b/examples/agent-os/background-tasks/background-evals-example.mdx index 78ef08fa5..00d7af221 100644 --- a/examples/agent-os/background-tasks/background-evals-example.mdx +++ b/examples/agent-os/background-tasks/background-evals-example.mdx @@ -122,4 +122,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/background_tasks/background_evals_example.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/background_tasks/background_evals_example.py) +Full source: [cookbook/05_agent_os/background_tasks/background_evals_example.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/background_tasks/background_evals_example.py) diff --git a/examples/agent-os/background-tasks/background-hooks-decorator.mdx b/examples/agent-os/background-tasks/background-hooks-decorator.mdx index 28f2fa9fd..71ff071d6 100644 --- a/examples/agent-os/background-tasks/background-hooks-decorator.mdx +++ b/examples/agent-os/background-tasks/background-hooks-decorator.mdx @@ -130,4 +130,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/background_tasks/background_hooks_decorator.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/background_tasks/background_hooks_decorator.py) +Full source: [cookbook/05_agent_os/background_tasks/background_hooks_decorator.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/background_tasks/background_hooks_decorator.py) diff --git a/examples/agent-os/background-tasks/background-hooks-example.mdx b/examples/agent-os/background-tasks/background-hooks-example.mdx index 7fcc534b7..2434a8957 100644 --- a/examples/agent-os/background-tasks/background-hooks-example.mdx +++ b/examples/agent-os/background-tasks/background-hooks-example.mdx @@ -140,4 +140,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/background_tasks/background_hooks_example.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/background_tasks/background_hooks_example.py) +Full source: [cookbook/05_agent_os/background_tasks/background_hooks_example.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/background_tasks/background_hooks_example.py) diff --git a/examples/agent-os/background-tasks/background-hooks-team.mdx b/examples/agent-os/background-tasks/background-hooks-team.mdx index 80f87ad07..a17973a15 100644 --- a/examples/agent-os/background-tasks/background-hooks-team.mdx +++ b/examples/agent-os/background-tasks/background-hooks-team.mdx @@ -120,4 +120,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/background_tasks/background_hooks_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/background_tasks/background_hooks_team.py) +Full source: [cookbook/05_agent_os/background_tasks/background_hooks_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/background_tasks/background_hooks_team.py) diff --git a/examples/agent-os/background-tasks/background-hooks-workflow.mdx b/examples/agent-os/background-tasks/background-hooks-workflow.mdx index 5acd00c3c..64c199347 100644 --- a/examples/agent-os/background-tasks/background-hooks-workflow.mdx +++ b/examples/agent-os/background-tasks/background-hooks-workflow.mdx @@ -116,4 +116,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/background_tasks/background_hooks_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/background_tasks/background_hooks_workflow.py) +Full source: [cookbook/05_agent_os/background_tasks/background_hooks_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/background_tasks/background_hooks_workflow.py) diff --git a/examples/agent-os/background-tasks/background-output-evaluation.mdx b/examples/agent-os/background-tasks/background-output-evaluation.mdx index c3973b379..df18de26f 100644 --- a/examples/agent-os/background-tasks/background-output-evaluation.mdx +++ b/examples/agent-os/background-tasks/background-output-evaluation.mdx @@ -238,4 +238,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/background_tasks/background_output_evaluation.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/background_tasks/background_output_evaluation.py) +Full source: [cookbook/05_agent_os/background_tasks/background_output_evaluation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/background_tasks/background_output_evaluation.py) diff --git a/examples/agent-os/background-tasks/evals-demo.mdx b/examples/agent-os/background-tasks/evals-demo.mdx index 277c90f84..7322e028e 100644 --- a/examples/agent-os/background-tasks/evals-demo.mdx +++ b/examples/agent-os/background-tasks/evals-demo.mdx @@ -117,4 +117,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/background_tasks/evals_demo.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/background_tasks/evals_demo.py) +Full source: [cookbook/05_agent_os/background_tasks/evals_demo.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/background_tasks/evals_demo.py) diff --git a/examples/agent-os/basic.mdx b/examples/agent-os/basic.mdx index ea42d7f30..52b99042a 100644 --- a/examples/agent-os/basic.mdx +++ b/examples/agent-os/basic.mdx @@ -113,4 +113,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/basic.py) +Full source: [cookbook/05_agent_os/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/basic.py) diff --git a/examples/agent-os/client-a2a/basic-messaging.mdx b/examples/agent-os/client-a2a/basic-messaging.mdx index 8d97c14b5..3102d2653 100644 --- a/examples/agent-os/client-a2a/basic-messaging.mdx +++ b/examples/agent-os/client-a2a/basic-messaging.mdx @@ -78,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/client_a2a/01_basic_messaging.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/client_a2a/01_basic_messaging.py) +Full source: [cookbook/05_agent_os/client_a2a/01_basic_messaging.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/client_a2a/01_basic_messaging.py) diff --git a/examples/agent-os/client-a2a/connect-to-google-adk.mdx b/examples/agent-os/client-a2a/connect-to-google-adk.mdx index e6d91de1e..322b53df5 100644 --- a/examples/agent-os/client-a2a/connect-to-google-adk.mdx +++ b/examples/agent-os/client-a2a/connect-to-google-adk.mdx @@ -158,4 +158,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/client_a2a/05_connect_to_google_adk.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/client_a2a/05_connect_to_google_adk.py) +Full source: [cookbook/05_agent_os/client_a2a/05_connect_to_google_adk.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/client_a2a/05_connect_to_google_adk.py) diff --git a/examples/agent-os/client-a2a/error-handling.mdx b/examples/agent-os/client-a2a/error-handling.mdx index 423b3488e..f1fe3923c 100644 --- a/examples/agent-os/client-a2a/error-handling.mdx +++ b/examples/agent-os/client-a2a/error-handling.mdx @@ -158,4 +158,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/client_a2a/04_error_handling.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/client_a2a/04_error_handling.py) +Full source: [cookbook/05_agent_os/client_a2a/04_error_handling.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/client_a2a/04_error_handling.py) diff --git a/examples/agent-os/client-a2a/multi-turn.mdx b/examples/agent-os/client-a2a/multi-turn.mdx index c469207c3..f5d76ee95 100644 --- a/examples/agent-os/client-a2a/multi-turn.mdx +++ b/examples/agent-os/client-a2a/multi-turn.mdx @@ -129,4 +129,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/client_a2a/03_multi_turn.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/client_a2a/03_multi_turn.py) +Full source: [cookbook/05_agent_os/client_a2a/03_multi_turn.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/client_a2a/03_multi_turn.py) diff --git a/examples/agent-os/client-a2a/servers/agno-server.mdx b/examples/agent-os/client-a2a/servers/agno-server.mdx index c2c71ca2c..bd5575d54 100644 --- a/examples/agent-os/client-a2a/servers/agno-server.mdx +++ b/examples/agent-os/client-a2a/servers/agno-server.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/client_a2a/servers/agno_server.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/client_a2a/servers/agno_server.py) +Full source: [cookbook/05_agent_os/client_a2a/servers/agno_server.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/client_a2a/servers/agno_server.py) diff --git a/examples/agent-os/client-a2a/servers/google-adk-server.mdx b/examples/agent-os/client-a2a/servers/google-adk-server.mdx index cd63f9716..6155c47f5 100644 --- a/examples/agent-os/client-a2a/servers/google-adk-server.mdx +++ b/examples/agent-os/client-a2a/servers/google-adk-server.mdx @@ -102,4 +102,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/client_a2a/servers/google_adk_server.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/client_a2a/servers/google_adk_server.py) +Full source: [cookbook/05_agent_os/client_a2a/servers/google_adk_server.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/client_a2a/servers/google_adk_server.py) diff --git a/examples/agent-os/client-a2a/streaming.mdx b/examples/agent-os/client-a2a/streaming.mdx index 356e7a61d..d42e0ad9c 100644 --- a/examples/agent-os/client-a2a/streaming.mdx +++ b/examples/agent-os/client-a2a/streaming.mdx @@ -100,4 +100,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/client_a2a/02_streaming.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/client_a2a/02_streaming.py) +Full source: [cookbook/05_agent_os/client_a2a/02_streaming.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/client_a2a/02_streaming.py) diff --git a/examples/agent-os/client/basic-client.mdx b/examples/agent-os/client/basic-client.mdx index 92ca9b809..6eec32f21 100644 --- a/examples/agent-os/client/basic-client.mdx +++ b/examples/agent-os/client/basic-client.mdx @@ -115,4 +115,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/client/01_basic_client.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/client/01_basic_client.py) +Full source: [cookbook/05_agent_os/client/01_basic_client.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/client/01_basic_client.py) diff --git a/examples/agent-os/client/continue-run-sse-reconnect.mdx b/examples/agent-os/client/continue-run-sse-reconnect.mdx index 09cb6d3a0..660a2bf6a 100644 --- a/examples/agent-os/client/continue-run-sse-reconnect.mdx +++ b/examples/agent-os/client/continue-run-sse-reconnect.mdx @@ -335,4 +335,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/client/12_continue_run_sse_reconnect.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/client/12_continue_run_sse_reconnect.py) +Full source: [cookbook/05_agent_os/client/12_continue_run_sse_reconnect.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/client/12_continue_run_sse_reconnect.py) diff --git a/examples/agent-os/client/knowledge-search.mdx b/examples/agent-os/client/knowledge-search.mdx index 7b5811771..c929f036f 100644 --- a/examples/agent-os/client/knowledge-search.mdx +++ b/examples/agent-os/client/knowledge-search.mdx @@ -133,4 +133,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/client/05_knowledge_search.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/client/05_knowledge_search.py) +Full source: [cookbook/05_agent_os/client/05_knowledge_search.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/client/05_knowledge_search.py) diff --git a/examples/agent-os/client/memory-operations.mdx b/examples/agent-os/client/memory-operations.mdx index 9fb3ebe03..a6ccc3c37 100644 --- a/examples/agent-os/client/memory-operations.mdx +++ b/examples/agent-os/client/memory-operations.mdx @@ -144,4 +144,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/client/03_memory_operations.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/client/03_memory_operations.py) +Full source: [cookbook/05_agent_os/client/03_memory_operations.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/client/03_memory_operations.py) diff --git a/examples/agent-os/client/run-agents.mdx b/examples/agent-os/client/run-agents.mdx index 09b8b3eab..b9938e2af 100644 --- a/examples/agent-os/client/run-agents.mdx +++ b/examples/agent-os/client/run-agents.mdx @@ -120,4 +120,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/client/02_run_agents.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/client/02_run_agents.py) +Full source: [cookbook/05_agent_os/client/02_run_agents.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/client/02_run_agents.py) diff --git a/examples/agent-os/client/run-evals.mdx b/examples/agent-os/client/run-evals.mdx index 743604b9f..7b118a848 100644 --- a/examples/agent-os/client/run-evals.mdx +++ b/examples/agent-os/client/run-evals.mdx @@ -261,4 +261,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/client/08_run_evals.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/client/08_run_evals.py) +Full source: [cookbook/05_agent_os/client/08_run_evals.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/client/08_run_evals.py) diff --git a/examples/agent-os/client/run-teams.mdx b/examples/agent-os/client/run-teams.mdx index 32dac04bb..9ea9bf531 100644 --- a/examples/agent-os/client/run-teams.mdx +++ b/examples/agent-os/client/run-teams.mdx @@ -119,4 +119,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/client/06_run_teams.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/client/06_run_teams.py) +Full source: [cookbook/05_agent_os/client/06_run_teams.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/client/06_run_teams.py) diff --git a/examples/agent-os/client/run-workflows.mdx b/examples/agent-os/client/run-workflows.mdx index 6086ef0ea..8c0ccafc9 100644 --- a/examples/agent-os/client/run-workflows.mdx +++ b/examples/agent-os/client/run-workflows.mdx @@ -129,4 +129,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/client/07_run_workflows.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/client/07_run_workflows.py) +Full source: [cookbook/05_agent_os/client/07_run_workflows.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/client/07_run_workflows.py) diff --git a/examples/agent-os/client/server.mdx b/examples/agent-os/client/server.mdx index d7357d5ac..3f016aa3f 100644 --- a/examples/agent-os/client/server.mdx +++ b/examples/agent-os/client/server.mdx @@ -174,4 +174,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/client/server.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/client/server.py) +Full source: [cookbook/05_agent_os/client/server.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/client/server.py) diff --git a/examples/agent-os/client/session-management.mdx b/examples/agent-os/client/session-management.mdx index 7d89fb3b6..600787f27 100644 --- a/examples/agent-os/client/session-management.mdx +++ b/examples/agent-os/client/session-management.mdx @@ -161,4 +161,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/client/04_session_management.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/client/04_session_management.py) +Full source: [cookbook/05_agent_os/client/04_session_management.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/client/04_session_management.py) diff --git a/examples/agent-os/client/sse-reconnect.mdx b/examples/agent-os/client/sse-reconnect.mdx index 817f6fdc2..df772eb36 100644 --- a/examples/agent-os/client/sse-reconnect.mdx +++ b/examples/agent-os/client/sse-reconnect.mdx @@ -284,4 +284,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/client/10_sse_reconnect.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/client/10_sse_reconnect.py) +Full source: [cookbook/05_agent_os/client/10_sse_reconnect.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/client/10_sse_reconnect.py) diff --git a/examples/agent-os/client/team-sse-reconnect.mdx b/examples/agent-os/client/team-sse-reconnect.mdx index 4f7ae357b..3ae0b8c5d 100644 --- a/examples/agent-os/client/team-sse-reconnect.mdx +++ b/examples/agent-os/client/team-sse-reconnect.mdx @@ -284,4 +284,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/client/11_team_sse_reconnect.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/client/11_team_sse_reconnect.py) +Full source: [cookbook/05_agent_os/client/11_team_sse_reconnect.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/client/11_team_sse_reconnect.py) diff --git a/examples/agent-os/client/upload-content.mdx b/examples/agent-os/client/upload-content.mdx index 99f065225..e30f82aa3 100644 --- a/examples/agent-os/client/upload-content.mdx +++ b/examples/agent-os/client/upload-content.mdx @@ -196,4 +196,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/client/09_upload_content.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/client/09_upload_content.py) +Full source: [cookbook/05_agent_os/client/09_upload_content.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/client/09_upload_content.py) diff --git a/examples/agent-os/client/workflow-sse-reconnect.mdx b/examples/agent-os/client/workflow-sse-reconnect.mdx index 28d0b7f39..6458f5238 100644 --- a/examples/agent-os/client/workflow-sse-reconnect.mdx +++ b/examples/agent-os/client/workflow-sse-reconnect.mdx @@ -286,4 +286,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/client/13_workflow_sse_reconnect.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/client/13_workflow_sse_reconnect.py) +Full source: [cookbook/05_agent_os/client/13_workflow_sse_reconnect.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/client/13_workflow_sse_reconnect.py) diff --git a/examples/agent-os/customize/custom-fastapi-app.mdx b/examples/agent-os/customize/custom-fastapi-app.mdx index 504ce572f..d501be0d2 100644 --- a/examples/agent-os/customize/custom-fastapi-app.mdx +++ b/examples/agent-os/customize/custom-fastapi-app.mdx @@ -123,4 +123,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/customize/custom_fastapi_app.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/customize/custom_fastapi_app.py) +Full source: [cookbook/05_agent_os/customize/custom_fastapi_app.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/customize/custom_fastapi_app.py) diff --git a/examples/agent-os/customize/custom-health-endpoint.mdx b/examples/agent-os/customize/custom-health-endpoint.mdx index 73d2f3499..e60adfad1 100644 --- a/examples/agent-os/customize/custom-health-endpoint.mdx +++ b/examples/agent-os/customize/custom-health-endpoint.mdx @@ -107,4 +107,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/customize/custom_health_endpoint.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/customize/custom_health_endpoint.py) +Full source: [cookbook/05_agent_os/customize/custom_health_endpoint.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/customize/custom_health_endpoint.py) diff --git a/examples/agent-os/customize/custom-lifespan.mdx b/examples/agent-os/customize/custom-lifespan.mdx index 0c44f22e5..7779661a3 100644 --- a/examples/agent-os/customize/custom-lifespan.mdx +++ b/examples/agent-os/customize/custom-lifespan.mdx @@ -100,4 +100,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/customize/custom_lifespan.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/customize/custom_lifespan.py) +Full source: [cookbook/05_agent_os/customize/custom_lifespan.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/customize/custom_lifespan.py) diff --git a/examples/agent-os/customize/handle-custom-events.mdx b/examples/agent-os/customize/handle-custom-events.mdx index 69e2e47d5..34fd0e899 100644 --- a/examples/agent-os/customize/handle-custom-events.mdx +++ b/examples/agent-os/customize/handle-custom-events.mdx @@ -71,7 +71,6 @@ customer_profile_agent = Agent( markdown=True, instructions="You are a customer profile agent. You are asked to get customer profiles.", tools=[get_customer_profile], - debug_mode=True, ) customer_team = Team( @@ -151,4 +150,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/customize/handle_custom_events.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/customize/handle_custom_events.py) +Full source: [cookbook/05_agent_os/customize/handle_custom_events.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/customize/handle_custom_events.py) diff --git a/examples/agent-os/customize/override-routes.mdx b/examples/agent-os/customize/override-routes.mdx index 5561dab69..f1a3e438c 100644 --- a/examples/agent-os/customize/override-routes.mdx +++ b/examples/agent-os/customize/override-routes.mdx @@ -133,4 +133,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/customize/override_routes.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/customize/override_routes.py) +Full source: [cookbook/05_agent_os/customize/override_routes.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/customize/override_routes.py) diff --git a/examples/agent-os/customize/pass-dependencies-to-agent.mdx b/examples/agent-os/customize/pass-dependencies-to-agent.mdx index a15cf56d8..1803078c0 100644 --- a/examples/agent-os/customize/pass-dependencies-to-agent.mdx +++ b/examples/agent-os/customize/pass-dependencies-to-agent.mdx @@ -86,4 +86,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/customize/pass_dependencies_to_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/customize/pass_dependencies_to_agent.py) +Full source: [cookbook/05_agent_os/customize/pass_dependencies_to_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/customize/pass_dependencies_to_agent.py) diff --git a/examples/agent-os/customize/update-from-lifespan.mdx b/examples/agent-os/customize/update-from-lifespan.mdx index 27ff34193..34bb97c91 100644 --- a/examples/agent-os/customize/update-from-lifespan.mdx +++ b/examples/agent-os/customize/update-from-lifespan.mdx @@ -105,4 +105,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/customize/update_from_lifespan.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/customize/update_from_lifespan.py) +Full source: [cookbook/05_agent_os/customize/update_from_lifespan.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/customize/update_from_lifespan.py) diff --git a/examples/agent-os/dbs/agentos-default-db.mdx b/examples/agent-os/dbs/agentos-default-db.mdx index 2024d2a08..db20a97b4 100644 --- a/examples/agent-os/dbs/agentos-default-db.mdx +++ b/examples/agent-os/dbs/agentos-default-db.mdx @@ -108,4 +108,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/dbs/agentos_default_db.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/dbs/agentos_default_db.py) +Full source: [cookbook/05_agent_os/dbs/agentos_default_db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/dbs/agentos_default_db.py) diff --git a/examples/agent-os/dbs/dynamo.mdx b/examples/agent-os/dbs/dynamo.mdx index 3a5508771..6cf887802 100644 --- a/examples/agent-os/dbs/dynamo.mdx +++ b/examples/agent-os/dbs/dynamo.mdx @@ -52,7 +52,6 @@ basic_team = Team( model=OpenAIChat(id="gpt-4o"), db=db, members=[basic_agent], - debug_mode=True, ) # Evals @@ -119,4 +118,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/dbs/dynamo.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/dbs/dynamo.py) +Full source: [cookbook/05_agent_os/dbs/dynamo.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/dbs/dynamo.py) diff --git a/examples/agent-os/dbs/firestore.mdx b/examples/agent-os/dbs/firestore.mdx index bc20061ee..679286278 100644 --- a/examples/agent-os/dbs/firestore.mdx +++ b/examples/agent-os/dbs/firestore.mdx @@ -52,7 +52,6 @@ basic_team = Team( db=db, update_memory_on_run=True, members=[basic_agent], - debug_mode=True, ) # Evals @@ -126,4 +125,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/dbs/firestore.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/dbs/firestore.py) +Full source: [cookbook/05_agent_os/dbs/firestore.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/dbs/firestore.py) diff --git a/examples/agent-os/dbs/gcs-json.mdx b/examples/agent-os/dbs/gcs-json.mdx index 6e18233e3..da156d5ed 100644 --- a/examples/agent-os/dbs/gcs-json.mdx +++ b/examples/agent-os/dbs/gcs-json.mdx @@ -60,7 +60,6 @@ team = Team( model=OpenAIChat(id="gpt-4o"), db=db, members=[agent], - debug_mode=True, ) # Evaluation example @@ -131,4 +130,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/dbs/gcs_json.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/dbs/gcs_json.py) +Full source: [cookbook/05_agent_os/dbs/gcs_json.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/dbs/gcs_json.py) diff --git a/examples/agent-os/dbs/json-db.mdx b/examples/agent-os/dbs/json-db.mdx index bee5a4a72..908f8b21a 100644 --- a/examples/agent-os/dbs/json-db.mdx +++ b/examples/agent-os/dbs/json-db.mdx @@ -41,7 +41,6 @@ team = Team( model=OpenAIChat(id="gpt-4o"), db=db, members=[agent], - debug_mode=True, ) # Evaluation example @@ -105,4 +104,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/dbs/json_db.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/dbs/json_db.py) +Full source: [cookbook/05_agent_os/dbs/json_db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/dbs/json_db.py) diff --git a/examples/agent-os/dbs/mongo.mdx b/examples/agent-os/dbs/mongo.mdx index 64f4c76fe..9e4ede8f9 100644 --- a/examples/agent-os/dbs/mongo.mdx +++ b/examples/agent-os/dbs/mongo.mdx @@ -164,4 +164,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/dbs/mongo.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/dbs/mongo.py) +Full source: [cookbook/05_agent_os/dbs/mongo.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/dbs/mongo.py) diff --git a/examples/agent-os/dbs/mysql.mdx b/examples/agent-os/dbs/mysql.mdx index 330bb39c1..2cc70d9e5 100644 --- a/examples/agent-os/dbs/mysql.mdx +++ b/examples/agent-os/dbs/mysql.mdx @@ -164,4 +164,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/dbs/mysql.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/dbs/mysql.py) +Full source: [cookbook/05_agent_os/dbs/mysql.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/dbs/mysql.py) diff --git a/examples/agent-os/dbs/neon.mdx b/examples/agent-os/dbs/neon.mdx index fed9063f3..064d3eb07 100644 --- a/examples/agent-os/dbs/neon.mdx +++ b/examples/agent-os/dbs/neon.mdx @@ -43,7 +43,6 @@ team = Team( model=OpenAIChat(id="gpt-4o"), update_memory_on_run=True, members=[agent], - debug_mode=True, ) # Evals @@ -106,4 +105,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/dbs/neon.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/dbs/neon.py) +Full source: [cookbook/05_agent_os/dbs/neon.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/dbs/neon.py) diff --git a/examples/agent-os/dbs/overview.mdx b/examples/agent-os/dbs/overview.mdx index d5f4a75ab..ac526cd0c 100644 --- a/examples/agent-os/dbs/overview.mdx +++ b/examples/agent-os/dbs/overview.mdx @@ -15,7 +15,7 @@ description: "Database backends for AgentOS agents, teams, workflows, and sessio | [Neon](/examples/agent-os/dbs/neon) | Use a NEON_DB_URL-backed PostgresDb for AccuracyEval in an AgentOS with an agent and team. | | [Postgres Database Backend](/examples/agent-os/dbs/postgres) | Demonstrates AgentOS with PostgreSQL storage using both sync and async setups. | | [Redis DB](/examples/agent-os/dbs/redis-db) | Setup the Redis database. | -| [Valkey Db](/examples/agent-os/dbs/valkey-db) | Setup the Valkey database. | +| [Valkey DB](/examples/agent-os/dbs/valkey-db) | Setup the Valkey database. | | [SingleStore](/examples/agent-os/dbs/singlestore) | Setup the SingleStore database. | | [SQLite](/examples/agent-os/dbs/sqlite) | Setup the SQLite database. | | [Supabase](/examples/agent-os/dbs/supabase) | Point PostgresDb at a Supabase project by building its connection URL from SUPABASE_PROJECT and SUPABASE_PASSWORD env vars. | diff --git a/examples/agent-os/dbs/postgres.mdx b/examples/agent-os/dbs/postgres.mdx index ab7eeb0fd..ba5bcd8d0 100644 --- a/examples/agent-os/dbs/postgres.mdx +++ b/examples/agent-os/dbs/postgres.mdx @@ -152,4 +152,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/dbs/postgres.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/dbs/postgres.py) +Full source: [cookbook/05_agent_os/dbs/postgres.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/dbs/postgres.py) diff --git a/examples/agent-os/dbs/redis-db.mdx b/examples/agent-os/dbs/redis-db.mdx index 7a2e479eb..c871f27ef 100644 --- a/examples/agent-os/dbs/redis-db.mdx +++ b/examples/agent-os/dbs/redis-db.mdx @@ -110,4 +110,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/dbs/redis_db.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/dbs/redis_db.py) +Full source: [cookbook/05_agent_os/dbs/redis_db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/dbs/redis_db.py) diff --git a/examples/agent-os/dbs/singlestore.mdx b/examples/agent-os/dbs/singlestore.mdx index e405688bd..d0905c7ef 100644 --- a/examples/agent-os/dbs/singlestore.mdx +++ b/examples/agent-os/dbs/singlestore.mdx @@ -50,7 +50,6 @@ team = Team( model=OpenAIChat(id="gpt-4o"), db=db, members=[agent], - debug_mode=True, ) # Evals @@ -116,4 +115,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/dbs/singlestore.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/dbs/singlestore.py) +Full source: [cookbook/05_agent_os/dbs/singlestore.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/dbs/singlestore.py) diff --git a/examples/agent-os/dbs/sqlite.mdx b/examples/agent-os/dbs/sqlite.mdx index 6a7759b0c..e8f0c528e 100644 --- a/examples/agent-os/dbs/sqlite.mdx +++ b/examples/agent-os/dbs/sqlite.mdx @@ -49,7 +49,6 @@ team_agent = Team( model=OpenAIChat(id="gpt-4o"), db=db, members=[basic_agent], - debug_mode=True, ) # Evals @@ -110,4 +109,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/dbs/sqlite.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/dbs/sqlite.py) +Full source: [cookbook/05_agent_os/dbs/sqlite.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/dbs/sqlite.py) diff --git a/examples/agent-os/dbs/supabase.mdx b/examples/agent-os/dbs/supabase.mdx index a19c49ac2..ec94ee7eb 100644 --- a/examples/agent-os/dbs/supabase.mdx +++ b/examples/agent-os/dbs/supabase.mdx @@ -49,7 +49,6 @@ team = Team( model=OpenAIChat(id="gpt-4o"), update_memory_on_run=True, members=[agent], - debug_mode=True, ) # Evals @@ -115,4 +114,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/dbs/supabase.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/dbs/supabase.py) +Full source: [cookbook/05_agent_os/dbs/supabase.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/dbs/supabase.py) diff --git a/examples/agent-os/dbs/surreal-db/agents.mdx b/examples/agent-os/dbs/surreal-db/agents.mdx index 1ca03795a..b23fadc53 100644 --- a/examples/agent-os/dbs/surreal-db/agents.mdx +++ b/examples/agent-os/dbs/surreal-db/agents.mdx @@ -172,4 +172,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/dbs/surreal_db/agents.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/dbs/surreal_db/agents.py) +Full source: [cookbook/05_agent_os/dbs/surreal_db/agents.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/dbs/surreal_db/agents.py) diff --git a/examples/agent-os/dbs/surreal-db/db.mdx b/examples/agent-os/dbs/surreal-db/db.mdx index 4fe01ff95..4f7e73537 100644 --- a/examples/agent-os/dbs/surreal-db/db.mdx +++ b/examples/agent-os/dbs/surreal-db/db.mdx @@ -64,4 +64,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/dbs/surreal_db/db.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/dbs/surreal_db/db.py) +Full source: [cookbook/05_agent_os/dbs/surreal_db/db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/dbs/surreal_db/db.py) diff --git a/examples/agent-os/dbs/surreal-db/run.mdx b/examples/agent-os/dbs/surreal-db/run.mdx index 62e24581b..624504abc 100644 --- a/examples/agent-os/dbs/surreal-db/run.mdx +++ b/examples/agent-os/dbs/surreal-db/run.mdx @@ -460,4 +460,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/dbs/surreal_db/run.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/dbs/surreal_db/run.py) +Full source: [cookbook/05_agent_os/dbs/surreal_db/run.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/dbs/surreal_db/run.py) diff --git a/examples/agent-os/dbs/surreal-db/teams.mdx b/examples/agent-os/dbs/surreal-db/teams.mdx index 4fc8338cd..096ce095d 100644 --- a/examples/agent-os/dbs/surreal-db/teams.mdx +++ b/examples/agent-os/dbs/surreal-db/teams.mdx @@ -209,4 +209,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/dbs/surreal_db/teams.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/dbs/surreal_db/teams.py) +Full source: [cookbook/05_agent_os/dbs/surreal_db/teams.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/dbs/surreal_db/teams.py) diff --git a/examples/agent-os/dbs/surreal-db/workflows.mdx b/examples/agent-os/dbs/surreal-db/workflows.mdx index a7086617c..93f890d43 100644 --- a/examples/agent-os/dbs/surreal-db/workflows.mdx +++ b/examples/agent-os/dbs/surreal-db/workflows.mdx @@ -177,4 +177,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/dbs/surreal_db/workflows.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/dbs/surreal_db/workflows.py) +Full source: [cookbook/05_agent_os/dbs/surreal_db/workflows.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/dbs/surreal_db/workflows.py) diff --git a/examples/agent-os/dbs/surreal.mdx b/examples/agent-os/dbs/surreal.mdx index 5d56ed7d0..eb2b7b2d7 100644 --- a/examples/agent-os/dbs/surreal.mdx +++ b/examples/agent-os/dbs/surreal.mdx @@ -121,4 +121,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/dbs/surreal.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/dbs/surreal.py) +Full source: [cookbook/05_agent_os/dbs/surreal.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/dbs/surreal.py) diff --git a/examples/agent-os/dbs/valkey-db.mdx b/examples/agent-os/dbs/valkey-db.mdx index 439d35051..928d60e8b 100644 --- a/examples/agent-os/dbs/valkey-db.mdx +++ b/examples/agent-os/dbs/valkey-db.mdx @@ -1,7 +1,6 @@ --- -title: "Example showing how to use AgentOS with Valkey as the database" -sidebarTitle: "Valkey Db" -description: "Setup the Valkey database." +title: "Valkey DB" +description: "Example showing how to use AgentOS with Valkey as the database." source: cookbook/05_agent_os/dbs/valkey_db.py --- @@ -80,19 +79,11 @@ if __name__ == "__main__": ## Run the Example - - Clone the repository and run the remaining commands from its root: - ```bash - git clone https://github.com/agno-agi/agno.git - cd agno - ``` - + - + ```bash - ./scripts/demo_setup.sh - source .venvs/demo/bin/activate - uv pip install -U valkey-glide-sync + uv pip install -U "agno[os]" glide-sync openai valkey-glide-sync ``` @@ -108,18 +99,12 @@ if __name__ == "__main__": - - ```bash - docker run -d --name my-valkey -p 6379:6379 valkey/valkey-bundle - ``` - - - Run the example from the repository root: + Save the code above as `valkey_db.py`, then run: ```bash - python cookbook/05_agent_os/dbs/valkey_db.py + python valkey_db.py ``` -Full source: [cookbook/05_agent_os/dbs/valkey_db.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/dbs/valkey_db.py) +Full source: [cookbook/05_agent_os/dbs/valkey_db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/dbs/valkey_db.py) diff --git a/examples/agent-os/demo.mdx b/examples/agent-os/demo.mdx index 2008d9585..a32ca39f8 100644 --- a/examples/agent-os/demo.mdx +++ b/examples/agent-os/demo.mdx @@ -149,4 +149,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/demo.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/demo.py) +Full source: [cookbook/05_agent_os/demo.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/demo.py) diff --git a/examples/agent-os/factories/agent/basic-factory.mdx b/examples/agent-os/factories/agent/basic-factory.mdx index f48eb3149..08603f384 100644 --- a/examples/agent-os/factories/agent/basic-factory.mdx +++ b/examples/agent-os/factories/agent/basic-factory.mdx @@ -131,4 +131,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/factories/agent/01_basic_factory.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/factories/agent/01_basic_factory.py) +Full source: [cookbook/05_agent_os/factories/agent/01_basic_factory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/factories/agent/01_basic_factory.py) diff --git a/examples/agent-os/factories/agent/input-schema-factory.mdx b/examples/agent-os/factories/agent/input-schema-factory.mdx index 78db3a87d..6a49b0d9e 100644 --- a/examples/agent-os/factories/agent/input-schema-factory.mdx +++ b/examples/agent-os/factories/agent/input-schema-factory.mdx @@ -156,4 +156,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/factories/agent/02_input_schema_factory.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/factories/agent/02_input_schema_factory.py) +Full source: [cookbook/05_agent_os/factories/agent/02_input_schema_factory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/factories/agent/02_input_schema_factory.py) diff --git a/examples/agent-os/factories/agent/tiered-model-factory.mdx b/examples/agent-os/factories/agent/tiered-model-factory.mdx index f52c05ade..526057840 100644 --- a/examples/agent-os/factories/agent/tiered-model-factory.mdx +++ b/examples/agent-os/factories/agent/tiered-model-factory.mdx @@ -174,4 +174,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/factories/agent/04_tiered_model_factory.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/factories/agent/04_tiered_model_factory.py) +Full source: [cookbook/05_agent_os/factories/agent/04_tiered_model_factory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/factories/agent/04_tiered_model_factory.py) diff --git a/examples/agent-os/factories/hitl-factory.mdx b/examples/agent-os/factories/hitl-factory.mdx index 42cc45cd2..62bb77038 100644 --- a/examples/agent-os/factories/hitl-factory.mdx +++ b/examples/agent-os/factories/hitl-factory.mdx @@ -177,4 +177,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/factories/agent/05_hitl_factory.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/factories/agent/05_hitl_factory.py) +Full source: [cookbook/05_agent_os/factories/agent/05_hitl_factory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/factories/agent/05_hitl_factory.py) diff --git a/examples/agent-os/factories/team/basic-team-factory.mdx b/examples/agent-os/factories/team/basic-team-factory.mdx index 6c579318e..f35f0f19e 100644 --- a/examples/agent-os/factories/team/basic-team-factory.mdx +++ b/examples/agent-os/factories/team/basic-team-factory.mdx @@ -134,4 +134,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/factories/team/01_basic_team_factory.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/factories/team/01_basic_team_factory.py) +Full source: [cookbook/05_agent_os/factories/team/01_basic_team_factory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/factories/team/01_basic_team_factory.py) diff --git a/examples/agent-os/factories/team/tiered-team-factory.mdx b/examples/agent-os/factories/team/tiered-team-factory.mdx index b76822ecf..97edcb9fd 100644 --- a/examples/agent-os/factories/team/tiered-team-factory.mdx +++ b/examples/agent-os/factories/team/tiered-team-factory.mdx @@ -194,4 +194,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/factories/team/02_tiered_team_factory.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/factories/team/02_tiered_team_factory.py) +Full source: [cookbook/05_agent_os/factories/team/02_tiered_team_factory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/factories/team/02_tiered_team_factory.py) diff --git a/examples/agent-os/factories/workflow/basic-workflow-factory.mdx b/examples/agent-os/factories/workflow/basic-workflow-factory.mdx index 2d1bba62d..7239540d3 100644 --- a/examples/agent-os/factories/workflow/basic-workflow-factory.mdx +++ b/examples/agent-os/factories/workflow/basic-workflow-factory.mdx @@ -139,4 +139,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/factories/workflow/01_basic_workflow_factory.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/factories/workflow/01_basic_workflow_factory.py) +Full source: [cookbook/05_agent_os/factories/workflow/01_basic_workflow_factory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/factories/workflow/01_basic_workflow_factory.py) diff --git a/examples/agent-os/factories/workflow/tiered-workflow-factory.mdx b/examples/agent-os/factories/workflow/tiered-workflow-factory.mdx index 8008add8a..ad3668991 100644 --- a/examples/agent-os/factories/workflow/tiered-workflow-factory.mdx +++ b/examples/agent-os/factories/workflow/tiered-workflow-factory.mdx @@ -188,4 +188,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/factories/workflow/02_tiered_workflow_factory.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/factories/workflow/02_tiered_workflow_factory.py) +Full source: [cookbook/05_agent_os/factories/workflow/02_tiered_workflow_factory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/factories/workflow/02_tiered_workflow_factory.py) diff --git a/examples/agent-os/file-generation/file-generation-os.mdx b/examples/agent-os/file-generation/file-generation-os.mdx index 02a77e249..73a097af0 100644 --- a/examples/agent-os/file-generation/file-generation-os.mdx +++ b/examples/agent-os/file-generation/file-generation-os.mdx @@ -51,7 +51,6 @@ file_agent = Agent( "Briefly explain what was generated.", ], markdown=True, - debug_mode=True, add_history_to_context=True, num_history_runs=3, ) @@ -94,4 +93,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/file_generation/file_generation_os.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/file_generation/file_generation_os.py) +Full source: [cookbook/05_agent_os/file_generation/file_generation_os.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/file_generation/file_generation_os.py) diff --git a/examples/agent-os/followup/followups-agentos.mdx b/examples/agent-os/followup/followups-agentos.mdx index 07eea9d09..c73193828 100644 --- a/examples/agent-os/followup/followups-agentos.mdx +++ b/examples/agent-os/followup/followups-agentos.mdx @@ -89,4 +89,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/followup/followups_agentos.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/followup/followups_agentos.py) +Full source: [cookbook/05_agent_os/followup/followups_agentos.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/followup/followups_agentos.py) diff --git a/examples/agent-os/google/gemini-3/data-labeling.mdx b/examples/agent-os/google/gemini-3/data-labeling.mdx index 0d5030f85..095958b14 100644 --- a/examples/agent-os/google/gemini-3/data-labeling.mdx +++ b/examples/agent-os/google/gemini-3/data-labeling.mdx @@ -172,4 +172,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/google/gemini_3/data_labeling.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/google/gemini_3/data_labeling.py) +Full source: [cookbook/05_agent_os/google/gemini_3/data_labeling.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/google/gemini_3/data_labeling.py) diff --git a/examples/agent-os/human-in-the-loop/agent/agent-tool-requires-confirmation.mdx b/examples/agent-os/human-in-the-loop/agent/agent-tool-requires-confirmation.mdx index 518813861..6bfe82fae 100644 --- a/examples/agent-os/human-in-the-loop/agent/agent-tool-requires-confirmation.mdx +++ b/examples/agent-os/human-in-the-loop/agent/agent-tool-requires-confirmation.mdx @@ -116,4 +116,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/human_in_the_loop/agent/agent_tool_requires_confirmation.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/human_in_the_loop/agent/agent_tool_requires_confirmation.py) +Full source: [cookbook/05_agent_os/human_in_the_loop/agent/agent_tool_requires_confirmation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/human_in_the_loop/agent/agent_tool_requires_confirmation.py) diff --git a/examples/agent-os/human-in-the-loop/team/confirmation-required.mdx b/examples/agent-os/human-in-the-loop/team/confirmation-required.mdx index 450518a8b..9334e0f48 100644 --- a/examples/agent-os/human-in-the-loop/team/confirmation-required.mdx +++ b/examples/agent-os/human-in-the-loop/team/confirmation-required.mdx @@ -132,4 +132,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/human_in_the_loop/team/confirmation_required.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/human_in_the_loop/team/confirmation_required.py) +Full source: [cookbook/05_agent_os/human_in_the_loop/team/confirmation_required.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/human_in_the_loop/team/confirmation_required.py) diff --git a/examples/agent-os/human-in-the-loop/team/external-tool-execution.mdx b/examples/agent-os/human-in-the-loop/team/external-tool-execution.mdx index 395c2a8d7..dcff72ddc 100644 --- a/examples/agent-os/human-in-the-loop/team/external-tool-execution.mdx +++ b/examples/agent-os/human-in-the-loop/team/external-tool-execution.mdx @@ -129,4 +129,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/human_in_the_loop/team/external_tool_execution.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/human_in_the_loop/team/external_tool_execution.py) +Full source: [cookbook/05_agent_os/human_in_the_loop/team/external_tool_execution.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/human_in_the_loop/team/external_tool_execution.py) diff --git a/examples/agent-os/human-in-the-loop/team/multi-round-user-input.mdx b/examples/agent-os/human-in-the-loop/team/multi-round-user-input.mdx new file mode 100644 index 000000000..34595bc87 --- /dev/null +++ b/examples/agent-os/human-in-the-loop/team/multi-round-user-input.mdx @@ -0,0 +1,136 @@ +--- +title: "AgentOS HITL: Multi-Round User Input" +description: "AgentOS equivalent of cookbook/03_teams/20_human_in_the_loop/multi_round_user_input.py." +source: cookbook/05_agent_os/human_in_the_loop/team/multi_round_user_input.py +--- + +```python multi_round_user_input.py +"""AgentOS HITL: Multi-Round User Input + +AgentOS equivalent of cookbook/03_teams/20_human_in_the_loop/multi_round_user_input.py + +A team member has multiple tools that require user input. The run pauses +for each tool, creating a chained HITL flow where the member pauses multiple +times during a single team execution. + +Run: + .venvs/demo/bin/python cookbook/05_agent_os/human_in_the_loop/team/multi_round_user_input.py +""" + +from agno.agent import Agent +from agno.db.sqlite import SqliteDb +from agno.models.openai import OpenAIResponses +from agno.os import AgentOS +from agno.team import Team +from agno.tools import tool + +# --------------------------------------------------------------------------- +# Storage +# --------------------------------------------------------------------------- + +db = SqliteDb( + db_file="tmp/agent_os_hitl.db", + session_table="hitl_multi_round_sessions", +) + +# --------------------------------------------------------------------------- +# Tools +# --------------------------------------------------------------------------- + + +@tool(requires_user_input=True, user_input_fields=["name"]) +def collect_name(name: str = "") -> str: + """Collect the user's name.""" + return f"User's name is: {name}" + + +@tool(requires_user_input=True, user_input_fields=["cuisine", "budget"]) +def collect_preferences(cuisine: str = "", budget: str = "") -> str: + """Collect user's dining preferences.""" + return f"User prefers {cuisine} cuisine with a {budget} budget." + + +# --------------------------------------------------------------------------- +# Create members +# --------------------------------------------------------------------------- + +survey_agent = Agent( + name="SurveyAgent", + model=OpenAIResponses(id="gpt-5.5"), + tools=[collect_name, collect_preferences], + instructions=( + "You MUST call collect_name first, then collect_preferences. " + "Do NOT ask clarifying questions - the tools will pause and request input." + ), + db=db, + telemetry=False, +) + +# --------------------------------------------------------------------------- +# Create team +# --------------------------------------------------------------------------- + +team = Team( + id="hitl-multi-round-team", + name="RestaurantTeam", + model=OpenAIResponses(id="gpt-5.5"), + members=[survey_agent], + instructions="Delegate all restaurant requests to the SurveyAgent immediately.", + db=db, + telemetry=False, + add_history_to_context=True, +) + +# --------------------------------------------------------------------------- +# Create AgentOS +# --------------------------------------------------------------------------- + +agent_os = AgentOS( + id="hitl-multi-round-user-input", + description="AgentOS HITL: chained user input across multiple tool calls", + agents=[survey_agent], + teams=[team], +) + +app = agent_os.get_app() + +# --------------------------------------------------------------------------- +# Run +# --------------------------------------------------------------------------- + +if __name__ == "__main__": + agent_os.serve(app="multi_round_user_input:app", port=7777, reload=True) +``` + +## Run the Example + + + + + + ```bash + uv pip install -U "agno[os]" openai + ``` + + + + + ```bash Mac/Linux + export OPENAI_API_KEY="your_openai_api_key_here" + ``` + + ```bash Windows + $Env:OPENAI_API_KEY="your_openai_api_key_here" + ``` + + + + + Save the code above as `multi_round_user_input.py`, then run: + ```bash + python multi_round_user_input.py + ``` + + + +Full source: [cookbook/05_agent_os/human_in_the_loop/team/multi_round_user_input.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/human_in_the_loop/team/multi_round_user_input.py) diff --git a/examples/agent-os/human-in-the-loop/team/team-tool-confirmation.mdx b/examples/agent-os/human-in-the-loop/team/team-tool-confirmation.mdx index 8a79dabe3..6c4ada84a 100644 --- a/examples/agent-os/human-in-the-loop/team/team-tool-confirmation.mdx +++ b/examples/agent-os/human-in-the-loop/team/team-tool-confirmation.mdx @@ -129,4 +129,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/human_in_the_loop/team/team_tool_confirmation.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/human_in_the_loop/team/team_tool_confirmation.py) +Full source: [cookbook/05_agent_os/human_in_the_loop/team/team_tool_confirmation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/human_in_the_loop/team/team_tool_confirmation.py) diff --git a/examples/agent-os/human-in-the-loop/team/user-input-required.mdx b/examples/agent-os/human-in-the-loop/team/user-input-required.mdx index fdd470e24..cb7d8aabc 100644 --- a/examples/agent-os/human-in-the-loop/team/user-input-required.mdx +++ b/examples/agent-os/human-in-the-loop/team/user-input-required.mdx @@ -133,4 +133,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/human_in_the_loop/team/user_input_required.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/human_in_the_loop/team/user_input_required.py) +Full source: [cookbook/05_agent_os/human_in_the_loop/team/user_input_required.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/human_in_the_loop/team/user_input_required.py) diff --git a/examples/agent-os/human-in-the-loop/workflow/condition-user-decision.mdx b/examples/agent-os/human-in-the-loop/workflow/condition-user-decision.mdx index 1fc43ba9f..e32ddb910 100644 --- a/examples/agent-os/human-in-the-loop/workflow/condition-user-decision.mdx +++ b/examples/agent-os/human-in-the-loop/workflow/condition-user-decision.mdx @@ -117,4 +117,4 @@ db = PostgresDb(db_url=db_url) -Full source: [cookbook/05_agent_os/human_in_the_loop/workflow/condition_user_decision.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/human_in_the_loop/workflow/condition_user_decision.py) +Full source: [cookbook/05_agent_os/human_in_the_loop/workflow/condition_user_decision.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/human_in_the_loop/workflow/condition_user_decision.py) diff --git a/examples/agent-os/human-in-the-loop/workflow/decision-tree.mdx b/examples/agent-os/human-in-the-loop/workflow/decision-tree.mdx index 06504fd4c..cb6ec80fe 100644 --- a/examples/agent-os/human-in-the-loop/workflow/decision-tree.mdx +++ b/examples/agent-os/human-in-the-loop/workflow/decision-tree.mdx @@ -133,4 +133,4 @@ db = PostgresDb(db_url=db_url) -Full source: [cookbook/05_agent_os/human_in_the_loop/workflow/decision_tree.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/human_in_the_loop/workflow/decision_tree.py) +Full source: [cookbook/05_agent_os/human_in_the_loop/workflow/decision_tree.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/human_in_the_loop/workflow/decision_tree.py) diff --git a/examples/agent-os/human-in-the-loop/workflow/dual-level-hitl.mdx b/examples/agent-os/human-in-the-loop/workflow/dual-level-hitl.mdx index 72cc5dde7..fd4254eea 100644 --- a/examples/agent-os/human-in-the-loop/workflow/dual-level-hitl.mdx +++ b/examples/agent-os/human-in-the-loop/workflow/dual-level-hitl.mdx @@ -135,4 +135,4 @@ db = PostgresDb(db_url=db_url) -Full source: [cookbook/05_agent_os/human_in_the_loop/workflow/dual_level_hitl.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/human_in_the_loop/workflow/dual_level_hitl.py) +Full source: [cookbook/05_agent_os/human_in_the_loop/workflow/dual_level_hitl.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/human_in_the_loop/workflow/dual_level_hitl.py) diff --git a/examples/agent-os/human-in-the-loop/workflow/loop-confirmation.mdx b/examples/agent-os/human-in-the-loop/workflow/loop-confirmation.mdx index db0f0eb34..55062bf30 100644 --- a/examples/agent-os/human-in-the-loop/workflow/loop-confirmation.mdx +++ b/examples/agent-os/human-in-the-loop/workflow/loop-confirmation.mdx @@ -104,4 +104,4 @@ db = PostgresDb(db_url=db_url) -Full source: [cookbook/05_agent_os/human_in_the_loop/workflow/loop_confirmation.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/human_in_the_loop/workflow/loop_confirmation.py) +Full source: [cookbook/05_agent_os/human_in_the_loop/workflow/loop_confirmation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/human_in_the_loop/workflow/loop_confirmation.py) diff --git a/examples/agent-os/human-in-the-loop/workflow/main.mdx b/examples/agent-os/human-in-the-loop/workflow/main.mdx index 045135be0..6d3e42107 100644 --- a/examples/agent-os/human-in-the-loop/workflow/main.mdx +++ b/examples/agent-os/human-in-the-loop/workflow/main.mdx @@ -825,4 +825,4 @@ db = PostgresDb(db_url=db_url) -Full source: [cookbook/05_agent_os/human_in_the_loop/workflow/main.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/human_in_the_loop/workflow/main.py) +Full source: [cookbook/05_agent_os/human_in_the_loop/workflow/main.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/human_in_the_loop/workflow/main.py) diff --git a/examples/agent-os/human-in-the-loop/workflow/output-review.mdx b/examples/agent-os/human-in-the-loop/workflow/output-review.mdx index b4da0876d..b18e39a82 100644 --- a/examples/agent-os/human-in-the-loop/workflow/output-review.mdx +++ b/examples/agent-os/human-in-the-loop/workflow/output-review.mdx @@ -97,4 +97,4 @@ db = PostgresDb(db_url=db_url) -Full source: [cookbook/05_agent_os/human_in_the_loop/workflow/output_review.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/human_in_the_loop/workflow/output_review.py) +Full source: [cookbook/05_agent_os/human_in_the_loop/workflow/output_review.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/human_in_the_loop/workflow/output_review.py) diff --git a/examples/agent-os/human-in-the-loop/workflow/router-user-selection.mdx b/examples/agent-os/human-in-the-loop/workflow/router-user-selection.mdx index a001d87d2..cdd8a125c 100644 --- a/examples/agent-os/human-in-the-loop/workflow/router-user-selection.mdx +++ b/examples/agent-os/human-in-the-loop/workflow/router-user-selection.mdx @@ -140,4 +140,4 @@ db = PostgresDb(db_url=db_url) -Full source: [cookbook/05_agent_os/human_in_the_loop/workflow/router_user_selection.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/human_in_the_loop/workflow/router_user_selection.py) +Full source: [cookbook/05_agent_os/human_in_the_loop/workflow/router_user_selection.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/human_in_the_loop/workflow/router_user_selection.py) diff --git a/examples/agent-os/human-in-the-loop/workflow/step-confirmation.mdx b/examples/agent-os/human-in-the-loop/workflow/step-confirmation.mdx index 2ad7a274f..7675682a4 100644 --- a/examples/agent-os/human-in-the-loop/workflow/step-confirmation.mdx +++ b/examples/agent-os/human-in-the-loop/workflow/step-confirmation.mdx @@ -108,4 +108,4 @@ db = PostgresDb(db_url=db_url) -Full source: [cookbook/05_agent_os/human_in_the_loop/workflow/step_confirmation.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/human_in_the_loop/workflow/step_confirmation.py) +Full source: [cookbook/05_agent_os/human_in_the_loop/workflow/step_confirmation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/human_in_the_loop/workflow/step_confirmation.py) diff --git a/examples/agent-os/human-in-the-loop/workflow/step-user-input.mdx b/examples/agent-os/human-in-the-loop/workflow/step-user-input.mdx index f6864bc55..63358b0f1 100644 --- a/examples/agent-os/human-in-the-loop/workflow/step-user-input.mdx +++ b/examples/agent-os/human-in-the-loop/workflow/step-user-input.mdx @@ -204,4 +204,4 @@ db = PostgresDb(db_url=db_url) -Full source: [cookbook/05_agent_os/human_in_the_loop/workflow/step_user_input.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/human_in_the_loop/workflow/step_user_input.py) +Full source: [cookbook/05_agent_os/human_in_the_loop/workflow/step_user_input.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/human_in_the_loop/workflow/step_user_input.py) diff --git a/examples/agent-os/human-in-the-loop/workflow/workflow-db.mdx b/examples/agent-os/human-in-the-loop/workflow/workflow-db.mdx index dedac627c..5d2d1b5ed 100644 --- a/examples/agent-os/human-in-the-loop/workflow/workflow-db.mdx +++ b/examples/agent-os/human-in-the-loop/workflow/workflow-db.mdx @@ -29,4 +29,4 @@ db = PostgresDb(db_url=db_url) -Full source: [cookbook/05_agent_os/human_in_the_loop/workflow/workflow_db.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/human_in_the_loop/workflow/workflow_db.py) +Full source: [cookbook/05_agent_os/human_in_the_loop/workflow/workflow_db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/human_in_the_loop/workflow/workflow_db.py) diff --git a/examples/agent-os/integrations/shopify-demo.mdx b/examples/agent-os/integrations/shopify-demo.mdx index e33b83f69..bab64d078 100644 --- a/examples/agent-os/integrations/shopify-demo.mdx +++ b/examples/agent-os/integrations/shopify-demo.mdx @@ -128,4 +128,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/integrations/shopify_demo.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/integrations/shopify_demo.py) +Full source: [cookbook/05_agent_os/integrations/shopify_demo.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/integrations/shopify_demo.py) diff --git a/examples/agent-os/interfaces/a2a/agent-with-tools.mdx b/examples/agent-os/interfaces/a2a/agent-with-tools.mdx index 509b30da0..5cf907ce3 100644 --- a/examples/agent-os/interfaces/a2a/agent-with-tools.mdx +++ b/examples/agent-os/interfaces/a2a/agent-with-tools.mdx @@ -40,7 +40,6 @@ agent = Agent( add_location_to_context=True, timezone_identifier="Etc/UTC", markdown=True, - debug_mode=True, ) @@ -100,4 +99,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/a2a/agent_with_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/a2a/agent_with_tools.py) +Full source: [cookbook/05_agent_os/interfaces/a2a/agent_with_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/a2a/agent_with_tools.py) diff --git a/examples/agent-os/interfaces/a2a/basic.mdx b/examples/agent-os/interfaces/a2a/basic.mdx index 8ad2c572f..1fa35c3e8 100644 --- a/examples/agent-os/interfaces/a2a/basic.mdx +++ b/examples/agent-os/interfaces/a2a/basic.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/a2a/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/a2a/basic.py) +Full source: [cookbook/05_agent_os/interfaces/a2a/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/a2a/basic.py) diff --git a/examples/agent-os/interfaces/a2a/multi-agent-a2a/airbnb-agent.mdx b/examples/agent-os/interfaces/a2a/multi-agent-a2a/airbnb-agent.mdx index 412e23cc6..5d049444a 100644 --- a/examples/agent-os/interfaces/a2a/multi-agent-a2a/airbnb-agent.mdx +++ b/examples/agent-os/interfaces/a2a/multi-agent-a2a/airbnb-agent.mdx @@ -104,4 +104,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/a2a/multi_agent_a2a/airbnb_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/a2a/multi_agent_a2a/airbnb_agent.py) +Full source: [cookbook/05_agent_os/interfaces/a2a/multi_agent_a2a/airbnb_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/a2a/multi_agent_a2a/airbnb_agent.py) diff --git a/examples/agent-os/interfaces/a2a/multi-agent-a2a/trip-planning-a2a-client.mdx b/examples/agent-os/interfaces/a2a/multi-agent-a2a/trip-planning-a2a-client.mdx index 33cfe57ff..a82277ceb 100644 --- a/examples/agent-os/interfaces/a2a/multi-agent-a2a/trip-planning-a2a-client.mdx +++ b/examples/agent-os/interfaces/a2a/multi-agent-a2a/trip-planning-a2a-client.mdx @@ -165,4 +165,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/a2a/multi_agent_a2a/trip_planning_a2a_client.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/a2a/multi_agent_a2a/trip_planning_a2a_client.py) +Full source: [cookbook/05_agent_os/interfaces/a2a/multi_agent_a2a/trip_planning_a2a_client.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/a2a/multi_agent_a2a/trip_planning_a2a_client.py) diff --git a/examples/agent-os/interfaces/a2a/multi-agent-a2a/weather-agent.mdx b/examples/agent-os/interfaces/a2a/multi-agent-a2a/weather-agent.mdx index 7f7630e79..df7dd3b28 100644 --- a/examples/agent-os/interfaces/a2a/multi-agent-a2a/weather-agent.mdx +++ b/examples/agent-os/interfaces/a2a/multi-agent-a2a/weather-agent.mdx @@ -99,4 +99,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/a2a/multi_agent_a2a/weather_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/a2a/multi_agent_a2a/weather_agent.py) +Full source: [cookbook/05_agent_os/interfaces/a2a/multi_agent_a2a/weather_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/a2a/multi_agent_a2a/weather_agent.py) diff --git a/examples/agent-os/interfaces/a2a/reasoning-agent.mdx b/examples/agent-os/interfaces/a2a/reasoning-agent.mdx index 559890255..e836c12bc 100644 --- a/examples/agent-os/interfaces/a2a/reasoning-agent.mdx +++ b/examples/agent-os/interfaces/a2a/reasoning-agent.mdx @@ -90,4 +90,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/a2a/reasoning_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/a2a/reasoning_agent.py) +Full source: [cookbook/05_agent_os/interfaces/a2a/reasoning_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/a2a/reasoning_agent.py) diff --git a/examples/agent-os/interfaces/a2a/research-team.mdx b/examples/agent-os/interfaces/a2a/research-team.mdx index a7fee7bf8..04aa7e4f8 100644 --- a/examples/agent-os/interfaces/a2a/research-team.mdx +++ b/examples/agent-os/interfaces/a2a/research-team.mdx @@ -55,7 +55,6 @@ research_team = Team( get_member_information_tool=True, add_member_tools_to_context=True, add_history_to_context=True, - debug_mode=True, ) # Setup our AgentOS app @@ -115,4 +114,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/a2a/research_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/a2a/research_team.py) +Full source: [cookbook/05_agent_os/interfaces/a2a/research_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/a2a/research_team.py) diff --git a/examples/agent-os/interfaces/a2a/structured-output.mdx b/examples/agent-os/interfaces/a2a/structured-output.mdx index 6ecf10c86..eb25a7914 100644 --- a/examples/agent-os/interfaces/a2a/structured-output.mdx +++ b/examples/agent-os/interfaces/a2a/structured-output.mdx @@ -107,4 +107,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/a2a/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/a2a/structured_output.py) +Full source: [cookbook/05_agent_os/interfaces/a2a/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/a2a/structured_output.py) diff --git a/examples/agent-os/interfaces/agui/agent-with-media.mdx b/examples/agent-os/interfaces/agui/agent-with-media.mdx index 7b7aa15a5..2f500b652 100644 --- a/examples/agent-os/interfaces/agui/agent-with-media.mdx +++ b/examples/agent-os/interfaces/agui/agent-with-media.mdx @@ -14,6 +14,7 @@ Uses Google Gemini to analyze attached files. Set GOOGLE_API_KEY env var. """ from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb from agno.models.google import Gemini from agno.os import AgentOS from agno.os.interfaces.agui import AGUI @@ -25,6 +26,7 @@ from agno.os.interfaces.agui import AGUI media_agent = Agent( name="Media Agent", model=Gemini(id="gemini-2.5-flash"), + db=SqliteDb(db_file="/tmp/agui_agent_with_media.db"), instructions="Analyze any image, audio, video, or document the user sends and answer their question about it.", add_datetime_to_context=True, markdown=True, @@ -77,4 +79,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/agui/agent_with_media.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/agui/agent_with_media.py) +Full source: [cookbook/05_agent_os/interfaces/agui/agent_with_media.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/agui/agent_with_media.py) diff --git a/examples/agent-os/interfaces/agui/agent-with-tools.mdx b/examples/agent-os/interfaces/agui/agent-with-tools.mdx index 1249744f3..4c95d8ba8 100644 --- a/examples/agent-os/interfaces/agui/agent-with-tools.mdx +++ b/examples/agent-os/interfaces/agui/agent-with-tools.mdx @@ -15,6 +15,7 @@ Demonstrates agent with tools. from typing import List from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb from agno.models.openai import OpenAIResponses from agno.os import AgentOS from agno.os.interfaces.agui import AGUI @@ -37,6 +38,7 @@ def generate_haiku( agent = Agent( model=OpenAIResponses(id="gpt-5.4"), + db=SqliteDb(db_file="/tmp/agui_agent_with_tools.db"), tools=[ WebSearchTools(), generate_haiku, @@ -55,7 +57,6 @@ agent = Agent( add_location_to_context=True, timezone_identifier="Etc/UTC", markdown=True, - debug_mode=True, ) @@ -117,4 +118,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/agui/agent_with_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/agui/agent_with_tools.py) +Full source: [cookbook/05_agent_os/interfaces/agui/agent_with_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/agui/agent_with_tools.py) diff --git a/examples/agent-os/interfaces/agui/agentic-chat.mdx b/examples/agent-os/interfaces/agui/agentic-chat.mdx index 0711901b7..ec30e5b58 100644 --- a/examples/agent-os/interfaces/agui/agentic-chat.mdx +++ b/examples/agent-os/interfaces/agui/agentic-chat.mdx @@ -138,4 +138,4 @@ Be helpful and use tools when appropriate.""", -Full source: [cookbook/05_agent_os/interfaces/agui/agentic_chat.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/agui/agentic_chat.py) +Full source: [cookbook/05_agent_os/interfaces/agui/agentic_chat.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/agui/agentic_chat.py) diff --git a/examples/agent-os/interfaces/agui/backend-feedback.mdx b/examples/agent-os/interfaces/agui/backend-feedback.mdx new file mode 100644 index 000000000..34f46027c --- /dev/null +++ b/examples/agent-os/interfaces/agui/backend-feedback.mdx @@ -0,0 +1,77 @@ +--- +title: "Backend Feedback: Dojo Demo" +description: "Frontend-provided tool: get_user_choice (via useHumanInTheLoop)." +source: cookbook/05_agent_os/interfaces/agui/backend_feedback.py +--- + +```python backend_feedback.py +""" +Backend Feedback — Dojo Demo +============================ + +Frontend-provided tool: get_user_choice (via useHumanInTheLoop) + +The frontend defines this tool for presenting multiple choices to the user. +When called, it renders a card with radio buttons for selection. +""" + +from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb +from agno.models.openai import OpenAIResponses + +backend_feedback_agent = Agent( + name="backend_feedback", + model=OpenAIResponses(id="gpt-5.5"), + db=SqliteDb(db_file="/tmp/agui_backend_feedback.db"), + instructions="""You are an assistant that helps users make decisions. + +When you need the user to choose from options: +- Call get_user_choice with: question, options (array of strings) +- Wait for user to select an option + +Example get_user_choice call: +{ + "question": "What type of cuisine would you prefer for dinner?", + "options": ["Italian", "Japanese", "Mexican", "Indian", "Thai"] +} + +After receiving the selection: +- Acknowledge their choice +- Provide relevant recommendations or next steps based on their selection +- Ask follow-up questions if needed using get_user_choice again""", + markdown=True, +) +``` + +## Run the Example + + + + + + ```bash + uv pip install -U agno openai sqlalchemy + ``` + + + + + ```bash Mac/Linux + export OPENAI_API_KEY="your_openai_api_key_here" + ``` + + ```bash Windows + $Env:OPENAI_API_KEY="your_openai_api_key_here" + ``` + + + + + Save the code above as `backend_feedback.py`, then run: + ```bash + python backend_feedback.py + ``` + + + +Full source: [cookbook/05_agent_os/interfaces/agui/backend_feedback.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/agui/backend_feedback.py) diff --git a/examples/agent-os/interfaces/agui/backend-tool-rendering.mdx b/examples/agent-os/interfaces/agui/backend-tool-rendering.mdx index 3d7e1371a..d77c490e8 100644 --- a/examples/agent-os/interfaces/agui/backend-tool-rendering.mdx +++ b/examples/agent-os/interfaces/agui/backend-tool-rendering.mdx @@ -19,6 +19,7 @@ Dojo expects get_weather(location: str) with detailed return: """ from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb from agno.models.openai import OpenAIResponses from agno.tools import tool @@ -78,6 +79,7 @@ def get_weather(location: str) -> dict: backend_tool_agent = Agent( name="backend_tool_rendering", model=OpenAIResponses(id="gpt-5.5"), + db=SqliteDb(db_file="/tmp/agui_backend_tool_rendering.db"), tools=[get_weather], instructions="""You help users check weather. When asked about weather, always use the get_weather tool. @@ -127,4 +129,4 @@ The tool returns structured data that the frontend will render as a weather card -Full source: [cookbook/05_agent_os/interfaces/agui/backend_tool_rendering.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/agui/backend_tool_rendering.py) +Full source: [cookbook/05_agent_os/interfaces/agui/backend_tool_rendering.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/agui/backend_tool_rendering.py) diff --git a/examples/agent-os/interfaces/agui/basic.mdx b/examples/agent-os/interfaces/agui/basic.mdx index 3dbf39154..54c730cf5 100644 --- a/examples/agent-os/interfaces/agui/basic.mdx +++ b/examples/agent-os/interfaces/agui/basic.mdx @@ -13,6 +13,7 @@ Demonstrates basic. """ from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb from agno.models.openai import OpenAIResponses from agno.os import AgentOS from agno.os.interfaces.agui import AGUI @@ -24,6 +25,7 @@ from agno.os.interfaces.agui import AGUI chat_agent = Agent( name="Assistant", model=OpenAIResponses(id="gpt-5.4"), + db=SqliteDb(db_file="/tmp/agui_basic.db"), instructions="You are a helpful AI assistant.", add_datetime_to_context=True, markdown=True, @@ -82,4 +84,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/agui/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/agui/basic.py) +Full source: [cookbook/05_agent_os/interfaces/agui/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/agui/basic.py) diff --git a/examples/agent-os/interfaces/agui/hitl-backend-feedback.mdx b/examples/agent-os/interfaces/agui/hitl-backend-feedback.mdx new file mode 100644 index 000000000..71312fea4 --- /dev/null +++ b/examples/agent-os/interfaces/agui/hitl-backend-feedback.mdx @@ -0,0 +1,74 @@ +--- +title: "HITL Backend Feedback" +description: "Minimal backend agent with frontend-defined tools via useHumanInTheLoop." +source: cookbook/05_agent_os/interfaces/agui/hitl_backend_feedback.py +--- + +```python hitl_backend_feedback.py +""" +HITL Backend Feedback +===================== + +Minimal backend agent with frontend-defined tools via useHumanInTheLoop. +""" + +from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb +from agno.models.openai import OpenAIResponses +from agno.os import AgentOS +from agno.os.interfaces.agui import AGUI + +backend_feedback_agent = Agent( + name="backend_feedback", + model=OpenAIResponses(id="gpt-5.5"), + db=SqliteDb(db_file="/tmp/agui_hitl_backend_feedback.db"), + instructions=( + "You help users make decisions. When a choice would benefit from user input, " + "use available tools to present options - they are provided by the frontend." + ), + markdown=True, +) + +agent_os = AgentOS( + agents=[backend_feedback_agent], + interfaces=[AGUI(agent=backend_feedback_agent, prefix="/backend_feedback")], +) +app = agent_os.get_app() + + +if __name__ == "__main__": + agent_os.serve(app="hitl_backend_feedback:app", port=9001, reload=True) +``` + +## Run the Example + + + + + + ```bash + uv pip install -U "agno[agui,os]" openai + ``` + + + + + ```bash Mac/Linux + export OPENAI_API_KEY="your_openai_api_key_here" + ``` + + ```bash Windows + $Env:OPENAI_API_KEY="your_openai_api_key_here" + ``` + + + + + Save the code above as `hitl_backend_feedback.py`, then run: + ```bash + python hitl_backend_feedback.py + ``` + + + +Full source: [cookbook/05_agent_os/interfaces/agui/hitl_backend_feedback.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/agui/hitl_backend_feedback.py) diff --git a/examples/agent-os/interfaces/agui/hitl-tool-confirmation.mdx b/examples/agent-os/interfaces/agui/hitl-tool-confirmation.mdx new file mode 100644 index 000000000..bfd2cd840 --- /dev/null +++ b/examples/agent-os/interfaces/agui/hitl-tool-confirmation.mdx @@ -0,0 +1,74 @@ +--- +title: "HITL Tool Confirmation" +description: "Minimal backend agent with frontend-defined tools via useHumanInTheLoop." +source: cookbook/05_agent_os/interfaces/agui/hitl_tool_confirmation.py +--- + +```python hitl_tool_confirmation.py +""" +HITL Tool Confirmation +====================== + +Minimal backend agent with frontend-defined tools via useHumanInTheLoop. +""" + +from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb +from agno.models.openai import OpenAIResponses +from agno.os import AgentOS +from agno.os.interfaces.agui import AGUI + +confirmation_agent = Agent( + name="tool_confirmation", + model=OpenAIResponses(id="gpt-5.5"), + db=SqliteDb(db_file="/tmp/agui_hitl_confirmation.db"), + instructions=( + "You help users with tasks that may require confirmation. " + "Use available tools when needed - they are provided by the frontend." + ), + markdown=True, +) + +agent_os = AgentOS( + agents=[confirmation_agent], + interfaces=[AGUI(agent=confirmation_agent, prefix="/tool_confirmation")], +) +app = agent_os.get_app() + + +if __name__ == "__main__": + agent_os.serve(app="hitl_tool_confirmation:app", port=9001, reload=True) +``` + +## Run the Example + + + + + + ```bash + uv pip install -U "agno[agui,os]" openai + ``` + + + + + ```bash Mac/Linux + export OPENAI_API_KEY="your_openai_api_key_here" + ``` + + ```bash Windows + $Env:OPENAI_API_KEY="your_openai_api_key_here" + ``` + + + + + Save the code above as `hitl_tool_confirmation.py`, then run: + ```bash + python hitl_tool_confirmation.py + ``` + + + +Full source: [cookbook/05_agent_os/interfaces/agui/hitl_tool_confirmation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/agui/hitl_tool_confirmation.py) diff --git a/examples/agent-os/interfaces/agui/hitl-user-input.mdx b/examples/agent-os/interfaces/agui/hitl-user-input.mdx new file mode 100644 index 000000000..cb5e72510 --- /dev/null +++ b/examples/agent-os/interfaces/agui/hitl-user-input.mdx @@ -0,0 +1,74 @@ +--- +title: "HITL User Input" +description: "Minimal backend agent with frontend-defined tools via useHumanInTheLoop." +source: cookbook/05_agent_os/interfaces/agui/hitl_user_input.py +--- + +```python hitl_user_input.py +""" +HITL User Input +=============== + +Minimal backend agent with frontend-defined tools via useHumanInTheLoop. +""" + +from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb +from agno.models.openai import OpenAIResponses +from agno.os import AgentOS +from agno.os.interfaces.agui import AGUI + +user_input_agent = Agent( + name="user_input", + model=OpenAIResponses(id="gpt-5.5"), + db=SqliteDb(db_file="/tmp/agui_hitl_user_input.db"), + instructions=( + "You help users with tasks that may need their input. " + "Use available tools when needed - they are provided by the frontend." + ), + markdown=True, +) + +agent_os = AgentOS( + agents=[user_input_agent], + interfaces=[AGUI(agent=user_input_agent, prefix="/user_input")], +) +app = agent_os.get_app() + + +if __name__ == "__main__": + agent_os.serve(app="hitl_user_input:app", port=9001, reload=True) +``` + +## Run the Example + + + + + + ```bash + uv pip install -U "agno[agui,os]" openai + ``` + + + + + ```bash Mac/Linux + export OPENAI_API_KEY="your_openai_api_key_here" + ``` + + ```bash Windows + $Env:OPENAI_API_KEY="your_openai_api_key_here" + ``` + + + + + Save the code above as `hitl_user_input.py`, then run: + ```bash + python hitl_user_input.py + ``` + + + +Full source: [cookbook/05_agent_os/interfaces/agui/hitl_user_input.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/agui/hitl_user_input.py) diff --git a/examples/agent-os/interfaces/agui/human-in-the-loop.mdx b/examples/agent-os/interfaces/agui/human-in-the-loop.mdx index c3cee854b..bfac39214 100644 --- a/examples/agent-os/interfaces/agui/human-in-the-loop.mdx +++ b/examples/agent-os/interfaces/agui/human-in-the-loop.mdx @@ -4,68 +4,56 @@ description: "Agent whose generate_task_steps tool requires user confirmation, r source: cookbook/05_agent_os/interfaces/agui/human_in_the_loop.py --- -HITL tool: generate_task_steps (requires_confirmation) +Frontend-provided tool: generate_task_steps (external_execution) ```python human_in_the_loop.py """ Human in the Loop — Dojo Demo ============================== -HITL tool: generate_task_steps (requires_confirmation) +Frontend-provided tool: generate_task_steps (external_execution) -Dojo expects generate_task_steps that returns: -- steps: list of {description: str, status: "enabled"|"disabled"|"executing"} +The frontend defines this tool via useHumanInTheLoop hook. The agent calls it, +and the frontend renders an interactive step-selector UI where the user can +toggle steps on/off and confirm. -The frontend renders a step selector UI where user can toggle steps and confirm/reject. +Backend does NOT define the tool — it comes from the frontend in the request. """ -from typing import List - from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb from agno.models.openai import OpenAIResponses -from agno.tools import tool -from pydantic import BaseModel, Field - - -class TaskStep(BaseModel): - description: str = Field(description="Description of the step") - status: str = Field( - default="enabled", description="Status: enabled, disabled, or executing" - ) - - -@tool(requires_confirmation=True) -def generate_task_steps(steps: List[TaskStep]) -> str: - """Generate a list of task steps for the user to review and confirm. - - The frontend will display these steps with checkboxes. - User can enable/disable steps before confirming execution. - """ - enabled_steps = [s for s in steps if s.status == "enabled"] - return f"Executing {len(enabled_steps)} steps: " + ", ".join( - s.description for s in enabled_steps - ) - hitl_agent = Agent( name="human_in_the_loop", model=OpenAIResponses(id="gpt-5.5"), - tools=[generate_task_steps], - instructions="""You help users plan tasks that require confirmation. - -When asked to plan something (trip, recipe, project, etc.): -1. Break it down into clear steps (5-10 steps typically) -2. Use the generate_task_steps tool with a list of steps -3. Each step should have a description and status="enabled" - -Example: For "plan a trip to Paris", create steps like: -- Book flights -- Reserve hotel -- Plan activities -- Pack luggage -- etc. - -The user will review and confirm which steps to execute.""", + db=SqliteDb(db_file="/tmp/agui_human_in_the_loop.db"), + instructions="""You are a task planning assistant. When asked to plan something: + +1. **IMMEDIATELY call the generate_task_steps tool** with a list of steps +2. Generate exactly 10 clear, actionable steps +3. Each step must be an object with: + - description: Brief imperative form (e.g., "Research travel options") + - status: Set to "enabled" initially + +Example tool call for "plan a trip to Mars": +{ + "steps": [ + {"description": "Research Mars travel options", "status": "enabled"}, + {"description": "Prepare necessary equipment", "status": "enabled"}, + {"description": "Complete health screenings", "status": "enabled"}, + ... + ] +} + +After calling the tool: +- Briefly confirm: "I've created a 10-step plan for you!" +- Don't repeat the steps (they're visible in the UI) +- Ask the user to review and select which steps to perform + +When user provides feedback (after clicking "Perform Steps"): +- Acknowledge which steps were approved +- Provide a brief summary of next actions""", markdown=True, ) ``` @@ -111,4 +99,4 @@ The user will review and confirm which steps to execute.""", -Full source: [cookbook/05_agent_os/interfaces/agui/human_in_the_loop.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/agui/human_in_the_loop.py) +Full source: [cookbook/05_agent_os/interfaces/agui/human_in_the_loop.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/agui/human_in_the_loop.py) diff --git a/examples/agent-os/interfaces/agui/multiple-instances.mdx b/examples/agent-os/interfaces/agui/multiple-instances.mdx index 9e4b94952..bb54f7228 100644 --- a/examples/agent-os/interfaces/agui/multiple-instances.mdx +++ b/examples/agent-os/interfaces/agui/multiple-instances.mdx @@ -99,4 +99,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/agui/multiple_instances.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/agui/multiple_instances.py) +Full source: [cookbook/05_agent_os/interfaces/agui/multiple_instances.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/agui/multiple_instances.py) diff --git a/examples/agent-os/interfaces/agui/reasoning-agent.mdx b/examples/agent-os/interfaces/agui/reasoning-agent.mdx index 3381ea7bf..043666699 100644 --- a/examples/agent-os/interfaces/agui/reasoning-agent.mdx +++ b/examples/agent-os/interfaces/agui/reasoning-agent.mdx @@ -13,6 +13,7 @@ Demonstrates reasoning agent. """ from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb from agno.models.openai import OpenAIResponses from agno.os import AgentOS from agno.os.interfaces.agui import AGUI @@ -25,6 +26,7 @@ from agno.tools.websearch import WebSearchTools chat_agent = Agent( name="Assistant", model=OpenAIResponses(id="o4-mini"), + db=SqliteDb(db_file="/tmp/agui_reasoning_agent.db"), instructions="You are a helpful AI assistant.", add_datetime_to_context=True, add_history_to_context=True, @@ -87,4 +89,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/agui/reasoning_agent.py](https://github.com/agno-agi/agno/blob/v2.7.2/cookbook/05_agent_os/interfaces/agui/reasoning_agent.py) +Full source: [cookbook/05_agent_os/interfaces/agui/reasoning_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/agui/reasoning_agent.py) diff --git a/examples/agent-os/interfaces/agui/research-team.mdx b/examples/agent-os/interfaces/agui/research-team.mdx index 2bb7acff0..3b580f957 100644 --- a/examples/agent-os/interfaces/agui/research-team.mdx +++ b/examples/agent-os/interfaces/agui/research-team.mdx @@ -13,6 +13,7 @@ Demonstrates research team. """ from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb from agno.models.openai import OpenAIResponses from agno.os import AgentOS from agno.os.interfaces.agui import AGUI @@ -23,10 +24,13 @@ from agno.tools.websearch import WebSearchTools # Create Example # --------------------------------------------------------------------------- +db = SqliteDb(db_file="/tmp/agui_research_team.db") + researcher = Agent( name="researcher", role="Research Assistant", model=OpenAIResponses(id="gpt-5.4"), + db=db, instructions="You are a research assistant. Find information and provide detailed analysis.", tools=[WebSearchTools()], markdown=True, @@ -36,6 +40,7 @@ writer = Agent( name="writer", role="Content Writer", model=OpenAIResponses(id="gpt-5.4"), + db=db, instructions="You are a content writer. Create well-structured content based on research.", tools=[WebSearchTools()], markdown=True, @@ -108,4 +113,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/agui/research_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/agui/research_team.py) +Full source: [cookbook/05_agent_os/interfaces/agui/research_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/agui/research_team.py) diff --git a/examples/agent-os/interfaces/agui/shared-state.mdx b/examples/agent-os/interfaces/agui/shared-state.mdx index 3effd4f5a..67294405b 100644 --- a/examples/agent-os/interfaces/agui/shared-state.mdx +++ b/examples/agent-os/interfaces/agui/shared-state.mdx @@ -30,11 +30,13 @@ STATE_DELTA events that the frontend uses to update the recipe UI. """ from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb from agno.models.openai import OpenAIResponses shared_state_agent = Agent( name="shared_state", model=OpenAIResponses(id="gpt-5.5"), + db=SqliteDb(db_file="/tmp/agui_shared_state.db"), session_state={ "recipe": { "title": "Make Your Recipe", @@ -111,4 +113,4 @@ Example: To add an ingredient, include the existing ingredients plus the new one -Full source: [cookbook/05_agent_os/interfaces/agui/shared_state.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/agui/shared_state.py) +Full source: [cookbook/05_agent_os/interfaces/agui/shared_state.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/agui/shared_state.py) diff --git a/examples/agent-os/interfaces/agui/showcase.mdx b/examples/agent-os/interfaces/agui/showcase.mdx index afabcd4ff..c5bd5e7b9 100644 --- a/examples/agent-os/interfaces/agui/showcase.mdx +++ b/examples/agent-os/interfaces/agui/showcase.mdx @@ -4,7 +4,7 @@ description: "Single server exposing all AG-UI Dojo demo endpoints." source: cookbook/05_agent_os/interfaces/agui/showcase.py --- -Single server exposing all AG-UI Dojo demo endpoints. Run this to test AG-UI integration with the Dojo frontend at localhost:3002. +Single server exposing all AG-UI Dojo demo endpoints. Run this to test AG-UI integration with the Dojo frontend at localhost:3000. ```python showcase.py """ @@ -12,7 +12,7 @@ AG-UI Showcase ============== Single server exposing all AG-UI Dojo demo endpoints. -Run this to test AG-UI integration with the Dojo frontend at localhost:3002. +Run this to test AG-UI integration with the Dojo frontend at localhost:3000. Imports agents from individual files and mounts them at Dojo-compatible paths. """ @@ -21,11 +21,14 @@ from agent_with_media import media_agent from agentic_chat import agentic_chat_agent from agno.os import AgentOS from agno.os.interfaces.agui import AGUI +from backend_feedback import backend_feedback_agent from backend_tool_rendering import backend_tool_agent from human_in_the_loop import hitl_agent from reasoning_agent import chat_agent as reasoning_agent from shared_state import shared_state_agent from tool_based_generative_ui import generative_ui_agent +from tool_confirmation import tool_confirmation_agent +from user_input import user_input_agent agent_os = AgentOS( agents=[ @@ -36,6 +39,9 @@ agent_os = AgentOS( shared_state_agent, reasoning_agent, media_agent, + tool_confirmation_agent, + user_input_agent, + backend_feedback_agent, ], interfaces=[ AGUI(agent=agentic_chat_agent, prefix="/agentic_chat"), @@ -45,6 +51,9 @@ agent_os = AgentOS( AGUI(agent=shared_state_agent, prefix="/shared_state"), AGUI(agent=reasoning_agent, prefix="/agentic_chat_reasoning"), AGUI(agent=media_agent, prefix="/agentic_chat_multimodal"), + AGUI(agent=tool_confirmation_agent, prefix="/tool_confirmation"), + AGUI(agent=user_input_agent, prefix="/user_input"), + AGUI(agent=backend_feedback_agent, prefix="/backend_feedback"), ], ) app = agent_os.get_app() @@ -53,12 +62,15 @@ if __name__ == "__main__": print("AG-UI Showcase Server") print("Endpoints:") print(" /agentic_chat — Chat, Tools, Streaming") - print(" /backend_tool_rendering — Agent State, Collaborating") - print(" /human_in_the_loop — HITL, Interactivity") + print(" /backend_tool_rendering — Backend tool rendering") + print(" /human_in_the_loop — Task planning with step selection") print(" /tool_based_generative_ui — Generative UI (action), Tools") print(" /shared_state — Agent State, Collaborating") print(" /agentic_chat_reasoning — Chat, Tools, Streaming, Reasoning") print(" /agentic_chat_multimodal — Chat, Multimodal, Streaming") + print(" /tool_confirmation — Email/delete with confirmation") + print(" /user_input — Text/secret input collection") + print(" /backend_feedback — Multiple choice selection") agent_os.serve(app="showcase:app", reload=True, port=9001) ``` @@ -74,6 +86,7 @@ Uses Google Gemini to analyze attached files. Set GOOGLE_API_KEY env var. """ from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb from agno.models.google import Gemini from agno.os import AgentOS from agno.os.interfaces.agui import AGUI @@ -85,6 +98,7 @@ from agno.os.interfaces.agui import AGUI media_agent = Agent( name="Media Agent", model=Gemini(id="gemini-2.5-flash"), + db=SqliteDb(db_file="/tmp/agui_agent_with_media.db"), instructions="Analyze any image, audio, video, or document the user sends and answer their question about it.", add_datetime_to_context=True, markdown=True, @@ -199,6 +213,45 @@ Be helpful and use tools when appropriate.""", ) ``` +```python backend_feedback.py +""" +Backend Feedback — Dojo Demo +============================ + +Frontend-provided tool: get_user_choice (via useHumanInTheLoop) + +The frontend defines this tool for presenting multiple choices to the user. +When called, it renders a card with radio buttons for selection. +""" + +from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb +from agno.models.openai import OpenAIResponses + +backend_feedback_agent = Agent( + name="backend_feedback", + model=OpenAIResponses(id="gpt-5.5"), + db=SqliteDb(db_file="/tmp/agui_backend_feedback.db"), + instructions="""You are an assistant that helps users make decisions. + +When you need the user to choose from options: +- Call get_user_choice with: question, options (array of strings) +- Wait for user to select an option + +Example get_user_choice call: +{ + "question": "What type of cuisine would you prefer for dinner?", + "options": ["Italian", "Japanese", "Mexican", "Indian", "Thai"] +} + +After receiving the selection: +- Acknowledge their choice +- Provide relevant recommendations or next steps based on their selection +- Ask follow-up questions if needed using get_user_choice again""", + markdown=True, +) +``` + ```python backend_tool_rendering.py """ Backend Tool Rendering — Dojo Demo @@ -212,6 +265,7 @@ Dojo expects get_weather(location: str) with detailed return: """ from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb from agno.models.openai import OpenAIResponses from agno.tools import tool @@ -271,6 +325,7 @@ def get_weather(location: str) -> dict: backend_tool_agent = Agent( name="backend_tool_rendering", model=OpenAIResponses(id="gpt-5.5"), + db=SqliteDb(db_file="/tmp/agui_backend_tool_rendering.db"), tools=[get_weather], instructions="""You help users check weather. When asked about weather, always use the get_weather tool. @@ -284,61 +339,49 @@ The tool returns structured data that the frontend will render as a weather card Human in the Loop — Dojo Demo ============================== -HITL tool: generate_task_steps (requires_confirmation) +Frontend-provided tool: generate_task_steps (external_execution) -Dojo expects generate_task_steps that returns: -- steps: list of {description: str, status: "enabled"|"disabled"|"executing"} +The frontend defines this tool via useHumanInTheLoop hook. The agent calls it, +and the frontend renders an interactive step-selector UI where the user can +toggle steps on/off and confirm. -The frontend renders a step selector UI where user can toggle steps and confirm/reject. +Backend does NOT define the tool — it comes from the frontend in the request. """ -from typing import List - from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb from agno.models.openai import OpenAIResponses -from agno.tools import tool -from pydantic import BaseModel, Field - - -class TaskStep(BaseModel): - description: str = Field(description="Description of the step") - status: str = Field( - default="enabled", description="Status: enabled, disabled, or executing" - ) +hitl_agent = Agent( + name="human_in_the_loop", + model=OpenAIResponses(id="gpt-5.5"), + db=SqliteDb(db_file="/tmp/agui_human_in_the_loop.db"), + instructions="""You are a task planning assistant. When asked to plan something: -@tool(requires_confirmation=True) -def generate_task_steps(steps: List[TaskStep]) -> str: - """Generate a list of task steps for the user to review and confirm. +1. **IMMEDIATELY call the generate_task_steps tool** with a list of steps +2. Generate exactly 10 clear, actionable steps +3. Each step must be an object with: + - description: Brief imperative form (e.g., "Research travel options") + - status: Set to "enabled" initially - The frontend will display these steps with checkboxes. - User can enable/disable steps before confirming execution. - """ - enabled_steps = [s for s in steps if s.status == "enabled"] - return f"Executing {len(enabled_steps)} steps: " + ", ".join( - s.description for s in enabled_steps - ) +Example tool call for "plan a trip to Mars": +{ + "steps": [ + {"description": "Research Mars travel options", "status": "enabled"}, + {"description": "Prepare necessary equipment", "status": "enabled"}, + {"description": "Complete health screenings", "status": "enabled"}, + ... + ] +} +After calling the tool: +- Briefly confirm: "I've created a 10-step plan for you!" +- Don't repeat the steps (they're visible in the UI) +- Ask the user to review and select which steps to perform -hitl_agent = Agent( - name="human_in_the_loop", - model=OpenAIResponses(id="gpt-5.5"), - tools=[generate_task_steps], - instructions="""You help users plan tasks that require confirmation. - -When asked to plan something (trip, recipe, project, etc.): -1. Break it down into clear steps (5-10 steps typically) -2. Use the generate_task_steps tool with a list of steps -3. Each step should have a description and status="enabled" - -Example: For "plan a trip to Paris", create steps like: -- Book flights -- Reserve hotel -- Plan activities -- Pack luggage -- etc. - -The user will review and confirm which steps to execute.""", +When user provides feedback (after clicking "Perform Steps"): +- Acknowledge which steps were approved +- Provide a brief summary of next actions""", markdown=True, ) ``` @@ -352,6 +395,7 @@ Demonstrates reasoning agent. """ from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb from agno.models.openai import OpenAIResponses from agno.os import AgentOS from agno.os.interfaces.agui import AGUI @@ -364,6 +408,7 @@ from agno.tools.websearch import WebSearchTools chat_agent = Agent( name="Assistant", model=OpenAIResponses(id="o4-mini"), + db=SqliteDb(db_file="/tmp/agui_reasoning_agent.db"), instructions="You are a helpful AI assistant.", add_datetime_to_context=True, add_history_to_context=True, @@ -419,11 +464,13 @@ STATE_DELTA events that the frontend uses to update the recipe UI. """ from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb from agno.models.openai import OpenAIResponses shared_state_agent = Agent( name="shared_state", model=OpenAIResponses(id="gpt-5.5"), + db=SqliteDb(db_file="/tmp/agui_shared_state.db"), session_state={ "recipe": { "title": "Make Your Recipe", @@ -488,6 +535,7 @@ Valid image names (from Dojo): from typing import List from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb from agno.models.openai import OpenAIResponses from agno.tools import tool @@ -523,6 +571,7 @@ def generate_haiku( generative_ui_agent = Agent( name="tool_based_generative_ui", model=OpenAIResponses(id="gpt-5.5"), + db=SqliteDb(db_file="/tmp/agui_tool_based_generative_ui.db"), tools=[generate_haiku], instructions=f"""You are a haiku poet. When asked to create a haiku: @@ -538,6 +587,108 @@ The frontend will render your haiku with the image and gradient as a beautiful c ) ``` +```python tool_confirmation.py +""" +Tool Confirmation — Dojo Demo +============================= + +Frontend-provided tools: send_email, delete_files (via useHumanInTheLoop) + +The frontend defines these tools as requiring confirmation before execution. +When the agent calls them, the frontend renders a confirmation card. +User can approve or reject the action. +""" + +from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb +from agno.models.openai import OpenAIResponses + +tool_confirmation_agent = Agent( + name="tool_confirmation", + model=OpenAIResponses(id="gpt-5.5"), + db=SqliteDb(db_file="/tmp/agui_tool_confirmation.db"), + instructions="""You are an assistant that can send emails and delete files. +Both actions require user confirmation before execution. + +When asked to send an email: +- Call the send_email tool with: to, subject, body +- Wait for user confirmation + +When asked to delete files: +- Call the delete_files tool with: action, description, details +- Wait for user confirmation + +Example email tool call: +{ + "to": "alice@example.com", + "subject": "Hello!", + "body": "Just wanted to say hi." +} + +Example delete tool call: +{ + "action": "Delete temporary files", + "description": "Remove all .tmp files from the project", + "details": {"count": "15 files", "size": "2.3 MB"} +} + +After user confirms or rejects: +- Acknowledge the decision +- If confirmed, confirm the action was taken +- If rejected, acknowledge and ask if there's anything else""", + markdown=True, +) +``` + +```python user_input.py +""" +User Input — Dojo Demo +====================== + +Frontend-provided tools: get_user_text, get_secret_input (via useHumanInTheLoop) + +The frontend defines these tools for collecting user input inline. +- get_user_text: Shows a text input field +- get_secret_input: Shows a password-style input for sensitive data +""" + +from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb +from agno.models.openai import OpenAIResponses + +user_input_agent = Agent( + name="user_input", + model=OpenAIResponses(id="gpt-5.5"), + db=SqliteDb(db_file="/tmp/agui_user_input.db"), + instructions="""You are an assistant that can request input from the user. + +When you need text input from the user: +- Call get_user_text with: prompt, placeholder (optional) +- Wait for user to provide input + +When you need sensitive input (API keys, passwords): +- Call get_secret_input with: prompt, service (optional) +- Wait for user to provide input + +Example get_user_text call: +{ + "prompt": "What would you like to search for?", + "placeholder": "Enter search term..." +} + +Example get_secret_input call: +{ + "prompt": "Please enter your OpenAI API key", + "service": "OpenAI" +} + +After receiving input: +- Acknowledge what was provided (don't echo secrets) +- Use the input to complete the user's request""", + markdown=True, +) +``` + ## Run the Example @@ -564,11 +715,11 @@ The frontend will render your haiku with the image and gradient as a beautiful c - Save the code blocks above as `showcase.py`, `agent_with_media.py`, `agentic_chat.py`, `backend_tool_rendering.py`, `human_in_the_loop.py`, `reasoning_agent.py`, `shared_state.py`, `tool_based_generative_ui.py` in the same directory, then run: + Save the code blocks above as `showcase.py`, `agent_with_media.py`, `agentic_chat.py`, `backend_feedback.py`, `backend_tool_rendering.py`, `human_in_the_loop.py`, `reasoning_agent.py`, `shared_state.py`, `tool_based_generative_ui.py`, `tool_confirmation.py`, `user_input.py` in the same directory, then run: ```bash python showcase.py ``` -Full source: [cookbook/05_agent_os/interfaces/agui/showcase.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/agui/showcase.py) +Full source: [cookbook/05_agent_os/interfaces/agui/showcase.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/agui/showcase.py) diff --git a/examples/agent-os/interfaces/agui/state-events.mdx b/examples/agent-os/interfaces/agui/state-events.mdx index 5b3d5b43c..73e22b155 100644 --- a/examples/agent-os/interfaces/agui/state-events.mdx +++ b/examples/agent-os/interfaces/agui/state-events.mdx @@ -16,6 +16,7 @@ The LLM uses the generic update_session_state tool to modify recipe state. """ from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb from agno.models.openai import OpenAIResponses from agno.os import AgentOS from agno.os.interfaces.agui import AGUI @@ -23,6 +24,7 @@ from agno.os.interfaces.agui import AGUI agent = Agent( name="RecipeAssistant", model=OpenAIResponses(id="gpt-5.5"), + db=SqliteDb(db_file="/tmp/agui_state_events.db"), session_state={ "recipe": { "title": "", @@ -93,4 +95,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/agui/state_events.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/agui/state_events.py) +Full source: [cookbook/05_agent_os/interfaces/agui/state_events.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/agui/state_events.py) diff --git a/examples/agent-os/interfaces/agui/structured-output.mdx b/examples/agent-os/interfaces/agui/structured-output.mdx index 36a65b09e..8ec60c381 100644 --- a/examples/agent-os/interfaces/agui/structured-output.mdx +++ b/examples/agent-os/interfaces/agui/structured-output.mdx @@ -15,6 +15,7 @@ Demonstrates structured output. from typing import List from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb from agno.models.openai import OpenAIResponses from agno.os import AgentOS from agno.os.interfaces.agui import AGUI @@ -47,6 +48,7 @@ class MovieScript(BaseModel): chat_agent = Agent( name="Output Schema Agent", model=OpenAIResponses(id="gpt-5.4"), + db=SqliteDb(db_file="/tmp/agui_structured_output.db"), description="You write movie scripts.", markdown=True, output_schema=MovieScript, @@ -106,4 +108,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/agui/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/agui/structured_output.py) +Full source: [cookbook/05_agent_os/interfaces/agui/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/agui/structured_output.py) diff --git a/examples/agent-os/interfaces/agui/team-human-in-the-loop.mdx b/examples/agent-os/interfaces/agui/team-human-in-the-loop.mdx new file mode 100644 index 000000000..7898b8f65 --- /dev/null +++ b/examples/agent-os/interfaces/agui/team-human-in-the-loop.mdx @@ -0,0 +1,114 @@ +--- +title: "Team Human in the Loop" +description: "Demonstrates team with member tool requiring confirmation." +source: cookbook/05_agent_os/interfaces/agui/team_human_in_the_loop.py +--- + +```python team_human_in_the_loop.py +""" +Team Human in the Loop +====================== + +Demonstrates team with member tool requiring confirmation. +""" + +from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb +from agno.models.openai import OpenAIResponses +from agno.os import AgentOS +from agno.os.interfaces.agui import AGUI +from agno.team import Team +from agno.tools import tool + +# --------------------------------------------------------------------------- +# Create Example +# --------------------------------------------------------------------------- + +db = SqliteDb(db_file="/tmp/agui_team_hitl.db") + + +@tool(requires_confirmation=True) +def send_email(to: str, subject: str, body: str) -> str: + """Send an email.""" + return f"Email sent to {to} with subject '{subject}'." + + +researcher = Agent( + name="Researcher", + model=OpenAIResponses(id="gpt-5.5"), + db=db, + instructions="Answer factual questions concisely. You do not send emails.", + markdown=True, +) + +emailer = Agent( + name="Emailer", + model=OpenAIResponses(id="gpt-5.5"), + db=db, + tools=[send_email], + instructions=( + "You send emails. Call send_email with the recipient, a subject, and a body; " + "if the user did not give a subject or body, draft a reasonable one. " + "After a confirmed send, briefly say the email was sent. " + "If the user declines, do not resend; acknowledge it was cancelled." + ), + markdown=True, +) + +support_team = Team( + name="support_team", + model=OpenAIResponses(id="gpt-5.5"), + members=[researcher, emailer], + db=db, + instructions="Route email requests to the Emailer and factual questions to the Researcher.", + add_history_to_context=True, + markdown=True, +) + +agent_os = AgentOS( + teams=[support_team], + interfaces=[AGUI(team=support_team, prefix="/team_human_in_the_loop")], +) +app = agent_os.get_app() + + +# --------------------------------------------------------------------------- +# Run Example +# --------------------------------------------------------------------------- + +if __name__ == "__main__": + agent_os.serve(app="team_human_in_the_loop:app", port=9001, reload=True) +``` + +## Run the Example + + + + + + ```bash + uv pip install -U "agno[agui,os]" openai + ``` + + + + + ```bash Mac/Linux + export OPENAI_API_KEY="your_openai_api_key_here" + ``` + + ```bash Windows + $Env:OPENAI_API_KEY="your_openai_api_key_here" + ``` + + + + + Save the code above as `team_human_in_the_loop.py`, then run: + ```bash + python team_human_in_the_loop.py + ``` + + + +Full source: [cookbook/05_agent_os/interfaces/agui/team_human_in_the_loop.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/agui/team_human_in_the_loop.py) diff --git a/examples/agent-os/interfaces/agui/team-state-events.mdx b/examples/agent-os/interfaces/agui/team-state-events.mdx index 0541fd9b8..489d053b8 100644 --- a/examples/agent-os/interfaces/agui/team-state-events.mdx +++ b/examples/agent-os/interfaces/agui/team-state-events.mdx @@ -16,15 +16,19 @@ The team coordinates multiple agents while maintaining shared session state. """ from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb from agno.models.openai import OpenAIResponses from agno.os import AgentOS from agno.os.interfaces.agui import AGUI from agno.team.team import Team +db = SqliteDb(db_file="/tmp/agui_team_state_events.db") + recipe_creator = Agent( name="recipe_creator", role="Recipe Creator", model=OpenAIResponses(id="gpt-5.5"), + db=db, instructions="You create recipes with ingredients and instructions. Focus on the cooking process.", markdown=True, ) @@ -33,6 +37,7 @@ nutrition_advisor = Agent( name="nutrition_advisor", role="Nutrition Advisor", model=OpenAIResponses(id="gpt-5.5"), + db=db, instructions="You advise on dietary preferences and nutritional aspects of recipes.", markdown=True, ) @@ -112,4 +117,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/agui/team_state_events.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/agui/team_state_events.py) +Full source: [cookbook/05_agent_os/interfaces/agui/team_state_events.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/agui/team_state_events.py) diff --git a/examples/agent-os/interfaces/agui/tool-based-generative-ui.mdx b/examples/agent-os/interfaces/agui/tool-based-generative-ui.mdx index 71a56449b..fb37a4508 100644 --- a/examples/agent-os/interfaces/agui/tool-based-generative-ui.mdx +++ b/examples/agent-os/interfaces/agui/tool-based-generative-ui.mdx @@ -35,6 +35,7 @@ Valid image names (from Dojo): from typing import List from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb from agno.models.openai import OpenAIResponses from agno.tools import tool @@ -70,6 +71,7 @@ def generate_haiku( generative_ui_agent = Agent( name="tool_based_generative_ui", model=OpenAIResponses(id="gpt-5.5"), + db=SqliteDb(db_file="/tmp/agui_tool_based_generative_ui.db"), tools=[generate_haiku], instructions=f"""You are a haiku poet. When asked to create a haiku: @@ -126,4 +128,4 @@ The frontend will render your haiku with the image and gradient as a beautiful c -Full source: [cookbook/05_agent_os/interfaces/agui/tool_based_generative_ui.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/agui/tool_based_generative_ui.py) +Full source: [cookbook/05_agent_os/interfaces/agui/tool_based_generative_ui.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/agui/tool_based_generative_ui.py) diff --git a/examples/agent-os/interfaces/agui/tool-confirmation.mdx b/examples/agent-os/interfaces/agui/tool-confirmation.mdx new file mode 100644 index 000000000..e28323166 --- /dev/null +++ b/examples/agent-os/interfaces/agui/tool-confirmation.mdx @@ -0,0 +1,91 @@ +--- +title: "Tool Confirmation: Dojo Demo" +description: "Frontend-provided tools: send_email, delete_files (via useHumanInTheLoop)." +source: cookbook/05_agent_os/interfaces/agui/tool_confirmation.py +--- + +```python tool_confirmation.py +""" +Tool Confirmation — Dojo Demo +============================= + +Frontend-provided tools: send_email, delete_files (via useHumanInTheLoop) + +The frontend defines these tools as requiring confirmation before execution. +When the agent calls them, the frontend renders a confirmation card. +User can approve or reject the action. +""" + +from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb +from agno.models.openai import OpenAIResponses + +tool_confirmation_agent = Agent( + name="tool_confirmation", + model=OpenAIResponses(id="gpt-5.5"), + db=SqliteDb(db_file="/tmp/agui_tool_confirmation.db"), + instructions="""You are an assistant that can send emails and delete files. +Both actions require user confirmation before execution. + +When asked to send an email: +- Call the send_email tool with: to, subject, body +- Wait for user confirmation + +When asked to delete files: +- Call the delete_files tool with: action, description, details +- Wait for user confirmation + +Example email tool call: +{ + "to": "alice@example.com", + "subject": "Hello!", + "body": "Just wanted to say hi." +} + +Example delete tool call: +{ + "action": "Delete temporary files", + "description": "Remove all .tmp files from the project", + "details": {"count": "15 files", "size": "2.3 MB"} +} + +After user confirms or rejects: +- Acknowledge the decision +- If confirmed, confirm the action was taken +- If rejected, acknowledge and ask if there's anything else""", + markdown=True, +) +``` + +## Run the Example + + + + + + ```bash + uv pip install -U agno openai sqlalchemy + ``` + + + + + ```bash Mac/Linux + export OPENAI_API_KEY="your_openai_api_key_here" + ``` + + ```bash Windows + $Env:OPENAI_API_KEY="your_openai_api_key_here" + ``` + + + + + Save the code above as `tool_confirmation.py`, then run: + ```bash + python tool_confirmation.py + ``` + + + +Full source: [cookbook/05_agent_os/interfaces/agui/tool_confirmation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/agui/tool_confirmation.py) diff --git a/examples/agent-os/interfaces/agui/user-input.mdx b/examples/agent-os/interfaces/agui/user-input.mdx new file mode 100644 index 000000000..df289989e --- /dev/null +++ b/examples/agent-os/interfaces/agui/user-input.mdx @@ -0,0 +1,87 @@ +--- +title: "User Input: Dojo Demo" +description: "Frontend-provided tools: get_user_text, get_secret_input (via useHumanInTheLoop)." +source: cookbook/05_agent_os/interfaces/agui/user_input.py +--- + +```python user_input.py +""" +User Input — Dojo Demo +====================== + +Frontend-provided tools: get_user_text, get_secret_input (via useHumanInTheLoop) + +The frontend defines these tools for collecting user input inline. +- get_user_text: Shows a text input field +- get_secret_input: Shows a password-style input for sensitive data +""" + +from agno.agent.agent import Agent +from agno.db.sqlite import SqliteDb +from agno.models.openai import OpenAIResponses + +user_input_agent = Agent( + name="user_input", + model=OpenAIResponses(id="gpt-5.5"), + db=SqliteDb(db_file="/tmp/agui_user_input.db"), + instructions="""You are an assistant that can request input from the user. + +When you need text input from the user: +- Call get_user_text with: prompt, placeholder (optional) +- Wait for user to provide input + +When you need sensitive input (API keys, passwords): +- Call get_secret_input with: prompt, service (optional) +- Wait for user to provide input + +Example get_user_text call: +{ + "prompt": "What would you like to search for?", + "placeholder": "Enter search term..." +} + +Example get_secret_input call: +{ + "prompt": "Please enter your OpenAI API key", + "service": "OpenAI" +} + +After receiving input: +- Acknowledge what was provided (don't echo secrets) +- Use the input to complete the user's request""", + markdown=True, +) +``` + +## Run the Example + + + + + + ```bash + uv pip install -U agno openai sqlalchemy + ``` + + + + + ```bash Mac/Linux + export OPENAI_API_KEY="your_openai_api_key_here" + ``` + + ```bash Windows + $Env:OPENAI_API_KEY="your_openai_api_key_here" + ``` + + + + + Save the code above as `user_input.py`, then run: + ```bash + python user_input.py + ``` + + + +Full source: [cookbook/05_agent_os/interfaces/agui/user_input.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/agui/user_input.py) diff --git a/examples/agent-os/interfaces/all-interfaces.mdx b/examples/agent-os/interfaces/all-interfaces.mdx index 2c54676da..3220041c9 100644 --- a/examples/agent-os/interfaces/all-interfaces.mdx +++ b/examples/agent-os/interfaces/all-interfaces.mdx @@ -178,4 +178,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/all_interfaces.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/all_interfaces.py) +Full source: [cookbook/05_agent_os/interfaces/all_interfaces.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/all_interfaces.py) diff --git a/examples/agent-os/interfaces/slack/agent-with-user-memory.mdx b/examples/agent-os/interfaces/slack/agent-with-user-memory.mdx index 827314010..c3f285609 100644 --- a/examples/agent-os/interfaces/slack/agent-with-user-memory.mdx +++ b/examples/agent-os/interfaces/slack/agent-with-user-memory.mdx @@ -142,4 +142,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/slack/agent_with_user_memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/slack/agent_with_user_memory.py) +Full source: [cookbook/05_agent_os/interfaces/slack/agent_with_user_memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/slack/agent_with_user_memory.py) diff --git a/examples/agent-os/interfaces/slack/basic-workflow.mdx b/examples/agent-os/interfaces/slack/basic-workflow.mdx index fbe77512e..3f4c891e4 100644 --- a/examples/agent-os/interfaces/slack/basic-workflow.mdx +++ b/examples/agent-os/interfaces/slack/basic-workflow.mdx @@ -138,4 +138,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/slack/basic_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/slack/basic_workflow.py) +Full source: [cookbook/05_agent_os/interfaces/slack/basic_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/slack/basic_workflow.py) diff --git a/examples/agent-os/interfaces/slack/basic.mdx b/examples/agent-os/interfaces/slack/basic.mdx index 8c2a4abdc..ffbab550c 100644 --- a/examples/agent-os/interfaces/slack/basic.mdx +++ b/examples/agent-os/interfaces/slack/basic.mdx @@ -109,4 +109,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/slack/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/slack/basic.py) +Full source: [cookbook/05_agent_os/interfaces/slack/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/slack/basic.py) diff --git a/examples/agent-os/interfaces/slack/channel-summarizer.mdx b/examples/agent-os/interfaces/slack/channel-summarizer.mdx index 13bdfbbcc..54ddeac09 100644 --- a/examples/agent-os/interfaces/slack/channel-summarizer.mdx +++ b/examples/agent-os/interfaces/slack/channel-summarizer.mdx @@ -137,4 +137,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/slack/channel_summarizer.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/slack/channel_summarizer.py) +Full source: [cookbook/05_agent_os/interfaces/slack/channel_summarizer.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/slack/channel_summarizer.py) diff --git a/examples/agent-os/interfaces/slack/file-analyst.mdx b/examples/agent-os/interfaces/slack/file-analyst.mdx index 8a0d0bfd2..d3e604d2c 100644 --- a/examples/agent-os/interfaces/slack/file-analyst.mdx +++ b/examples/agent-os/interfaces/slack/file-analyst.mdx @@ -121,4 +121,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/slack/file_analyst.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/slack/file_analyst.py) +Full source: [cookbook/05_agent_os/interfaces/slack/file_analyst.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/slack/file_analyst.py) diff --git a/examples/agent-os/interfaces/slack/hitl-audit-flow.mdx b/examples/agent-os/interfaces/slack/hitl-audit-flow.mdx index 5a8e809ce..0bab6d4a5 100644 --- a/examples/agent-os/interfaces/slack/hitl-audit-flow.mdx +++ b/examples/agent-os/interfaces/slack/hitl-audit-flow.mdx @@ -210,4 +210,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/slack/hitl_audit_flow.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/slack/hitl_audit_flow.py) +Full source: [cookbook/05_agent_os/interfaces/slack/hitl_audit_flow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/slack/hitl_audit_flow.py) diff --git a/examples/agent-os/interfaces/slack/hitl-confirmation.mdx b/examples/agent-os/interfaces/slack/hitl-confirmation.mdx index eb876e4e3..06a53be23 100644 --- a/examples/agent-os/interfaces/slack/hitl-confirmation.mdx +++ b/examples/agent-os/interfaces/slack/hitl-confirmation.mdx @@ -186,4 +186,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/slack/hitl_confirmation.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/slack/hitl_confirmation.py) +Full source: [cookbook/05_agent_os/interfaces/slack/hitl_confirmation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/slack/hitl_confirmation.py) diff --git a/examples/agent-os/interfaces/slack/hitl-external-execution.mdx b/examples/agent-os/interfaces/slack/hitl-external-execution.mdx index a555eebda..032c94159 100644 --- a/examples/agent-os/interfaces/slack/hitl-external-execution.mdx +++ b/examples/agent-os/interfaces/slack/hitl-external-execution.mdx @@ -176,4 +176,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/slack/hitl_external_execution.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/slack/hitl_external_execution.py) +Full source: [cookbook/05_agent_os/interfaces/slack/hitl_external_execution.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/slack/hitl_external_execution.py) diff --git a/examples/agent-os/interfaces/slack/hitl-incident-commander.mdx b/examples/agent-os/interfaces/slack/hitl-incident-commander.mdx index f5ef137ae..a8b36b929 100644 --- a/examples/agent-os/interfaces/slack/hitl-incident-commander.mdx +++ b/examples/agent-os/interfaces/slack/hitl-incident-commander.mdx @@ -249,4 +249,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/slack/hitl_incident_commander.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/slack/hitl_incident_commander.py) +Full source: [cookbook/05_agent_os/interfaces/slack/hitl_incident_commander.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/slack/hitl_incident_commander.py) diff --git a/examples/agent-os/interfaces/slack/hitl-required-approval.mdx b/examples/agent-os/interfaces/slack/hitl-required-approval.mdx index 3ef7cade2..7dda22a98 100644 --- a/examples/agent-os/interfaces/slack/hitl-required-approval.mdx +++ b/examples/agent-os/interfaces/slack/hitl-required-approval.mdx @@ -238,4 +238,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/slack/hitl_required_approval.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/slack/hitl_required_approval.py) +Full source: [cookbook/05_agent_os/interfaces/slack/hitl_required_approval.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/slack/hitl_required_approval.py) diff --git a/examples/agent-os/interfaces/slack/hitl-simple.mdx b/examples/agent-os/interfaces/slack/hitl-simple.mdx index 9f9bede1d..798c1ca7c 100644 --- a/examples/agent-os/interfaces/slack/hitl-simple.mdx +++ b/examples/agent-os/interfaces/slack/hitl-simple.mdx @@ -125,4 +125,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/slack/hitl_simple.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/slack/hitl_simple.py) +Full source: [cookbook/05_agent_os/interfaces/slack/hitl_simple.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/slack/hitl_simple.py) diff --git a/examples/agent-os/interfaces/slack/hitl-user-feedback.mdx b/examples/agent-os/interfaces/slack/hitl-user-feedback.mdx index 4a2c40690..5bc237400 100644 --- a/examples/agent-os/interfaces/slack/hitl-user-feedback.mdx +++ b/examples/agent-os/interfaces/slack/hitl-user-feedback.mdx @@ -123,4 +123,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/slack/hitl_user_feedback.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/slack/hitl_user_feedback.py) +Full source: [cookbook/05_agent_os/interfaces/slack/hitl_user_feedback.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/slack/hitl_user_feedback.py) diff --git a/examples/agent-os/interfaces/slack/hitl-user-input.mdx b/examples/agent-os/interfaces/slack/hitl-user-input.mdx index a09d3a720..d4e00210b 100644 --- a/examples/agent-os/interfaces/slack/hitl-user-input.mdx +++ b/examples/agent-os/interfaces/slack/hitl-user-input.mdx @@ -186,4 +186,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/slack/hitl_user_input.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/slack/hitl_user_input.py) +Full source: [cookbook/05_agent_os/interfaces/slack/hitl_user_input.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/slack/hitl_user_input.py) diff --git a/examples/agent-os/interfaces/slack/multi-bot.mdx b/examples/agent-os/interfaces/slack/multi-bot.mdx index 9ec6982a2..b8a3a258c 100644 --- a/examples/agent-os/interfaces/slack/multi-bot.mdx +++ b/examples/agent-os/interfaces/slack/multi-bot.mdx @@ -136,4 +136,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/slack/multi_bot.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/slack/multi_bot.py) +Full source: [cookbook/05_agent_os/interfaces/slack/multi_bot.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/slack/multi_bot.py) diff --git a/examples/agent-os/interfaces/slack/multimodal-team.mdx b/examples/agent-os/interfaces/slack/multimodal-team.mdx index e2c385b35..be3f4e705 100644 --- a/examples/agent-os/interfaces/slack/multimodal-team.mdx +++ b/examples/agent-os/interfaces/slack/multimodal-team.mdx @@ -124,4 +124,4 @@ if __name__ == "__main__": Follow [Image Generation Agent](/models/providers/native/openai/responses/usage/image-generation-agent) to generate images with GPT Image 2. -Full source: [cookbook/05_agent_os/interfaces/slack/multimodal_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/slack/multimodal_team.py) +Full source: [cookbook/05_agent_os/interfaces/slack/multimodal_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/slack/multimodal_team.py) diff --git a/examples/agent-os/interfaces/slack/multimodal-workflow.mdx b/examples/agent-os/interfaces/slack/multimodal-workflow.mdx index 2785a341a..166fc3f3f 100644 --- a/examples/agent-os/interfaces/slack/multimodal-workflow.mdx +++ b/examples/agent-os/interfaces/slack/multimodal-workflow.mdx @@ -155,4 +155,4 @@ if __name__ == "__main__": Follow [Image Generation Agent](/models/providers/native/openai/responses/usage/image-generation-agent) to generate images with GPT Image 2. -Full source: [cookbook/05_agent_os/interfaces/slack/multimodal_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/slack/multimodal_workflow.py) +Full source: [cookbook/05_agent_os/interfaces/slack/multimodal_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/slack/multimodal_workflow.py) diff --git a/examples/agent-os/interfaces/slack/multiple-instances.mdx b/examples/agent-os/interfaces/slack/multiple-instances.mdx index e74772cfe..c5c38c0c8 100644 --- a/examples/agent-os/interfaces/slack/multiple-instances.mdx +++ b/examples/agent-os/interfaces/slack/multiple-instances.mdx @@ -139,4 +139,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/slack/multiple_instances.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/slack/multiple_instances.py) +Full source: [cookbook/05_agent_os/interfaces/slack/multiple_instances.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/slack/multiple_instances.py) diff --git a/examples/agent-os/interfaces/slack/reasoning-agent.mdx b/examples/agent-os/interfaces/slack/reasoning-agent.mdx index e9f4260e8..5a60a2d2f 100644 --- a/examples/agent-os/interfaces/slack/reasoning-agent.mdx +++ b/examples/agent-os/interfaces/slack/reasoning-agent.mdx @@ -112,4 +112,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/slack/reasoning_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/slack/reasoning_agent.py) +Full source: [cookbook/05_agent_os/interfaces/slack/reasoning_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/slack/reasoning_agent.py) diff --git a/examples/agent-os/interfaces/slack/research-assistant.mdx b/examples/agent-os/interfaces/slack/research-assistant.mdx index 8d6396952..74c4df2ef 100644 --- a/examples/agent-os/interfaces/slack/research-assistant.mdx +++ b/examples/agent-os/interfaces/slack/research-assistant.mdx @@ -132,4 +132,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/slack/research_assistant.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/slack/research_assistant.py) +Full source: [cookbook/05_agent_os/interfaces/slack/research_assistant.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/slack/research_assistant.py) diff --git a/examples/agent-os/interfaces/slack/streaming-deep-research.mdx b/examples/agent-os/interfaces/slack/streaming-deep-research.mdx index b259ee082..8fda74d0f 100644 --- a/examples/agent-os/interfaces/slack/streaming-deep-research.mdx +++ b/examples/agent-os/interfaces/slack/streaming-deep-research.mdx @@ -150,4 +150,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/slack/streaming_deep_research.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/slack/streaming_deep_research.py) +Full source: [cookbook/05_agent_os/interfaces/slack/streaming_deep_research.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/slack/streaming_deep_research.py) diff --git a/examples/agent-os/interfaces/slack/support-team.mdx b/examples/agent-os/interfaces/slack/support-team.mdx index 0c2791337..927d20450 100644 --- a/examples/agent-os/interfaces/slack/support-team.mdx +++ b/examples/agent-os/interfaces/slack/support-team.mdx @@ -156,4 +156,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/slack/support_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/slack/support_team.py) +Full source: [cookbook/05_agent_os/interfaces/slack/support_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/slack/support_team.py) diff --git a/examples/agent-os/interfaces/slack/team-hitl-confirmation.mdx b/examples/agent-os/interfaces/slack/team-hitl-confirmation.mdx index f31c3a943..0aded771d 100644 --- a/examples/agent-os/interfaces/slack/team-hitl-confirmation.mdx +++ b/examples/agent-os/interfaces/slack/team-hitl-confirmation.mdx @@ -118,4 +118,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/slack/team_hitl_confirmation.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/slack/team_hitl_confirmation.py) +Full source: [cookbook/05_agent_os/interfaces/slack/team_hitl_confirmation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/slack/team_hitl_confirmation.py) diff --git a/examples/agent-os/interfaces/slack/team-hitl-external-execution-simple.mdx b/examples/agent-os/interfaces/slack/team-hitl-external-execution-simple.mdx index 6f80a719e..d3af833c8 100644 --- a/examples/agent-os/interfaces/slack/team-hitl-external-execution-simple.mdx +++ b/examples/agent-os/interfaces/slack/team-hitl-external-execution-simple.mdx @@ -124,4 +124,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/slack/team_hitl_external_execution_simple.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/slack/team_hitl_external_execution_simple.py) +Full source: [cookbook/05_agent_os/interfaces/slack/team_hitl_external_execution_simple.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/slack/team_hitl_external_execution_simple.py) diff --git a/examples/agent-os/interfaces/slack/team-hitl-team-tool-simple.mdx b/examples/agent-os/interfaces/slack/team-hitl-team-tool-simple.mdx index 9500b65c3..03156709a 100644 --- a/examples/agent-os/interfaces/slack/team-hitl-team-tool-simple.mdx +++ b/examples/agent-os/interfaces/slack/team-hitl-team-tool-simple.mdx @@ -129,4 +129,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/slack/team_hitl_team_tool_simple.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/slack/team_hitl_team_tool_simple.py) +Full source: [cookbook/05_agent_os/interfaces/slack/team_hitl_team_tool_simple.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/slack/team_hitl_team_tool_simple.py) diff --git a/examples/agent-os/interfaces/slack/team-hitl-user-input-simple.mdx b/examples/agent-os/interfaces/slack/team-hitl-user-input-simple.mdx index ef0107c0e..3d67a8b4a 100644 --- a/examples/agent-os/interfaces/slack/team-hitl-user-input-simple.mdx +++ b/examples/agent-os/interfaces/slack/team-hitl-user-input-simple.mdx @@ -129,4 +129,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/slack/team_hitl_user_input_simple.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/slack/team_hitl_user_input_simple.py) +Full source: [cookbook/05_agent_os/interfaces/slack/team_hitl_user_input_simple.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/slack/team_hitl_user_input_simple.py) diff --git a/examples/agent-os/interfaces/telegram/agent-with-media.mdx b/examples/agent-os/interfaces/telegram/agent-with-media.mdx index 642a3b866..126ee6722 100644 --- a/examples/agent-os/interfaces/telegram/agent-with-media.mdx +++ b/examples/agent-os/interfaces/telegram/agent-with-media.mdx @@ -99,4 +99,4 @@ if __name__ == "__main__": Follow [Image Generation Agent](/models/providers/native/openai/responses/usage/image-generation-agent) to generate images with GPT Image 2. -Full source: [cookbook/05_agent_os/interfaces/telegram/agent_with_media.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/telegram/agent_with_media.py) +Full source: [cookbook/05_agent_os/interfaces/telegram/agent_with_media.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/telegram/agent_with_media.py) diff --git a/examples/agent-os/interfaces/telegram/agent-with-user-memory.mdx b/examples/agent-os/interfaces/telegram/agent-with-user-memory.mdx index 6bb9fa593..bd56d38bf 100644 --- a/examples/agent-os/interfaces/telegram/agent-with-user-memory.mdx +++ b/examples/agent-os/interfaces/telegram/agent-with-user-memory.mdx @@ -122,4 +122,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/telegram/agent_with_user_memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/telegram/agent_with_user_memory.py) +Full source: [cookbook/05_agent_os/interfaces/telegram/agent_with_user_memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/telegram/agent_with_user_memory.py) diff --git a/examples/agent-os/interfaces/telegram/basic.mdx b/examples/agent-os/interfaces/telegram/basic.mdx index 0e9afc824..734eb75cf 100644 --- a/examples/agent-os/interfaces/telegram/basic.mdx +++ b/examples/agent-os/interfaces/telegram/basic.mdx @@ -108,4 +108,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/telegram/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/telegram/basic.py) +Full source: [cookbook/05_agent_os/interfaces/telegram/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/telegram/basic.py) diff --git a/examples/agent-os/interfaces/telegram/multiple-instances.mdx b/examples/agent-os/interfaces/telegram/multiple-instances.mdx index 4377f393d..1790bd12a 100644 --- a/examples/agent-os/interfaces/telegram/multiple-instances.mdx +++ b/examples/agent-os/interfaces/telegram/multiple-instances.mdx @@ -118,4 +118,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/telegram/multiple_instances.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/telegram/multiple_instances.py) +Full source: [cookbook/05_agent_os/interfaces/telegram/multiple_instances.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/telegram/multiple_instances.py) diff --git a/examples/agent-os/interfaces/telegram/reasoning-agent.mdx b/examples/agent-os/interfaces/telegram/reasoning-agent.mdx index 7ae946dd2..d0e1592b0 100644 --- a/examples/agent-os/interfaces/telegram/reasoning-agent.mdx +++ b/examples/agent-os/interfaces/telegram/reasoning-agent.mdx @@ -104,4 +104,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/telegram/reasoning_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/telegram/reasoning_agent.py) +Full source: [cookbook/05_agent_os/interfaces/telegram/reasoning_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/telegram/reasoning_agent.py) diff --git a/examples/agent-os/interfaces/telegram/streaming-workflow.mdx b/examples/agent-os/interfaces/telegram/streaming-workflow.mdx index 02cc559e6..0bcfd2efe 100644 --- a/examples/agent-os/interfaces/telegram/streaming-workflow.mdx +++ b/examples/agent-os/interfaces/telegram/streaming-workflow.mdx @@ -146,4 +146,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/telegram/streaming_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/telegram/streaming_workflow.py) +Full source: [cookbook/05_agent_os/interfaces/telegram/streaming_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/telegram/streaming_workflow.py) diff --git a/examples/agent-os/interfaces/telegram/streaming.mdx b/examples/agent-os/interfaces/telegram/streaming.mdx index 694243dba..7f5e674cd 100644 --- a/examples/agent-os/interfaces/telegram/streaming.mdx +++ b/examples/agent-os/interfaces/telegram/streaming.mdx @@ -109,4 +109,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/telegram/streaming.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/telegram/streaming.py) +Full source: [cookbook/05_agent_os/interfaces/telegram/streaming.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/telegram/streaming.py) diff --git a/examples/agent-os/interfaces/telegram/team.mdx b/examples/agent-os/interfaces/telegram/team.mdx index 727332c2e..26d31bc7f 100644 --- a/examples/agent-os/interfaces/telegram/team.mdx +++ b/examples/agent-os/interfaces/telegram/team.mdx @@ -126,4 +126,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/telegram/team.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/telegram/team.py) +Full source: [cookbook/05_agent_os/interfaces/telegram/team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/telegram/team.py) diff --git a/examples/agent-os/interfaces/telegram/workflow.mdx b/examples/agent-os/interfaces/telegram/workflow.mdx index b6a3a66ae..dedc09aec 100644 --- a/examples/agent-os/interfaces/telegram/workflow.mdx +++ b/examples/agent-os/interfaces/telegram/workflow.mdx @@ -138,4 +138,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/telegram/workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/telegram/workflow.py) +Full source: [cookbook/05_agent_os/interfaces/telegram/workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/telegram/workflow.py) diff --git a/examples/agent-os/interfaces/whatsapp/agent-with-media.mdx b/examples/agent-os/interfaces/whatsapp/agent-with-media.mdx index 808b61733..db8a85508 100644 --- a/examples/agent-os/interfaces/whatsapp/agent-with-media.mdx +++ b/examples/agent-os/interfaces/whatsapp/agent-with-media.mdx @@ -100,4 +100,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/whatsapp/agent_with_media.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/whatsapp/agent_with_media.py) +Full source: [cookbook/05_agent_os/interfaces/whatsapp/agent_with_media.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/whatsapp/agent_with_media.py) diff --git a/examples/agent-os/interfaces/whatsapp/agent-with-user-memory.mdx b/examples/agent-os/interfaces/whatsapp/agent-with-user-memory.mdx index 315b916d0..b5f42bb1d 100644 --- a/examples/agent-os/interfaces/whatsapp/agent-with-user-memory.mdx +++ b/examples/agent-os/interfaces/whatsapp/agent-with-user-memory.mdx @@ -113,4 +113,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/whatsapp/agent_with_user_memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/whatsapp/agent_with_user_memory.py) +Full source: [cookbook/05_agent_os/interfaces/whatsapp/agent_with_user_memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/whatsapp/agent_with_user_memory.py) diff --git a/examples/agent-os/interfaces/whatsapp/basic.mdx b/examples/agent-os/interfaces/whatsapp/basic.mdx index be9038e1b..d7ce6de44 100644 --- a/examples/agent-os/interfaces/whatsapp/basic.mdx +++ b/examples/agent-os/interfaces/whatsapp/basic.mdx @@ -95,4 +95,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/whatsapp/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/whatsapp/basic.py) +Full source: [cookbook/05_agent_os/interfaces/whatsapp/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/whatsapp/basic.py) diff --git a/examples/agent-os/interfaces/whatsapp/deep-research.mdx b/examples/agent-os/interfaces/whatsapp/deep-research.mdx index e1d7eca6c..a17e01b61 100644 --- a/examples/agent-os/interfaces/whatsapp/deep-research.mdx +++ b/examples/agent-os/interfaces/whatsapp/deep-research.mdx @@ -130,4 +130,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/whatsapp/deep_research.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/whatsapp/deep_research.py) +Full source: [cookbook/05_agent_os/interfaces/whatsapp/deep_research.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/whatsapp/deep_research.py) diff --git a/examples/agent-os/interfaces/whatsapp/image-generation-model.mdx b/examples/agent-os/interfaces/whatsapp/image-generation-model.mdx index c2366437f..62f3f2f08 100644 --- a/examples/agent-os/interfaces/whatsapp/image-generation-model.mdx +++ b/examples/agent-os/interfaces/whatsapp/image-generation-model.mdx @@ -94,4 +94,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/whatsapp/image_generation_model.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/whatsapp/image_generation_model.py) +Full source: [cookbook/05_agent_os/interfaces/whatsapp/image_generation_model.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/whatsapp/image_generation_model.py) diff --git a/examples/agent-os/interfaces/whatsapp/interactive-concierge.mdx b/examples/agent-os/interfaces/whatsapp/interactive-concierge.mdx index 4df77bde6..9fad8e6f0 100644 --- a/examples/agent-os/interfaces/whatsapp/interactive-concierge.mdx +++ b/examples/agent-os/interfaces/whatsapp/interactive-concierge.mdx @@ -131,4 +131,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/whatsapp/interactive_concierge.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/whatsapp/interactive_concierge.py) +Full source: [cookbook/05_agent_os/interfaces/whatsapp/interactive_concierge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/whatsapp/interactive_concierge.py) diff --git a/examples/agent-os/interfaces/whatsapp/multimodal-team.mdx b/examples/agent-os/interfaces/whatsapp/multimodal-team.mdx index 5c0e9d553..08620126d 100644 --- a/examples/agent-os/interfaces/whatsapp/multimodal-team.mdx +++ b/examples/agent-os/interfaces/whatsapp/multimodal-team.mdx @@ -91,4 +91,4 @@ if __name__ == "__main__": Follow [Image Generation Agent](/models/providers/native/openai/responses/usage/image-generation-agent) to generate images with GPT Image 2. -Full source: [cookbook/05_agent_os/interfaces/whatsapp/multimodal_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/whatsapp/multimodal_team.py) +Full source: [cookbook/05_agent_os/interfaces/whatsapp/multimodal_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/whatsapp/multimodal_team.py) diff --git a/examples/agent-os/interfaces/whatsapp/multimodal-workflow.mdx b/examples/agent-os/interfaces/whatsapp/multimodal-workflow.mdx index 680fb98ed..55b051ca3 100644 --- a/examples/agent-os/interfaces/whatsapp/multimodal-workflow.mdx +++ b/examples/agent-os/interfaces/whatsapp/multimodal-workflow.mdx @@ -119,4 +119,4 @@ if __name__ == "__main__": Follow [Image Generation Agent](/models/providers/native/openai/responses/usage/image-generation-agent) to generate images with GPT Image 2. -Full source: [cookbook/05_agent_os/interfaces/whatsapp/multimodal_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/whatsapp/multimodal_workflow.py) +Full source: [cookbook/05_agent_os/interfaces/whatsapp/multimodal_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/whatsapp/multimodal_workflow.py) diff --git a/examples/agent-os/interfaces/whatsapp/multiple-instances.mdx b/examples/agent-os/interfaces/whatsapp/multiple-instances.mdx index a8c0ae253..28da09574 100644 --- a/examples/agent-os/interfaces/whatsapp/multiple-instances.mdx +++ b/examples/agent-os/interfaces/whatsapp/multiple-instances.mdx @@ -143,4 +143,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/whatsapp/multiple_instances.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/whatsapp/multiple_instances.py) +Full source: [cookbook/05_agent_os/interfaces/whatsapp/multiple_instances.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/whatsapp/multiple_instances.py) diff --git a/examples/agent-os/interfaces/whatsapp/reasoning-agent.mdx b/examples/agent-os/interfaces/whatsapp/reasoning-agent.mdx index e3abe1d6e..ac5074875 100644 --- a/examples/agent-os/interfaces/whatsapp/reasoning-agent.mdx +++ b/examples/agent-os/interfaces/whatsapp/reasoning-agent.mdx @@ -95,4 +95,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/whatsapp/reasoning_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/whatsapp/reasoning_agent.py) +Full source: [cookbook/05_agent_os/interfaces/whatsapp/reasoning_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/whatsapp/reasoning_agent.py) diff --git a/examples/agent-os/interfaces/whatsapp/support-team.mdx b/examples/agent-os/interfaces/whatsapp/support-team.mdx index df171b480..7c1826894 100644 --- a/examples/agent-os/interfaces/whatsapp/support-team.mdx +++ b/examples/agent-os/interfaces/whatsapp/support-team.mdx @@ -134,4 +134,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/whatsapp/support_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/whatsapp/support_team.py) +Full source: [cookbook/05_agent_os/interfaces/whatsapp/support_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/whatsapp/support_team.py) diff --git a/examples/agent-os/interfaces/whatsapp/tourist-guide.mdx b/examples/agent-os/interfaces/whatsapp/tourist-guide.mdx index 615249dc5..2e4bf5c3b 100644 --- a/examples/agent-os/interfaces/whatsapp/tourist-guide.mdx +++ b/examples/agent-os/interfaces/whatsapp/tourist-guide.mdx @@ -120,4 +120,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/whatsapp/tourist_guide.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/whatsapp/tourist_guide.py) +Full source: [cookbook/05_agent_os/interfaces/whatsapp/tourist_guide.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/whatsapp/tourist_guide.py) diff --git a/examples/agent-os/interfaces/whatsapp/video-generation.mdx b/examples/agent-os/interfaces/whatsapp/video-generation.mdx index 759e32598..8aff4c71b 100644 --- a/examples/agent-os/interfaces/whatsapp/video-generation.mdx +++ b/examples/agent-os/interfaces/whatsapp/video-generation.mdx @@ -111,4 +111,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/whatsapp/video_generation.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/whatsapp/video_generation.py) +Full source: [cookbook/05_agent_os/interfaces/whatsapp/video_generation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/whatsapp/video_generation.py) diff --git a/examples/agent-os/knowledge/agentos-docling-markdown-analyst.mdx b/examples/agent-os/knowledge/agentos-docling-markdown-analyst.mdx index 7e94cc434..06b22c694 100644 --- a/examples/agent-os/knowledge/agentos-docling-markdown-analyst.mdx +++ b/examples/agent-os/knowledge/agentos-docling-markdown-analyst.mdx @@ -128,4 +128,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/knowledge/agentos_docling_markdown_analyst.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/knowledge/agentos_docling_markdown_analyst.py) +Full source: [cookbook/05_agent_os/knowledge/agentos_docling_markdown_analyst.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/knowledge/agentos_docling_markdown_analyst.py) diff --git a/examples/agent-os/knowledge/agentos-excel-analyst.mdx b/examples/agent-os/knowledge/agentos-excel-analyst.mdx index 9e787fbe3..6414a9c53 100644 --- a/examples/agent-os/knowledge/agentos-excel-analyst.mdx +++ b/examples/agent-os/knowledge/agentos-excel-analyst.mdx @@ -129,4 +129,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/knowledge/agentos_excel_analyst.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/knowledge/agentos_excel_analyst.py) +Full source: [cookbook/05_agent_os/knowledge/agentos_excel_analyst.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/knowledge/agentos_excel_analyst.py) diff --git a/examples/agent-os/knowledge/agentos-knowledge.mdx b/examples/agent-os/knowledge/agentos-knowledge.mdx index 89ef586d0..f2936c3d4 100644 --- a/examples/agent-os/knowledge/agentos-knowledge.mdx +++ b/examples/agent-os/knowledge/agentos-knowledge.mdx @@ -222,4 +222,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/knowledge/agentos_knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/knowledge/agentos_knowledge.py) +Full source: [cookbook/05_agent_os/knowledge/agentos_knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/knowledge/agentos_knowledge.py) diff --git a/examples/agent-os/knowledge/agno-docs-agent.mdx b/examples/agent-os/knowledge/agno-docs-agent.mdx index 682e4b9b2..75a3bd3b2 100644 --- a/examples/agent-os/knowledge/agno-docs-agent.mdx +++ b/examples/agent-os/knowledge/agno-docs-agent.mdx @@ -201,4 +201,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/knowledge/agno_docs_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/knowledge/agno_docs_agent.py) +Full source: [cookbook/05_agent_os/knowledge/agno_docs_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/knowledge/agno_docs_agent.py) diff --git a/examples/agent-os/learnings/learnings-with-agentos.mdx b/examples/agent-os/learnings/learnings-with-agentos.mdx index 3d3bb1db0..c294f0a12 100644 --- a/examples/agent-os/learnings/learnings-with-agentos.mdx +++ b/examples/agent-os/learnings/learnings-with-agentos.mdx @@ -93,4 +93,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/learnings/learnings_with_agentos.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/learnings/learnings_with_agentos.py) +Full source: [cookbook/05_agent_os/learnings/learnings_with_agentos.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/learnings/learnings_with_agentos.py) diff --git a/examples/agent-os/learnings/rest-api-learnings.mdx b/examples/agent-os/learnings/rest-api-learnings.mdx index 478b1caa7..aeba4b725 100644 --- a/examples/agent-os/learnings/rest-api-learnings.mdx +++ b/examples/agent-os/learnings/rest-api-learnings.mdx @@ -224,4 +224,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/learnings/rest_api_learnings.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/learnings/rest_api_learnings.py) +Full source: [cookbook/05_agent_os/learnings/rest_api_learnings.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/learnings/rest_api_learnings.py) diff --git a/examples/agent-os/mcp-demo/custom-mcp-tool-example.mdx b/examples/agent-os/mcp-demo/custom-mcp-tool-example.mdx index e105e2cba..a14b3ff36 100644 --- a/examples/agent-os/mcp-demo/custom-mcp-tool-example.mdx +++ b/examples/agent-os/mcp-demo/custom-mcp-tool-example.mdx @@ -134,4 +134,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/mcp_demo/custom_mcp_tool_example.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/mcp_demo/custom_mcp_tool_example.py) +Full source: [cookbook/05_agent_os/mcp_demo/custom_mcp_tool_example.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/mcp_demo/custom_mcp_tool_example.py) diff --git a/examples/agent-os/mcp-demo/dynamic-headers/client.mdx b/examples/agent-os/mcp-demo/dynamic-headers/client.mdx index 91f10aa1e..bcd31d2c8 100644 --- a/examples/agent-os/mcp-demo/dynamic-headers/client.mdx +++ b/examples/agent-os/mcp-demo/dynamic-headers/client.mdx @@ -140,4 +140,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/mcp_demo/dynamic_headers/client.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/mcp_demo/dynamic_headers/client.py) +Full source: [cookbook/05_agent_os/mcp_demo/dynamic_headers/client.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/mcp_demo/dynamic_headers/client.py) diff --git a/examples/agent-os/mcp-demo/dynamic-headers/server.mdx b/examples/agent-os/mcp-demo/dynamic-headers/server.mdx index a319f4ae4..dfadd1841 100644 --- a/examples/agent-os/mcp-demo/dynamic-headers/server.mdx +++ b/examples/agent-os/mcp-demo/dynamic-headers/server.mdx @@ -69,4 +69,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/mcp_demo/dynamic_headers/server.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/mcp_demo/dynamic_headers/server.py) +Full source: [cookbook/05_agent_os/mcp_demo/dynamic_headers/server.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/mcp_demo/dynamic_headers/server.py) diff --git a/examples/agent-os/mcp-demo/mcp-server-example.mdx b/examples/agent-os/mcp-demo/mcp-server-example.mdx index 19b2770b9..09b18f170 100644 --- a/examples/agent-os/mcp-demo/mcp-server-example.mdx +++ b/examples/agent-os/mcp-demo/mcp-server-example.mdx @@ -95,4 +95,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/mcp_demo/mcp_server_example.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/mcp_demo/mcp_server_example.py) +Full source: [cookbook/05_agent_os/mcp_demo/mcp_server_example.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/mcp_demo/mcp_server_example.py) diff --git a/examples/agent-os/mcp-demo/mcp-tools-advanced-example.mdx b/examples/agent-os/mcp-demo/mcp-tools-advanced-example.mdx index 6b0dacaf6..d02c9bb0b 100644 --- a/examples/agent-os/mcp-demo/mcp-tools-advanced-example.mdx +++ b/examples/agent-os/mcp-demo/mcp-tools-advanced-example.mdx @@ -132,4 +132,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/mcp_demo/mcp_tools_advanced_example.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/mcp_demo/mcp_tools_advanced_example.py) +Full source: [cookbook/05_agent_os/mcp_demo/mcp_tools_advanced_example.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/mcp_demo/mcp_tools_advanced_example.py) diff --git a/examples/agent-os/mcp-demo/mcp-tools-example.mdx b/examples/agent-os/mcp-demo/mcp-tools-example.mdx index 0a6946c7d..e0d8484a7 100644 --- a/examples/agent-os/mcp-demo/mcp-tools-example.mdx +++ b/examples/agent-os/mcp-demo/mcp-tools-example.mdx @@ -93,4 +93,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/mcp_demo/mcp_tools_example.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/mcp_demo/mcp_tools_example.py) +Full source: [cookbook/05_agent_os/mcp_demo/mcp_tools_example.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/mcp_demo/mcp_tools_example.py) diff --git a/examples/agent-os/mcp-demo/mcp-tools-existing-lifespan.mdx b/examples/agent-os/mcp-demo/mcp-tools-existing-lifespan.mdx index 15e2c17fb..22a2ee4f8 100644 --- a/examples/agent-os/mcp-demo/mcp-tools-existing-lifespan.mdx +++ b/examples/agent-os/mcp-demo/mcp-tools-existing-lifespan.mdx @@ -109,4 +109,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/mcp_demo/mcp_tools_existing_lifespan.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/mcp_demo/mcp_tools_existing_lifespan.py) +Full source: [cookbook/05_agent_os/mcp_demo/mcp_tools_existing_lifespan.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/mcp_demo/mcp_tools_existing_lifespan.py) diff --git a/examples/agent-os/mcp-demo/oauth-authkit-example.mdx b/examples/agent-os/mcp-demo/oauth-authkit-example.mdx index b244987b9..29716a964 100644 --- a/examples/agent-os/mcp-demo/oauth-authkit-example.mdx +++ b/examples/agent-os/mcp-demo/oauth-authkit-example.mdx @@ -112,4 +112,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/mcp_demo/oauth_authkit_example.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/mcp_demo/oauth_authkit_example.py) +Full source: [cookbook/05_agent_os/mcp_demo/oauth_authkit_example.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/mcp_demo/oauth_authkit_example.py) diff --git a/examples/agent-os/mcp-demo/oauth-builtin-example.mdx b/examples/agent-os/mcp-demo/oauth-builtin-example.mdx index 2b1ade059..31632c3c8 100644 --- a/examples/agent-os/mcp-demo/oauth-builtin-example.mdx +++ b/examples/agent-os/mcp-demo/oauth-builtin-example.mdx @@ -121,4 +121,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/mcp_demo/oauth_builtin_example.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/mcp_demo/oauth_builtin_example.py) +Full source: [cookbook/05_agent_os/mcp_demo/oauth_builtin_example.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/mcp_demo/oauth_builtin_example.py) diff --git a/examples/agent-os/mcp-demo/test-client.mdx b/examples/agent-os/mcp-demo/test-client.mdx index 88ddb0f90..c95f219b3 100644 --- a/examples/agent-os/mcp-demo/test-client.mdx +++ b/examples/agent-os/mcp-demo/test-client.mdx @@ -133,4 +133,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/mcp_demo/test_client.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/mcp_demo/test_client.py) +Full source: [cookbook/05_agent_os/mcp_demo/test_client.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/mcp_demo/test_client.py) diff --git a/examples/agent-os/middleware/agent-os-with-custom-middleware.mdx b/examples/agent-os/middleware/agent-os-with-custom-middleware.mdx index a5456ffca..16668834e 100644 --- a/examples/agent-os/middleware/agent-os-with-custom-middleware.mdx +++ b/examples/agent-os/middleware/agent-os-with-custom-middleware.mdx @@ -233,4 +233,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/middleware/agent_os_with_custom_middleware.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/middleware/agent_os_with_custom_middleware.py) +Full source: [cookbook/05_agent_os/middleware/agent_os_with_custom_middleware.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/middleware/agent_os_with_custom_middleware.py) diff --git a/examples/agent-os/middleware/agent-os-with-jwt-middleware-cookies.mdx b/examples/agent-os/middleware/agent-os-with-jwt-middleware-cookies.mdx index bb6e556ea..856cb4feb 100644 --- a/examples/agent-os/middleware/agent-os-with-jwt-middleware-cookies.mdx +++ b/examples/agent-os/middleware/agent-os-with-jwt-middleware-cookies.mdx @@ -196,4 +196,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/middleware/agent_os_with_jwt_middleware_cookies.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/middleware/agent_os_with_jwt_middleware_cookies.py) +Full source: [cookbook/05_agent_os/middleware/agent_os_with_jwt_middleware_cookies.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/middleware/agent_os_with_jwt_middleware_cookies.py) diff --git a/examples/agent-os/middleware/agent-os-with-jwt-middleware.mdx b/examples/agent-os/middleware/agent-os-with-jwt-middleware.mdx index bb61f6e32..f9a2a74ae 100644 --- a/examples/agent-os/middleware/agent-os-with-jwt-middleware.mdx +++ b/examples/agent-os/middleware/agent-os-with-jwt-middleware.mdx @@ -141,4 +141,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/middleware/agent_os_with_jwt_middleware.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/middleware/agent_os_with_jwt_middleware.py) +Full source: [cookbook/05_agent_os/middleware/agent_os_with_jwt_middleware.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/middleware/agent_os_with_jwt_middleware.py) diff --git a/examples/agent-os/middleware/agent-os-with-service-accounts.mdx b/examples/agent-os/middleware/agent-os-with-service-accounts.mdx index f3a251453..de74ceeb2 100644 --- a/examples/agent-os/middleware/agent-os-with-service-accounts.mdx +++ b/examples/agent-os/middleware/agent-os-with-service-accounts.mdx @@ -157,4 +157,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/middleware/agent_os_with_service_accounts.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/middleware/agent_os_with_service_accounts.py) +Full source: [cookbook/05_agent_os/middleware/agent_os_with_service_accounts.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/middleware/agent_os_with_service_accounts.py) diff --git a/examples/agent-os/middleware/custom-fastapi-app-with-jwt-middleware.mdx b/examples/agent-os/middleware/custom-fastapi-app-with-jwt-middleware.mdx index 48fabbeee..c73775968 100644 --- a/examples/agent-os/middleware/custom-fastapi-app-with-jwt-middleware.mdx +++ b/examples/agent-os/middleware/custom-fastapi-app-with-jwt-middleware.mdx @@ -139,4 +139,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/middleware/custom_fastapi_app_with_jwt_middleware.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/middleware/custom_fastapi_app_with_jwt_middleware.py) +Full source: [cookbook/05_agent_os/middleware/custom_fastapi_app_with_jwt_middleware.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/middleware/custom_fastapi_app_with_jwt_middleware.py) diff --git a/examples/agent-os/middleware/extract-content-middleware.mdx b/examples/agent-os/middleware/extract-content-middleware.mdx index a258da1ca..b43a48485 100644 --- a/examples/agent-os/middleware/extract-content-middleware.mdx +++ b/examples/agent-os/middleware/extract-content-middleware.mdx @@ -231,4 +231,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/middleware/extract_content_middleware.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/middleware/extract_content_middleware.py) +Full source: [cookbook/05_agent_os/middleware/extract_content_middleware.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/middleware/extract_content_middleware.py) diff --git a/examples/agent-os/middleware/guardrails-demo.mdx b/examples/agent-os/middleware/guardrails-demo.mdx index b3071a85a..ff9d70878 100644 --- a/examples/agent-os/middleware/guardrails-demo.mdx +++ b/examples/agent-os/middleware/guardrails-demo.mdx @@ -120,4 +120,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/middleware/guardrails_demo.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/middleware/guardrails_demo.py) +Full source: [cookbook/05_agent_os/middleware/guardrails_demo.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/middleware/guardrails_demo.py) diff --git a/examples/agent-os/os-config/basic.mdx b/examples/agent-os/os-config/basic.mdx index 83419ce14..d6510a63c 100644 --- a/examples/agent-os/os-config/basic.mdx +++ b/examples/agent-os/os-config/basic.mdx @@ -154,4 +154,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/os_config/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/os_config/basic.py) +Full source: [cookbook/05_agent_os/os_config/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/os_config/basic.py) diff --git a/examples/agent-os/os-config/yaml-config.mdx b/examples/agent-os/os-config/yaml-config.mdx index 5350a5737..a78bb6b04 100644 --- a/examples/agent-os/os-config/yaml-config.mdx +++ b/examples/agent-os/os-config/yaml-config.mdx @@ -148,4 +148,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/os_config/yaml_config.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/os_config/yaml_config.py) +Full source: [cookbook/05_agent_os/os_config/yaml_config.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/os_config/yaml_config.py) diff --git a/examples/agent-os/rbac/asymmetric/basic.mdx b/examples/agent-os/rbac/asymmetric/basic.mdx index 47bbf2bfe..f15324973 100644 --- a/examples/agent-os/rbac/asymmetric/basic.mdx +++ b/examples/agent-os/rbac/asymmetric/basic.mdx @@ -203,4 +203,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/rbac/asymmetric/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/rbac/asymmetric/basic.py) +Full source: [cookbook/05_agent_os/rbac/asymmetric/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/rbac/asymmetric/basic.py) diff --git a/examples/agent-os/rbac/asymmetric/custom-scope-mappings.mdx b/examples/agent-os/rbac/asymmetric/custom-scope-mappings.mdx index c72cb7035..b2a798421 100644 --- a/examples/agent-os/rbac/asymmetric/custom-scope-mappings.mdx +++ b/examples/agent-os/rbac/asymmetric/custom-scope-mappings.mdx @@ -241,4 +241,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/rbac/asymmetric/custom_scope_mappings.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/rbac/asymmetric/custom_scope_mappings.py) +Full source: [cookbook/05_agent_os/rbac/asymmetric/custom_scope_mappings.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/rbac/asymmetric/custom_scope_mappings.py) diff --git a/examples/agent-os/rbac/asymmetric/workos-byot.mdx b/examples/agent-os/rbac/asymmetric/workos-byot.mdx index 64c20e125..6730897f1 100644 --- a/examples/agent-os/rbac/asymmetric/workos-byot.mdx +++ b/examples/agent-os/rbac/asymmetric/workos-byot.mdx @@ -303,4 +303,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/rbac/asymmetric/workos_byot.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/rbac/asymmetric/workos_byot.py) +Full source: [cookbook/05_agent_os/rbac/asymmetric/workos_byot.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/rbac/asymmetric/workos_byot.py) diff --git a/examples/agent-os/rbac/symmetric/advanced-scopes.mdx b/examples/agent-os/rbac/symmetric/advanced-scopes.mdx index 669840981..dbd5deca1 100644 --- a/examples/agent-os/rbac/symmetric/advanced-scopes.mdx +++ b/examples/agent-os/rbac/symmetric/advanced-scopes.mdx @@ -331,4 +331,4 @@ AUDIENCE VERIFICATION: -Full source: [cookbook/05_agent_os/rbac/symmetric/advanced_scopes.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/rbac/symmetric/advanced_scopes.py) +Full source: [cookbook/05_agent_os/rbac/symmetric/advanced_scopes.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/rbac/symmetric/advanced_scopes.py) diff --git a/examples/agent-os/rbac/symmetric/agent-permissions.mdx b/examples/agent-os/rbac/symmetric/agent-permissions.mdx index 330631c81..b7e7f7370 100644 --- a/examples/agent-os/rbac/symmetric/agent-permissions.mdx +++ b/examples/agent-os/rbac/symmetric/agent-permissions.mdx @@ -180,4 +180,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/rbac/symmetric/agent_permissions.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/rbac/symmetric/agent_permissions.py) +Full source: [cookbook/05_agent_os/rbac/symmetric/agent_permissions.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/rbac/symmetric/agent_permissions.py) diff --git a/examples/agent-os/rbac/symmetric/basic.mdx b/examples/agent-os/rbac/symmetric/basic.mdx index ea572b84a..6abd0953b 100644 --- a/examples/agent-os/rbac/symmetric/basic.mdx +++ b/examples/agent-os/rbac/symmetric/basic.mdx @@ -170,4 +170,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/rbac/symmetric/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/rbac/symmetric/basic.py) +Full source: [cookbook/05_agent_os/rbac/symmetric/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/rbac/symmetric/basic.py) diff --git a/examples/agent-os/rbac/symmetric/custom-scope-mappings.mdx b/examples/agent-os/rbac/symmetric/custom-scope-mappings.mdx index d396ff82d..690a020b1 100644 --- a/examples/agent-os/rbac/symmetric/custom-scope-mappings.mdx +++ b/examples/agent-os/rbac/symmetric/custom-scope-mappings.mdx @@ -206,4 +206,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/rbac/symmetric/custom_scope_mappings.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/rbac/symmetric/custom_scope_mappings.py) +Full source: [cookbook/05_agent_os/rbac/symmetric/custom_scope_mappings.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/rbac/symmetric/custom_scope_mappings.py) diff --git a/examples/agent-os/rbac/symmetric/user-isolation.mdx b/examples/agent-os/rbac/symmetric/user-isolation.mdx index c4109f74a..7736dffaa 100644 --- a/examples/agent-os/rbac/symmetric/user-isolation.mdx +++ b/examples/agent-os/rbac/symmetric/user-isolation.mdx @@ -210,4 +210,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/rbac/symmetric/user_isolation.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/rbac/symmetric/user_isolation.py) +Full source: [cookbook/05_agent_os/rbac/symmetric/user_isolation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/rbac/symmetric/user_isolation.py) diff --git a/examples/agent-os/rbac/symmetric/with-cookie.mdx b/examples/agent-os/rbac/symmetric/with-cookie.mdx index c992f29b9..5d62023a1 100644 --- a/examples/agent-os/rbac/symmetric/with-cookie.mdx +++ b/examples/agent-os/rbac/symmetric/with-cookie.mdx @@ -238,4 +238,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/rbac/symmetric/with_cookie.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/rbac/symmetric/with_cookie.py) +Full source: [cookbook/05_agent_os/rbac/symmetric/with_cookie.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/rbac/symmetric/with_cookie.py) diff --git a/examples/agent-os/rbac/test-scopes.mdx b/examples/agent-os/rbac/test-scopes.mdx index 436dd8133..d0e55450c 100644 --- a/examples/agent-os/rbac/test-scopes.mdx +++ b/examples/agent-os/rbac/test-scopes.mdx @@ -225,4 +225,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/rbac/test_scopes.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/rbac/test_scopes.py) +Full source: [cookbook/05_agent_os/rbac/test_scopes.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/rbac/test_scopes.py) diff --git a/examples/agent-os/remote/a2a-agent-as-team-member.mdx b/examples/agent-os/remote/a2a-agent-as-team-member.mdx index 8d0a8be30..0006fd06b 100644 --- a/examples/agent-os/remote/a2a-agent-as-team-member.mdx +++ b/examples/agent-os/remote/a2a-agent-as-team-member.mdx @@ -133,4 +133,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/remote/07_a2a_agent_as_team_member.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/remote/07_a2a_agent_as_team_member.py) +Full source: [cookbook/05_agent_os/remote/07_a2a_agent_as_team_member.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/remote/07_a2a_agent_as_team_member.py) diff --git a/examples/agent-os/remote/adk-server.mdx b/examples/agent-os/remote/adk-server.mdx index fcee71e5e..1e0e16ba2 100644 --- a/examples/agent-os/remote/adk-server.mdx +++ b/examples/agent-os/remote/adk-server.mdx @@ -97,4 +97,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/remote/adk_server.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/remote/adk_server.py) +Full source: [cookbook/05_agent_os/remote/adk_server.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/remote/adk_server.py) diff --git a/examples/agent-os/remote/agent-os-gateway.mdx b/examples/agent-os/remote/agent-os-gateway.mdx index 54e743c0e..1008cab91 100644 --- a/examples/agent-os/remote/agent-os-gateway.mdx +++ b/examples/agent-os/remote/agent-os-gateway.mdx @@ -246,4 +246,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/remote/05_agent_os_gateway.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/remote/05_agent_os_gateway.py) +Full source: [cookbook/05_agent_os/remote/05_agent_os_gateway.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/remote/05_agent_os_gateway.py) diff --git a/examples/agent-os/remote/agno-a2a-server.mdx b/examples/agent-os/remote/agno-a2a-server.mdx index 97d34815c..66fa1f1a1 100644 --- a/examples/agent-os/remote/agno-a2a-server.mdx +++ b/examples/agent-os/remote/agno-a2a-server.mdx @@ -143,4 +143,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/remote/agno_a2a_server.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/remote/agno_a2a_server.py) +Full source: [cookbook/05_agent_os/remote/agno_a2a_server.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/remote/agno_a2a_server.py) diff --git a/examples/agent-os/remote/remote-adk-agent.mdx b/examples/agent-os/remote/remote-adk-agent.mdx index 47eac87fb..2fc2b3245 100644 --- a/examples/agent-os/remote/remote-adk-agent.mdx +++ b/examples/agent-os/remote/remote-adk-agent.mdx @@ -163,4 +163,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/remote/04_remote_adk_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/remote/04_remote_adk_agent.py) +Full source: [cookbook/05_agent_os/remote/04_remote_adk_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/remote/04_remote_adk_agent.py) diff --git a/examples/agent-os/remote/remote-agent-as-team-member.mdx b/examples/agent-os/remote/remote-agent-as-team-member.mdx index 4dbb053df..89bf04e7e 100644 --- a/examples/agent-os/remote/remote-agent-as-team-member.mdx +++ b/examples/agent-os/remote/remote-agent-as-team-member.mdx @@ -133,4 +133,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/remote/06_remote_agent_as_team_member.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/remote/06_remote_agent_as_team_member.py) +Full source: [cookbook/05_agent_os/remote/06_remote_agent_as_team_member.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/remote/06_remote_agent_as_team_member.py) diff --git a/examples/agent-os/remote/remote-agent.mdx b/examples/agent-os/remote/remote-agent.mdx index 5859ad90e..6fab1c518 100644 --- a/examples/agent-os/remote/remote-agent.mdx +++ b/examples/agent-os/remote/remote-agent.mdx @@ -97,4 +97,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/remote/01_remote_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/remote/01_remote_agent.py) +Full source: [cookbook/05_agent_os/remote/01_remote_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/remote/01_remote_agent.py) diff --git a/examples/agent-os/remote/remote-agno-a2a-agent.mdx b/examples/agent-os/remote/remote-agno-a2a-agent.mdx index 442f1a165..161723ca9 100644 --- a/examples/agent-os/remote/remote-agno-a2a-agent.mdx +++ b/examples/agent-os/remote/remote-agno-a2a-agent.mdx @@ -167,4 +167,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/remote/03_remote_agno_a2a_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/remote/03_remote_agno_a2a_agent.py) +Full source: [cookbook/05_agent_os/remote/03_remote_agno_a2a_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/remote/03_remote_agno_a2a_agent.py) diff --git a/examples/agent-os/remote/remote-team.mdx b/examples/agent-os/remote/remote-team.mdx index 2d2c6b5f1..9d2c741c0 100644 --- a/examples/agent-os/remote/remote-team.mdx +++ b/examples/agent-os/remote/remote-team.mdx @@ -123,4 +123,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/remote/02_remote_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/remote/02_remote_team.py) +Full source: [cookbook/05_agent_os/remote/02_remote_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/remote/02_remote_team.py) diff --git a/examples/agent-os/remote/server.mdx b/examples/agent-os/remote/server.mdx index 2b3fb208a..17ee07526 100644 --- a/examples/agent-os/remote/server.mdx +++ b/examples/agent-os/remote/server.mdx @@ -179,4 +179,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/remote/server.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/remote/server.py) +Full source: [cookbook/05_agent_os/remote/server.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/remote/server.py) diff --git a/examples/agent-os/scheduler/async-schedule.mdx b/examples/agent-os/scheduler/async-schedule.mdx index 5118fdc28..8a673235a 100644 --- a/examples/agent-os/scheduler/async-schedule.mdx +++ b/examples/agent-os/scheduler/async-schedule.mdx @@ -104,4 +104,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/scheduler/async_schedule.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/scheduler/async_schedule.py) +Full source: [cookbook/05_agent_os/scheduler/async_schedule.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/scheduler/async_schedule.py) diff --git a/examples/agent-os/scheduler/basic-schedule.mdx b/examples/agent-os/scheduler/basic-schedule.mdx index 9b0fea0ae..e48833b1b 100644 --- a/examples/agent-os/scheduler/basic-schedule.mdx +++ b/examples/agent-os/scheduler/basic-schedule.mdx @@ -105,4 +105,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/scheduler/basic_schedule.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/scheduler/basic_schedule.py) +Full source: [cookbook/05_agent_os/scheduler/basic_schedule.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/scheduler/basic_schedule.py) diff --git a/examples/agent-os/scheduler/demo.mdx b/examples/agent-os/scheduler/demo.mdx index 04a017b0a..d5cc62b24 100644 --- a/examples/agent-os/scheduler/demo.mdx +++ b/examples/agent-os/scheduler/demo.mdx @@ -118,4 +118,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/scheduler/demo.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/scheduler/demo.py) +Full source: [cookbook/05_agent_os/scheduler/demo.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/scheduler/demo.py) diff --git a/examples/agent-os/scheduler/multi-agent-schedules.mdx b/examples/agent-os/scheduler/multi-agent-schedules.mdx index 15f97a41f..4979a8abc 100644 --- a/examples/agent-os/scheduler/multi-agent-schedules.mdx +++ b/examples/agent-os/scheduler/multi-agent-schedules.mdx @@ -139,4 +139,4 @@ print(f"Total schedules: {len(all_schedules)}") -Full source: [cookbook/05_agent_os/scheduler/multi_agent_schedules.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/scheduler/multi_agent_schedules.py) +Full source: [cookbook/05_agent_os/scheduler/multi_agent_schedules.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/scheduler/multi_agent_schedules.py) diff --git a/examples/agent-os/scheduler/rest-api-schedules.mdx b/examples/agent-os/scheduler/rest-api-schedules.mdx index af3792b26..44af933d9 100644 --- a/examples/agent-os/scheduler/rest-api-schedules.mdx +++ b/examples/agent-os/scheduler/rest-api-schedules.mdx @@ -213,4 +213,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/scheduler/rest_api_schedules.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/scheduler/rest_api_schedules.py) +Full source: [cookbook/05_agent_os/scheduler/rest_api_schedules.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/scheduler/rest_api_schedules.py) diff --git a/examples/agent-os/scheduler/run-history.mdx b/examples/agent-os/scheduler/run-history.mdx index 84861aa5f..76b4d4174 100644 --- a/examples/agent-os/scheduler/run-history.mdx +++ b/examples/agent-os/scheduler/run-history.mdx @@ -142,4 +142,4 @@ print("\nSchedule and runs deleted.") -Full source: [cookbook/05_agent_os/scheduler/run_history.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/scheduler/run_history.py) +Full source: [cookbook/05_agent_os/scheduler/run_history.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/scheduler/run_history.py) diff --git a/examples/agent-os/scheduler/schedule-management.mdx b/examples/agent-os/scheduler/schedule-management.mdx index 16faf7ceb..39dfedcf0 100644 --- a/examples/agent-os/scheduler/schedule-management.mdx +++ b/examples/agent-os/scheduler/schedule-management.mdx @@ -170,4 +170,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/scheduler/schedule_management.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/scheduler/schedule_management.py) +Full source: [cookbook/05_agent_os/scheduler/schedule_management.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/scheduler/schedule_management.py) diff --git a/examples/agent-os/scheduler/schedule-validation.mdx b/examples/agent-os/scheduler/schedule-validation.mdx index 6ed9e3057..1581beabc 100644 --- a/examples/agent-os/scheduler/schedule-validation.mdx +++ b/examples/agent-os/scheduler/schedule-validation.mdx @@ -120,4 +120,4 @@ print("All schedules cleaned up.") -Full source: [cookbook/05_agent_os/scheduler/schedule_validation.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/scheduler/schedule_validation.py) +Full source: [cookbook/05_agent_os/scheduler/schedule_validation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/scheduler/schedule_validation.py) diff --git a/examples/agent-os/scheduler/scheduler-tools-agent.mdx b/examples/agent-os/scheduler/scheduler-tools-agent.mdx index 5ef2c4e20..155e1037c 100644 --- a/examples/agent-os/scheduler/scheduler-tools-agent.mdx +++ b/examples/agent-os/scheduler/scheduler-tools-agent.mdx @@ -161,4 +161,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/scheduler/scheduler_tools_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/scheduler/scheduler_tools_agent.py) +Full source: [cookbook/05_agent_os/scheduler/scheduler_tools_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/scheduler/scheduler_tools_agent.py) diff --git a/examples/agent-os/scheduler/scheduler-with-agentos.mdx b/examples/agent-os/scheduler/scheduler-with-agentos.mdx index 26d63766b..99953e54c 100644 --- a/examples/agent-os/scheduler/scheduler-with-agentos.mdx +++ b/examples/agent-os/scheduler/scheduler-with-agentos.mdx @@ -105,4 +105,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/scheduler/scheduler_with_agentos.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/scheduler/scheduler_with_agentos.py) +Full source: [cookbook/05_agent_os/scheduler/scheduler_with_agentos.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/scheduler/scheduler_with_agentos.py) diff --git a/examples/agent-os/scheduler/team-workflow-schedules.mdx b/examples/agent-os/scheduler/team-workflow-schedules.mdx index 29feba4b2..67c2043f4 100644 --- a/examples/agent-os/scheduler/team-workflow-schedules.mdx +++ b/examples/agent-os/scheduler/team-workflow-schedules.mdx @@ -129,4 +129,4 @@ print("All schedules cleaned up.") -Full source: [cookbook/05_agent_os/scheduler/team_workflow_schedules.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/scheduler/team_workflow_schedules.py) +Full source: [cookbook/05_agent_os/scheduler/team_workflow_schedules.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/scheduler/team_workflow_schedules.py) diff --git a/examples/agent-os/schemas/agent-schemas.mdx b/examples/agent-os/schemas/agent-schemas.mdx index f3f74c65d..666aeaeb5 100644 --- a/examples/agent-os/schemas/agent-schemas.mdx +++ b/examples/agent-os/schemas/agent-schemas.mdx @@ -124,4 +124,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/schemas/agent_schemas.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/schemas/agent_schemas.py) +Full source: [cookbook/05_agent_os/schemas/agent_schemas.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/schemas/agent_schemas.py) diff --git a/examples/agent-os/schemas/team-schemas.mdx b/examples/agent-os/schemas/team-schemas.mdx index f97ef222e..e031721c6 100644 --- a/examples/agent-os/schemas/team-schemas.mdx +++ b/examples/agent-os/schemas/team-schemas.mdx @@ -181,4 +181,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/schemas/team_schemas.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/schemas/team_schemas.py) +Full source: [cookbook/05_agent_os/schemas/team_schemas.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/schemas/team_schemas.py) diff --git a/examples/agent-os/skills/sample-skills/system-info/scripts/get-system-info.mdx b/examples/agent-os/skills/sample-skills/system-info/scripts/get-system-info.mdx index 61719b5c3..8d45c3442 100644 --- a/examples/agent-os/skills/sample-skills/system-info/scripts/get-system-info.mdx +++ b/examples/agent-os/skills/sample-skills/system-info/scripts/get-system-info.mdx @@ -50,4 +50,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/skills/sample_skills/system-info/scripts/get_system_info.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/skills/sample_skills/system-info/scripts/get_system_info.py) +Full source: [cookbook/05_agent_os/skills/sample_skills/system-info/scripts/get_system_info.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/skills/sample_skills/system-info/scripts/get_system_info.py) diff --git a/examples/agent-os/skills/sample-skills/system-info/scripts/list-directory.mdx b/examples/agent-os/skills/sample-skills/system-info/scripts/list-directory.mdx index 4807779b3..9e9796dd0 100644 --- a/examples/agent-os/skills/sample-skills/system-info/scripts/list-directory.mdx +++ b/examples/agent-os/skills/sample-skills/system-info/scripts/list-directory.mdx @@ -63,4 +63,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/skills/sample_skills/system-info/scripts/list_directory.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/skills/sample_skills/system-info/scripts/list_directory.py) +Full source: [cookbook/05_agent_os/skills/sample_skills/system-info/scripts/list_directory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/skills/sample_skills/system-info/scripts/list_directory.py) diff --git a/examples/agent-os/skills/skills-with-agentos.mdx b/examples/agent-os/skills/skills-with-agentos.mdx index 93b995e09..20bd5c78d 100644 --- a/examples/agent-os/skills/skills-with-agentos.mdx +++ b/examples/agent-os/skills/skills-with-agentos.mdx @@ -90,4 +90,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/skills/skills_with_agentos.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/skills/skills_with_agentos.py) +Full source: [cookbook/05_agent_os/skills/skills_with_agentos.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/skills/skills_with_agentos.py) diff --git a/examples/agent-os/studio-tool/standalone-studio-agent.mdx b/examples/agent-os/studio-tool/standalone-studio-agent.mdx index 976e88eae..52727be24 100644 --- a/examples/agent-os/studio-tool/standalone-studio-agent.mdx +++ b/examples/agent-os/studio-tool/standalone-studio-agent.mdx @@ -100,4 +100,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/studio_tool/standalone_studio_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/studio_tool/standalone_studio_agent.py) +Full source: [cookbook/05_agent_os/studio_tool/standalone_studio_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/studio_tool/standalone_studio_agent.py) diff --git a/examples/agent-os/studio-tool/studio-hitl-agent-os.mdx b/examples/agent-os/studio-tool/studio-hitl-agent-os.mdx index aec2c0a0a..8a5117d3c 100644 --- a/examples/agent-os/studio-tool/studio-hitl-agent-os.mdx +++ b/examples/agent-os/studio-tool/studio-hitl-agent-os.mdx @@ -138,4 +138,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/studio_tool/studio_hitl_agent_os.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/studio_tool/studio_hitl_agent_os.py) +Full source: [cookbook/05_agent_os/studio_tool/studio_hitl_agent_os.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/studio_tool/studio_hitl_agent_os.py) diff --git a/examples/agent-os/studio-tool/studio-hitl-agent.mdx b/examples/agent-os/studio-tool/studio-hitl-agent.mdx index 5c246e3ad..e2dff46c7 100644 --- a/examples/agent-os/studio-tool/studio-hitl-agent.mdx +++ b/examples/agent-os/studio-tool/studio-hitl-agent.mdx @@ -200,4 +200,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/studio_tool/studio_hitl_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/studio_tool/studio_hitl_agent.py) +Full source: [cookbook/05_agent_os/studio_tool/studio_hitl_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/studio_tool/studio_hitl_agent.py) diff --git a/examples/agent-os/studio-tool/studio-tools-agent.mdx b/examples/agent-os/studio-tool/studio-tools-agent.mdx index baf5852e8..5d421f1fa 100644 --- a/examples/agent-os/studio-tool/studio-tools-agent.mdx +++ b/examples/agent-os/studio-tool/studio-tools-agent.mdx @@ -142,4 +142,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/studio_tool/studio_tools_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/studio_tool/studio_tools_agent.py) +Full source: [cookbook/05_agent_os/studio_tool/studio_tools_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/studio_tool/studio_tools_agent.py) diff --git a/examples/agent-os/team-tasks/team-tasks-streaming.mdx b/examples/agent-os/team-tasks/team-tasks-streaming.mdx index 7ea74cfa7..ef53f9ff7 100644 --- a/examples/agent-os/team-tasks/team-tasks-streaming.mdx +++ b/examples/agent-os/team-tasks/team-tasks-streaming.mdx @@ -135,7 +135,7 @@ if __name__ == "__main__": - In a second terminal, send form fields to the v2.7.2 team run endpoint: + In a second terminal, send form fields to the v2.7.4 team run endpoint: ```bash curl -N -X POST http://localhost:7777/teams/research-team/runs \ -H "Accept: text/event-stream" \ @@ -145,4 +145,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/team_tasks/team_tasks_streaming.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/team_tasks/team_tasks_streaming.py) +Full source: [cookbook/05_agent_os/team_tasks/team_tasks_streaming.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/team_tasks/team_tasks_streaming.py) diff --git a/examples/agent-os/tracing/advanced-trace-filtering.mdx b/examples/agent-os/tracing/advanced-trace-filtering.mdx index a5eca93b7..9dc4dc635 100644 --- a/examples/agent-os/tracing/advanced-trace-filtering.mdx +++ b/examples/agent-os/tracing/advanced-trace-filtering.mdx @@ -266,4 +266,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/tracing/08_advanced_trace_filtering.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/tracing/08_advanced_trace_filtering.py) +Full source: [cookbook/05_agent_os/tracing/08_advanced_trace_filtering.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/tracing/08_advanced_trace_filtering.py) diff --git a/examples/agent-os/tracing/agent-with-knowledge-tracing.mdx b/examples/agent-os/tracing/agent-with-knowledge-tracing.mdx index cfd50c4c2..58f8532a5 100644 --- a/examples/agent-os/tracing/agent-with-knowledge-tracing.mdx +++ b/examples/agent-os/tracing/agent-with-knowledge-tracing.mdx @@ -202,4 +202,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/tracing/03_agent_with_knowledge_tracing.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/tracing/03_agent_with_knowledge_tracing.py) +Full source: [cookbook/05_agent_os/tracing/03_agent_with_knowledge_tracing.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/tracing/03_agent_with_knowledge_tracing.py) diff --git a/examples/agent-os/tracing/agent-with-reasoning-tools-tracing.mdx b/examples/agent-os/tracing/agent-with-reasoning-tools-tracing.mdx index c047de56f..644cc1c1c 100644 --- a/examples/agent-os/tracing/agent-with-reasoning-tools-tracing.mdx +++ b/examples/agent-os/tracing/agent-with-reasoning-tools-tracing.mdx @@ -121,4 +121,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/tracing/04_agent_with_reasoning_tools_tracing.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/tracing/04_agent_with_reasoning_tools_tracing.py) +Full source: [cookbook/05_agent_os/tracing/04_agent_with_reasoning_tools_tracing.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/tracing/04_agent_with_reasoning_tools_tracing.py) diff --git a/examples/agent-os/tracing/basic-agent-tracing.mdx b/examples/agent-os/tracing/basic-agent-tracing.mdx index 6db00fdda..c2796fc2b 100644 --- a/examples/agent-os/tracing/basic-agent-tracing.mdx +++ b/examples/agent-os/tracing/basic-agent-tracing.mdx @@ -80,4 +80,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/tracing/01_basic_agent_tracing.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/tracing/01_basic_agent_tracing.py) +Full source: [cookbook/05_agent_os/tracing/01_basic_agent_tracing.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/tracing/01_basic_agent_tracing.py) diff --git a/examples/agent-os/tracing/basic-team-tracing.mdx b/examples/agent-os/tracing/basic-team-tracing.mdx index 389006582..364160966 100644 --- a/examples/agent-os/tracing/basic-team-tracing.mdx +++ b/examples/agent-os/tracing/basic-team-tracing.mdx @@ -91,4 +91,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/tracing/02_basic_team_tracing.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/tracing/02_basic_team_tracing.py) +Full source: [cookbook/05_agent_os/tracing/02_basic_team_tracing.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/tracing/02_basic_team_tracing.py) diff --git a/examples/agent-os/tracing/basic-workflow-tracing.mdx b/examples/agent-os/tracing/basic-workflow-tracing.mdx index a4f714fbe..78f9cd8b8 100644 --- a/examples/agent-os/tracing/basic-workflow-tracing.mdx +++ b/examples/agent-os/tracing/basic-workflow-tracing.mdx @@ -149,4 +149,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/tracing/05_basic_workflow_tracing.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/tracing/05_basic_workflow_tracing.py) +Full source: [cookbook/05_agent_os/tracing/05_basic_workflow_tracing.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/tracing/05_basic_workflow_tracing.py) diff --git a/examples/agent-os/tracing/dbs/basic-agent-with-clickhousedb.mdx b/examples/agent-os/tracing/dbs/basic-agent-with-clickhousedb.mdx index 0fce12dfd..578631cbe 100644 --- a/examples/agent-os/tracing/dbs/basic-agent-with-clickhousedb.mdx +++ b/examples/agent-os/tracing/dbs/basic-agent-with-clickhousedb.mdx @@ -128,4 +128,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/tracing/dbs/basic_agent_with_clickhousedb.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/tracing/dbs/basic_agent_with_clickhousedb.py) +Full source: [cookbook/05_agent_os/tracing/dbs/basic_agent_with_clickhousedb.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/tracing/dbs/basic_agent_with_clickhousedb.py) diff --git a/examples/agent-os/tracing/dbs/basic-agent-with-mongodb.mdx b/examples/agent-os/tracing/dbs/basic-agent-with-mongodb.mdx index 161415d3c..689838397 100644 --- a/examples/agent-os/tracing/dbs/basic-agent-with-mongodb.mdx +++ b/examples/agent-os/tracing/dbs/basic-agent-with-mongodb.mdx @@ -88,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/tracing/dbs/basic_agent_with_mongodb.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/tracing/dbs/basic_agent_with_mongodb.py) +Full source: [cookbook/05_agent_os/tracing/dbs/basic_agent_with_mongodb.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/tracing/dbs/basic_agent_with_mongodb.py) diff --git a/examples/agent-os/tracing/dbs/basic-agent-with-postgresdb.mdx b/examples/agent-os/tracing/dbs/basic-agent-with-postgresdb.mdx index 6c34f6c40..98c4dc8ac 100644 --- a/examples/agent-os/tracing/dbs/basic-agent-with-postgresdb.mdx +++ b/examples/agent-os/tracing/dbs/basic-agent-with-postgresdb.mdx @@ -82,4 +82,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/tracing/dbs/basic_agent_with_postgresdb.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/tracing/dbs/basic_agent_with_postgresdb.py) +Full source: [cookbook/05_agent_os/tracing/dbs/basic_agent_with_postgresdb.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/tracing/dbs/basic_agent_with_postgresdb.py) diff --git a/examples/agent-os/tracing/dbs/basic-agent-with-sqlite.mdx b/examples/agent-os/tracing/dbs/basic-agent-with-sqlite.mdx index feb5cfc84..384310733 100644 --- a/examples/agent-os/tracing/dbs/basic-agent-with-sqlite.mdx +++ b/examples/agent-os/tracing/dbs/basic-agent-with-sqlite.mdx @@ -81,4 +81,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/tracing/dbs/basic_agent_with_sqlite.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/tracing/dbs/basic_agent_with_sqlite.py) +Full source: [cookbook/05_agent_os/tracing/dbs/basic_agent_with_sqlite.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/tracing/dbs/basic_agent_with_sqlite.py) diff --git a/examples/agent-os/tracing/tracing-with-multi-db-and-tracing-flag.mdx b/examples/agent-os/tracing/tracing-with-multi-db-and-tracing-flag.mdx index b57cfd6ea..a44cce735 100644 --- a/examples/agent-os/tracing/tracing-with-multi-db-and-tracing-flag.mdx +++ b/examples/agent-os/tracing/tracing-with-multi-db-and-tracing-flag.mdx @@ -96,4 +96,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/tracing/07_tracing_with_multi_db_and_tracing_flag.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/tracing/07_tracing_with_multi_db_and_tracing_flag.py) +Full source: [cookbook/05_agent_os/tracing/07_tracing_with_multi_db_and_tracing_flag.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/tracing/07_tracing_with_multi_db_and_tracing_flag.py) diff --git a/examples/agent-os/tracing/tracing-with-multi-db-scenario.mdx b/examples/agent-os/tracing/tracing-with-multi-db-scenario.mdx index ad8b907bd..4c822ba49 100644 --- a/examples/agent-os/tracing/tracing-with-multi-db-scenario.mdx +++ b/examples/agent-os/tracing/tracing-with-multi-db-scenario.mdx @@ -100,4 +100,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/tracing/06_tracing_with_multi_db_scenario.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/tracing/06_tracing_with_multi_db_scenario.py) +Full source: [cookbook/05_agent_os/tracing/06_tracing_with_multi_db_scenario.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/tracing/06_tracing_with_multi_db_scenario.py) diff --git a/examples/agent-os/workflow/basic-chat-workflow-agent.mdx b/examples/agent-os/workflow/basic-chat-workflow-agent.mdx index 3a4aa7271..48de1979d 100644 --- a/examples/agent-os/workflow/basic-chat-workflow-agent.mdx +++ b/examples/agent-os/workflow/basic-chat-workflow-agent.mdx @@ -157,4 +157,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/workflow/basic_chat_workflow_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/workflow/basic_chat_workflow_agent.py) +Full source: [cookbook/05_agent_os/workflow/basic_chat_workflow_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/workflow/basic_chat_workflow_agent.py) diff --git a/examples/agent-os/workflow/basic-workflow-team.mdx b/examples/agent-os/workflow/basic-workflow-team.mdx index ee217d43a..0bc768edb 100644 --- a/examples/agent-os/workflow/basic-workflow-team.mdx +++ b/examples/agent-os/workflow/basic-workflow-team.mdx @@ -121,4 +121,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/workflow/basic_workflow_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/workflow/basic_workflow_team.py) +Full source: [cookbook/05_agent_os/workflow/basic_workflow_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/workflow/basic_workflow_team.py) diff --git a/examples/agent-os/workflow/basic-workflow.mdx b/examples/agent-os/workflow/basic-workflow.mdx index 6f4b21527..e232c3a6d 100644 --- a/examples/agent-os/workflow/basic-workflow.mdx +++ b/examples/agent-os/workflow/basic-workflow.mdx @@ -110,4 +110,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/workflow/basic_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/workflow/basic_workflow.py) +Full source: [cookbook/05_agent_os/workflow/basic_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/workflow/basic_workflow.py) diff --git a/examples/agent-os/workflow/customer-research-workflow-parallel.mdx b/examples/agent-os/workflow/customer-research-workflow-parallel.mdx index 8968d63c3..633e65488 100644 --- a/examples/agent-os/workflow/customer-research-workflow-parallel.mdx +++ b/examples/agent-os/workflow/customer-research-workflow-parallel.mdx @@ -318,12 +318,11 @@ def set_session_state_step( async def customer_profile_research_step( - step_input: StepInput, run_context: RunContext + step_input: StepInput, session_state: dict ) -> AsyncIterator[Union[WorkflowRunOutputEvent, StepOutput]]: """ Conduct customer profile research with session state tracking """ - session_state = run_context.session_state customer_query = step_input.input previous_content = step_input.previous_step_content @@ -389,12 +388,11 @@ async def customer_profile_research_step( async def customer_biz_goals_research_step( - step_input: StepInput, run_context: RunContext + step_input: StepInput, session_state: dict ) -> AsyncIterator[Union[WorkflowRunOutputEvent, StepOutput]]: """ Conduct business goals research with session state tracking """ - session_state = run_context.session_state customer_query = step_input.input # Update session state @@ -459,12 +457,11 @@ async def customer_biz_goals_research_step( async def web_intelligence_research_step( - step_input: StepInput, run_context: RunContext + step_input: StepInput, session_state: dict ) -> AsyncIterator[Union[WorkflowRunOutputEvent, StepOutput]]: """ Conduct web intelligence research with session state tracking """ - session_state = run_context.session_state customer_query = step_input.input # Update session state @@ -529,12 +526,11 @@ async def web_intelligence_research_step( async def customer_report_consolidation_step( - step_input: StepInput, run_context: RunContext + step_input: StepInput, session_state: dict ) -> AsyncIterator[Union[WorkflowRunOutputEvent, StepOutput]]: """ Consolidate all research findings into comprehensive customer report """ - session_state = run_context.session_state customer_query = step_input.input # Gather all research findings from session state @@ -630,12 +626,11 @@ async def customer_report_consolidation_step( async def task_recommender_step( - step_input: StepInput, run_context: RunContext + step_input: StepInput, session_state: dict ) -> AsyncIterator[Union[WorkflowRunOutputEvent, StepOutput]]: """ Generate actionable task recommendations based on consolidated research """ - session_state = run_context.session_state customer_query = step_input.input research_data = session_state["customer_research"] @@ -841,4 +836,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/workflow/customer_research_workflow_parallel.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/workflow/customer_research_workflow_parallel.py) +Full source: [cookbook/05_agent_os/workflow/customer_research_workflow_parallel.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/workflow/customer_research_workflow_parallel.py) diff --git a/examples/agent-os/workflow/workflow-with-conditional.mdx b/examples/agent-os/workflow/workflow-with-conditional.mdx index a111a669e..87af0f348 100644 --- a/examples/agent-os/workflow/workflow-with-conditional.mdx +++ b/examples/agent-os/workflow/workflow-with-conditional.mdx @@ -169,4 +169,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/workflow/workflow_with_conditional.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/workflow/workflow_with_conditional.py) +Full source: [cookbook/05_agent_os/workflow/workflow_with_conditional.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/workflow/workflow_with_conditional.py) diff --git a/examples/agent-os/workflow/workflow-with-custom-function-updating-session-state.mdx b/examples/agent-os/workflow/workflow-with-custom-function-updating-session-state.mdx index 6272144bf..615e681dd 100644 --- a/examples/agent-os/workflow/workflow-with-custom-function-updating-session-state.mdx +++ b/examples/agent-os/workflow/workflow-with-custom-function-updating-session-state.mdx @@ -270,4 +270,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/workflow/workflow_with_custom_function_updating_session_state.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/workflow/workflow_with_custom_function_updating_session_state.py) +Full source: [cookbook/05_agent_os/workflow/workflow_with_custom_function_updating_session_state.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/workflow/workflow_with_custom_function_updating_session_state.py) diff --git a/examples/agent-os/workflow/workflow-with-custom-function.mdx b/examples/agent-os/workflow/workflow-with-custom-function.mdx index e6df4b5cf..7d30a81d9 100644 --- a/examples/agent-os/workflow/workflow-with-custom-function.mdx +++ b/examples/agent-os/workflow/workflow-with-custom-function.mdx @@ -277,4 +277,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/workflow/workflow_with_custom_function.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/workflow/workflow_with_custom_function.py) +Full source: [cookbook/05_agent_os/workflow/workflow_with_custom_function.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/workflow/workflow_with_custom_function.py) diff --git a/examples/agent-os/workflow/workflow-with-history.mdx b/examples/agent-os/workflow/workflow-with-history.mdx index b8928761a..6a9e019a4 100644 --- a/examples/agent-os/workflow/workflow-with-history.mdx +++ b/examples/agent-os/workflow/workflow-with-history.mdx @@ -198,4 +198,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/workflow/workflow_with_history.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/workflow/workflow_with_history.py) +Full source: [cookbook/05_agent_os/workflow/workflow_with_history.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/workflow/workflow_with_history.py) diff --git a/examples/agent-os/workflow/workflow-with-input-schema.mdx b/examples/agent-os/workflow/workflow-with-input-schema.mdx index 126595b96..d6a93c34a 100644 --- a/examples/agent-os/workflow/workflow-with-input-schema.mdx +++ b/examples/agent-os/workflow/workflow-with-input-schema.mdx @@ -139,4 +139,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/workflow/workflow_with_input_schema.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/workflow/workflow_with_input_schema.py) +Full source: [cookbook/05_agent_os/workflow/workflow_with_input_schema.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/workflow/workflow_with_input_schema.py) diff --git a/examples/agent-os/workflow/workflow-with-loop.mdx b/examples/agent-os/workflow/workflow-with-loop.mdx index 355bacb24..6825a55b9 100644 --- a/examples/agent-os/workflow/workflow-with-loop.mdx +++ b/examples/agent-os/workflow/workflow-with-loop.mdx @@ -155,4 +155,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/workflow/workflow_with_loop.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/workflow/workflow_with_loop.py) +Full source: [cookbook/05_agent_os/workflow/workflow_with_loop.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/workflow/workflow_with_loop.py) diff --git a/examples/agent-os/workflow/workflow-with-nested-steps.mdx b/examples/agent-os/workflow/workflow-with-nested-steps.mdx index 92d00b0c7..e475daebb 100644 --- a/examples/agent-os/workflow/workflow-with-nested-steps.mdx +++ b/examples/agent-os/workflow/workflow-with-nested-steps.mdx @@ -175,4 +175,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/workflow/workflow_with_nested_steps.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/workflow/workflow_with_nested_steps.py) +Full source: [cookbook/05_agent_os/workflow/workflow_with_nested_steps.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/workflow/workflow_with_nested_steps.py) diff --git a/examples/agent-os/workflow/workflow-with-parallel-and-custom-function-step-stream.mdx b/examples/agent-os/workflow/workflow-with-parallel-and-custom-function-step-stream.mdx index 84dc37474..8cb9a5abb 100644 --- a/examples/agent-os/workflow/workflow-with-parallel-and-custom-function-step-stream.mdx +++ b/examples/agent-os/workflow/workflow-with-parallel-and-custom-function-step-stream.mdx @@ -343,4 +343,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/workflow/workflow_with_parallel_and_custom_function_step_stream.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/workflow/workflow_with_parallel_and_custom_function_step_stream.py) +Full source: [cookbook/05_agent_os/workflow/workflow_with_parallel_and_custom_function_step_stream.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/workflow/workflow_with_parallel_and_custom_function_step_stream.py) diff --git a/examples/agent-os/workflow/workflow-with-parallel.mdx b/examples/agent-os/workflow/workflow-with-parallel.mdx index 22cb8c406..a9f580f1f 100644 --- a/examples/agent-os/workflow/workflow-with-parallel.mdx +++ b/examples/agent-os/workflow/workflow-with-parallel.mdx @@ -97,4 +97,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/workflow/workflow_with_parallel.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/workflow/workflow_with_parallel.py) +Full source: [cookbook/05_agent_os/workflow/workflow_with_parallel.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/workflow/workflow_with_parallel.py) diff --git a/examples/agent-os/workflow/workflow-with-router.mdx b/examples/agent-os/workflow/workflow-with-router.mdx index 009cc12a3..3aed39487 100644 --- a/examples/agent-os/workflow/workflow-with-router.mdx +++ b/examples/agent-os/workflow/workflow-with-router.mdx @@ -167,4 +167,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/workflow/workflow_with_router.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/workflow/workflow_with_router.py) +Full source: [cookbook/05_agent_os/workflow/workflow_with_router.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/workflow/workflow_with_router.py) diff --git a/examples/agent-os/workflow/workflow-with-steps.mdx b/examples/agent-os/workflow/workflow-with-steps.mdx index 3f4ba6123..bc0e9fe80 100644 --- a/examples/agent-os/workflow/workflow-with-steps.mdx +++ b/examples/agent-os/workflow/workflow-with-steps.mdx @@ -128,4 +128,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/workflow/workflow_with_steps.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/workflow/workflow_with_steps.py) +Full source: [cookbook/05_agent_os/workflow/workflow_with_steps.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/workflow/workflow_with_steps.py) diff --git a/examples/agent-os/workflow/workflow-with-workflow-as-step.mdx b/examples/agent-os/workflow/workflow-with-workflow-as-step.mdx index 75a91570b..43743c577 100644 --- a/examples/agent-os/workflow/workflow-with-workflow-as-step.mdx +++ b/examples/agent-os/workflow/workflow-with-workflow-as-step.mdx @@ -217,4 +217,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/workflow/workflow_with_workflow_as_step.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/workflow/workflow_with_workflow_as_step.py) +Full source: [cookbook/05_agent_os/workflow/workflow_with_workflow_as_step.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/workflow/workflow_with_workflow_as_step.py) diff --git a/examples/agents/advanced/advanced-compression.mdx b/examples/agents/advanced/advanced-compression.mdx index 2fca72112..e9ec37496 100644 --- a/examples/agents/advanced/advanced-compression.mdx +++ b/examples/agents/advanced/advanced-compression.mdx @@ -119,4 +119,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/advanced_compression.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/advanced_compression.py) +Full source: [cookbook/02_agents/14_advanced/advanced_compression.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/advanced_compression.py) diff --git a/examples/agents/advanced/agent-run-cancel-persistence.mdx b/examples/agents/advanced/agent-run-cancel-persistence.mdx index 22737016d..97c635db4 100644 --- a/examples/agents/advanced/agent-run-cancel-persistence.mdx +++ b/examples/agents/advanced/agent-run-cancel-persistence.mdx @@ -104,4 +104,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/agent_run_cancel_persistence.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/agent_run_cancel_persistence.py) +Full source: [cookbook/02_agents/14_advanced/agent_run_cancel_persistence.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/agent_run_cancel_persistence.py) diff --git a/examples/agents/advanced/agent-serialization.mdx b/examples/agents/advanced/agent-serialization.mdx index b34d94d64..427a32964 100644 --- a/examples/agents/advanced/agent-serialization.mdx +++ b/examples/agents/advanced/agent-serialization.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/agent_serialization.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/agent_serialization.py) +Full source: [cookbook/02_agents/14_advanced/agent_serialization.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/agent_serialization.py) diff --git a/examples/agents/advanced/automatic-cultural-management.mdx b/examples/agents/advanced/automatic-cultural-management.mdx index 22dec55bc..c8279dbf0 100644 --- a/examples/agents/advanced/automatic-cultural-management.mdx +++ b/examples/agents/advanced/automatic-cultural-management.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/03_automatic_cultural_management.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/03_automatic_cultural_management.py) +Full source: [cookbook/02_agents/14_advanced/03_automatic_cultural_management.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/03_automatic_cultural_management.py) diff --git a/examples/agents/advanced/background-execution-metrics.mdx b/examples/agents/advanced/background-execution-metrics.mdx index 920b9d8f1..9fa42d0bc 100644 --- a/examples/agents/advanced/background-execution-metrics.mdx +++ b/examples/agents/advanced/background-execution-metrics.mdx @@ -136,4 +136,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/background_execution_metrics.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/background_execution_metrics.py) +Full source: [cookbook/02_agents/14_advanced/background_execution_metrics.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/background_execution_metrics.py) diff --git a/examples/agents/advanced/background-execution-structured.mdx b/examples/agents/advanced/background-execution-structured.mdx index a4f230abb..d0e752d32 100644 --- a/examples/agents/advanced/background-execution-structured.mdx +++ b/examples/agents/advanced/background-execution-structured.mdx @@ -229,4 +229,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/background_execution_structured.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/background_execution_structured.py) +Full source: [cookbook/02_agents/14_advanced/background_execution_structured.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/background_execution_structured.py) diff --git a/examples/agents/advanced/background-execution.mdx b/examples/agents/advanced/background-execution.mdx index 89bdfdfad..ca0f9d04f 100644 --- a/examples/agents/advanced/background-execution.mdx +++ b/examples/agents/advanced/background-execution.mdx @@ -227,4 +227,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/background_execution.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/background_execution.py) +Full source: [cookbook/02_agents/14_advanced/background_execution.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/background_execution.py) diff --git a/examples/agents/advanced/basic-agent-events.mdx b/examples/agents/advanced/basic-agent-events.mdx index d9db7be21..319e0d393 100644 --- a/examples/agents/advanced/basic-agent-events.mdx +++ b/examples/agents/advanced/basic-agent-events.mdx @@ -102,4 +102,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/basic_agent_events.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/basic_agent_events.py) +Full source: [cookbook/02_agents/14_advanced/basic_agent_events.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/basic_agent_events.py) diff --git a/examples/agents/advanced/cache-model-response.mdx b/examples/agents/advanced/cache-model-response.mdx index 4dba8cfa3..82e5b2383 100644 --- a/examples/agents/advanced/cache-model-response.mdx +++ b/examples/agents/advanced/cache-model-response.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/cache_model_response.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/cache_model_response.py) +Full source: [cookbook/02_agents/14_advanced/cache_model_response.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/cache_model_response.py) diff --git a/examples/agents/advanced/cancel-run.mdx b/examples/agents/advanced/cancel-run.mdx index ebafb5d6c..bcd58517c 100644 --- a/examples/agents/advanced/cancel-run.mdx +++ b/examples/agents/advanced/cancel-run.mdx @@ -241,4 +241,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/cancel_run.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/cancel_run.py) +Full source: [cookbook/02_agents/14_advanced/cancel_run.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/cancel_run.py) diff --git a/examples/agents/advanced/combined-metrics.mdx b/examples/agents/advanced/combined-metrics.mdx index fe6ce56f8..fd7a0da40 100644 --- a/examples/agents/advanced/combined-metrics.mdx +++ b/examples/agents/advanced/combined-metrics.mdx @@ -144,4 +144,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/combined_metrics.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/combined_metrics.py) +Full source: [cookbook/02_agents/14_advanced/combined_metrics.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/combined_metrics.py) diff --git a/examples/agents/advanced/compression-events.mdx b/examples/agents/advanced/compression-events.mdx index d4d034653..737cbf5cf 100644 --- a/examples/agents/advanced/compression-events.mdx +++ b/examples/agents/advanced/compression-events.mdx @@ -121,4 +121,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/compression_events.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/compression_events.py) +Full source: [cookbook/02_agents/14_advanced/compression_events.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/compression_events.py) diff --git a/examples/agents/advanced/concurrent-execution.mdx b/examples/agents/advanced/concurrent-execution.mdx index d6ae667af..b8cd142f8 100644 --- a/examples/agents/advanced/concurrent-execution.mdx +++ b/examples/agents/advanced/concurrent-execution.mdx @@ -93,4 +93,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/concurrent_execution.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/concurrent_execution.py) +Full source: [cookbook/02_agents/14_advanced/concurrent_execution.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/concurrent_execution.py) diff --git a/examples/agents/advanced/create-cultural-knowledge.mdx b/examples/agents/advanced/create-cultural-knowledge.mdx index a7a1f7d8c..5ab6719ff 100644 --- a/examples/agents/advanced/create-cultural-knowledge.mdx +++ b/examples/agents/advanced/create-cultural-knowledge.mdx @@ -104,4 +104,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/01_create_cultural_knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/01_create_cultural_knowledge.py) +Full source: [cookbook/02_agents/14_advanced/01_create_cultural_knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/01_create_cultural_knowledge.py) diff --git a/examples/agents/advanced/culture-metrics.mdx b/examples/agents/advanced/culture-metrics.mdx index 0bd8a1594..235c4c932 100644 --- a/examples/agents/advanced/culture-metrics.mdx +++ b/examples/agents/advanced/culture-metrics.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/culture_metrics.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/culture_metrics.py) +Full source: [cookbook/02_agents/14_advanced/culture_metrics.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/culture_metrics.py) diff --git a/examples/agents/advanced/custom-cancellation-manager.mdx b/examples/agents/advanced/custom-cancellation-manager.mdx index 5df73dcf1..79bd4717c 100644 --- a/examples/agents/advanced/custom-cancellation-manager.mdx +++ b/examples/agents/advanced/custom-cancellation-manager.mdx @@ -237,4 +237,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/custom_cancellation_manager.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/custom_cancellation_manager.py) +Full source: [cookbook/02_agents/14_advanced/custom_cancellation_manager.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/custom_cancellation_manager.py) diff --git a/examples/agents/advanced/custom-logging.mdx b/examples/agents/advanced/custom-logging.mdx index c7de94e35..851052d23 100644 --- a/examples/agents/advanced/custom-logging.mdx +++ b/examples/agents/advanced/custom-logging.mdx @@ -94,4 +94,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/custom_logging.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/custom_logging.py) +Full source: [cookbook/02_agents/14_advanced/custom_logging.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/custom_logging.py) diff --git a/examples/agents/advanced/debug.mdx b/examples/agents/advanced/debug.mdx index c4d8edf05..1155568ce 100644 --- a/examples/agents/advanced/debug.mdx +++ b/examples/agents/advanced/debug.mdx @@ -68,4 +68,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/debug.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/debug.py) +Full source: [cookbook/02_agents/14_advanced/debug.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/debug.py) diff --git a/examples/agents/advanced/interchange-model/all-providers.mdx b/examples/agents/advanced/interchange-model/all-providers.mdx index 45f96c898..a708e03d2 100644 --- a/examples/agents/advanced/interchange-model/all-providers.mdx +++ b/examples/agents/advanced/interchange-model/all-providers.mdx @@ -43,7 +43,6 @@ def main() -> None: add_history_to_context=True, num_history_runs=10, tools=[get_weather], - debug_mode=True, introduction="You are a weather agent that can check the weather in different cities.", ) @@ -126,4 +125,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/interchange_model/all_providers.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/interchange_model/all_providers.py) +Full source: [cookbook/02_agents/14_advanced/interchange_model/all_providers.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/interchange_model/all_providers.py) diff --git a/examples/agents/advanced/interchange-model/claude-gemini.mdx b/examples/agents/advanced/interchange-model/claude-gemini.mdx index 877510171..7dc44d3bf 100644 --- a/examples/agents/advanced/interchange-model/claude-gemini.mdx +++ b/examples/agents/advanced/interchange-model/claude-gemini.mdx @@ -31,7 +31,6 @@ def main() -> None: add_history_to_context=True, num_history_runs=10, tools=[get_weather], - debug_mode=True, ) # Turn 1 — Claude with tool call @@ -89,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/interchange_model/claude_gemini.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/interchange_model/claude_gemini.py) +Full source: [cookbook/02_agents/14_advanced/interchange_model/claude_gemini.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/interchange_model/claude_gemini.py) diff --git a/examples/agents/advanced/interchange-model/openai-chat-responses.mdx b/examples/agents/advanced/interchange-model/openai-chat-responses.mdx index dd5fc38e0..a634ea9af 100644 --- a/examples/agents/advanced/interchange-model/openai-chat-responses.mdx +++ b/examples/agents/advanced/interchange-model/openai-chat-responses.mdx @@ -30,7 +30,6 @@ def main() -> None: add_history_to_context=True, num_history_runs=10, tools=[get_weather], - debug_mode=True, ) # Turn 1 — OpenAI with tool call (works fine) @@ -86,4 +85,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/interchange_model/openai_chat_responses.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/interchange_model/openai_chat_responses.py) +Full source: [cookbook/02_agents/14_advanced/interchange_model/openai_chat_responses.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/interchange_model/openai_chat_responses.py) diff --git a/examples/agents/advanced/interchange-model/openai-claude.mdx b/examples/agents/advanced/interchange-model/openai-claude.mdx index af675e9a8..5eb0c5b02 100644 --- a/examples/agents/advanced/interchange-model/openai-claude.mdx +++ b/examples/agents/advanced/interchange-model/openai-claude.mdx @@ -31,7 +31,6 @@ def main() -> None: add_history_to_context=True, num_history_runs=10, tools=[get_weather], - debug_mode=True, ) # Turn 1 — OpenAI with tool call (works fine) @@ -89,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/interchange_model/openai_claude.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/interchange_model/openai_claude.py) +Full source: [cookbook/02_agents/14_advanced/interchange_model/openai_claude.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/interchange_model/openai_claude.py) diff --git a/examples/agents/advanced/interchange-model/openai-gemini.mdx b/examples/agents/advanced/interchange-model/openai-gemini.mdx index 46446e5d8..6df02b4d2 100644 --- a/examples/agents/advanced/interchange-model/openai-gemini.mdx +++ b/examples/agents/advanced/interchange-model/openai-gemini.mdx @@ -31,7 +31,6 @@ def main() -> None: add_history_to_context=True, num_history_runs=10, tools=[get_weather], - debug_mode=True, ) # Turn 1 — OpenAI with tool call (works fine) @@ -89,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/interchange_model/openai_gemini.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/interchange_model/openai_gemini.py) +Full source: [cookbook/02_agents/14_advanced/interchange_model/openai_gemini.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/interchange_model/openai_gemini.py) diff --git a/examples/agents/advanced/manually-add-culture.mdx b/examples/agents/advanced/manually-add-culture.mdx index db2d004e6..0c1267a7a 100644 --- a/examples/agents/advanced/manually-add-culture.mdx +++ b/examples/agents/advanced/manually-add-culture.mdx @@ -122,4 +122,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/04_manually_add_culture.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/04_manually_add_culture.py) +Full source: [cookbook/02_agents/14_advanced/04_manually_add_culture.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/04_manually_add_culture.py) diff --git a/examples/agents/advanced/metrics.mdx b/examples/agents/advanced/metrics.mdx index ac4a41c24..1a314c237 100644 --- a/examples/agents/advanced/metrics.mdx +++ b/examples/agents/advanced/metrics.mdx @@ -106,4 +106,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/metrics.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/metrics.py) +Full source: [cookbook/02_agents/14_advanced/metrics.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/metrics.py) diff --git a/examples/agents/advanced/multi-model-metrics.mdx b/examples/agents/advanced/multi-model-metrics.mdx index 428401963..e8f3595d9 100644 --- a/examples/agents/advanced/multi-model-metrics.mdx +++ b/examples/agents/advanced/multi-model-metrics.mdx @@ -89,4 +89,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/multi_model_metrics.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/multi_model_metrics.py) +Full source: [cookbook/02_agents/14_advanced/multi_model_metrics.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/multi_model_metrics.py) diff --git a/examples/agents/advanced/reasoning-agent-events.mdx b/examples/agents/advanced/reasoning-agent-events.mdx index 20ea85601..e864c4c76 100644 --- a/examples/agents/advanced/reasoning-agent-events.mdx +++ b/examples/agents/advanced/reasoning-agent-events.mdx @@ -105,4 +105,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/reasoning_agent_events.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/reasoning_agent_events.py) +Full source: [cookbook/02_agents/14_advanced/reasoning_agent_events.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/reasoning_agent_events.py) diff --git a/examples/agents/advanced/retries.mdx b/examples/agents/advanced/retries.mdx index 46a17cf67..b4e39e005 100644 --- a/examples/agents/advanced/retries.mdx +++ b/examples/agents/advanced/retries.mdx @@ -70,4 +70,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/retries.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/retries.py) +Full source: [cookbook/02_agents/14_advanced/retries.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/retries.py) diff --git a/examples/agents/advanced/session-metrics.mdx b/examples/agents/advanced/session-metrics.mdx index ad1857fa7..3e09bb4db 100644 --- a/examples/agents/advanced/session-metrics.mdx +++ b/examples/agents/advanced/session-metrics.mdx @@ -89,4 +89,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/session_metrics.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/session_metrics.py) +Full source: [cookbook/02_agents/14_advanced/session_metrics.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/session_metrics.py) diff --git a/examples/agents/advanced/session-summary-metrics.mdx b/examples/agents/advanced/session-summary-metrics.mdx index b0a125db1..91d665303 100644 --- a/examples/agents/advanced/session-summary-metrics.mdx +++ b/examples/agents/advanced/session-summary-metrics.mdx @@ -108,4 +108,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/session_summary_metrics.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/session_summary_metrics.py) +Full source: [cookbook/02_agents/14_advanced/session_summary_metrics.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/session_summary_metrics.py) diff --git a/examples/agents/advanced/streaming-metrics.mdx b/examples/agents/advanced/streaming-metrics.mdx index acf34c902..8f02e8769 100644 --- a/examples/agents/advanced/streaming-metrics.mdx +++ b/examples/agents/advanced/streaming-metrics.mdx @@ -83,4 +83,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/streaming_metrics.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/streaming_metrics.py) +Full source: [cookbook/02_agents/14_advanced/streaming_metrics.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/streaming_metrics.py) diff --git a/examples/agents/advanced/tool-call-compression.mdx b/examples/agents/advanced/tool-call-compression.mdx index f985a8d02..bd4902398 100644 --- a/examples/agents/advanced/tool-call-compression.mdx +++ b/examples/agents/advanced/tool-call-compression.mdx @@ -81,4 +81,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/tool_call_compression.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/tool_call_compression.py) +Full source: [cookbook/02_agents/14_advanced/tool_call_compression.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/tool_call_compression.py) diff --git a/examples/agents/advanced/tool-call-metrics.mdx b/examples/agents/advanced/tool-call-metrics.mdx index 87769fb7a..d4505d138 100644 --- a/examples/agents/advanced/tool-call-metrics.mdx +++ b/examples/agents/advanced/tool-call-metrics.mdx @@ -94,4 +94,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/tool_call_metrics.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/tool_call_metrics.py) +Full source: [cookbook/02_agents/14_advanced/tool_call_metrics.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/tool_call_metrics.py) diff --git a/examples/agents/advanced/use-cultural-knowledge-in-agent.mdx b/examples/agents/advanced/use-cultural-knowledge-in-agent.mdx index 32bfa2c5c..6b3e5d784 100644 --- a/examples/agents/advanced/use-cultural-knowledge-in-agent.mdx +++ b/examples/agents/advanced/use-cultural-knowledge-in-agent.mdx @@ -91,4 +91,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/14_advanced/02_use_cultural_knowledge_in_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/02_use_cultural_knowledge_in_agent.py) +Full source: [cookbook/02_agents/14_advanced/02_use_cultural_knowledge_in_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/02_use_cultural_knowledge_in_agent.py) diff --git a/examples/agents/approvals/approval-async.mdx b/examples/agents/approvals/approval-async.mdx index 7eb4d22a0..b3b53fa08 100644 --- a/examples/agents/approvals/approval-async.mdx +++ b/examples/agents/approvals/approval-async.mdx @@ -171,4 +171,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/11_approvals/approval_async.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/11_approvals/approval_async.py) +Full source: [cookbook/02_agents/11_approvals/approval_async.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/11_approvals/approval_async.py) diff --git a/examples/agents/approvals/approval-basic.mdx b/examples/agents/approvals/approval-basic.mdx index 5147b17bc..ca7e48ca7 100644 --- a/examples/agents/approvals/approval-basic.mdx +++ b/examples/agents/approvals/approval-basic.mdx @@ -169,4 +169,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/11_approvals/approval_basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/11_approvals/approval_basic.py) +Full source: [cookbook/02_agents/11_approvals/approval_basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/11_approvals/approval_basic.py) diff --git a/examples/agents/approvals/approval-external-execution.mdx b/examples/agents/approvals/approval-external-execution.mdx index 210c4eae7..cdff5850c 100644 --- a/examples/agents/approvals/approval-external-execution.mdx +++ b/examples/agents/approvals/approval-external-execution.mdx @@ -159,4 +159,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/11_approvals/approval_external_execution.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/11_approvals/approval_external_execution.py) +Full source: [cookbook/02_agents/11_approvals/approval_external_execution.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/11_approvals/approval_external_execution.py) diff --git a/examples/agents/approvals/approval-list-and-resolve.mdx b/examples/agents/approvals/approval-list-and-resolve.mdx index b8ad1bc5e..07fc1aa71 100644 --- a/examples/agents/approvals/approval-list-and-resolve.mdx +++ b/examples/agents/approvals/approval-list-and-resolve.mdx @@ -235,4 +235,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/11_approvals/approval_list_and_resolve.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/11_approvals/approval_list_and_resolve.py) +Full source: [cookbook/02_agents/11_approvals/approval_list_and_resolve.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/11_approvals/approval_list_and_resolve.py) diff --git a/examples/agents/approvals/approval-post-hook.mdx b/examples/agents/approvals/approval-post-hook.mdx index cd33f29f1..76d6b5dca 100644 --- a/examples/agents/approvals/approval-post-hook.mdx +++ b/examples/agents/approvals/approval-post-hook.mdx @@ -141,4 +141,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/11_approvals/approval_post_hook.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/11_approvals/approval_post_hook.py) +Full source: [cookbook/02_agents/11_approvals/approval_post_hook.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/11_approvals/approval_post_hook.py) diff --git a/examples/agents/approvals/approval-user-input.mdx b/examples/agents/approvals/approval-user-input.mdx index d6b061489..dda45ffd0 100644 --- a/examples/agents/approvals/approval-user-input.mdx +++ b/examples/agents/approvals/approval-user-input.mdx @@ -165,4 +165,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/11_approvals/approval_user_input.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/11_approvals/approval_user_input.py) +Full source: [cookbook/02_agents/11_approvals/approval_user_input.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/11_approvals/approval_user_input.py) diff --git a/examples/agents/approvals/audit-approval-async.mdx b/examples/agents/approvals/audit-approval-async.mdx index 4bd40f382..bd921cb8b 100644 --- a/examples/agents/approvals/audit-approval-async.mdx +++ b/examples/agents/approvals/audit-approval-async.mdx @@ -155,4 +155,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/11_approvals/audit_approval_async.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/11_approvals/audit_approval_async.py) +Full source: [cookbook/02_agents/11_approvals/audit_approval_async.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/11_approvals/audit_approval_async.py) diff --git a/examples/agents/approvals/audit-approval-confirmation.mdx b/examples/agents/approvals/audit-approval-confirmation.mdx index 7af8f7f74..e955db286 100644 --- a/examples/agents/approvals/audit-approval-confirmation.mdx +++ b/examples/agents/approvals/audit-approval-confirmation.mdx @@ -195,4 +195,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/11_approvals/audit_approval_confirmation.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/11_approvals/audit_approval_confirmation.py) +Full source: [cookbook/02_agents/11_approvals/audit_approval_confirmation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/11_approvals/audit_approval_confirmation.py) diff --git a/examples/agents/approvals/audit-approval-external.mdx b/examples/agents/approvals/audit-approval-external.mdx index 23feea363..f7318356d 100644 --- a/examples/agents/approvals/audit-approval-external.mdx +++ b/examples/agents/approvals/audit-approval-external.mdx @@ -152,4 +152,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/11_approvals/audit_approval_external.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/11_approvals/audit_approval_external.py) +Full source: [cookbook/02_agents/11_approvals/audit_approval_external.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/11_approvals/audit_approval_external.py) diff --git a/examples/agents/approvals/audit-approval-overview.mdx b/examples/agents/approvals/audit-approval-overview.mdx index 940bfdc47..583c9f64c 100644 --- a/examples/agents/approvals/audit-approval-overview.mdx +++ b/examples/agents/approvals/audit-approval-overview.mdx @@ -224,4 +224,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/11_approvals/audit_approval_overview.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/11_approvals/audit_approval_overview.py) +Full source: [cookbook/02_agents/11_approvals/audit_approval_overview.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/11_approvals/audit_approval_overview.py) diff --git a/examples/agents/approvals/audit-approval-user-input.mdx b/examples/agents/approvals/audit-approval-user-input.mdx index 48ee1e7b8..4b378ca9c 100644 --- a/examples/agents/approvals/audit-approval-user-input.mdx +++ b/examples/agents/approvals/audit-approval-user-input.mdx @@ -162,4 +162,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/11_approvals/audit_approval_user_input.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/11_approvals/audit_approval_user_input.py) +Full source: [cookbook/02_agents/11_approvals/audit_approval_user_input.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/11_approvals/audit_approval_user_input.py) diff --git a/examples/agents/basics/agent-with-instructions.mdx b/examples/agents/basics/agent-with-instructions.mdx index be690338e..c1fd31186 100644 --- a/examples/agents/basics/agent-with-instructions.mdx +++ b/examples/agents/basics/agent-with-instructions.mdx @@ -72,4 +72,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/01_quickstart/agent_with_instructions.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/01_quickstart/agent_with_instructions.py) +Full source: [cookbook/02_agents/01_quickstart/agent_with_instructions.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/01_quickstart/agent_with_instructions.py) diff --git a/examples/agents/basics/agent-with-tools.mdx b/examples/agents/basics/agent-with-tools.mdx index a7bdfd55c..e4ca0d6fd 100644 --- a/examples/agents/basics/agent-with-tools.mdx +++ b/examples/agents/basics/agent-with-tools.mdx @@ -65,4 +65,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/01_quickstart/agent_with_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/01_quickstart/agent_with_tools.py) +Full source: [cookbook/02_agents/01_quickstart/agent_with_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/01_quickstart/agent_with_tools.py) diff --git a/examples/agents/basics/basic-agent.mdx b/examples/agents/basics/basic-agent.mdx index 38bc05e41..25ec8fb35 100644 --- a/examples/agents/basics/basic-agent.mdx +++ b/examples/agents/basics/basic-agent.mdx @@ -65,4 +65,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/01_quickstart/basic_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/01_quickstart/basic_agent.py) +Full source: [cookbook/02_agents/01_quickstart/basic_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/01_quickstart/basic_agent.py) diff --git a/examples/agents/checkpointing/checkpoint-endpoints.mdx b/examples/agents/checkpointing/checkpoint-endpoints.mdx index 3c8455095..3eb8e0b44 100644 --- a/examples/agents/checkpointing/checkpoint-endpoints.mdx +++ b/examples/agents/checkpointing/checkpoint-endpoints.mdx @@ -167,4 +167,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/18_checkpointing/03_checkpoint_endpoints.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/18_checkpointing/03_checkpoint_endpoints.py) +Full source: [cookbook/02_agents/18_checkpointing/03_checkpoint_endpoints.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/18_checkpointing/03_checkpoint_endpoints.py) diff --git a/examples/agents/checkpointing/crash-recovery.mdx b/examples/agents/checkpointing/crash-recovery.mdx index e9607dc8c..e947e2c67 100644 --- a/examples/agents/checkpointing/crash-recovery.mdx +++ b/examples/agents/checkpointing/crash-recovery.mdx @@ -212,4 +212,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/18_checkpointing/01_crash_recovery.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/18_checkpointing/01_crash_recovery.py) +Full source: [cookbook/02_agents/18_checkpointing/01_crash_recovery.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/18_checkpointing/01_crash_recovery.py) diff --git a/examples/agents/checkpointing/tool-error-persistence.mdx b/examples/agents/checkpointing/tool-error-persistence.mdx index 6fd1ba477..0745da7a9 100644 --- a/examples/agents/checkpointing/tool-error-persistence.mdx +++ b/examples/agents/checkpointing/tool-error-persistence.mdx @@ -273,4 +273,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/18_checkpointing/02_tool_error_persistence.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/18_checkpointing/02_tool_error_persistence.py) +Full source: [cookbook/02_agents/18_checkpointing/02_tool_error_persistence.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/18_checkpointing/02_tool_error_persistence.py) diff --git a/examples/agents/context-management/datetime-format.mdx b/examples/agents/context-management/datetime-format.mdx index 1a73a4b8a..3adddd580 100644 --- a/examples/agents/context-management/datetime-format.mdx +++ b/examples/agents/context-management/datetime-format.mdx @@ -63,4 +63,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/03_context_management/datetime_format.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/03_context_management/datetime_format.py) +Full source: [cookbook/02_agents/03_context_management/datetime_format.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/03_context_management/datetime_format.py) diff --git a/examples/agents/context-management/few-shot-learning.mdx b/examples/agents/context-management/few-shot-learning.mdx index b72490ae0..91ec48705 100644 --- a/examples/agents/context-management/few-shot-learning.mdx +++ b/examples/agents/context-management/few-shot-learning.mdx @@ -137,4 +137,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/03_context_management/few_shot_learning.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/03_context_management/few_shot_learning.py) +Full source: [cookbook/02_agents/03_context_management/few_shot_learning.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/03_context_management/few_shot_learning.py) diff --git a/examples/agents/context-management/filter-tool-calls-from-history.mdx b/examples/agents/context-management/filter-tool-calls-from-history.mdx index 61239c798..4ef259249 100644 --- a/examples/agents/context-management/filter-tool-calls-from-history.mdx +++ b/examples/agents/context-management/filter-tool-calls-from-history.mdx @@ -141,4 +141,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/03_context_management/filter_tool_calls_from_history.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/03_context_management/filter_tool_calls_from_history.py) +Full source: [cookbook/02_agents/03_context_management/filter_tool_calls_from_history.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/03_context_management/filter_tool_calls_from_history.py) diff --git a/examples/agents/context-management/instructions-with-state.mdx b/examples/agents/context-management/instructions-with-state.mdx index 030f0844f..d3e955d9c 100644 --- a/examples/agents/context-management/instructions-with-state.mdx +++ b/examples/agents/context-management/instructions-with-state.mdx @@ -89,4 +89,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/03_context_management/instructions_with_state.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/03_context_management/instructions_with_state.py) +Full source: [cookbook/02_agents/03_context_management/instructions_with_state.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/03_context_management/instructions_with_state.py) diff --git a/examples/agents/context-management/instructions.mdx b/examples/agents/context-management/instructions.mdx index 215c82179..694c744e3 100644 --- a/examples/agents/context-management/instructions.mdx +++ b/examples/agents/context-management/instructions.mdx @@ -64,4 +64,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/03_context_management/instructions.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/03_context_management/instructions.py) +Full source: [cookbook/02_agents/03_context_management/instructions.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/03_context_management/instructions.py) diff --git a/examples/agents/context-management/introduction-message.mdx b/examples/agents/context-management/introduction-message.mdx index 743de6778..fa8464a52 100644 --- a/examples/agents/context-management/introduction-message.mdx +++ b/examples/agents/context-management/introduction-message.mdx @@ -69,4 +69,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/03_context_management/introduction_message.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/03_context_management/introduction_message.py) +Full source: [cookbook/02_agents/03_context_management/introduction_message.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/03_context_management/introduction_message.py) diff --git a/examples/agents/context-management/system-message.mdx b/examples/agents/context-management/system-message.mdx index e5bdc04eb..48b66bda6 100644 --- a/examples/agents/context-management/system-message.mdx +++ b/examples/agents/context-management/system-message.mdx @@ -68,4 +68,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/03_context_management/system_message.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/03_context_management/system_message.py) +Full source: [cookbook/02_agents/03_context_management/system_message.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/03_context_management/system_message.py) diff --git a/examples/agents/dependencies/dependencies-in-context.mdx b/examples/agents/dependencies/dependencies-in-context.mdx index 4ac26af8e..1d61b9905 100644 --- a/examples/agents/dependencies/dependencies-in-context.mdx +++ b/examples/agents/dependencies/dependencies-in-context.mdx @@ -103,4 +103,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/15_dependencies/dependencies_in_context.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/15_dependencies/dependencies_in_context.py) +Full source: [cookbook/02_agents/15_dependencies/dependencies_in_context.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/15_dependencies/dependencies_in_context.py) diff --git a/examples/agents/dependencies/dependencies-in-tools.mdx b/examples/agents/dependencies/dependencies-in-tools.mdx index de889a12d..36afe4956 100644 --- a/examples/agents/dependencies/dependencies-in-tools.mdx +++ b/examples/agents/dependencies/dependencies-in-tools.mdx @@ -148,4 +148,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/15_dependencies/dependencies_in_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/15_dependencies/dependencies_in_tools.py) +Full source: [cookbook/02_agents/15_dependencies/dependencies_in_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/15_dependencies/dependencies_in_tools.py) diff --git a/examples/agents/dependencies/dynamic-tools.mdx b/examples/agents/dependencies/dynamic-tools.mdx index b3994a9d3..6a98293e9 100644 --- a/examples/agents/dependencies/dynamic-tools.mdx +++ b/examples/agents/dependencies/dynamic-tools.mdx @@ -83,4 +83,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/15_dependencies/dynamic_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/15_dependencies/dynamic_tools.py) +Full source: [cookbook/02_agents/15_dependencies/dynamic_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/15_dependencies/dynamic_tools.py) diff --git a/examples/agents/fallback-models/basic-fallback.mdx b/examples/agents/fallback-models/basic-fallback.mdx index c138fa3de..a922b84fa 100644 --- a/examples/agents/fallback-models/basic-fallback.mdx +++ b/examples/agents/fallback-models/basic-fallback.mdx @@ -67,4 +67,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/17_fallback_models/01_basic_fallback.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/17_fallback_models/01_basic_fallback.py) +Full source: [cookbook/02_agents/17_fallback_models/01_basic_fallback.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/17_fallback_models/01_basic_fallback.py) diff --git a/examples/agents/fallback-models/error-specific-fallbacks.mdx b/examples/agents/fallback-models/error-specific-fallbacks.mdx index df572db7a..ccfd43168 100644 --- a/examples/agents/fallback-models/error-specific-fallbacks.mdx +++ b/examples/agents/fallback-models/error-specific-fallbacks.mdx @@ -86,4 +86,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/17_fallback_models/02_error_specific_fallbacks.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/17_fallback_models/02_error_specific_fallbacks.py) +Full source: [cookbook/02_agents/17_fallback_models/02_error_specific_fallbacks.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/17_fallback_models/02_error_specific_fallbacks.py) diff --git a/examples/agents/fallback-models/fallback-callback.mdx b/examples/agents/fallback-models/fallback-callback.mdx index 0bb2a7d18..1885b5402 100644 --- a/examples/agents/fallback-models/fallback-callback.mdx +++ b/examples/agents/fallback-models/fallback-callback.mdx @@ -85,4 +85,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/17_fallback_models/04_fallback_callback.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/17_fallback_models/04_fallback_callback.py) +Full source: [cookbook/02_agents/17_fallback_models/04_fallback_callback.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/17_fallback_models/04_fallback_callback.py) diff --git a/examples/agents/fallback-models/mid-run-fallback.mdx b/examples/agents/fallback-models/mid-run-fallback.mdx index 63fec06f6..d4f55013e 100644 --- a/examples/agents/fallback-models/mid-run-fallback.mdx +++ b/examples/agents/fallback-models/mid-run-fallback.mdx @@ -78,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/17_fallback_models/03_mid_run_fallback.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/17_fallback_models/03_mid_run_fallback.py) +Full source: [cookbook/02_agents/17_fallback_models/03_mid_run_fallback.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/17_fallback_models/03_mid_run_fallback.py) diff --git a/examples/agents/fork-session/fork-session.mdx b/examples/agents/fork-session/fork-session.mdx index 20fab045d..1c4b49c27 100644 --- a/examples/agents/fork-session/fork-session.mdx +++ b/examples/agents/fork-session/fork-session.mdx @@ -144,4 +144,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/21_fork_session/01_fork_session.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/21_fork_session/01_fork_session.py) +Full source: [cookbook/02_agents/21_fork_session/01_fork_session.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/21_fork_session/01_fork_session.py) diff --git a/examples/agents/guardrails/custom-guardrail.mdx b/examples/agents/guardrails/custom-guardrail.mdx index 24df72151..a9806a79d 100644 --- a/examples/agents/guardrails/custom-guardrail.mdx +++ b/examples/agents/guardrails/custom-guardrail.mdx @@ -83,4 +83,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/08_guardrails/custom_guardrail.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/08_guardrails/custom_guardrail.py) +Full source: [cookbook/02_agents/08_guardrails/custom_guardrail.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/08_guardrails/custom_guardrail.py) diff --git a/examples/agents/guardrails/mixed-hooks.mdx b/examples/agents/guardrails/mixed-hooks.mdx index 99f065a61..42b634ed9 100644 --- a/examples/agents/guardrails/mixed-hooks.mdx +++ b/examples/agents/guardrails/mixed-hooks.mdx @@ -114,4 +114,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/08_guardrails/mixed_hooks.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/08_guardrails/mixed_hooks.py) +Full source: [cookbook/02_agents/08_guardrails/mixed_hooks.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/08_guardrails/mixed_hooks.py) diff --git a/examples/agents/guardrails/openai-moderation.mdx b/examples/agents/guardrails/openai-moderation.mdx index 29fa8f31b..b8ee33003 100644 --- a/examples/agents/guardrails/openai-moderation.mdx +++ b/examples/agents/guardrails/openai-moderation.mdx @@ -153,4 +153,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/08_guardrails/openai_moderation.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/08_guardrails/openai_moderation.py) +Full source: [cookbook/02_agents/08_guardrails/openai_moderation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/08_guardrails/openai_moderation.py) diff --git a/examples/agents/guardrails/output-guardrail.mdx b/examples/agents/guardrails/output-guardrail.mdx index f878e4530..e88da7c76 100644 --- a/examples/agents/guardrails/output-guardrail.mdx +++ b/examples/agents/guardrails/output-guardrail.mdx @@ -75,4 +75,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/08_guardrails/output_guardrail.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/08_guardrails/output_guardrail.py) +Full source: [cookbook/02_agents/08_guardrails/output_guardrail.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/08_guardrails/output_guardrail.py) diff --git a/examples/agents/guardrails/pii-detection.mdx b/examples/agents/guardrails/pii-detection.mdx index f8fa218c1..1516e1fed 100644 --- a/examples/agents/guardrails/pii-detection.mdx +++ b/examples/agents/guardrails/pii-detection.mdx @@ -7,7 +7,7 @@ source: cookbook/02_agents/08_guardrails/pii_detection.py Use `PIIDetectionGuardrail` to reject requests containing PII or replace detected values with masked placeholders. - This example catches `InputCheckError` around `print_response()`, but Agno v2.7.2 converts that guardrail exception into a run with `RunStatus.error`. The source therefore prints false success messages for blocked inputs. Use the status-checking pattern in the [PII Detection guide](/guardrails/usage/agent/pii-detection) instead. + This example catches `InputCheckError` around `print_response()`, but Agno v2.7.4 converts that guardrail exception into a run with `RunStatus.error`. The source therefore prints false success messages for blocked inputs. Use the status-checking pattern in the [PII Detection guide](/guardrails/usage/agent/pii-detection) instead. ```python pii_detection.py @@ -189,4 +189,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/08_guardrails/pii_detection.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/08_guardrails/pii_detection.py) +Full source: [cookbook/02_agents/08_guardrails/pii_detection.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/08_guardrails/pii_detection.py) diff --git a/examples/agents/guardrails/prompt-injection.mdx b/examples/agents/guardrails/prompt-injection.mdx index 9328c3439..a873e63c5 100644 --- a/examples/agents/guardrails/prompt-injection.mdx +++ b/examples/agents/guardrails/prompt-injection.mdx @@ -135,4 +135,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/08_guardrails/prompt_injection.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/08_guardrails/prompt_injection.py) +Full source: [cookbook/02_agents/08_guardrails/prompt_injection.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/08_guardrails/prompt_injection.py) diff --git a/examples/agents/hooks/message-history-hooks.mdx b/examples/agents/hooks/message-history-hooks.mdx index 01cfdc221..6d1aeb031 100644 --- a/examples/agents/hooks/message-history-hooks.mdx +++ b/examples/agents/hooks/message-history-hooks.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/09_hooks/message_history_hooks.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/09_hooks/message_history_hooks.py) +Full source: [cookbook/02_agents/09_hooks/message_history_hooks.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/09_hooks/message_history_hooks.py) diff --git a/examples/agents/hooks/post-hook-output.mdx b/examples/agents/hooks/post-hook-output.mdx index 7401d2423..0fb20e33e 100644 --- a/examples/agents/hooks/post-hook-output.mdx +++ b/examples/agents/hooks/post-hook-output.mdx @@ -230,4 +230,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/09_hooks/post_hook_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/09_hooks/post_hook_output.py) +Full source: [cookbook/02_agents/09_hooks/post_hook_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/09_hooks/post_hook_output.py) diff --git a/examples/agents/hooks/pre-hook-input.mdx b/examples/agents/hooks/pre-hook-input.mdx index 276076423..77655ac8d 100644 --- a/examples/agents/hooks/pre-hook-input.mdx +++ b/examples/agents/hooks/pre-hook-input.mdx @@ -7,7 +7,7 @@ source: cookbook/02_agents/09_hooks/pre_hook_input.py A pre-hook checks relevance, detail, and safety before model execution. Blocked calls return a run output with `RunStatus.error`. - The source catches `InputCheckError` around blocked `Agent.run()` calls. Agno v2.7.2 converts the pre-hook exception into a run output with `RunStatus.error`, so those `except` blocks are bypassed. Check each blocked response's status instead. + The source catches `InputCheckError` around blocked `Agent.run()` calls. Agno v2.7.4 converts the pre-hook exception into a run output with `RunStatus.error`, so those `except` blocks are bypassed. Check each blocked response's status instead. ```python pre_hook_input.py @@ -210,4 +210,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/09_hooks/pre_hook_input.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/09_hooks/pre_hook_input.py) +Full source: [cookbook/02_agents/09_hooks/pre_hook_input.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/09_hooks/pre_hook_input.py) diff --git a/examples/agents/hooks/session-state-hooks.mdx b/examples/agents/hooks/session-state-hooks.mdx index 07c1f4568..ad033accc 100644 --- a/examples/agents/hooks/session-state-hooks.mdx +++ b/examples/agents/hooks/session-state-hooks.mdx @@ -128,4 +128,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/09_hooks/session_state_hooks.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/09_hooks/session_state_hooks.py) +Full source: [cookbook/02_agents/09_hooks/session_state_hooks.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/09_hooks/session_state_hooks.py) diff --git a/examples/agents/hooks/stream-hook.mdx b/examples/agents/hooks/stream-hook.mdx index caf6d2d81..17176fb2b 100644 --- a/examples/agents/hooks/stream-hook.mdx +++ b/examples/agents/hooks/stream-hook.mdx @@ -110,4 +110,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/09_hooks/stream_hook.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/09_hooks/stream_hook.py) +Full source: [cookbook/02_agents/09_hooks/stream_hook.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/09_hooks/stream_hook.py) diff --git a/examples/agents/hooks/tool-hooks.mdx b/examples/agents/hooks/tool-hooks.mdx index 10e905a8e..74e9b7b6e 100644 --- a/examples/agents/hooks/tool-hooks.mdx +++ b/examples/agents/hooks/tool-hooks.mdx @@ -90,4 +90,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/09_hooks/tool_hooks.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/09_hooks/tool_hooks.py) +Full source: [cookbook/02_agents/09_hooks/tool_hooks.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/09_hooks/tool_hooks.py) diff --git a/examples/agents/human-in-the-loop/agentic-user-input.mdx b/examples/agents/human-in-the-loop/agentic-user-input.mdx index 13f42e533..2ac6949b4 100644 --- a/examples/agents/human-in-the-loop/agentic-user-input.mdx +++ b/examples/agents/human-in-the-loop/agentic-user-input.mdx @@ -182,4 +182,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/10_human_in_the_loop/user_input.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/10_human_in_the_loop/user_input.py) +Full source: [cookbook/02_agents/10_human_in_the_loop/user_input.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/10_human_in_the_loop/user_input.py) diff --git a/examples/agents/human-in-the-loop/confirmation-advanced.mdx b/examples/agents/human-in-the-loop/confirmation-advanced.mdx index 213b149c8..791c78907 100644 --- a/examples/agents/human-in-the-loop/confirmation-advanced.mdx +++ b/examples/agents/human-in-the-loop/confirmation-advanced.mdx @@ -134,4 +134,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/10_human_in_the_loop/confirmation_advanced.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/10_human_in_the_loop/confirmation_advanced.py) +Full source: [cookbook/02_agents/10_human_in_the_loop/confirmation_advanced.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/10_human_in_the_loop/confirmation_advanced.py) diff --git a/examples/agents/human-in-the-loop/confirmation-required-mcp-toolkit.mdx b/examples/agents/human-in-the-loop/confirmation-required-mcp-toolkit.mdx index 98258dd84..c4d207840 100644 --- a/examples/agents/human-in-the-loop/confirmation-required-mcp-toolkit.mdx +++ b/examples/agents/human-in-the-loop/confirmation-required-mcp-toolkit.mdx @@ -117,4 +117,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/10_human_in_the_loop/confirmation_required_mcp_toolkit.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/10_human_in_the_loop/confirmation_required_mcp_toolkit.py) +Full source: [cookbook/02_agents/10_human_in_the_loop/confirmation_required_mcp_toolkit.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/10_human_in_the_loop/confirmation_required_mcp_toolkit.py) diff --git a/examples/agents/human-in-the-loop/confirmation-required.mdx b/examples/agents/human-in-the-loop/confirmation-required.mdx index d1a7452d8..923cca8d2 100644 --- a/examples/agents/human-in-the-loop/confirmation-required.mdx +++ b/examples/agents/human-in-the-loop/confirmation-required.mdx @@ -135,4 +135,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/10_human_in_the_loop/confirmation_required.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/10_human_in_the_loop/confirmation_required.py) +Full source: [cookbook/02_agents/10_human_in_the_loop/confirmation_required.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/10_human_in_the_loop/confirmation_required.py) diff --git a/examples/agents/human-in-the-loop/confirmation-toolkit.mdx b/examples/agents/human-in-the-loop/confirmation-toolkit.mdx index 5a9331876..6ce83e50e 100644 --- a/examples/agents/human-in-the-loop/confirmation-toolkit.mdx +++ b/examples/agents/human-in-the-loop/confirmation-toolkit.mdx @@ -95,4 +95,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/10_human_in_the_loop/confirmation_toolkit.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/10_human_in_the_loop/confirmation_toolkit.py) +Full source: [cookbook/02_agents/10_human_in_the_loop/confirmation_toolkit.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/10_human_in_the_loop/confirmation_toolkit.py) diff --git a/examples/agents/human-in-the-loop/confirmation-with-session-state.mdx b/examples/agents/human-in-the-loop/confirmation-with-session-state.mdx index 021b0101a..842b7732e 100644 --- a/examples/agents/human-in-the-loop/confirmation-with-session-state.mdx +++ b/examples/agents/human-in-the-loop/confirmation-with-session-state.mdx @@ -137,4 +137,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/10_human_in_the_loop/confirmation_with_session_state.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/10_human_in_the_loop/confirmation_with_session_state.py) +Full source: [cookbook/02_agents/10_human_in_the_loop/confirmation_with_session_state.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/10_human_in_the_loop/confirmation_with_session_state.py) diff --git a/examples/agents/human-in-the-loop/external-tool-execution.mdx b/examples/agents/human-in-the-loop/external-tool-execution.mdx index 322972556..97ab0fc09 100644 --- a/examples/agents/human-in-the-loop/external-tool-execution.mdx +++ b/examples/agents/human-in-the-loop/external-tool-execution.mdx @@ -109,4 +109,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/10_human_in_the_loop/external_tool_execution.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/10_human_in_the_loop/external_tool_execution.py) +Full source: [cookbook/02_agents/10_human_in_the_loop/external_tool_execution.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/10_human_in_the_loop/external_tool_execution.py) diff --git a/examples/agents/human-in-the-loop/mixed-external-and-regular-tools.mdx b/examples/agents/human-in-the-loop/mixed-external-and-regular-tools.mdx index 8ef2e417c..be03ba73e 100644 --- a/examples/agents/human-in-the-loop/mixed-external-and-regular-tools.mdx +++ b/examples/agents/human-in-the-loop/mixed-external-and-regular-tools.mdx @@ -113,4 +113,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/10_human_in_the_loop/mixed_external_and_regular_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/10_human_in_the_loop/mixed_external_and_regular_tools.py) +Full source: [cookbook/02_agents/10_human_in_the_loop/mixed_external_and_regular_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/10_human_in_the_loop/mixed_external_and_regular_tools.py) diff --git a/examples/agents/human-in-the-loop/user-feedback.mdx b/examples/agents/human-in-the-loop/user-feedback.mdx index 98cfddabc..88eca0cd5 100644 --- a/examples/agents/human-in-the-loop/user-feedback.mdx +++ b/examples/agents/human-in-the-loop/user-feedback.mdx @@ -120,4 +120,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/10_human_in_the_loop/user_feedback.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/10_human_in_the_loop/user_feedback.py) +Full source: [cookbook/02_agents/10_human_in_the_loop/user_feedback.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/10_human_in_the_loop/user_feedback.py) diff --git a/examples/agents/human-in-the-loop/user-input-required.mdx b/examples/agents/human-in-the-loop/user-input-required.mdx index b4e497b2f..ca83db965 100644 --- a/examples/agents/human-in-the-loop/user-input-required.mdx +++ b/examples/agents/human-in-the-loop/user-input-required.mdx @@ -119,4 +119,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/10_human_in_the_loop/user_input_required.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/10_human_in_the_loop/user_input_required.py) +Full source: [cookbook/02_agents/10_human_in_the_loop/user_input_required.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/10_human_in_the_loop/user_input_required.py) diff --git a/examples/agents/input-output/expected-output.mdx b/examples/agents/input-output/expected-output.mdx index 507672c66..35816c878 100644 --- a/examples/agents/input-output/expected-output.mdx +++ b/examples/agents/input-output/expected-output.mdx @@ -66,4 +66,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/02_input_output/expected_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/02_input_output/expected_output.py) +Full source: [cookbook/02_agents/02_input_output/expected_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/02_input_output/expected_output.py) diff --git a/examples/agents/input-output/followup-suggestions-streaming.mdx b/examples/agents/input-output/followup-suggestions-streaming.mdx index cf99a376c..028461a81 100644 --- a/examples/agents/input-output/followup-suggestions-streaming.mdx +++ b/examples/agents/input-output/followup-suggestions-streaming.mdx @@ -107,4 +107,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/02_input_output/followup_suggestions_streaming.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/02_input_output/followup_suggestions_streaming.py) +Full source: [cookbook/02_agents/02_input_output/followup_suggestions_streaming.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/02_input_output/followup_suggestions_streaming.py) diff --git a/examples/agents/input-output/followup-suggestions.mdx b/examples/agents/input-output/followup-suggestions.mdx index 89bce4531..9ebcb6824 100644 --- a/examples/agents/input-output/followup-suggestions.mdx +++ b/examples/agents/input-output/followup-suggestions.mdx @@ -102,4 +102,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/02_input_output/followup_suggestions.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/02_input_output/followup_suggestions.py) +Full source: [cookbook/02_agents/02_input_output/followup_suggestions.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/02_input_output/followup_suggestions.py) diff --git a/examples/agents/input-output/input-formats.mdx b/examples/agents/input-output/input-formats.mdx index 11abb5255..cc0f567e1 100644 --- a/examples/agents/input-output/input-formats.mdx +++ b/examples/agents/input-output/input-formats.mdx @@ -72,4 +72,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/02_input_output/input_formats.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/02_input_output/input_formats.py) +Full source: [cookbook/02_agents/02_input_output/input_formats.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/02_input_output/input_formats.py) diff --git a/examples/agents/input-output/input-schema.mdx b/examples/agents/input-output/input-schema.mdx index 0ba1706bc..46f3d5ce4 100644 --- a/examples/agents/input-output/input-schema.mdx +++ b/examples/agents/input-output/input-schema.mdx @@ -97,4 +97,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/02_input_output/input_schema.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/02_input_output/input_schema.py) +Full source: [cookbook/02_agents/02_input_output/input_schema.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/02_input_output/input_schema.py) diff --git a/examples/agents/input-output/output-model.mdx b/examples/agents/input-output/output-model.mdx index b1689729c..c62a4f916 100644 --- a/examples/agents/input-output/output-model.mdx +++ b/examples/agents/input-output/output-model.mdx @@ -72,4 +72,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/02_input_output/output_model.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/02_input_output/output_model.py) +Full source: [cookbook/02_agents/02_input_output/output_model.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/02_input_output/output_model.py) diff --git a/examples/agents/input-output/output-schema.mdx b/examples/agents/input-output/output-schema.mdx index 123436502..e959df9b0 100644 --- a/examples/agents/input-output/output-schema.mdx +++ b/examples/agents/input-output/output-schema.mdx @@ -81,4 +81,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/02_input_output/output_schema.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/02_input_output/output_schema.py) +Full source: [cookbook/02_agents/02_input_output/output_schema.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/02_input_output/output_schema.py) diff --git a/examples/agents/input-output/parser-model.mdx b/examples/agents/input-output/parser-model.mdx index 205dc06ff..9162667f6 100644 --- a/examples/agents/input-output/parser-model.mdx +++ b/examples/agents/input-output/parser-model.mdx @@ -136,4 +136,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/02_input_output/parser_model.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/02_input_output/parser_model.py) +Full source: [cookbook/02_agents/02_input_output/parser_model.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/02_input_output/parser_model.py) diff --git a/examples/agents/input-output/response-as-variable.mdx b/examples/agents/input-output/response-as-variable.mdx index 3a95a10a9..73b28f09c 100644 --- a/examples/agents/input-output/response-as-variable.mdx +++ b/examples/agents/input-output/response-as-variable.mdx @@ -73,4 +73,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/02_input_output/response_as_variable.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/02_input_output/response_as_variable.py) +Full source: [cookbook/02_agents/02_input_output/response_as_variable.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/02_input_output/response_as_variable.py) diff --git a/examples/agents/input-output/save-to-file.mdx b/examples/agents/input-output/save-to-file.mdx index 0007cc9ea..37f2a9376 100644 --- a/examples/agents/input-output/save-to-file.mdx +++ b/examples/agents/input-output/save-to-file.mdx @@ -69,4 +69,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/02_input_output/save_to_file.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/02_input_output/save_to_file.py) +Full source: [cookbook/02_agents/02_input_output/save_to_file.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/02_input_output/save_to_file.py) diff --git a/examples/agents/input-output/streaming.mdx b/examples/agents/input-output/streaming.mdx index 5226c9e3d..87ee26b69 100644 --- a/examples/agents/input-output/streaming.mdx +++ b/examples/agents/input-output/streaming.mdx @@ -65,4 +65,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/02_input_output/streaming.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/02_input_output/streaming.py) +Full source: [cookbook/02_agents/02_input_output/streaming.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/02_input_output/streaming.py) diff --git a/examples/agents/knowledge/agentic-rag-with-reasoning.mdx b/examples/agents/knowledge/agentic-rag-with-reasoning.mdx index 1ada73e04..12878e2bd 100644 --- a/examples/agents/knowledge/agentic-rag-with-reasoning.mdx +++ b/examples/agents/knowledge/agentic-rag-with-reasoning.mdx @@ -101,4 +101,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/07_knowledge/agentic_rag_with_reasoning.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/07_knowledge/agentic_rag_with_reasoning.py) +Full source: [cookbook/02_agents/07_knowledge/agentic_rag_with_reasoning.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/07_knowledge/agentic_rag_with_reasoning.py) diff --git a/examples/agents/knowledge/agentic-rag-with-reranking.mdx b/examples/agents/knowledge/agentic-rag-with-reranking.mdx index 273c6b5f8..ef827694e 100644 --- a/examples/agents/knowledge/agentic-rag-with-reranking.mdx +++ b/examples/agents/knowledge/agentic-rag-with-reranking.mdx @@ -85,4 +85,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/07_knowledge/agentic_rag_with_reranking.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/07_knowledge/agentic_rag_with_reranking.py) +Full source: [cookbook/02_agents/07_knowledge/agentic_rag_with_reranking.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/07_knowledge/agentic_rag_with_reranking.py) diff --git a/examples/agents/knowledge/agentic-rag.mdx b/examples/agents/knowledge/agentic-rag.mdx index 14134489d..396f25900 100644 --- a/examples/agents/knowledge/agentic-rag.mdx +++ b/examples/agents/knowledge/agentic-rag.mdx @@ -89,4 +89,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/07_knowledge/agentic_rag.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/07_knowledge/agentic_rag.py) +Full source: [cookbook/02_agents/07_knowledge/agentic_rag.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/07_knowledge/agentic_rag.py) diff --git a/examples/agents/knowledge/custom-retriever.mdx b/examples/agents/knowledge/custom-retriever.mdx index 51ed71676..6b63d13ee 100644 --- a/examples/agents/knowledge/custom-retriever.mdx +++ b/examples/agents/knowledge/custom-retriever.mdx @@ -108,4 +108,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/07_knowledge/custom_retriever.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/07_knowledge/custom_retriever.py) +Full source: [cookbook/02_agents/07_knowledge/custom_retriever.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/07_knowledge/custom_retriever.py) diff --git a/examples/agents/knowledge/knowledge-filters.mdx b/examples/agents/knowledge/knowledge-filters.mdx index ac438dbd3..9729eabb5 100644 --- a/examples/agents/knowledge/knowledge-filters.mdx +++ b/examples/agents/knowledge/knowledge-filters.mdx @@ -110,4 +110,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/07_knowledge/knowledge_filters.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/07_knowledge/knowledge_filters.py) +Full source: [cookbook/02_agents/07_knowledge/knowledge_filters.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/07_knowledge/knowledge_filters.py) diff --git a/examples/agents/knowledge/rag-custom-embeddings.mdx b/examples/agents/knowledge/rag-custom-embeddings.mdx index 88375fcbd..22e15f95b 100644 --- a/examples/agents/knowledge/rag-custom-embeddings.mdx +++ b/examples/agents/knowledge/rag-custom-embeddings.mdx @@ -120,4 +120,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/07_knowledge/rag_custom_embeddings.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/07_knowledge/rag_custom_embeddings.py) +Full source: [cookbook/02_agents/07_knowledge/rag_custom_embeddings.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/07_knowledge/rag_custom_embeddings.py) diff --git a/examples/agents/knowledge/references-format.mdx b/examples/agents/knowledge/references-format.mdx index b20956431..9e0a8506a 100644 --- a/examples/agents/knowledge/references-format.mdx +++ b/examples/agents/knowledge/references-format.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/07_knowledge/references_format.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/07_knowledge/references_format.py) +Full source: [cookbook/02_agents/07_knowledge/references_format.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/07_knowledge/references_format.py) diff --git a/examples/agents/knowledge/traditional-rag.mdx b/examples/agents/knowledge/traditional-rag.mdx index 0e899d7ad..2cd8120ab 100644 --- a/examples/agents/knowledge/traditional-rag.mdx +++ b/examples/agents/knowledge/traditional-rag.mdx @@ -86,4 +86,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/07_knowledge/traditional_rag.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/07_knowledge/traditional_rag.py) +Full source: [cookbook/02_agents/07_knowledge/traditional_rag.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/07_knowledge/traditional_rag.py) diff --git a/examples/agents/memory-and-learning/learning-machine.mdx b/examples/agents/memory-and-learning/learning-machine.mdx index 7c0a36d2d..13fce522b 100644 --- a/examples/agents/memory-and-learning/learning-machine.mdx +++ b/examples/agents/memory-and-learning/learning-machine.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/06_memory_and_learning/learning_machine.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/06_memory_and_learning/learning_machine.py) +Full source: [cookbook/02_agents/06_memory_and_learning/learning_machine.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/06_memory_and_learning/learning_machine.py) diff --git a/examples/agents/memory-and-learning/memory-manager.mdx b/examples/agents/memory-and-learning/memory-manager.mdx index 67be01c11..fa47095d4 100644 --- a/examples/agents/memory-and-learning/memory-manager.mdx +++ b/examples/agents/memory-and-learning/memory-manager.mdx @@ -85,4 +85,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/06_memory_and_learning/memory_manager.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/06_memory_and_learning/memory_manager.py) +Full source: [cookbook/02_agents/06_memory_and_learning/memory_manager.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/06_memory_and_learning/memory_manager.py) diff --git a/examples/agents/multimodal/audio-input-output.mdx b/examples/agents/multimodal/audio-input-output.mdx index b0933294c..b27437625 100644 --- a/examples/agents/multimodal/audio-input-output.mdx +++ b/examples/agents/multimodal/audio-input-output.mdx @@ -86,4 +86,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/12_multimodal/audio_input_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/12_multimodal/audio_input_output.py) +Full source: [cookbook/02_agents/12_multimodal/audio_input_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/12_multimodal/audio_input_output.py) diff --git a/examples/agents/multimodal/audio-sentiment-analysis.mdx b/examples/agents/multimodal/audio-sentiment-analysis.mdx index 73f819068..0469abe48 100644 --- a/examples/agents/multimodal/audio-sentiment-analysis.mdx +++ b/examples/agents/multimodal/audio-sentiment-analysis.mdx @@ -86,4 +86,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/12_multimodal/audio_sentiment_analysis.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/12_multimodal/audio_sentiment_analysis.py) +Full source: [cookbook/02_agents/12_multimodal/audio_sentiment_analysis.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/12_multimodal/audio_sentiment_analysis.py) diff --git a/examples/agents/multimodal/audio-streaming.mdx b/examples/agents/multimodal/audio-streaming.mdx index 3406123e1..a7dd5d36d 100644 --- a/examples/agents/multimodal/audio-streaming.mdx +++ b/examples/agents/multimodal/audio-streaming.mdx @@ -108,4 +108,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/12_multimodal/audio_streaming.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/12_multimodal/audio_streaming.py) +Full source: [cookbook/02_agents/12_multimodal/audio_streaming.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/12_multimodal/audio_streaming.py) diff --git a/examples/agents/multimodal/audio-to-text.mdx b/examples/agents/multimodal/audio-to-text.mdx index 61abddd70..23403f5e7 100644 --- a/examples/agents/multimodal/audio-to-text.mdx +++ b/examples/agents/multimodal/audio-to-text.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/12_multimodal/audio_to_text.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/12_multimodal/audio_to_text.py) +Full source: [cookbook/02_agents/12_multimodal/audio_to_text.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/12_multimodal/audio_to_text.py) diff --git a/examples/agents/multimodal/image-to-audio.mdx b/examples/agents/multimodal/image-to-audio.mdx index 9f60d50a6..ae4435b06 100644 --- a/examples/agents/multimodal/image-to-audio.mdx +++ b/examples/agents/multimodal/image-to-audio.mdx @@ -97,4 +97,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/12_multimodal/image_to_audio.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/12_multimodal/image_to_audio.py) +Full source: [cookbook/02_agents/12_multimodal/image_to_audio.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/12_multimodal/image_to_audio.py) diff --git a/examples/agents/multimodal/image-to-image.mdx b/examples/agents/multimodal/image-to-image.mdx index cffd00d55..1716ab829 100644 --- a/examples/agents/multimodal/image-to-image.mdx +++ b/examples/agents/multimodal/image-to-image.mdx @@ -88,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/12_multimodal/image_to_image.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/12_multimodal/image_to_image.py) +Full source: [cookbook/02_agents/12_multimodal/image_to_image.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/12_multimodal/image_to_image.py) diff --git a/examples/agents/multimodal/image-to-structured-output.mdx b/examples/agents/multimodal/image-to-structured-output.mdx index b73ed1356..e8e56dd3b 100644 --- a/examples/agents/multimodal/image-to-structured-output.mdx +++ b/examples/agents/multimodal/image-to-structured-output.mdx @@ -88,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/12_multimodal/image_to_structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/12_multimodal/image_to_structured_output.py) +Full source: [cookbook/02_agents/12_multimodal/image_to_structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/12_multimodal/image_to_structured_output.py) diff --git a/examples/agents/multimodal/image-to-text.mdx b/examples/agents/multimodal/image-to-text.mdx index 8f38d018f..0e81de7dd 100644 --- a/examples/agents/multimodal/image-to-text.mdx +++ b/examples/agents/multimodal/image-to-text.mdx @@ -75,4 +75,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/12_multimodal/image_to_text.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/12_multimodal/image_to_text.py) +Full source: [cookbook/02_agents/12_multimodal/image_to_text.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/12_multimodal/image_to_text.py) diff --git a/examples/agents/multimodal/media-input-for-tool.mdx b/examples/agents/multimodal/media-input-for-tool.mdx index fef37f6dc..739a951ad 100644 --- a/examples/agents/multimodal/media-input-for-tool.mdx +++ b/examples/agents/multimodal/media-input-for-tool.mdx @@ -99,7 +99,6 @@ def main(): tools=[DocumentProcessingTools()], name="Document Processing Agent", description="An agent that can process uploaded documents. Use the tool to extract text from the PDF.", - debug_mode=True, send_media_to_model=False, store_media=True, ) @@ -161,4 +160,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/12_multimodal/media_input_for_tool.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/12_multimodal/media_input_for_tool.py) +Full source: [cookbook/02_agents/12_multimodal/media_input_for_tool.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/12_multimodal/media_input_for_tool.py) diff --git a/examples/agents/multimodal/video-caption.mdx b/examples/agents/multimodal/video-caption.mdx index ff7036234..9b464ac9b 100644 --- a/examples/agents/multimodal/video-caption.mdx +++ b/examples/agents/multimodal/video-caption.mdx @@ -88,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/12_multimodal/video_caption.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/12_multimodal/video_caption.py) +Full source: [cookbook/02_agents/12_multimodal/video_caption.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/12_multimodal/video_caption.py) diff --git a/examples/agents/reasoning/basic-reasoning.mdx b/examples/agents/reasoning/basic-reasoning.mdx index cd9abd647..cf9015ffe 100644 --- a/examples/agents/reasoning/basic-reasoning.mdx +++ b/examples/agents/reasoning/basic-reasoning.mdx @@ -69,4 +69,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/13_reasoning/basic_reasoning.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/13_reasoning/basic_reasoning.py) +Full source: [cookbook/02_agents/13_reasoning/basic_reasoning.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/13_reasoning/basic_reasoning.py) diff --git a/examples/agents/reasoning/reasoning-with-model.mdx b/examples/agents/reasoning/reasoning-with-model.mdx index 69d7981dd..b66c25ab5 100644 --- a/examples/agents/reasoning/reasoning-with-model.mdx +++ b/examples/agents/reasoning/reasoning-with-model.mdx @@ -70,4 +70,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/13_reasoning/reasoning_with_model.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/13_reasoning/reasoning_with_model.py) +Full source: [cookbook/02_agents/13_reasoning/reasoning_with_model.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/13_reasoning/reasoning_with_model.py) diff --git a/examples/agents/regenerate/regenerate.mdx b/examples/agents/regenerate/regenerate.mdx index 26e3e7fe9..0d4962cf5 100644 --- a/examples/agents/regenerate/regenerate.mdx +++ b/examples/agents/regenerate/regenerate.mdx @@ -176,4 +176,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/19_regenerate/01_regenerate.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/19_regenerate/01_regenerate.py) +Full source: [cookbook/02_agents/19_regenerate/01_regenerate.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/19_regenerate/01_regenerate.py) diff --git a/examples/agents/skills/basic-skills.mdx b/examples/agents/skills/basic-skills.mdx index 53f2644dc..45b01fd2f 100644 --- a/examples/agents/skills/basic-skills.mdx +++ b/examples/agents/skills/basic-skills.mdx @@ -94,4 +94,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/16_skills/basic_skills.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/16_skills/basic_skills.py) +Full source: [cookbook/02_agents/16_skills/basic_skills.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/16_skills/basic_skills.py) diff --git a/examples/agents/skills/sample-skills/code-review/scripts/check-style.mdx b/examples/agents/skills/sample-skills/code-review/scripts/check-style.mdx index 3392be3c1..e08b01296 100644 --- a/examples/agents/skills/sample-skills/code-review/scripts/check-style.mdx +++ b/examples/agents/skills/sample-skills/code-review/scripts/check-style.mdx @@ -98,4 +98,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/16_skills/sample_skills/code-review/scripts/check_style.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/16_skills/sample_skills/code-review/scripts/check_style.py) +Full source: [cookbook/02_agents/16_skills/sample_skills/code-review/scripts/check_style.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/16_skills/sample_skills/code-review/scripts/check_style.py) diff --git a/examples/agents/skills/sample-skills/git-workflow/scripts/commit-message.mdx b/examples/agents/skills/sample-skills/git-workflow/scripts/commit-message.mdx index e73a493e9..e922d7cc3 100644 --- a/examples/agents/skills/sample-skills/git-workflow/scripts/commit-message.mdx +++ b/examples/agents/skills/sample-skills/git-workflow/scripts/commit-message.mdx @@ -141,4 +141,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/16_skills/sample_skills/git-workflow/scripts/commit_message.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/16_skills/sample_skills/git-workflow/scripts/commit_message.py) +Full source: [cookbook/02_agents/16_skills/sample_skills/git-workflow/scripts/commit_message.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/16_skills/sample_skills/git-workflow/scripts/commit_message.py) diff --git a/examples/agents/state-and-session/agentic-session-state.mdx b/examples/agents/state-and-session/agentic-session-state.mdx index 1f71d94a5..4bb3442ef 100644 --- a/examples/agents/state-and-session/agentic-session-state.mdx +++ b/examples/agents/state-and-session/agentic-session-state.mdx @@ -72,4 +72,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/05_state_and_session/agentic_session_state.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/05_state_and_session/agentic_session_state.py) +Full source: [cookbook/02_agents/05_state_and_session/agentic_session_state.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/05_state_and_session/agentic_session_state.py) diff --git a/examples/agents/state-and-session/chat-history.mdx b/examples/agents/state-and-session/chat-history.mdx index 446caae4d..144df9420 100644 --- a/examples/agents/state-and-session/chat-history.mdx +++ b/examples/agents/state-and-session/chat-history.mdx @@ -75,4 +75,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/05_state_and_session/chat_history.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/05_state_and_session/chat_history.py) +Full source: [cookbook/02_agents/05_state_and_session/chat_history.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/05_state_and_session/chat_history.py) diff --git a/examples/agents/state-and-session/dynamic-session-state.mdx b/examples/agents/state-and-session/dynamic-session-state.mdx index 15e6605d9..62239853f 100644 --- a/examples/agents/state-and-session/dynamic-session-state.mdx +++ b/examples/agents/state-and-session/dynamic-session-state.mdx @@ -132,4 +132,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/05_state_and_session/dynamic_session_state.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/05_state_and_session/dynamic_session_state.py) +Full source: [cookbook/02_agents/05_state_and_session/dynamic_session_state.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/05_state_and_session/dynamic_session_state.py) diff --git a/examples/agents/state-and-session/last-n-session-messages.mdx b/examples/agents/state-and-session/last-n-session-messages.mdx index 82d810491..b6ee3ad58 100644 --- a/examples/agents/state-and-session/last-n-session-messages.mdx +++ b/examples/agents/state-and-session/last-n-session-messages.mdx @@ -122,4 +122,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/05_state_and_session/last_n_session_messages.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/05_state_and_session/last_n_session_messages.py) +Full source: [cookbook/02_agents/05_state_and_session/last_n_session_messages.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/05_state_and_session/last_n_session_messages.py) diff --git a/examples/agents/state-and-session/persistent-session.mdx b/examples/agents/state-and-session/persistent-session.mdx index 0e7d6e215..9400276dc 100644 --- a/examples/agents/state-and-session/persistent-session.mdx +++ b/examples/agents/state-and-session/persistent-session.mdx @@ -72,4 +72,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/05_state_and_session/persistent_session.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/05_state_and_session/persistent_session.py) +Full source: [cookbook/02_agents/05_state_and_session/persistent_session.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/05_state_and_session/persistent_session.py) diff --git a/examples/agents/state-and-session/search-session-history.mdx b/examples/agents/state-and-session/search-session-history.mdx index f32a4699d..04811818b 100644 --- a/examples/agents/state-and-session/search-session-history.mdx +++ b/examples/agents/state-and-session/search-session-history.mdx @@ -133,4 +133,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/05_state_and_session/search_session_history.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/05_state_and_session/search_session_history.py) +Full source: [cookbook/02_agents/05_state_and_session/search_session_history.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/05_state_and_session/search_session_history.py) diff --git a/examples/agents/state-and-session/session-options.mdx b/examples/agents/state-and-session/session-options.mdx index 7715bf3b3..f0c571560 100644 --- a/examples/agents/state-and-session/session-options.mdx +++ b/examples/agents/state-and-session/session-options.mdx @@ -85,4 +85,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/05_state_and_session/session_options.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/05_state_and_session/session_options.py) +Full source: [cookbook/02_agents/05_state_and_session/session_options.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/05_state_and_session/session_options.py) diff --git a/examples/agents/state-and-session/session-state-advanced.mdx b/examples/agents/state-and-session/session-state-advanced.mdx index 91f04fd3e..e7e8e7c66 100644 --- a/examples/agents/state-and-session/session-state-advanced.mdx +++ b/examples/agents/state-and-session/session-state-advanced.mdx @@ -142,4 +142,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/05_state_and_session/session_state_advanced.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/05_state_and_session/session_state_advanced.py) +Full source: [cookbook/02_agents/05_state_and_session/session_state_advanced.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/05_state_and_session/session_state_advanced.py) diff --git a/examples/agents/state-and-session/session-state-basic.mdx b/examples/agents/state-and-session/session-state-basic.mdx index cf0d8b00a..13bf982ed 100644 --- a/examples/agents/state-and-session/session-state-basic.mdx +++ b/examples/agents/state-and-session/session-state-basic.mdx @@ -88,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/05_state_and_session/session_state_basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/05_state_and_session/session_state_basic.py) +Full source: [cookbook/02_agents/05_state_and_session/session_state_basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/05_state_and_session/session_state_basic.py) diff --git a/examples/agents/state-and-session/session-state-events.mdx b/examples/agents/state-and-session/session-state-events.mdx index 236b8e451..823f2160d 100644 --- a/examples/agents/state-and-session/session-state-events.mdx +++ b/examples/agents/state-and-session/session-state-events.mdx @@ -90,4 +90,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/05_state_and_session/session_state_events.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/05_state_and_session/session_state_events.py) +Full source: [cookbook/02_agents/05_state_and_session/session_state_events.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/05_state_and_session/session_state_events.py) diff --git a/examples/agents/state-and-session/session-state-manual-update.mdx b/examples/agents/state-and-session/session-state-manual-update.mdx index 09e3399cb..9982cb102 100644 --- a/examples/agents/state-and-session/session-state-manual-update.mdx +++ b/examples/agents/state-and-session/session-state-manual-update.mdx @@ -55,7 +55,7 @@ if __name__ == "__main__": current_session_state["shopping_list"].append("chocolate") agent.update_session_state(current_session_state) - agent.print_response("What's on my list?", stream=True, debug_mode=True) + agent.print_response("What's on my list?", stream=True) print(f"Final session state: {agent.get_session_state()}") ``` @@ -91,4 +91,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/05_state_and_session/session_state_manual_update.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/05_state_and_session/session_state_manual_update.py) +Full source: [cookbook/02_agents/05_state_and_session/session_state_manual_update.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/05_state_and_session/session_state_manual_update.py) diff --git a/examples/agents/state-and-session/session-state-multiple-users.mdx b/examples/agents/state-and-session/session-state-multiple-users.mdx index 2b1954d6d..0a4ba4afb 100644 --- a/examples/agents/state-and-session/session-state-multiple-users.mdx +++ b/examples/agents/state-and-session/session-state-multiple-users.mdx @@ -172,4 +172,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/05_state_and_session/session_state_multiple_users.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/05_state_and_session/session_state_multiple_users.py) +Full source: [cookbook/02_agents/05_state_and_session/session_state_multiple_users.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/05_state_and_session/session_state_multiple_users.py) diff --git a/examples/agents/state-and-session/session-summary.mdx b/examples/agents/state-and-session/session-summary.mdx index 0a3060f29..c8cd2f040 100644 --- a/examples/agents/state-and-session/session-summary.mdx +++ b/examples/agents/state-and-session/session-summary.mdx @@ -92,4 +92,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/05_state_and_session/session_summary.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/05_state_and_session/session_summary.py) +Full source: [cookbook/02_agents/05_state_and_session/session_summary.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/05_state_and_session/session_summary.py) diff --git a/examples/agents/time-travel/continue-from.mdx b/examples/agents/time-travel/continue-from.mdx index a30d6db18..8f9e888c2 100644 --- a/examples/agents/time-travel/continue-from.mdx +++ b/examples/agents/time-travel/continue-from.mdx @@ -155,4 +155,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/20_time_travel/01_continue_from.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/20_time_travel/01_continue_from.py) +Full source: [cookbook/02_agents/20_time_travel/01_continue_from.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/20_time_travel/01_continue_from.py) diff --git a/examples/agents/time-travel/fork-run.mdx b/examples/agents/time-travel/fork-run.mdx index 1c25cd911..ae394cf9c 100644 --- a/examples/agents/time-travel/fork-run.mdx +++ b/examples/agents/time-travel/fork-run.mdx @@ -152,4 +152,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/20_time_travel/02_fork_run.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/20_time_travel/02_fork_run.py) +Full source: [cookbook/02_agents/20_time_travel/02_fork_run.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/20_time_travel/02_fork_run.py) diff --git a/examples/agents/tools/callable-tools.mdx b/examples/agents/tools/callable-tools.mdx index 41275aa4d..a859150a2 100644 --- a/examples/agents/tools/callable-tools.mdx +++ b/examples/agents/tools/callable-tools.mdx @@ -133,4 +133,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/04_tools/01_callable_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/04_tools/01_callable_tools.py) +Full source: [cookbook/02_agents/04_tools/01_callable_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/04_tools/01_callable_tools.py) diff --git a/examples/agents/tools/session-state-tools.mdx b/examples/agents/tools/session-state-tools.mdx index ba96af92a..2c5c623c6 100644 --- a/examples/agents/tools/session-state-tools.mdx +++ b/examples/agents/tools/session-state-tools.mdx @@ -107,4 +107,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/04_tools/02_session_state_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/04_tools/02_session_state_tools.py) +Full source: [cookbook/02_agents/04_tools/02_session_state_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/04_tools/02_session_state_tools.py) diff --git a/examples/agents/tools/team-callable-members.mdx b/examples/agents/tools/team-callable-members.mdx index 286cfffb4..14bfa1a7d 100644 --- a/examples/agents/tools/team-callable-members.mdx +++ b/examples/agents/tools/team-callable-members.mdx @@ -111,4 +111,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/04_tools/03_team_callable_members.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/04_tools/03_team_callable_members.py) +Full source: [cookbook/02_agents/04_tools/03_team_callable_members.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/04_tools/03_team_callable_members.py) diff --git a/examples/agents/tools/tool-call-limit.mdx b/examples/agents/tools/tool-call-limit.mdx index a82a05048..9ae85be73 100644 --- a/examples/agents/tools/tool-call-limit.mdx +++ b/examples/agents/tools/tool-call-limit.mdx @@ -67,4 +67,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/04_tools/tool_call_limit.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/04_tools/tool_call_limit.py) +Full source: [cookbook/02_agents/04_tools/tool_call_limit.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/04_tools/tool_call_limit.py) diff --git a/examples/agents/tools/tool-choice.mdx b/examples/agents/tools/tool-choice.mdx index 26f0586d6..178091d2c 100644 --- a/examples/agents/tools/tool-choice.mdx +++ b/examples/agents/tools/tool-choice.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/04_tools/tool_choice.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/04_tools/tool_choice.py) +Full source: [cookbook/02_agents/04_tools/tool_choice.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/04_tools/tool_choice.py) diff --git a/examples/agents/tools/tools-with-literal-type-param.mdx b/examples/agents/tools/tools-with-literal-type-param.mdx index 7ba889b2e..34cd6741b 100644 --- a/examples/agents/tools/tools-with-literal-type-param.mdx +++ b/examples/agents/tools/tools-with-literal-type-param.mdx @@ -122,4 +122,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/04_tools/04_tools_with_literal_type_param.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/04_tools/04_tools_with_literal_type_param.py) +Full source: [cookbook/02_agents/04_tools/04_tools_with_literal_type_param.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/04_tools/04_tools_with_literal_type_param.py) diff --git a/examples/basics/agent-search-over-knowledge.mdx b/examples/basics/agent-search-over-knowledge.mdx index 753359ea3..271f45c92 100644 --- a/examples/basics/agent-search-over-knowledge.mdx +++ b/examples/basics/agent-search-over-knowledge.mdx @@ -170,4 +170,4 @@ The agent automatically searches when relevant (agentic search). -Full source: [cookbook/00_quickstart/agent_search_over_knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/00_quickstart/agent_search_over_knowledge.py) +Full source: [cookbook/00_quickstart/agent_search_over_knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/00_quickstart/agent_search_over_knowledge.py) diff --git a/examples/basics/agent-with-guardrails.mdx b/examples/basics/agent-with-guardrails.mdx index 458d868a9..d27806619 100644 --- a/examples/basics/agent-with-guardrails.mdx +++ b/examples/basics/agent-with-guardrails.mdx @@ -213,4 +213,4 @@ Guardrail patterns: -Full source: [cookbook/00_quickstart/agent_with_guardrails.py](https://github.com/agno-agi/agno/blob/main/cookbook/00_quickstart/agent_with_guardrails.py) +Full source: [cookbook/00_quickstart/agent_with_guardrails.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/00_quickstart/agent_with_guardrails.py) diff --git a/examples/basics/agent-with-memory.mdx b/examples/basics/agent-with-memory.mdx index 6d323f9ce..66e62bf00 100644 --- a/examples/basics/agent-with-memory.mdx +++ b/examples/basics/agent-with-memory.mdx @@ -197,4 +197,4 @@ Two ways to enable memory: -Full source: [cookbook/00_quickstart/agent_with_memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/00_quickstart/agent_with_memory.py) +Full source: [cookbook/00_quickstart/agent_with_memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/00_quickstart/agent_with_memory.py) diff --git a/examples/basics/agent-with-state-management.mdx b/examples/basics/agent-with-state-management.mdx index 20bec2137..f4f7dafcf 100644 --- a/examples/basics/agent-with-state-management.mdx +++ b/examples/basics/agent-with-state-management.mdx @@ -215,4 +215,4 @@ Accessing state: -Full source: [cookbook/00_quickstart/agent_with_state_management.py](https://github.com/agno-agi/agno/blob/main/cookbook/00_quickstart/agent_with_state_management.py) +Full source: [cookbook/00_quickstart/agent_with_state_management.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/00_quickstart/agent_with_state_management.py) diff --git a/examples/basics/agent-with-storage.mdx b/examples/basics/agent-with-storage.mdx index 06b56f2cb..de43dc830 100644 --- a/examples/basics/agent-with-storage.mdx +++ b/examples/basics/agent-with-storage.mdx @@ -165,4 +165,4 @@ Restart the script anytime and pick up where you left off. -Full source: [cookbook/00_quickstart/agent_with_storage.py](https://github.com/agno-agi/agno/blob/main/cookbook/00_quickstart/agent_with_storage.py) +Full source: [cookbook/00_quickstart/agent_with_storage.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/00_quickstart/agent_with_storage.py) diff --git a/examples/basics/agent-with-structured-output.mdx b/examples/basics/agent-with-structured-output.mdx index a74603ac0..1a7ca8ab7 100644 --- a/examples/basics/agent-with-structured-output.mdx +++ b/examples/basics/agent-with-structured-output.mdx @@ -194,4 +194,4 @@ No parsing, no surprises. -Full source: [cookbook/00_quickstart/agent_with_structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/00_quickstart/agent_with_structured_output.py) +Full source: [cookbook/00_quickstart/agent_with_structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/00_quickstart/agent_with_structured_output.py) diff --git a/examples/basics/agent-with-tools.mdx b/examples/basics/agent-with-tools.mdx index 4ca9805de..da57c427d 100644 --- a/examples/basics/agent-with-tools.mdx +++ b/examples/basics/agent-with-tools.mdx @@ -135,4 +135,4 @@ Try these prompts: -Full source: [cookbook/00_quickstart/agent_with_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/00_quickstart/agent_with_tools.py) +Full source: [cookbook/00_quickstart/agent_with_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/00_quickstart/agent_with_tools.py) diff --git a/examples/basics/agent-with-typed-input-output.mdx b/examples/basics/agent-with-typed-input-output.mdx index 732a72f40..ba3fd2b04 100644 --- a/examples/basics/agent-with-typed-input-output.mdx +++ b/examples/basics/agent-with-typed-input-output.mdx @@ -239,4 +239,4 @@ Type safety on both ends = fewer bugs, better tooling, clearer contracts. -Full source: [cookbook/00_quickstart/agent_with_typed_input_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/00_quickstart/agent_with_typed_input_output.py) +Full source: [cookbook/00_quickstart/agent_with_typed_input_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/00_quickstart/agent_with_typed_input_output.py) diff --git a/examples/basics/custom-tool-for-self-learning.mdx b/examples/basics/custom-tool-for-self-learning.mdx index f20c8c96e..f6883cab4 100644 --- a/examples/basics/custom-tool-for-self-learning.mdx +++ b/examples/basics/custom-tool-for-self-learning.mdx @@ -254,4 +254,4 @@ The agent uses this to decide when and how to call your tool. -Full source: [cookbook/00_quickstart/custom_tool_for_self_learning.py](https://github.com/agno-agi/agno/blob/main/cookbook/00_quickstart/custom_tool_for_self_learning.py) +Full source: [cookbook/00_quickstart/custom_tool_for_self_learning.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/00_quickstart/custom_tool_for_self_learning.py) diff --git a/examples/basics/human-in-the-loop.mdx b/examples/basics/human-in-the-loop.mdx index a2d65a5b1..4bb790b87 100644 --- a/examples/basics/human-in-the-loop.mdx +++ b/examples/basics/human-in-the-loop.mdx @@ -279,4 +279,4 @@ This gives you full control over which actions execute. -Full source: [cookbook/00_quickstart/human_in_the_loop.py](https://github.com/agno-agi/agno/blob/main/cookbook/00_quickstart/human_in_the_loop.py) +Full source: [cookbook/00_quickstart/human_in_the_loop.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/00_quickstart/human_in_the_loop.py) diff --git a/examples/basics/multi-agent-team.mdx b/examples/basics/multi-agent-team.mdx index bdc19aa4c..ad1c2f4a6 100644 --- a/examples/basics/multi-agent-team.mdx +++ b/examples/basics/multi-agent-team.mdx @@ -206,4 +206,4 @@ Other team patterns: -Full source: [cookbook/00_quickstart/multi_agent_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/00_quickstart/multi_agent_team.py) +Full source: [cookbook/00_quickstart/multi_agent_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/00_quickstart/multi_agent_team.py) diff --git a/examples/basics/run.mdx b/examples/basics/run.mdx index 47b361272..dc6d0e2bf 100644 --- a/examples/basics/run.mdx +++ b/examples/basics/run.mdx @@ -2173,4 +2173,4 @@ Advanced workflow features (not shown here): -Full source: [cookbook/00_quickstart/run.py](https://github.com/agno-agi/agno/blob/main/cookbook/00_quickstart/run.py) +Full source: [cookbook/00_quickstart/run.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/00_quickstart/run.py) diff --git a/examples/basics/sequential-workflow.mdx b/examples/basics/sequential-workflow.mdx index b6fcff012..7436f63af 100644 --- a/examples/basics/sequential-workflow.mdx +++ b/examples/basics/sequential-workflow.mdx @@ -210,4 +210,4 @@ Advanced workflow features (not shown here): -Full source: [cookbook/00_quickstart/sequential_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/00_quickstart/sequential_workflow.py) +Full source: [cookbook/00_quickstart/sequential_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/00_quickstart/sequential_workflow.py) diff --git a/examples/components/agent-os-registry.mdx b/examples/components/agent-os-registry.mdx index 16d2e780d..d186b896f 100644 --- a/examples/components/agent-os-registry.mdx +++ b/examples/components/agent-os-registry.mdx @@ -113,4 +113,4 @@ if __name__ == "__main__": -Full source: [cookbook/93_components/agent_os_registry.py](https://github.com/agno-agi/agno/blob/main/cookbook/93_components/agent_os_registry.py) +Full source: [cookbook/93_components/agent_os_registry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/93_components/agent_os_registry.py) diff --git a/examples/components/auto-populate-registry-os.mdx b/examples/components/auto-populate-registry-os.mdx index 6cb32a558..3f04b8c12 100644 --- a/examples/components/auto-populate-registry-os.mdx +++ b/examples/components/auto-populate-registry-os.mdx @@ -114,4 +114,4 @@ if __name__ == "__main__": -Full source: [cookbook/93_components/auto_populate_registry_os.py](https://github.com/agno-agi/agno/blob/main/cookbook/93_components/auto_populate_registry_os.py) +Full source: [cookbook/93_components/auto_populate_registry_os.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/93_components/auto_populate_registry_os.py) diff --git a/examples/components/auto-populate-registry.mdx b/examples/components/auto-populate-registry.mdx index 6ad417b0b..3ea1de6cd 100644 --- a/examples/components/auto-populate-registry.mdx +++ b/examples/components/auto-populate-registry.mdx @@ -143,4 +143,4 @@ if __name__ == "__main__": -Full source: [cookbook/93_components/auto_populate_registry.py](https://github.com/agno-agi/agno/blob/main/cookbook/93_components/auto_populate_registry.py) +Full source: [cookbook/93_components/auto_populate_registry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/93_components/auto_populate_registry.py) diff --git a/examples/components/demo.mdx b/examples/components/demo.mdx index 70325c5d1..f29d76072 100644 --- a/examples/components/demo.mdx +++ b/examples/components/demo.mdx @@ -129,4 +129,4 @@ if __name__ == "__main__": -Full source: [cookbook/93_components/demo.py](https://github.com/agno-agi/agno/blob/main/cookbook/93_components/demo.py) +Full source: [cookbook/93_components/demo.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/93_components/demo.py) diff --git a/examples/components/get-agent.mdx b/examples/components/get-agent.mdx index 360581e77..e9db6a7ba 100644 --- a/examples/components/get-agent.mdx +++ b/examples/components/get-agent.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/93_components/get_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/93_components/get_agent.py) +Full source: [cookbook/93_components/get_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/93_components/get_agent.py) diff --git a/examples/components/get-team.mdx b/examples/components/get-team.mdx index cb2affd84..045fe6852 100644 --- a/examples/components/get-team.mdx +++ b/examples/components/get-team.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/93_components/get_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/93_components/get_team.py) +Full source: [cookbook/93_components/get_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/93_components/get_team.py) diff --git a/examples/components/get-workflow.mdx b/examples/components/get-workflow.mdx index 926a3e1be..d2bb56a95 100644 --- a/examples/components/get-workflow.mdx +++ b/examples/components/get-workflow.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/93_components/get_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/93_components/get_workflow.py) +Full source: [cookbook/93_components/get_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/93_components/get_workflow.py) diff --git a/examples/components/registry.mdx b/examples/components/registry.mdx index 5fede0ff7..3bfcc7030 100644 --- a/examples/components/registry.mdx +++ b/examples/components/registry.mdx @@ -111,4 +111,4 @@ if __name__ == "__main__": -Full source: [cookbook/93_components/registry.py](https://github.com/agno-agi/agno/blob/main/cookbook/93_components/registry.py) +Full source: [cookbook/93_components/registry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/93_components/registry.py) diff --git a/examples/components/save-agent.mdx b/examples/components/save-agent.mdx index 22c7283d2..4533a4ca9 100644 --- a/examples/components/save-agent.mdx +++ b/examples/components/save-agent.mdx @@ -85,4 +85,4 @@ if __name__ == "__main__": -Full source: [cookbook/93_components/save_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/93_components/save_agent.py) +Full source: [cookbook/93_components/save_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/93_components/save_agent.py) diff --git a/examples/components/save-team.mdx b/examples/components/save-team.mdx index 8383d7bf5..b60c77d4c 100644 --- a/examples/components/save-team.mdx +++ b/examples/components/save-team.mdx @@ -105,4 +105,4 @@ if __name__ == "__main__": -Full source: [cookbook/93_components/save_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/93_components/save_team.py) +Full source: [cookbook/93_components/save_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/93_components/save_team.py) diff --git a/examples/components/save-workflow.mdx b/examples/components/save-workflow.mdx index 259b56a92..2bce389d9 100644 --- a/examples/components/save-workflow.mdx +++ b/examples/components/save-workflow.mdx @@ -119,4 +119,4 @@ if __name__ == "__main__": -Full source: [cookbook/93_components/save_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/93_components/save_workflow.py) +Full source: [cookbook/93_components/save_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/93_components/save_workflow.py) diff --git a/examples/components/workflows/registry-agents-in-workflow.mdx b/examples/components/workflows/registry-agents-in-workflow.mdx index f640ef495..0219d6ef6 100644 --- a/examples/components/workflows/registry-agents-in-workflow.mdx +++ b/examples/components/workflows/registry-agents-in-workflow.mdx @@ -101,4 +101,4 @@ if __name__ == "__main__": -Full source: [cookbook/93_components/workflows/registry_agents_in_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/93_components/workflows/registry_agents_in_workflow.py) +Full source: [cookbook/93_components/workflows/registry_agents_in_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/93_components/workflows/registry_agents_in_workflow.py) diff --git a/examples/components/workflows/save-conditional-steps.mdx b/examples/components/workflows/save-conditional-steps.mdx index a10106a57..5cd375e95 100644 --- a/examples/components/workflows/save-conditional-steps.mdx +++ b/examples/components/workflows/save-conditional-steps.mdx @@ -184,4 +184,4 @@ if __name__ == "__main__": -Full source: [cookbook/93_components/workflows/save_conditional_steps.py](https://github.com/agno-agi/agno/blob/main/cookbook/93_components/workflows/save_conditional_steps.py) +Full source: [cookbook/93_components/workflows/save_conditional_steps.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/93_components/workflows/save_conditional_steps.py) diff --git a/examples/components/workflows/save-custom-steps.mdx b/examples/components/workflows/save-custom-steps.mdx index 2b98c3034..57dfe429d 100644 --- a/examples/components/workflows/save-custom-steps.mdx +++ b/examples/components/workflows/save-custom-steps.mdx @@ -152,4 +152,4 @@ if __name__ == "__main__": -Full source: [cookbook/93_components/workflows/save_custom_steps.py](https://github.com/agno-agi/agno/blob/main/cookbook/93_components/workflows/save_custom_steps.py) +Full source: [cookbook/93_components/workflows/save_custom_steps.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/93_components/workflows/save_custom_steps.py) diff --git a/examples/components/workflows/save-hitl-condition-loop-router.mdx b/examples/components/workflows/save-hitl-condition-loop-router.mdx index 7b151aec9..0b3827281 100644 --- a/examples/components/workflows/save-hitl-condition-loop-router.mdx +++ b/examples/components/workflows/save-hitl-condition-loop-router.mdx @@ -297,4 +297,4 @@ if __name__ == "__main__": -Full source: [cookbook/93_components/workflows/save_hitl_condition_loop_router.py](https://github.com/agno-agi/agno/blob/main/cookbook/93_components/workflows/save_hitl_condition_loop_router.py) +Full source: [cookbook/93_components/workflows/save_hitl_condition_loop_router.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/93_components/workflows/save_hitl_condition_loop_router.py) diff --git a/examples/components/workflows/save-hitl-confirmation-steps.mdx b/examples/components/workflows/save-hitl-confirmation-steps.mdx index 90dc99a57..2ada6e052 100644 --- a/examples/components/workflows/save-hitl-confirmation-steps.mdx +++ b/examples/components/workflows/save-hitl-confirmation-steps.mdx @@ -185,4 +185,4 @@ if __name__ == "__main__": -Full source: [cookbook/93_components/workflows/save_hitl_confirmation_steps.py](https://github.com/agno-agi/agno/blob/main/cookbook/93_components/workflows/save_hitl_confirmation_steps.py) +Full source: [cookbook/93_components/workflows/save_hitl_confirmation_steps.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/93_components/workflows/save_hitl_confirmation_steps.py) diff --git a/examples/components/workflows/save-hitl-user-input-steps.mdx b/examples/components/workflows/save-hitl-user-input-steps.mdx index 989243d87..24a6d6a36 100644 --- a/examples/components/workflows/save-hitl-user-input-steps.mdx +++ b/examples/components/workflows/save-hitl-user-input-steps.mdx @@ -211,4 +211,4 @@ if __name__ == "__main__": -Full source: [cookbook/93_components/workflows/save_hitl_user_input_steps.py](https://github.com/agno-agi/agno/blob/main/cookbook/93_components/workflows/save_hitl_user_input_steps.py) +Full source: [cookbook/93_components/workflows/save_hitl_user_input_steps.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/93_components/workflows/save_hitl_user_input_steps.py) diff --git a/examples/components/workflows/save-loop-steps.mdx b/examples/components/workflows/save-loop-steps.mdx index 4602a1342..05fdf3c68 100644 --- a/examples/components/workflows/save-loop-steps.mdx +++ b/examples/components/workflows/save-loop-steps.mdx @@ -171,4 +171,4 @@ if __name__ == "__main__": -Full source: [cookbook/93_components/workflows/save_loop_steps.py](https://github.com/agno-agi/agno/blob/main/cookbook/93_components/workflows/save_loop_steps.py) +Full source: [cookbook/93_components/workflows/save_loop_steps.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/93_components/workflows/save_loop_steps.py) diff --git a/examples/components/workflows/save-parallel-steps.mdx b/examples/components/workflows/save-parallel-steps.mdx index f1e341669..c03438fcd 100644 --- a/examples/components/workflows/save-parallel-steps.mdx +++ b/examples/components/workflows/save-parallel-steps.mdx @@ -161,4 +161,4 @@ if __name__ == "__main__": -Full source: [cookbook/93_components/workflows/save_parallel_steps.py](https://github.com/agno-agi/agno/blob/main/cookbook/93_components/workflows/save_parallel_steps.py) +Full source: [cookbook/93_components/workflows/save_parallel_steps.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/93_components/workflows/save_parallel_steps.py) diff --git a/examples/components/workflows/save-router-steps.mdx b/examples/components/workflows/save-router-steps.mdx index ccf16cf87..ba5ae8257 100644 --- a/examples/components/workflows/save-router-steps.mdx +++ b/examples/components/workflows/save-router-steps.mdx @@ -195,4 +195,4 @@ if __name__ == "__main__": -Full source: [cookbook/93_components/workflows/save_router_steps.py](https://github.com/agno-agi/agno/blob/main/cookbook/93_components/workflows/save_router_steps.py) +Full source: [cookbook/93_components/workflows/save_router_steps.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/93_components/workflows/save_router_steps.py) diff --git a/examples/context/calendar.mdx b/examples/context/calendar.mdx index 3b65c47e5..bcf596190 100644 --- a/examples/context/calendar.mdx +++ b/examples/context/calendar.mdx @@ -179,4 +179,4 @@ if __name__ == "__main__": -Full source: [cookbook/12_context/19_calendar.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/19_calendar.py) +Full source: [cookbook/12_context/19_calendar.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/19_calendar.py) diff --git a/examples/context/custom-provider.mdx b/examples/context/custom-provider.mdx index 3d0268915..9bb8bdb06 100644 --- a/examples/context/custom-provider.mdx +++ b/examples/context/custom-provider.mdx @@ -110,4 +110,4 @@ if __name__ == "__main__": -Full source: [cookbook/12_context/10_custom_provider.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/10_custom_provider.py) +Full source: [cookbook/12_context/10_custom_provider.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/10_custom_provider.py) diff --git a/examples/context/database-read-write.mdx b/examples/context/database-read-write.mdx index 1c1a7ab96..9a0eeba5a 100644 --- a/examples/context/database-read-write.mdx +++ b/examples/context/database-read-write.mdx @@ -150,4 +150,4 @@ if __name__ == "__main__": -Full source: [cookbook/12_context/04_database_read_write.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/04_database_read_write.py) +Full source: [cookbook/12_context/04_database_read_write.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/04_database_read_write.py) diff --git a/examples/context/engineering-briefing.mdx b/examples/context/engineering-briefing.mdx index dc3a13039..dd93dda1e 100644 --- a/examples/context/engineering-briefing.mdx +++ b/examples/context/engineering-briefing.mdx @@ -120,4 +120,4 @@ if __name__ == "__main__": -Full source: [cookbook/12_context/12_engineering_briefing.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/12_engineering_briefing.py) +Full source: [cookbook/12_context/12_engineering_briefing.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/12_engineering_briefing.py) diff --git a/examples/context/filesystem.mdx b/examples/context/filesystem.mdx index 38267f2b6..3a8a3518d 100644 --- a/examples/context/filesystem.mdx +++ b/examples/context/filesystem.mdx @@ -101,4 +101,4 @@ if __name__ == "__main__": -Full source: [cookbook/12_context/00_filesystem.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/00_filesystem.py) +Full source: [cookbook/12_context/00_filesystem.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/00_filesystem.py) diff --git a/examples/context/gdrive-office.mdx b/examples/context/gdrive-office.mdx index fac403fce..012daa3c4 100644 --- a/examples/context/gdrive-office.mdx +++ b/examples/context/gdrive-office.mdx @@ -107,4 +107,4 @@ if __name__ == "__main__": -Full source: [cookbook/12_context/21_gdrive_office.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/21_gdrive_office.py) +Full source: [cookbook/12_context/21_gdrive_office.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/21_gdrive_office.py) diff --git a/examples/context/gmail.mdx b/examples/context/gmail.mdx index 98711cc49..a8c5f121a 100644 --- a/examples/context/gmail.mdx +++ b/examples/context/gmail.mdx @@ -178,4 +178,4 @@ if __name__ == "__main__": -Full source: [cookbook/12_context/18_gmail.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/18_gmail.py) +Full source: [cookbook/12_context/18_gmail.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/18_gmail.py) diff --git a/examples/context/google-drive.mdx b/examples/context/google-drive.mdx index 3bdfd01c1..55e745eb2 100644 --- a/examples/context/google-drive.mdx +++ b/examples/context/google-drive.mdx @@ -101,4 +101,4 @@ if __name__ == "__main__": -Full source: [cookbook/12_context/07_google_drive.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/07_google_drive.py) +Full source: [cookbook/12_context/07_google_drive.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/07_google_drive.py) diff --git a/examples/context/google-workspace.mdx b/examples/context/google-workspace.mdx index eb56e7c02..6e0fd850b 100644 --- a/examples/context/google-workspace.mdx +++ b/examples/context/google-workspace.mdx @@ -215,4 +215,4 @@ if __name__ == "__main__": -Full source: [cookbook/12_context/20_google_workspace.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/20_google_workspace.py) +Full source: [cookbook/12_context/20_google_workspace.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/20_google_workspace.py) diff --git a/examples/context/mcp-server.mdx b/examples/context/mcp-server.mdx index ecc9a5e5e..1489ad2f3 100644 --- a/examples/context/mcp-server.mdx +++ b/examples/context/mcp-server.mdx @@ -123,4 +123,4 @@ if __name__ == "__main__": -Full source: [cookbook/12_context/06_mcp_server.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/06_mcp_server.py) +Full source: [cookbook/12_context/06_mcp_server.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/06_mcp_server.py) diff --git a/examples/context/multi-context-streaming.mdx b/examples/context/multi-context-streaming.mdx index 7522009e7..c8e441ad7 100644 --- a/examples/context/multi-context-streaming.mdx +++ b/examples/context/multi-context-streaming.mdx @@ -169,4 +169,4 @@ if __name__ == "__main__": -Full source: [cookbook/12_context/24_multi_context_streaming.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/24_multi_context_streaming.py) +Full source: [cookbook/12_context/24_multi_context_streaming.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/24_multi_context_streaming.py) diff --git a/examples/context/multi-provider.mdx b/examples/context/multi-provider.mdx index 507561995..4bf8318bc 100644 --- a/examples/context/multi-provider.mdx +++ b/examples/context/multi-provider.mdx @@ -167,4 +167,4 @@ if __name__ == "__main__": -Full source: [cookbook/12_context/08_multi_provider.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/08_multi_provider.py) +Full source: [cookbook/12_context/08_multi_provider.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/08_multi_provider.py) diff --git a/examples/context/slack-search-media.mdx b/examples/context/slack-search-media.mdx index 31bdac1ce..5d56aa7d1 100644 --- a/examples/context/slack-search-media.mdx +++ b/examples/context/slack-search-media.mdx @@ -105,4 +105,4 @@ if __name__ == "__main__": -Full source: [cookbook/12_context/06_slack_search_media.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/06_slack_search_media.py) +Full source: [cookbook/12_context/06_slack_search_media.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/06_slack_search_media.py) diff --git a/examples/context/slack.mdx b/examples/context/slack.mdx index 15a46de31..9f0ebc16a 100644 --- a/examples/context/slack.mdx +++ b/examples/context/slack.mdx @@ -121,4 +121,4 @@ if __name__ == "__main__": -Full source: [cookbook/12_context/05_slack.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/05_slack.py) +Full source: [cookbook/12_context/05_slack.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/05_slack.py) diff --git a/examples/context/web-exa-mcp.mdx b/examples/context/web-exa-mcp.mdx index 99d91ed75..286b366bb 100644 --- a/examples/context/web-exa-mcp.mdx +++ b/examples/context/web-exa-mcp.mdx @@ -102,4 +102,4 @@ if __name__ == "__main__": -Full source: [cookbook/12_context/02_web_exa_mcp.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/02_web_exa_mcp.py) +Full source: [cookbook/12_context/02_web_exa_mcp.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/02_web_exa_mcp.py) diff --git a/examples/context/web-exa.mdx b/examples/context/web-exa.mdx index 40620c136..31cfa9dc6 100644 --- a/examples/context/web-exa.mdx +++ b/examples/context/web-exa.mdx @@ -88,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/12_context/01_web_exa.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/01_web_exa.py) +Full source: [cookbook/12_context/01_web_exa.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/01_web_exa.py) diff --git a/examples/context/web-parallel-mcp.mdx b/examples/context/web-parallel-mcp.mdx index 72315a121..f02a4ada4 100644 --- a/examples/context/web-parallel-mcp.mdx +++ b/examples/context/web-parallel-mcp.mdx @@ -103,4 +103,4 @@ if __name__ == "__main__": -Full source: [cookbook/12_context/11_web_parallel_mcp.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/11_web_parallel_mcp.py) +Full source: [cookbook/12_context/11_web_parallel_mcp.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/11_web_parallel_mcp.py) diff --git a/examples/context/web-parallel.mdx b/examples/context/web-parallel.mdx index d335e3983..bbe3c09ab 100644 --- a/examples/context/web-parallel.mdx +++ b/examples/context/web-parallel.mdx @@ -93,4 +93,4 @@ if __name__ == "__main__": -Full source: [cookbook/12_context/03_web_parallel.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/03_web_parallel.py) +Full source: [cookbook/12_context/03_web_parallel.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/03_web_parallel.py) diff --git a/examples/context/web-plus-slack.mdx b/examples/context/web-plus-slack.mdx index 919a5b0ca..f7a5fe87e 100644 --- a/examples/context/web-plus-slack.mdx +++ b/examples/context/web-plus-slack.mdx @@ -115,4 +115,4 @@ if __name__ == "__main__": -Full source: [cookbook/12_context/09_web_plus_slack.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/09_web_plus_slack.py) +Full source: [cookbook/12_context/09_web_plus_slack.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/09_web_plus_slack.py) diff --git a/examples/context/wiki-agentos-streaming.mdx b/examples/context/wiki-agentos-streaming.mdx index 758bf9122..94e95f3b9 100644 --- a/examples/context/wiki-agentos-streaming.mdx +++ b/examples/context/wiki-agentos-streaming.mdx @@ -118,4 +118,4 @@ if __name__ == "__main__": -Full source: [cookbook/12_context/23_wiki_agentos_streaming.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/23_wiki_agentos_streaming.py) +Full source: [cookbook/12_context/23_wiki_agentos_streaming.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/23_wiki_agentos_streaming.py) diff --git a/examples/context/wiki-dual.mdx b/examples/context/wiki-dual.mdx index 968d74424..8c4eaa4c0 100644 --- a/examples/context/wiki-dual.mdx +++ b/examples/context/wiki-dual.mdx @@ -153,4 +153,4 @@ if __name__ == "__main__": -Full source: [cookbook/12_context/17_wiki_dual.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/17_wiki_dual.py) +Full source: [cookbook/12_context/17_wiki_dual.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/17_wiki_dual.py) diff --git a/examples/context/wiki-filesystem.mdx b/examples/context/wiki-filesystem.mdx index 39fad93a1..62ee193a7 100644 --- a/examples/context/wiki-filesystem.mdx +++ b/examples/context/wiki-filesystem.mdx @@ -132,4 +132,4 @@ if __name__ == "__main__": -Full source: [cookbook/12_context/14_wiki_filesystem.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/14_wiki_filesystem.py) +Full source: [cookbook/12_context/14_wiki_filesystem.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/14_wiki_filesystem.py) diff --git a/examples/context/wiki-git.mdx b/examples/context/wiki-git.mdx index ed127e4c4..bcbe95276 100644 --- a/examples/context/wiki-git.mdx +++ b/examples/context/wiki-git.mdx @@ -150,4 +150,4 @@ if __name__ == "__main__": -Full source: [cookbook/12_context/15_wiki_git.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/15_wiki_git.py) +Full source: [cookbook/12_context/15_wiki_git.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/15_wiki_git.py) diff --git a/examples/context/wiki-notion.mdx b/examples/context/wiki-notion.mdx index f511d27bb..dc46f9ab1 100644 --- a/examples/context/wiki-notion.mdx +++ b/examples/context/wiki-notion.mdx @@ -188,4 +188,4 @@ if __name__ == "__main__": -Full source: [cookbook/12_context/15a_wiki_notion.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/15a_wiki_notion.py) +Full source: [cookbook/12_context/15a_wiki_notion.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/15a_wiki_notion.py) diff --git a/examples/context/wiki-streaming-events.mdx b/examples/context/wiki-streaming-events.mdx index 6de773f91..42f1b1215 100644 --- a/examples/context/wiki-streaming-events.mdx +++ b/examples/context/wiki-streaming-events.mdx @@ -102,4 +102,4 @@ if __name__ == "__main__": -Full source: [cookbook/12_context/22_wiki_streaming_events.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/22_wiki_streaming_events.py) +Full source: [cookbook/12_context/22_wiki_streaming_events.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/22_wiki_streaming_events.py) diff --git a/examples/context/wiki-with-web.mdx b/examples/context/wiki-with-web.mdx index fde13eb6d..e1c9f75a9 100644 --- a/examples/context/wiki-with-web.mdx +++ b/examples/context/wiki-with-web.mdx @@ -139,4 +139,4 @@ if __name__ == "__main__": -Full source: [cookbook/12_context/16_wiki_with_web.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/16_wiki_with_web.py) +Full source: [cookbook/12_context/16_wiki_with_web.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/16_wiki_with_web.py) diff --git a/examples/context/workspace.mdx b/examples/context/workspace.mdx index 0958f8f2e..cd810c767 100644 --- a/examples/context/workspace.mdx +++ b/examples/context/workspace.mdx @@ -106,4 +106,4 @@ if __name__ == "__main__": -Full source: [cookbook/12_context/13_workspace.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/13_workspace.py) +Full source: [cookbook/12_context/13_workspace.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/13_workspace.py) diff --git a/examples/evals/accuracy/accuracy-9-11-bigger-or-9-99.mdx b/examples/evals/accuracy/accuracy-9-11-bigger-or-9-99.mdx index a0098b5f1..b8bd4da45 100644 --- a/examples/evals/accuracy/accuracy-9-11-bigger-or-9-99.mdx +++ b/examples/evals/accuracy/accuracy-9-11-bigger-or-9-99.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/accuracy/accuracy_9_11_bigger_or_9_99.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/accuracy/accuracy_9_11_bigger_or_9_99.py) +Full source: [cookbook/09_evals/accuracy/accuracy_9_11_bigger_or_9_99.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/accuracy/accuracy_9_11_bigger_or_9_99.py) diff --git a/examples/evals/accuracy/accuracy-basic.mdx b/examples/evals/accuracy/accuracy-basic.mdx index 3b20156d2..31a2a8980 100644 --- a/examples/evals/accuracy/accuracy-basic.mdx +++ b/examples/evals/accuracy/accuracy-basic.mdx @@ -97,4 +97,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/accuracy/accuracy_basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/accuracy/accuracy_basic.py) +Full source: [cookbook/09_evals/accuracy/accuracy_basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/accuracy/accuracy_basic.py) diff --git a/examples/evals/accuracy/accuracy-eval-metrics.mdx b/examples/evals/accuracy/accuracy-eval-metrics.mdx index 0583013a8..13b60d756 100644 --- a/examples/evals/accuracy/accuracy-eval-metrics.mdx +++ b/examples/evals/accuracy/accuracy-eval-metrics.mdx @@ -126,4 +126,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/accuracy/accuracy_eval_metrics.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/accuracy/accuracy_eval_metrics.py) +Full source: [cookbook/09_evals/accuracy/accuracy_eval_metrics.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/accuracy/accuracy_eval_metrics.py) diff --git a/examples/evals/accuracy/accuracy-team.mdx b/examples/evals/accuracy/accuracy-team.mdx index 9d835d483..5495b8a54 100644 --- a/examples/evals/accuracy/accuracy-team.mdx +++ b/examples/evals/accuracy/accuracy-team.mdx @@ -103,4 +103,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/accuracy/accuracy_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/accuracy/accuracy_team.py) +Full source: [cookbook/09_evals/accuracy/accuracy_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/accuracy/accuracy_team.py) diff --git a/examples/evals/accuracy/accuracy-with-given-answer.mdx b/examples/evals/accuracy/accuracy-with-given-answer.mdx index 1368c6565..5dbd95423 100644 --- a/examples/evals/accuracy/accuracy-with-given-answer.mdx +++ b/examples/evals/accuracy/accuracy-with-given-answer.mdx @@ -72,4 +72,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/accuracy/accuracy_with_given_answer.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/accuracy/accuracy_with_given_answer.py) +Full source: [cookbook/09_evals/accuracy/accuracy_with_given_answer.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/accuracy/accuracy_with_given_answer.py) diff --git a/examples/evals/accuracy/accuracy-with-tools.mdx b/examples/evals/accuracy/accuracy-with-tools.mdx index 13c06a314..3027a7b70 100644 --- a/examples/evals/accuracy/accuracy-with-tools.mdx +++ b/examples/evals/accuracy/accuracy-with-tools.mdx @@ -74,4 +74,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/accuracy/accuracy_with_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/accuracy/accuracy_with_tools.py) +Full source: [cookbook/09_evals/accuracy/accuracy_with_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/accuracy/accuracy_with_tools.py) diff --git a/examples/evals/accuracy/db-logging.mdx b/examples/evals/accuracy/db-logging.mdx index 654746951..ca45b795b 100644 --- a/examples/evals/accuracy/db-logging.mdx +++ b/examples/evals/accuracy/db-logging.mdx @@ -91,4 +91,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/accuracy/db_logging.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/accuracy/db_logging.py) +Full source: [cookbook/09_evals/accuracy/db_logging.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/accuracy/db_logging.py) diff --git a/examples/evals/accuracy/evaluator-agent.mdx b/examples/evals/accuracy/evaluator-agent.mdx index cd31f6812..3f38ec24d 100644 --- a/examples/evals/accuracy/evaluator-agent.mdx +++ b/examples/evals/accuracy/evaluator-agent.mdx @@ -80,4 +80,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/accuracy/evaluator_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/accuracy/evaluator_agent.py) +Full source: [cookbook/09_evals/accuracy/evaluator_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/accuracy/evaluator_agent.py) diff --git a/examples/evals/agent-as-judge/agent-as-judge-basic.mdx b/examples/evals/agent-as-judge/agent-as-judge-basic.mdx index 6333b503e..a1ee3d593 100644 --- a/examples/evals/agent-as-judge/agent-as-judge-basic.mdx +++ b/examples/evals/agent-as-judge/agent-as-judge-basic.mdx @@ -147,4 +147,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/agent_as_judge/agent_as_judge_basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/agent_as_judge/agent_as_judge_basic.py) +Full source: [cookbook/09_evals/agent_as_judge/agent_as_judge_basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/agent_as_judge/agent_as_judge_basic.py) diff --git a/examples/evals/agent-as-judge/agent-as-judge-batch.mdx b/examples/evals/agent-as-judge/agent-as-judge-batch.mdx index 6430f7f92..2b2b44de9 100644 --- a/examples/evals/agent-as-judge/agent-as-judge-batch.mdx +++ b/examples/evals/agent-as-judge/agent-as-judge-batch.mdx @@ -106,4 +106,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/agent_as_judge/agent_as_judge_batch.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/agent_as_judge/agent_as_judge_batch.py) +Full source: [cookbook/09_evals/agent_as_judge/agent_as_judge_batch.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/agent_as_judge/agent_as_judge_batch.py) diff --git a/examples/evals/agent-as-judge/agent-as-judge-binary.mdx b/examples/evals/agent-as-judge/agent-as-judge-binary.mdx index d327eb59a..b1f0df479 100644 --- a/examples/evals/agent-as-judge/agent-as-judge-binary.mdx +++ b/examples/evals/agent-as-judge/agent-as-judge-binary.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/agent_as_judge/agent_as_judge_binary.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/agent_as_judge/agent_as_judge_binary.py) +Full source: [cookbook/09_evals/agent_as_judge/agent_as_judge_binary.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/agent_as_judge/agent_as_judge_binary.py) diff --git a/examples/evals/agent-as-judge/agent-as-judge-custom-evaluator.mdx b/examples/evals/agent-as-judge/agent-as-judge-custom-evaluator.mdx index 84e93b7f3..1de1062c9 100644 --- a/examples/evals/agent-as-judge/agent-as-judge-custom-evaluator.mdx +++ b/examples/evals/agent-as-judge/agent-as-judge-custom-evaluator.mdx @@ -91,4 +91,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/agent_as_judge/agent_as_judge_custom_evaluator.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/agent_as_judge/agent_as_judge_custom_evaluator.py) +Full source: [cookbook/09_evals/agent_as_judge/agent_as_judge_custom_evaluator.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/agent_as_judge/agent_as_judge_custom_evaluator.py) diff --git a/examples/evals/agent-as-judge/agent-as-judge-eval-metrics.mdx b/examples/evals/agent-as-judge/agent-as-judge-eval-metrics.mdx index ccade6f29..82cb4385b 100644 --- a/examples/evals/agent-as-judge/agent-as-judge-eval-metrics.mdx +++ b/examples/evals/agent-as-judge/agent-as-judge-eval-metrics.mdx @@ -102,4 +102,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/agent_as_judge/agent_as_judge_eval_metrics.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/agent_as_judge/agent_as_judge_eval_metrics.py) +Full source: [cookbook/09_evals/agent_as_judge/agent_as_judge_eval_metrics.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/agent_as_judge/agent_as_judge_eval_metrics.py) diff --git a/examples/evals/agent-as-judge/agent-as-judge-post-hook.mdx b/examples/evals/agent-as-judge/agent-as-judge-post-hook.mdx index 15ac68c3b..e1405e829 100644 --- a/examples/evals/agent-as-judge/agent-as-judge-post-hook.mdx +++ b/examples/evals/agent-as-judge/agent-as-judge-post-hook.mdx @@ -130,4 +130,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/agent_as_judge/agent_as_judge_post_hook.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/agent_as_judge/agent_as_judge_post_hook.py) +Full source: [cookbook/09_evals/agent_as_judge/agent_as_judge_post_hook.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/agent_as_judge/agent_as_judge_post_hook.py) diff --git a/examples/evals/agent-as-judge/agent-as-judge-team-post-hook.mdx b/examples/evals/agent-as-judge/agent-as-judge-team-post-hook.mdx index 451118d90..c7f5c625d 100644 --- a/examples/evals/agent-as-judge/agent-as-judge-team-post-hook.mdx +++ b/examples/evals/agent-as-judge/agent-as-judge-team-post-hook.mdx @@ -104,4 +104,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/agent_as_judge/agent_as_judge_team_post_hook.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/agent_as_judge/agent_as_judge_team_post_hook.py) +Full source: [cookbook/09_evals/agent_as_judge/agent_as_judge_team_post_hook.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/agent_as_judge/agent_as_judge_team_post_hook.py) diff --git a/examples/evals/agent-as-judge/agent-as-judge-team.mdx b/examples/evals/agent-as-judge/agent-as-judge-team.mdx index 3c85ab701..f0dfcacb6 100644 --- a/examples/evals/agent-as-judge/agent-as-judge-team.mdx +++ b/examples/evals/agent-as-judge/agent-as-judge-team.mdx @@ -112,4 +112,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/agent_as_judge/agent_as_judge_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/agent_as_judge/agent_as_judge_team.py) +Full source: [cookbook/09_evals/agent_as_judge/agent_as_judge_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/agent_as_judge/agent_as_judge_team.py) diff --git a/examples/evals/agent-as-judge/agent-as-judge-with-guidelines.mdx b/examples/evals/agent-as-judge/agent-as-judge-with-guidelines.mdx index a9abf2da5..e57ea4eca 100644 --- a/examples/evals/agent-as-judge/agent-as-judge-with-guidelines.mdx +++ b/examples/evals/agent-as-judge/agent-as-judge-with-guidelines.mdx @@ -104,4 +104,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/agent_as_judge/agent_as_judge_with_guidelines.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/agent_as_judge/agent_as_judge_with_guidelines.py) +Full source: [cookbook/09_evals/agent_as_judge/agent_as_judge_with_guidelines.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/agent_as_judge/agent_as_judge_with_guidelines.py) diff --git a/examples/evals/agent-as-judge/agent-as-judge-with-tools.mdx b/examples/evals/agent-as-judge/agent-as-judge-with-tools.mdx index ffe57fef7..78bc87271 100644 --- a/examples/evals/agent-as-judge/agent-as-judge-with-tools.mdx +++ b/examples/evals/agent-as-judge/agent-as-judge-with-tools.mdx @@ -85,4 +85,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/agent_as_judge/agent_as_judge_with_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/agent_as_judge/agent_as_judge_with_tools.py) +Full source: [cookbook/09_evals/agent_as_judge/agent_as_judge_with_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/agent_as_judge/agent_as_judge_with_tools.py) diff --git a/examples/evals/performance/async-function.mdx b/examples/evals/performance/async-function.mdx index 012a1eed5..499c0d518 100644 --- a/examples/evals/performance/async-function.mdx +++ b/examples/evals/performance/async-function.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/performance/async_function.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/performance/async_function.py) +Full source: [cookbook/09_evals/performance/async_function.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/performance/async_function.py) diff --git a/examples/evals/performance/comparison/autogen-instantiation.mdx b/examples/evals/performance/comparison/autogen-instantiation.mdx index af538410a..a4d7bff3e 100644 --- a/examples/evals/performance/comparison/autogen-instantiation.mdx +++ b/examples/evals/performance/comparison/autogen-instantiation.mdx @@ -100,4 +100,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/performance/comparison/autogen_instantiation.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/performance/comparison/autogen_instantiation.py) +Full source: [cookbook/09_evals/performance/comparison/autogen_instantiation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/performance/comparison/autogen_instantiation.py) diff --git a/examples/evals/performance/comparison/crewai-instantiation.mdx b/examples/evals/performance/comparison/crewai-instantiation.mdx index a0847b1ef..dd19657e8 100644 --- a/examples/evals/performance/comparison/crewai-instantiation.mdx +++ b/examples/evals/performance/comparison/crewai-instantiation.mdx @@ -82,4 +82,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/performance/comparison/crewai_instantiation.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/performance/comparison/crewai_instantiation.py) +Full source: [cookbook/09_evals/performance/comparison/crewai_instantiation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/performance/comparison/crewai_instantiation.py) diff --git a/examples/evals/performance/comparison/langgraph-instantiation.mdx b/examples/evals/performance/comparison/langgraph-instantiation.mdx index 2ff173145..da48d732e 100644 --- a/examples/evals/performance/comparison/langgraph-instantiation.mdx +++ b/examples/evals/performance/comparison/langgraph-instantiation.mdx @@ -89,4 +89,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/performance/comparison/langgraph_instantiation.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/performance/comparison/langgraph_instantiation.py) +Full source: [cookbook/09_evals/performance/comparison/langgraph_instantiation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/performance/comparison/langgraph_instantiation.py) diff --git a/examples/evals/performance/comparison/openai-agents-instantiation.mdx b/examples/evals/performance/comparison/openai-agents-instantiation.mdx index 0b9afdee2..0bfb2afe7 100644 --- a/examples/evals/performance/comparison/openai-agents-instantiation.mdx +++ b/examples/evals/performance/comparison/openai-agents-instantiation.mdx @@ -84,4 +84,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/performance/comparison/openai_agents_instantiation.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/performance/comparison/openai_agents_instantiation.py) +Full source: [cookbook/09_evals/performance/comparison/openai_agents_instantiation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/performance/comparison/openai_agents_instantiation.py) diff --git a/examples/evals/performance/comparison/pydantic-ai-instantiation.mdx b/examples/evals/performance/comparison/pydantic-ai-instantiation.mdx index 5a8063813..4dc69fa20 100644 --- a/examples/evals/performance/comparison/pydantic-ai-instantiation.mdx +++ b/examples/evals/performance/comparison/pydantic-ai-instantiation.mdx @@ -83,4 +83,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/performance/comparison/pydantic_ai_instantiation.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/performance/comparison/pydantic_ai_instantiation.py) +Full source: [cookbook/09_evals/performance/comparison/pydantic_ai_instantiation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/performance/comparison/pydantic_ai_instantiation.py) diff --git a/examples/evals/performance/comparison/smolagents-instantiation.mdx b/examples/evals/performance/comparison/smolagents-instantiation.mdx index 8ec8d02d6..701c15fc7 100644 --- a/examples/evals/performance/comparison/smolagents-instantiation.mdx +++ b/examples/evals/performance/comparison/smolagents-instantiation.mdx @@ -82,4 +82,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/performance/comparison/smolagents_instantiation.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/performance/comparison/smolagents_instantiation.py) +Full source: [cookbook/09_evals/performance/comparison/smolagents_instantiation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/performance/comparison/smolagents_instantiation.py) diff --git a/examples/evals/performance/db-logging.mdx b/examples/evals/performance/db-logging.mdx index 391333025..637514b1d 100644 --- a/examples/evals/performance/db-logging.mdx +++ b/examples/evals/performance/db-logging.mdx @@ -95,4 +95,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/performance/db_logging.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/performance/db_logging.py) +Full source: [cookbook/09_evals/performance/db_logging.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/performance/db_logging.py) diff --git a/examples/evals/performance/instantiate-agent-with-tool.mdx b/examples/evals/performance/instantiate-agent-with-tool.mdx index 71dac192d..6c7e4478f 100644 --- a/examples/evals/performance/instantiate-agent-with-tool.mdx +++ b/examples/evals/performance/instantiate-agent-with-tool.mdx @@ -75,4 +75,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/performance/instantiate_agent_with_tool.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/performance/instantiate_agent_with_tool.py) +Full source: [cookbook/09_evals/performance/instantiate_agent_with_tool.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/performance/instantiate_agent_with_tool.py) diff --git a/examples/evals/performance/instantiate-agent.mdx b/examples/evals/performance/instantiate-agent.mdx index 42d09c564..b86bfc4f4 100644 --- a/examples/evals/performance/instantiate-agent.mdx +++ b/examples/evals/performance/instantiate-agent.mdx @@ -58,4 +58,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/performance/instantiate_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/performance/instantiate_agent.py) +Full source: [cookbook/09_evals/performance/instantiate_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/performance/instantiate_agent.py) diff --git a/examples/evals/performance/instantiate-team.mdx b/examples/evals/performance/instantiate-team.mdx index 7794cf2fb..3236589d9 100644 --- a/examples/evals/performance/instantiate-team.mdx +++ b/examples/evals/performance/instantiate-team.mdx @@ -77,4 +77,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/performance/instantiate_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/performance/instantiate_team.py) +Full source: [cookbook/09_evals/performance/instantiate_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/performance/instantiate_team.py) diff --git a/examples/evals/performance/response-with-memory-updates.mdx b/examples/evals/performance/response-with-memory-updates.mdx index 18be706ff..1f1a184d4 100644 --- a/examples/evals/performance/response-with-memory-updates.mdx +++ b/examples/evals/performance/response-with-memory-updates.mdx @@ -90,4 +90,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/performance/response_with_memory_updates.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/performance/response_with_memory_updates.py) +Full source: [cookbook/09_evals/performance/response_with_memory_updates.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/performance/response_with_memory_updates.py) diff --git a/examples/evals/performance/response-with-storage.mdx b/examples/evals/performance/response-with-storage.mdx index 2d3699c1e..f357170b5 100644 --- a/examples/evals/performance/response-with-storage.mdx +++ b/examples/evals/performance/response-with-storage.mdx @@ -92,4 +92,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/performance/response_with_storage.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/performance/response_with_storage.py) +Full source: [cookbook/09_evals/performance/response_with_storage.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/performance/response_with_storage.py) diff --git a/examples/evals/performance/simple-response.mdx b/examples/evals/performance/simple-response.mdx index b10d8bbb5..922da1a38 100644 --- a/examples/evals/performance/simple-response.mdx +++ b/examples/evals/performance/simple-response.mdx @@ -80,4 +80,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/performance/simple_response.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/performance/simple_response.py) +Full source: [cookbook/09_evals/performance/simple_response.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/performance/simple_response.py) diff --git a/examples/evals/performance/team-response-with-memory-and-reasoning.mdx b/examples/evals/performance/team-response-with-memory-and-reasoning.mdx index 95bcf44af..966c03c74 100644 --- a/examples/evals/performance/team-response-with-memory-and-reasoning.mdx +++ b/examples/evals/performance/team-response-with-memory-and-reasoning.mdx @@ -1108,7 +1108,6 @@ team_response_with_memory_impact = PerformanceEval( num_iterations=5, warmup_runs=0, measure_runtime=False, - debug_mode=True, memory_growth_tracking=True, top_n_memory_allocations=10, ) @@ -1155,4 +1154,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/performance/team_response_with_memory_and_reasoning.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/performance/team_response_with_memory_and_reasoning.py) +Full source: [cookbook/09_evals/performance/team_response_with_memory_and_reasoning.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/performance/team_response_with_memory_and_reasoning.py) diff --git a/examples/evals/performance/team-response-with-memory-multi-user.mdx b/examples/evals/performance/team-response-with-memory-multi-user.mdx index 7946add87..3fe7c9fe2 100644 --- a/examples/evals/performance/team-response-with-memory-multi-user.mdx +++ b/examples/evals/performance/team-response-with-memory-multi-user.mdx @@ -148,7 +148,6 @@ team_response_with_memory_impact = PerformanceEval( num_iterations=5, warmup_runs=0, measure_runtime=False, - debug_mode=True, memory_growth_tracking=True, top_n_memory_allocations=10, ) @@ -195,4 +194,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/performance/team_response_with_memory_multi_user.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/performance/team_response_with_memory_multi_user.py) +Full source: [cookbook/09_evals/performance/team_response_with_memory_multi_user.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/performance/team_response_with_memory_multi_user.py) diff --git a/examples/evals/performance/team-response-with-memory-simple.mdx b/examples/evals/performance/team-response-with-memory-simple.mdx index 9a9543763..aae3936ba 100644 --- a/examples/evals/performance/team-response-with-memory-simple.mdx +++ b/examples/evals/performance/team-response-with-memory-simple.mdx @@ -104,7 +104,6 @@ team_response_with_memory_impact = PerformanceEval( num_iterations=5, warmup_runs=0, measure_runtime=False, - debug_mode=True, memory_growth_tracking=True, ) @@ -150,4 +149,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/performance/team_response_with_memory_simple.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/performance/team_response_with_memory_simple.py) +Full source: [cookbook/09_evals/performance/team_response_with_memory_simple.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/performance/team_response_with_memory_simple.py) diff --git a/examples/evals/reliability/db-logging.mdx b/examples/evals/reliability/db-logging.mdx index ba0d599de..2aebb9335 100644 --- a/examples/evals/reliability/db-logging.mdx +++ b/examples/evals/reliability/db-logging.mdx @@ -95,4 +95,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/reliability/db_logging.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/reliability/db_logging.py) +Full source: [cookbook/09_evals/reliability/db_logging.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/reliability/db_logging.py) diff --git a/examples/evals/reliability/multiple-tool-calls/calculator.mdx b/examples/evals/reliability/multiple-tool-calls/calculator.mdx index f96847a02..8b4369a71 100644 --- a/examples/evals/reliability/multiple-tool-calls/calculator.mdx +++ b/examples/evals/reliability/multiple-tool-calls/calculator.mdx @@ -104,4 +104,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/reliability/multiple_tool_calls/calculator.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/reliability/multiple_tool_calls/calculator.py) +Full source: [cookbook/09_evals/reliability/multiple_tool_calls/calculator.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/reliability/multiple_tool_calls/calculator.py) diff --git a/examples/evals/reliability/reliability-async.mdx b/examples/evals/reliability/reliability-async.mdx index 65a337e6f..bb0a3d9d0 100644 --- a/examples/evals/reliability/reliability-async.mdx +++ b/examples/evals/reliability/reliability-async.mdx @@ -84,4 +84,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/reliability/reliability_async.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/reliability/reliability_async.py) +Full source: [cookbook/09_evals/reliability/reliability_async.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/reliability/reliability_async.py) diff --git a/examples/evals/reliability/single-tool-calls/calculator.mdx b/examples/evals/reliability/single-tool-calls/calculator.mdx index 9b8e2fb6f..9a8e999b1 100644 --- a/examples/evals/reliability/single-tool-calls/calculator.mdx +++ b/examples/evals/reliability/single-tool-calls/calculator.mdx @@ -102,4 +102,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/reliability/single_tool_calls/calculator.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/reliability/single_tool_calls/calculator.py) +Full source: [cookbook/09_evals/reliability/single_tool_calls/calculator.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/reliability/single_tool_calls/calculator.py) diff --git a/examples/evals/reliability/team/ai-news.mdx b/examples/evals/reliability/team/ai-news.mdx index 07d2362bd..687338442 100644 --- a/examples/evals/reliability/team/ai-news.mdx +++ b/examples/evals/reliability/team/ai-news.mdx @@ -96,4 +96,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/reliability/team/ai_news.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/reliability/team/ai_news.py) +Full source: [cookbook/09_evals/reliability/team/ai_news.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/reliability/team/ai_news.py) diff --git a/examples/evals/suite/suite-basic.mdx b/examples/evals/suite/suite-basic.mdx index 2641a453e..720a69b50 100644 --- a/examples/evals/suite/suite-basic.mdx +++ b/examples/evals/suite/suite-basic.mdx @@ -92,4 +92,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/suite/suite_basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/suite/suite_basic.py) +Full source: [cookbook/09_evals/suite/suite_basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/suite/suite_basic.py) diff --git a/examples/evals/suite/suite-team-scoring.mdx b/examples/evals/suite/suite-team-scoring.mdx index b05bcd6c4..f6be3ab3c 100644 --- a/examples/evals/suite/suite-team-scoring.mdx +++ b/examples/evals/suite/suite-team-scoring.mdx @@ -109,4 +109,4 @@ if __name__ == "__main__": -Full source: [cookbook/09_evals/suite/suite_team_scoring.py](https://github.com/agno-agi/agno/blob/main/cookbook/09_evals/suite/suite_team_scoring.py) +Full source: [cookbook/09_evals/suite/suite_team_scoring.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/09_evals/suite/suite_team_scoring.py) diff --git a/examples/integrations/a2a/basic-agent/--main--.mdx b/examples/integrations/a2a/basic-agent/--main--.mdx index 98301fec7..984df50c9 100644 --- a/examples/integrations/a2a/basic-agent/--main--.mdx +++ b/examples/integrations/a2a/basic-agent/--main--.mdx @@ -161,4 +161,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/a2a/basic_agent/__main__.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/a2a/basic_agent/__main__.py) +Full source: [cookbook/05_agent_os/interfaces/a2a/basic_agent/__main__.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/a2a/basic_agent/__main__.py) diff --git a/examples/integrations/a2a/basic-agent/basic-agent.mdx b/examples/integrations/a2a/basic-agent/basic-agent.mdx index c129aff23..98bdf94b6 100644 --- a/examples/integrations/a2a/basic-agent/basic-agent.mdx +++ b/examples/integrations/a2a/basic-agent/basic-agent.mdx @@ -106,4 +106,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/a2a/basic_agent/basic_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/a2a/basic_agent/basic_agent.py) +Full source: [cookbook/05_agent_os/interfaces/a2a/basic_agent/basic_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/a2a/basic_agent/basic_agent.py) diff --git a/examples/integrations/a2a/basic-agent/client.mdx b/examples/integrations/a2a/basic-agent/client.mdx index 2279f205b..ed9dfcdfe 100644 --- a/examples/integrations/a2a/basic-agent/client.mdx +++ b/examples/integrations/a2a/basic-agent/client.mdx @@ -113,4 +113,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/a2a/basic_agent/client.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/a2a/basic_agent/client.py) +Full source: [cookbook/05_agent_os/interfaces/a2a/basic_agent/client.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/a2a/basic_agent/client.py) diff --git a/examples/integrations/discord/agent-with-media.mdx b/examples/integrations/discord/agent-with-media.mdx index c4432ea27..ee370c528 100644 --- a/examples/integrations/discord/agent-with-media.mdx +++ b/examples/integrations/discord/agent-with-media.mdx @@ -73,4 +73,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/discord/agent_with_media.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/discord/agent_with_media.py) +Full source: [cookbook/05_agent_os/interfaces/discord/agent_with_media.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/discord/agent_with_media.py) diff --git a/examples/integrations/discord/agent-with-user-memory.mdx b/examples/integrations/discord/agent-with-user-memory.mdx index 3487ee757..d33be25a9 100644 --- a/examples/integrations/discord/agent-with-user-memory.mdx +++ b/examples/integrations/discord/agent-with-user-memory.mdx @@ -44,7 +44,6 @@ personal_agent = Agent( First introduce yourself and ask for their name then, ask about themeselves, their hobbies, what they like to do and what they like to talk about. Use DuckDuckGo search tool to find latest information about things in the conversations """), - debug_mode=True, ) discord_agent = DiscordClient(personal_agent) @@ -90,4 +89,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/discord/agent_with_user_memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/discord/agent_with_user_memory.py) +Full source: [cookbook/05_agent_os/interfaces/discord/agent_with_user_memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/discord/agent_with_user_memory.py) diff --git a/examples/integrations/discord/basic.mdx b/examples/integrations/discord/basic.mdx index 1b1392555..ab6c71855 100644 --- a/examples/integrations/discord/basic.mdx +++ b/examples/integrations/discord/basic.mdx @@ -70,4 +70,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/interfaces/discord/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/discord/basic.py) +Full source: [cookbook/05_agent_os/interfaces/discord/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/discord/basic.py) diff --git a/examples/integrations/memory/mem0-integration.mdx b/examples/integrations/memory/mem0-integration.mdx index 268b550a2..8adec5147 100644 --- a/examples/integrations/memory/mem0-integration.mdx +++ b/examples/integrations/memory/mem0-integration.mdx @@ -96,4 +96,4 @@ if __name__ == "__main__": -Full source: [cookbook/11_memory/integrations/mem0_integration.py](https://github.com/agno-agi/agno/blob/main/cookbook/11_memory/integrations/mem0_integration.py) +Full source: [cookbook/11_memory/integrations/mem0_integration.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/11_memory/integrations/mem0_integration.py) diff --git a/examples/integrations/memory/memori-integration.mdx b/examples/integrations/memory/memori-integration.mdx index 37b54ad0f..27d1e9b53 100644 --- a/examples/integrations/memory/memori-integration.mdx +++ b/examples/integrations/memory/memori-integration.mdx @@ -105,4 +105,4 @@ if __name__ == "__main__": -Full source: [cookbook/11_memory/integrations/memori_integration.py](https://github.com/agno-agi/agno/blob/main/cookbook/11_memory/integrations/memori_integration.py) +Full source: [cookbook/11_memory/integrations/memori_integration.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/11_memory/integrations/memori_integration.py) diff --git a/examples/integrations/memory/zep-integration.mdx b/examples/integrations/memory/zep-integration.mdx index 2ca392dd2..03ccf3240 100644 --- a/examples/integrations/memory/zep-integration.mdx +++ b/examples/integrations/memory/zep-integration.mdx @@ -86,4 +86,4 @@ if __name__ == "__main__": -Full source: [cookbook/11_memory/integrations/zep_integration.py](https://github.com/agno-agi/agno/blob/main/cookbook/11_memory/integrations/zep_integration.py) +Full source: [cookbook/11_memory/integrations/zep_integration.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/11_memory/integrations/zep_integration.py) diff --git a/examples/integrations/observability/agent-ops.mdx b/examples/integrations/observability/agent-ops.mdx index 7bd3dbdf5..01bbbafef 100644 --- a/examples/integrations/observability/agent-ops.mdx +++ b/examples/integrations/observability/agent-ops.mdx @@ -72,4 +72,4 @@ if __name__ == "__main__": -Full source: [cookbook/observability/agent_ops.py](https://github.com/agno-agi/agno/blob/main/cookbook/observability/agent_ops.py) +Full source: [cookbook/observability/agent_ops.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/observability/agent_ops.py) diff --git a/examples/integrations/observability/arize-phoenix-moving-traces-to-different-projects.mdx b/examples/integrations/observability/arize-phoenix-moving-traces-to-different-projects.mdx index 20721652f..0ffb1780e 100644 --- a/examples/integrations/observability/arize-phoenix-moving-traces-to-different-projects.mdx +++ b/examples/integrations/observability/arize-phoenix-moving-traces-to-different-projects.mdx @@ -130,4 +130,4 @@ if __name__ == "__main__": -Full source: [cookbook/observability/arize_phoenix_moving_traces_to_different_projects.py](https://github.com/agno-agi/agno/blob/main/cookbook/observability/arize_phoenix_moving_traces_to_different_projects.py) +Full source: [cookbook/observability/arize_phoenix_moving_traces_to_different_projects.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/observability/arize_phoenix_moving_traces_to_different_projects.py) diff --git a/examples/integrations/observability/arize-phoenix-via-openinference-local.mdx b/examples/integrations/observability/arize-phoenix-via-openinference-local.mdx index 05c6c84f3..7ad00c1b3 100644 --- a/examples/integrations/observability/arize-phoenix-via-openinference-local.mdx +++ b/examples/integrations/observability/arize-phoenix-via-openinference-local.mdx @@ -41,7 +41,6 @@ agent = Agent( model=OpenAIChat(id="gpt-5.2"), tools=[YFinanceTools()], instructions="You are a stock price agent. Answer questions in the style of a stock analyst.", - debug_mode=True, ) @@ -90,4 +89,4 @@ if __name__ == "__main__": -Full source: [cookbook/observability/arize_phoenix_via_openinference_local.py](https://github.com/agno-agi/agno/blob/main/cookbook/observability/arize_phoenix_via_openinference_local.py) +Full source: [cookbook/observability/arize_phoenix_via_openinference_local.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/observability/arize_phoenix_via_openinference_local.py) diff --git a/examples/integrations/observability/arize-phoenix-via-openinference.mdx b/examples/integrations/observability/arize-phoenix-via-openinference.mdx index c4ffc27f7..75a20f717 100644 --- a/examples/integrations/observability/arize-phoenix-via-openinference.mdx +++ b/examples/integrations/observability/arize-phoenix-via-openinference.mdx @@ -99,4 +99,4 @@ if __name__ == "__main__": -Full source: [cookbook/observability/arize_phoenix_via_openinference.py](https://github.com/agno-agi/agno/blob/main/cookbook/observability/arize_phoenix_via_openinference.py) +Full source: [cookbook/observability/arize_phoenix_via_openinference.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/observability/arize_phoenix_via_openinference.py) diff --git a/examples/integrations/observability/atla-op.mdx b/examples/integrations/observability/atla-op.mdx index 59fb4fe42..05e6ee670 100644 --- a/examples/integrations/observability/atla-op.mdx +++ b/examples/integrations/observability/atla-op.mdx @@ -35,7 +35,6 @@ agent = Agent( model=OpenAIChat(id="gpt-4o-mini"), tools=[WebSearchTools()], instructions="You are a stock price agent. Answer questions in the style of a stock analyst.", - debug_mode=True, ) @@ -81,4 +80,4 @@ if __name__ == "__main__": -Full source: [cookbook/observability/atla_op.py](https://github.com/agno-agi/agno/blob/main/cookbook/observability/atla_op.py) +Full source: [cookbook/observability/atla_op.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/observability/atla_op.py) diff --git a/examples/integrations/observability/langfuse-via-openinference-response-model.mdx b/examples/integrations/observability/langfuse-via-openinference-response-model.mdx index 2fa9feb02..a23ceb4d2 100644 --- a/examples/integrations/observability/langfuse-via-openinference-response-model.mdx +++ b/examples/integrations/observability/langfuse-via-openinference-response-model.mdx @@ -70,7 +70,6 @@ agent = Agent( model=OpenAIChat(id="gpt-5.2"), tools=[YFinanceTools()], instructions="You are a stock price agent. You check and return the current price of a stock.", - debug_mode=True, output_schema=StockPrice, ) @@ -117,4 +116,4 @@ if __name__ == "__main__": -Full source: [cookbook/observability/langfuse_via_openinference_response_model.py](https://github.com/agno-agi/agno/blob/main/cookbook/observability/langfuse_via_openinference_response_model.py) +Full source: [cookbook/observability/langfuse_via_openinference_response_model.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/observability/langfuse_via_openinference_response_model.py) diff --git a/examples/integrations/observability/langfuse-via-openinference.mdx b/examples/integrations/observability/langfuse-via-openinference.mdx index 0b3972b79..81914166d 100644 --- a/examples/integrations/observability/langfuse-via-openinference.mdx +++ b/examples/integrations/observability/langfuse-via-openinference.mdx @@ -109,4 +109,4 @@ if __name__ == "__main__": -Full source: [cookbook/observability/langfuse_via_openinference.py](https://github.com/agno-agi/agno/blob/main/cookbook/observability/langfuse_via_openinference.py) +Full source: [cookbook/observability/langfuse_via_openinference.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/observability/langfuse_via_openinference.py) diff --git a/examples/integrations/observability/langfuse-via-openlit.mdx b/examples/integrations/observability/langfuse-via-openlit.mdx index ce5893370..6710f0f74 100644 --- a/examples/integrations/observability/langfuse-via-openlit.mdx +++ b/examples/integrations/observability/langfuse-via-openlit.mdx @@ -66,7 +66,6 @@ agent = Agent( model=OpenAIChat(id="gpt-4o-mini"), tools=[WebSearchTools()], markdown=True, - debug_mode=True, ) @@ -112,4 +111,4 @@ if __name__ == "__main__": -Full source: [cookbook/observability/langfuse_via_openlit.py](https://github.com/agno-agi/agno/blob/main/cookbook/observability/langfuse_via_openlit.py) +Full source: [cookbook/observability/langfuse_via_openlit.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/observability/langfuse_via_openlit.py) diff --git a/examples/integrations/observability/langsmith-via-openinference.mdx b/examples/integrations/observability/langsmith-via-openinference.mdx index ce19254cd..b713fdf8e 100644 --- a/examples/integrations/observability/langsmith-via-openinference.mdx +++ b/examples/integrations/observability/langsmith-via-openinference.mdx @@ -50,7 +50,6 @@ agent = Agent( model=OpenAIChat(id="gpt-4o-mini"), tools=[WebSearchTools()], markdown=True, - debug_mode=True, ) @@ -96,4 +95,4 @@ if __name__ == "__main__": -Full source: [cookbook/observability/langsmith_via_openinference.py](https://github.com/agno-agi/agno/blob/main/cookbook/observability/langsmith_via_openinference.py) +Full source: [cookbook/observability/langsmith_via_openinference.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/observability/langsmith_via_openinference.py) diff --git a/examples/integrations/observability/langtrace-op.mdx b/examples/integrations/observability/langtrace-op.mdx index e4d7d8688..13b435cb1 100644 --- a/examples/integrations/observability/langtrace-op.mdx +++ b/examples/integrations/observability/langtrace-op.mdx @@ -38,7 +38,6 @@ agent = Agent( model=OpenAIChat(id="gpt-5.2"), tools=[YFinanceTools()], instructions="You are a stock price agent. Answer questions in the style of a stock analyst.", - debug_mode=True, ) @@ -86,4 +85,4 @@ if __name__ == "__main__": -Full source: [cookbook/observability/langtrace_op.py](https://github.com/agno-agi/agno/blob/main/cookbook/observability/langtrace_op.py) +Full source: [cookbook/observability/langtrace_op.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/observability/langtrace_op.py) diff --git a/examples/integrations/observability/langwatch-op.mdx b/examples/integrations/observability/langwatch-op.mdx index 49afe8e38..b20f9eaf9 100644 --- a/examples/integrations/observability/langwatch-op.mdx +++ b/examples/integrations/observability/langwatch-op.mdx @@ -35,7 +35,6 @@ agent = Agent( model=OpenAIChat(id="gpt-5.2"), tools=[YFinanceTools()], instructions="You are a stock price agent. Answer questions in the style of a stock analyst.", - debug_mode=True, ) @@ -79,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/observability/langwatch_op.py](https://github.com/agno-agi/agno/blob/main/cookbook/observability/langwatch_op.py) +Full source: [cookbook/observability/langwatch_op.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/observability/langwatch_op.py) diff --git a/examples/integrations/observability/latitude-via-openinference.mdx b/examples/integrations/observability/latitude-via-openinference.mdx index d68cda434..73ccdea72 100644 --- a/examples/integrations/observability/latitude-via-openinference.mdx +++ b/examples/integrations/observability/latitude-via-openinference.mdx @@ -103,4 +103,4 @@ if __name__ == "__main__": -Full source: [cookbook/observability/latitude_via_openinference.py](https://github.com/agno-agi/agno/blob/main/cookbook/observability/latitude_via_openinference.py) +Full source: [cookbook/observability/latitude_via_openinference.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/observability/latitude_via_openinference.py) diff --git a/examples/integrations/observability/logfire-via-openinference.mdx b/examples/integrations/observability/logfire-via-openinference.mdx index 550226ae2..3bc6d48d8 100644 --- a/examples/integrations/observability/logfire-via-openinference.mdx +++ b/examples/integrations/observability/logfire-via-openinference.mdx @@ -109,4 +109,4 @@ if __name__ == "__main__": -Full source: [cookbook/observability/logfire_via_openinference.py](https://github.com/agno-agi/agno/blob/main/cookbook/observability/logfire_via_openinference.py) +Full source: [cookbook/observability/logfire_via_openinference.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/observability/logfire_via_openinference.py) diff --git a/examples/integrations/observability/maxim-ops.mdx b/examples/integrations/observability/maxim-ops.mdx index 01146017c..2e05d78c2 100644 --- a/examples/integrations/observability/maxim-ops.mdx +++ b/examples/integrations/observability/maxim-ops.mdx @@ -131,4 +131,4 @@ if __name__ == "__main__": -Full source: [cookbook/observability/maxim_ops.py](https://github.com/agno-agi/agno/blob/main/cookbook/observability/maxim_ops.py) +Full source: [cookbook/observability/maxim_ops.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/observability/maxim_ops.py) diff --git a/examples/integrations/observability/mlflow-via-autolog.mdx b/examples/integrations/observability/mlflow-via-autolog.mdx index 09aa8b160..c879ec275 100644 --- a/examples/integrations/observability/mlflow-via-autolog.mdx +++ b/examples/integrations/observability/mlflow-via-autolog.mdx @@ -94,4 +94,4 @@ agent.print_response("What is the stock price of Apple?", stream=False) -Full source: [cookbook/observability/mlflow_via_autolog.py](https://github.com/agno-agi/agno/blob/main/cookbook/observability/mlflow_via_autolog.py) +Full source: [cookbook/observability/mlflow_via_autolog.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/observability/mlflow_via_autolog.py) diff --git a/examples/integrations/observability/mlflow-via-openinference.mdx b/examples/integrations/observability/mlflow-via-openinference.mdx index 8760fae91..8a047f5a3 100644 --- a/examples/integrations/observability/mlflow-via-openinference.mdx +++ b/examples/integrations/observability/mlflow-via-openinference.mdx @@ -114,4 +114,4 @@ if __name__ == "__main__": -Full source: [cookbook/observability/mlflow_via_openinference.py](https://github.com/agno-agi/agno/blob/main/cookbook/observability/mlflow_via_openinference.py) +Full source: [cookbook/observability/mlflow_via_openinference.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/observability/mlflow_via_openinference.py) diff --git a/examples/integrations/observability/opik-via-openinference.mdx b/examples/integrations/observability/opik-via-openinference.mdx index 948938eec..4c197d38f 100644 --- a/examples/integrations/observability/opik-via-openinference.mdx +++ b/examples/integrations/observability/opik-via-openinference.mdx @@ -43,7 +43,6 @@ agent = Agent( model=OpenAIChat(id="gpt-5.2"), tools=[YFinanceTools()], instructions="You are a stock price analyst. Answer with concise, well-sourced updates.", - debug_mode=True, trace_attributes={ "session.id": "demo-session-001", "environment": "development", @@ -96,4 +95,4 @@ if __name__ == "__main__": -Full source: [cookbook/observability/opik_via_openinference.py](https://github.com/agno-agi/agno/blob/main/cookbook/observability/opik_via_openinference.py) +Full source: [cookbook/observability/opik_via_openinference.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/observability/opik_via_openinference.py) diff --git a/examples/integrations/observability/teams/langfuse-via-openinference-team.mdx b/examples/integrations/observability/teams/langfuse-via-openinference-team.mdx index dbedf9e95..158e8fea8 100644 --- a/examples/integrations/observability/teams/langfuse-via-openinference-team.mdx +++ b/examples/integrations/observability/teams/langfuse-via-openinference-team.mdx @@ -162,4 +162,4 @@ if __name__ == "__main__": -Full source: [cookbook/observability/teams/langfuse_via_openinference_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/observability/teams/langfuse_via_openinference_team.py) +Full source: [cookbook/observability/teams/langfuse_via_openinference_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/observability/teams/langfuse_via_openinference_team.py) diff --git a/examples/integrations/observability/the-context-company.mdx b/examples/integrations/observability/the-context-company.mdx index 29f4cb538..6e29812a6 100644 --- a/examples/integrations/observability/the-context-company.mdx +++ b/examples/integrations/observability/the-context-company.mdx @@ -64,19 +64,17 @@ if __name__ == "__main__": ```bash - uv pip install -U "contextcompany[agno]>=1.9.1" agno openai yfinance + uv pip install -U agno contextcompany openai yfinance ``` - + ```bash Mac/Linux - export TCC_API_KEY="your_tcc_api_key_here" export OPENAI_API_KEY="your_openai_api_key_here" ``` ```bash Windows - $Env:TCC_API_KEY="your_tcc_api_key_here" $Env:OPENAI_API_KEY="your_openai_api_key_here" ``` @@ -90,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/observability/the_context_company.py](https://github.com/agno-agi/agno/blob/main/cookbook/observability/the_context_company.py) +Full source: [cookbook/observability/the_context_company.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/observability/the_context_company.py) diff --git a/examples/integrations/observability/trace-to-database.mdx b/examples/integrations/observability/trace-to-database.mdx index 47454bfdc..ab74f3983 100644 --- a/examples/integrations/observability/trace-to-database.mdx +++ b/examples/integrations/observability/trace-to-database.mdx @@ -265,4 +265,4 @@ if __name__ == "__main__": -Full source: [cookbook/observability/trace_to_database.py](https://github.com/agno-agi/agno/blob/main/cookbook/observability/trace_to_database.py) +Full source: [cookbook/observability/trace_to_database.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/observability/trace_to_database.py) diff --git a/examples/integrations/observability/traceloop-op.mdx b/examples/integrations/observability/traceloop-op.mdx index ac5ba2088..bc5de83e6 100644 --- a/examples/integrations/observability/traceloop-op.mdx +++ b/examples/integrations/observability/traceloop-op.mdx @@ -31,7 +31,6 @@ Traceloop.init(app_name="agno_workflows") agent = Agent( name="AnalysisAgent", model=OpenAIChat(id="gpt-5.2"), - debug_mode=True, ) @@ -84,4 +83,4 @@ if __name__ == "__main__": -Full source: [cookbook/observability/traceloop_op.py](https://github.com/agno-agi/agno/blob/main/cookbook/observability/traceloop_op.py) +Full source: [cookbook/observability/traceloop_op.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/observability/traceloop_op.py) diff --git a/examples/integrations/observability/weave-op.mdx b/examples/integrations/observability/weave-op.mdx index ba24f4670..32f4da96a 100644 --- a/examples/integrations/observability/weave-op.mdx +++ b/examples/integrations/observability/weave-op.mdx @@ -27,7 +27,7 @@ weave.init("agno") # --------------------------------------------------------------------------- # Create Agent # --------------------------------------------------------------------------- -agent = Agent(model=OpenAIChat(id="gpt-4o"), markdown=True, debug_mode=True) +agent = Agent(model=OpenAIChat(id="gpt-4o"), markdown=True) @weave.op() @@ -75,4 +75,4 @@ if __name__ == "__main__": -Full source: [cookbook/observability/weave_op.py](https://github.com/agno-agi/agno/blob/main/cookbook/observability/weave_op.py) +Full source: [cookbook/observability/weave_op.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/observability/weave_op.py) diff --git a/examples/integrations/observability/workflows/arize-phoenix-via-openinference-workflow.mdx b/examples/integrations/observability/workflows/arize-phoenix-via-openinference-workflow.mdx index 7b627d93b..eb06148ea 100644 --- a/examples/integrations/observability/workflows/arize-phoenix-via-openinference-workflow.mdx +++ b/examples/integrations/observability/workflows/arize-phoenix-via-openinference-workflow.mdx @@ -166,4 +166,4 @@ if __name__ == "__main__": -Full source: [cookbook/observability/workflows/arize_phoenix_via_openinference_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/observability/workflows/arize_phoenix_via_openinference_workflow.py) +Full source: [cookbook/observability/workflows/arize_phoenix_via_openinference_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/observability/workflows/arize_phoenix_via_openinference_workflow.py) diff --git a/examples/integrations/observability/workflows/langfuse-via-openinference-workflows.mdx b/examples/integrations/observability/workflows/langfuse-via-openinference-workflows.mdx index c03bc5ca8..46de90881 100644 --- a/examples/integrations/observability/workflows/langfuse-via-openinference-workflows.mdx +++ b/examples/integrations/observability/workflows/langfuse-via-openinference-workflows.mdx @@ -180,4 +180,4 @@ if __name__ == "__main__": -Full source: [cookbook/observability/workflows/langfuse_via_openinference_workflows.py](https://github.com/agno-agi/agno/blob/main/cookbook/observability/workflows/langfuse_via_openinference_workflows.py) +Full source: [cookbook/observability/workflows/langfuse_via_openinference_workflows.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/observability/workflows/langfuse_via_openinference_workflows.py) diff --git a/examples/integrations/parallel/agent-os-app.mdx b/examples/integrations/parallel/agent-os-app.mdx index 35625172c..297c29661 100644 --- a/examples/integrations/parallel/agent-os-app.mdx +++ b/examples/integrations/parallel/agent-os-app.mdx @@ -95,4 +95,4 @@ if __name__ == "__main__": -Full source: [cookbook/integrations/parallel/09_agent_os_app.py](https://github.com/agno-agi/agno/blob/main/cookbook/integrations/parallel/09_agent_os_app.py) +Full source: [cookbook/integrations/parallel/09_agent_os_app.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/integrations/parallel/09_agent_os_app.py) diff --git a/examples/integrations/parallel/competitive-intel-monitor.mdx b/examples/integrations/parallel/competitive-intel-monitor.mdx index 5b8a5e471..3a0820414 100644 --- a/examples/integrations/parallel/competitive-intel-monitor.mdx +++ b/examples/integrations/parallel/competitive-intel-monitor.mdx @@ -99,4 +99,4 @@ if __name__ == "__main__": -Full source: [cookbook/integrations/parallel/08_competitive_intel_monitor.py](https://github.com/agno-agi/agno/blob/main/cookbook/integrations/parallel/08_competitive_intel_monitor.py) +Full source: [cookbook/integrations/parallel/08_competitive_intel_monitor.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/integrations/parallel/08_competitive_intel_monitor.py) diff --git a/examples/integrations/parallel/deep-research.mdx b/examples/integrations/parallel/deep-research.mdx index 80f437bbf..6acadb643 100644 --- a/examples/integrations/parallel/deep-research.mdx +++ b/examples/integrations/parallel/deep-research.mdx @@ -102,4 +102,4 @@ if __name__ == "__main__": -Full source: [cookbook/integrations/parallel/03_deep_research.py](https://github.com/agno-agi/agno/blob/main/cookbook/integrations/parallel/03_deep_research.py) +Full source: [cookbook/integrations/parallel/03_deep_research.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/integrations/parallel/03_deep_research.py) diff --git a/examples/integrations/parallel/extract-content.mdx b/examples/integrations/parallel/extract-content.mdx index bf83f3d41..1645c92bf 100644 --- a/examples/integrations/parallel/extract-content.mdx +++ b/examples/integrations/parallel/extract-content.mdx @@ -93,4 +93,4 @@ if __name__ == "__main__": -Full source: [cookbook/integrations/parallel/02_extract_content.py](https://github.com/agno-agi/agno/blob/main/cookbook/integrations/parallel/02_extract_content.py) +Full source: [cookbook/integrations/parallel/02_extract_content.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/integrations/parallel/02_extract_content.py) diff --git a/examples/integrations/parallel/quickstart.mdx b/examples/integrations/parallel/quickstart.mdx index 7e55cbefb..0b57e0069 100644 --- a/examples/integrations/parallel/quickstart.mdx +++ b/examples/integrations/parallel/quickstart.mdx @@ -78,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/integrations/parallel/01_quickstart.py](https://github.com/agno-agi/agno/blob/main/cookbook/integrations/parallel/01_quickstart.py) +Full source: [cookbook/integrations/parallel/01_quickstart.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/integrations/parallel/01_quickstart.py) diff --git a/examples/integrations/parallel/research-assistant.mdx b/examples/integrations/parallel/research-assistant.mdx index f8de00065..9c7e4dda8 100644 --- a/examples/integrations/parallel/research-assistant.mdx +++ b/examples/integrations/parallel/research-assistant.mdx @@ -120,4 +120,4 @@ if __name__ == "__main__": -Full source: [cookbook/integrations/parallel/04_research_assistant.py](https://github.com/agno-agi/agno/blob/main/cookbook/integrations/parallel/04_research_assistant.py) +Full source: [cookbook/integrations/parallel/04_research_assistant.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/integrations/parallel/04_research_assistant.py) diff --git a/examples/integrations/parallel/research-team.mdx b/examples/integrations/parallel/research-team.mdx index fa0f40516..100c070c4 100644 --- a/examples/integrations/parallel/research-team.mdx +++ b/examples/integrations/parallel/research-team.mdx @@ -115,4 +115,4 @@ if __name__ == "__main__": -Full source: [cookbook/integrations/parallel/06_research_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/integrations/parallel/06_research_team.py) +Full source: [cookbook/integrations/parallel/06_research_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/integrations/parallel/06_research_team.py) diff --git a/examples/integrations/parallel/research-workflow.mdx b/examples/integrations/parallel/research-workflow.mdx index b1053440c..457a1ec3c 100644 --- a/examples/integrations/parallel/research-workflow.mdx +++ b/examples/integrations/parallel/research-workflow.mdx @@ -110,4 +110,4 @@ if __name__ == "__main__": -Full source: [cookbook/integrations/parallel/07_research_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/integrations/parallel/07_research_workflow.py) +Full source: [cookbook/integrations/parallel/07_research_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/integrations/parallel/07_research_workflow.py) diff --git a/examples/integrations/parallel/web-plus-knowledge.mdx b/examples/integrations/parallel/web-plus-knowledge.mdx index cab2a7bf0..1e3867f18 100644 --- a/examples/integrations/parallel/web-plus-knowledge.mdx +++ b/examples/integrations/parallel/web-plus-knowledge.mdx @@ -118,4 +118,4 @@ if __name__ == "__main__": -Full source: [cookbook/integrations/parallel/05_web_plus_knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/integrations/parallel/05_web_plus_knowledge.py) +Full source: [cookbook/integrations/parallel/05_web_plus_knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/integrations/parallel/05_web_plus_knowledge.py) diff --git a/examples/integrations/surrealdb/custom-memory-instructions.mdx b/examples/integrations/surrealdb/custom-memory-instructions.mdx index 8bb6c0bc3..f1a5cec93 100644 --- a/examples/integrations/surrealdb/custom-memory-instructions.mdx +++ b/examples/integrations/surrealdb/custom-memory-instructions.mdx @@ -153,4 +153,4 @@ if __name__ == "__main__": -Full source: [cookbook/integrations/surrealdb/custom_memory_instructions.py](https://github.com/agno-agi/agno/blob/main/cookbook/integrations/surrealdb/custom_memory_instructions.py) +Full source: [cookbook/integrations/surrealdb/custom_memory_instructions.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/integrations/surrealdb/custom_memory_instructions.py) diff --git a/examples/integrations/surrealdb/db-tools-control.mdx b/examples/integrations/surrealdb/db-tools-control.mdx index cbe2d4e78..52ed1cdff 100644 --- a/examples/integrations/surrealdb/db-tools-control.mdx +++ b/examples/integrations/surrealdb/db-tools-control.mdx @@ -117,4 +117,4 @@ if __name__ == "__main__": -Full source: [cookbook/integrations/surrealdb/db_tools_control.py](https://github.com/agno-agi/agno/blob/main/cookbook/integrations/surrealdb/db_tools_control.py) +Full source: [cookbook/integrations/surrealdb/db_tools_control.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/integrations/surrealdb/db_tools_control.py) diff --git a/examples/integrations/surrealdb/memory-creation.mdx b/examples/integrations/surrealdb/memory-creation.mdx index f01d23763..ea5a10006 100644 --- a/examples/integrations/surrealdb/memory-creation.mdx +++ b/examples/integrations/surrealdb/memory-creation.mdx @@ -118,4 +118,4 @@ if __name__ == "__main__": -Full source: [cookbook/integrations/surrealdb/memory_creation.py](https://github.com/agno-agi/agno/blob/main/cookbook/integrations/surrealdb/memory_creation.py) +Full source: [cookbook/integrations/surrealdb/memory_creation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/integrations/surrealdb/memory_creation.py) diff --git a/examples/integrations/surrealdb/memory-search-surreal.mdx b/examples/integrations/surrealdb/memory-search-surreal.mdx index 41083bed0..902570f55 100644 --- a/examples/integrations/surrealdb/memory-search-surreal.mdx +++ b/examples/integrations/surrealdb/memory-search-surreal.mdx @@ -113,4 +113,4 @@ if __name__ == "__main__": -Full source: [cookbook/integrations/surrealdb/memory_search_surreal.py](https://github.com/agno-agi/agno/blob/main/cookbook/integrations/surrealdb/memory_search_surreal.py) +Full source: [cookbook/integrations/surrealdb/memory_search_surreal.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/integrations/surrealdb/memory_search_surreal.py) diff --git a/examples/integrations/surrealdb/standalone-memory-surreal.mdx b/examples/integrations/surrealdb/standalone-memory-surreal.mdx index fb8af4341..cf87f45e3 100644 --- a/examples/integrations/surrealdb/standalone-memory-surreal.mdx +++ b/examples/integrations/surrealdb/standalone-memory-surreal.mdx @@ -110,4 +110,4 @@ if __name__ == "__main__": -Full source: [cookbook/integrations/surrealdb/standalone_memory_surreal.py](https://github.com/agno-agi/agno/blob/main/cookbook/integrations/surrealdb/standalone_memory_surreal.py) +Full source: [cookbook/integrations/surrealdb/standalone_memory_surreal.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/integrations/surrealdb/standalone_memory_surreal.py) diff --git a/examples/knowledge/advanced/custom-chunking.mdx b/examples/knowledge/advanced/custom-chunking.mdx index a8452d079..9c79d35f3 100644 --- a/examples/knowledge/advanced/custom-chunking.mdx +++ b/examples/knowledge/advanced/custom-chunking.mdx @@ -153,4 +153,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/04_advanced/02_custom_chunking.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/04_advanced/02_custom_chunking.py) +Full source: [cookbook/07_knowledge/04_advanced/02_custom_chunking.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/04_advanced/02_custom_chunking.py) diff --git a/examples/knowledge/advanced/custom-retriever.mdx b/examples/knowledge/advanced/custom-retriever.mdx index 22423a55f..0dd0a858d 100644 --- a/examples/knowledge/advanced/custom-retriever.mdx +++ b/examples/knowledge/advanced/custom-retriever.mdx @@ -132,4 +132,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/04_advanced/01_custom_retriever.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/04_advanced/01_custom_retriever.py) +Full source: [cookbook/07_knowledge/04_advanced/01_custom_retriever.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/04_advanced/01_custom_retriever.py) diff --git a/examples/knowledge/advanced/graph-rag.mdx b/examples/knowledge/advanced/graph-rag.mdx index 8f5e21bec..44e068c11 100644 --- a/examples/knowledge/advanced/graph-rag.mdx +++ b/examples/knowledge/advanced/graph-rag.mdx @@ -115,4 +115,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/04_advanced/03_graph_rag.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/04_advanced/03_graph_rag.py) +Full source: [cookbook/07_knowledge/04_advanced/03_graph_rag.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/04_advanced/03_graph_rag.py) diff --git a/examples/knowledge/advanced/knowledge-protocol.mdx b/examples/knowledge/advanced/knowledge-protocol.mdx index 364d7385b..62d7d61bf 100644 --- a/examples/knowledge/advanced/knowledge-protocol.mdx +++ b/examples/knowledge/advanced/knowledge-protocol.mdx @@ -135,4 +135,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/04_advanced/05_knowledge_protocol.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/04_advanced/05_knowledge_protocol.py) +Full source: [cookbook/07_knowledge/04_advanced/05_knowledge_protocol.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/04_advanced/05_knowledge_protocol.py) diff --git a/examples/knowledge/advanced/knowledge-tools.mdx b/examples/knowledge/advanced/knowledge-tools.mdx index 1a1f8a2e3..5a1064ad2 100644 --- a/examples/knowledge/advanced/knowledge-tools.mdx +++ b/examples/knowledge/advanced/knowledge-tools.mdx @@ -121,4 +121,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/04_advanced/04_knowledge_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/04_advanced/04_knowledge_tools.py) +Full source: [cookbook/07_knowledge/04_advanced/04_knowledge_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/04_advanced/04_knowledge_tools.py) diff --git a/examples/knowledge/advanced/per-user-isolation/valkey-db.mdx b/examples/knowledge/advanced/per-user-isolation/valkey-db.mdx new file mode 100644 index 000000000..6c4d2a145 --- /dev/null +++ b/examples/knowledge/advanced/per-user-isolation/valkey-db.mdx @@ -0,0 +1,134 @@ +--- +title: "Per-User Knowledge Isolation with Valkey" +description: "Give each user a private view of one shared knowledge base." +source: cookbook/07_knowledge/04_advanced/07_per_user_isolation/valkey_db.py +--- + +Give each user a private view of one shared knowledge base. Documents a user uploads are visible only to them; documents uploaded with no user are shared with everyone, and an admin (no user id) sees all of it. + +```python valkey_db.py +""" +Per-User Knowledge Isolation with Valkey +======================================== +Give each user a private view of one shared knowledge base. Documents a user +uploads are visible only to them; documents uploaded with no user are shared +with everyone, and an admin (no user id) sees all of it. + +Valkey does this by storing the owner as a TAG field and filtering on it +inside FT.SEARCH itself, storing chunks with no owner under a shared +sentinel tag. This example drives the vector db API directly; agent-mediated +per-user retrieval arrives with the Knowledge-level isolation release. + +Setup: ./cookbook/scripts/run_valkey.sh +""" + +import asyncio + +from agno.knowledge.document.base import Document +from agno.vectordb.search import SearchType +from agno.vectordb.valkey import ValkeyDB + + +def _doc(name: str, body: str) -> Document: + return Document(name=name, content=body) + + +async def main() -> None: + vector_db = ValkeyDB( + index_name="per_user_isolation_demo", + host="localhost", + port=6379, + search_type=SearchType.vector, + ) + try: + await vector_db.async_drop() + except Exception: + pass + await vector_db.async_create() + + await vector_db.async_insert( + content_hash="alice_salary", + documents=[ + _doc( + "alice_salary", + "Alice's salary is $180,000. Reviewed annually in March.", + ) + ], + user_id="alice", + ) + await vector_db.async_insert( + content_hash="bob_salary", + documents=[ + _doc("bob_salary", "Bob's salary is $215,000. Reviewed annually in June.") + ], + user_id="bob", + ) + await vector_db.async_insert( + content_hash="company_holidays", + documents=[ + _doc( + "company_holidays", + "The company is closed on January 1, July 4, and December 25.", + ) + ], + ) + + print("\n=== Direct search tests ===\n") + alice_salary = await vector_db.async_search( + query="What is Alice's salary?", limit=10, user_id="alice" + ) + print(f"Alice asks about Alice's salary -> {len(alice_salary)} results") + for d in alice_salary: + print(f" - {d.content[:80]}") + + alice_about_bob = await vector_db.async_search( + query="What is Bob's salary?", limit=10, user_id="alice" + ) + print(f"\nAlice asks about Bob's salary -> {len(alice_about_bob)} results") + for d in alice_about_bob: + print(f" - {d.content[:80]}") + # This backend keeps user_id internal (not surfaced in returned meta_data), + # so verify isolation by content rather than by reading an owner off the row. + bob_leak = [d for d in alice_about_bob if "215,000" in d.content] + assert not bob_leak, "Isolation broken: Alice's retrieval surfaced Bob's salary" + print(" isolation holds: Bob's salary is NOT visible to Alice") + + bob_holidays = await vector_db.async_search( + query="When is the company closed?", limit=10, user_id="bob" + ) + print(f"\nBob asks about holidays -> {len(bob_holidays)} results") + for d in bob_holidays: + print(f" - {d.content[:80]}") + + admin_view = await vector_db.async_search(query="salary", limit=10, user_id=None) + print(f"\nAdmin asks about salary (user_id=None) -> {len(admin_view)} results") + for d in admin_view: + print(f" - {d.content[:80]}") + + print("\nDone.") + + +if __name__ == "__main__": + asyncio.run(main()) +``` + +## Run the Example + + + + + + ```bash + uv pip install -U agno glide-sync valkey-glide-sync + ``` + + + + Save the code above as `valkey_db.py`, then run: + ```bash + python valkey_db.py + ``` + + + +Full source: [cookbook/07_knowledge/04_advanced/07_per_user_isolation/valkey_db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/04_advanced/07_per_user_isolation/valkey_db.py) diff --git a/examples/knowledge/advanced/prefix-search.mdx b/examples/knowledge/advanced/prefix-search.mdx index 228c02768..077a902c7 100644 --- a/examples/knowledge/advanced/prefix-search.mdx +++ b/examples/knowledge/advanced/prefix-search.mdx @@ -151,4 +151,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/04_advanced/06_prefix_search.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/04_advanced/06_prefix_search.py) +Full source: [cookbook/07_knowledge/04_advanced/06_prefix_search.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/04_advanced/06_prefix_search.py) diff --git a/examples/knowledge/building-blocks/agentic-filtering.mdx b/examples/knowledge/building-blocks/agentic-filtering.mdx index 142706bec..7d7a5255f 100644 --- a/examples/knowledge/building-blocks/agentic-filtering.mdx +++ b/examples/knowledge/building-blocks/agentic-filtering.mdx @@ -133,4 +133,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/02_building_blocks/05_agentic_filtering.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/02_building_blocks/05_agentic_filtering.py) +Full source: [cookbook/07_knowledge/02_building_blocks/05_agentic_filtering.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/02_building_blocks/05_agentic_filtering.py) diff --git a/examples/knowledge/building-blocks/chunking-strategies.mdx b/examples/knowledge/building-blocks/chunking-strategies.mdx index b5ae67d79..9d7e22556 100644 --- a/examples/knowledge/building-blocks/chunking-strategies.mdx +++ b/examples/knowledge/building-blocks/chunking-strategies.mdx @@ -163,4 +163,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/02_building_blocks/01_chunking_strategies.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/02_building_blocks/01_chunking_strategies.py) +Full source: [cookbook/07_knowledge/02_building_blocks/01_chunking_strategies.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/02_building_blocks/01_chunking_strategies.py) diff --git a/examples/knowledge/building-blocks/embedders.mdx b/examples/knowledge/building-blocks/embedders.mdx index b6d3facb3..364e0855a 100644 --- a/examples/knowledge/building-blocks/embedders.mdx +++ b/examples/knowledge/building-blocks/embedders.mdx @@ -142,4 +142,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/02_building_blocks/06_embedders.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/02_building_blocks/06_embedders.py) +Full source: [cookbook/07_knowledge/02_building_blocks/06_embedders.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/02_building_blocks/06_embedders.py) diff --git a/examples/knowledge/building-blocks/filtering.mdx b/examples/knowledge/building-blocks/filtering.mdx index ddaa0a459..036ac2b0e 100644 --- a/examples/knowledge/building-blocks/filtering.mdx +++ b/examples/knowledge/building-blocks/filtering.mdx @@ -187,4 +187,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/02_building_blocks/04_filtering.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/02_building_blocks/04_filtering.py) +Full source: [cookbook/07_knowledge/02_building_blocks/04_filtering.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/02_building_blocks/04_filtering.py) diff --git a/examples/knowledge/building-blocks/hybrid-search.mdx b/examples/knowledge/building-blocks/hybrid-search.mdx index f68b79ff4..a6aa7e286 100644 --- a/examples/knowledge/building-blocks/hybrid-search.mdx +++ b/examples/knowledge/building-blocks/hybrid-search.mdx @@ -121,4 +121,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/02_building_blocks/02_hybrid_search.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/02_building_blocks/02_hybrid_search.py) +Full source: [cookbook/07_knowledge/02_building_blocks/02_hybrid_search.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/02_building_blocks/02_hybrid_search.py) diff --git a/examples/knowledge/building-blocks/reranking.mdx b/examples/knowledge/building-blocks/reranking.mdx index 738dbf415..f95bc90b3 100644 --- a/examples/knowledge/building-blocks/reranking.mdx +++ b/examples/knowledge/building-blocks/reranking.mdx @@ -129,4 +129,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/02_building_blocks/03_reranking.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/02_building_blocks/03_reranking.py) +Full source: [cookbook/07_knowledge/02_building_blocks/03_reranking.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/02_building_blocks/03_reranking.py) diff --git a/examples/knowledge/getting-started/agentic-rag.mdx b/examples/knowledge/getting-started/agentic-rag.mdx index e49d26a09..758950462 100644 --- a/examples/knowledge/getting-started/agentic-rag.mdx +++ b/examples/knowledge/getting-started/agentic-rag.mdx @@ -132,4 +132,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/01_getting_started/02_agentic_rag.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/01_getting_started/02_agentic_rag.py) +Full source: [cookbook/07_knowledge/01_getting_started/02_agentic_rag.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/01_getting_started/02_agentic_rag.py) diff --git a/examples/knowledge/getting-started/basic-rag.mdx b/examples/knowledge/getting-started/basic-rag.mdx index a9a59d59d..6b319425f 100644 --- a/examples/knowledge/getting-started/basic-rag.mdx +++ b/examples/knowledge/getting-started/basic-rag.mdx @@ -123,4 +123,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/01_getting_started/01_basic_rag.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/01_getting_started/01_basic_rag.py) +Full source: [cookbook/07_knowledge/01_getting_started/01_basic_rag.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/01_getting_started/01_basic_rag.py) diff --git a/examples/knowledge/getting-started/loading-content.mdx b/examples/knowledge/getting-started/loading-content.mdx index 89503a789..7caac45ff 100644 --- a/examples/knowledge/getting-started/loading-content.mdx +++ b/examples/knowledge/getting-started/loading-content.mdx @@ -175,4 +175,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/01_getting_started/03_loading_content.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/01_getting_started/03_loading_content.py) +Full source: [cookbook/07_knowledge/01_getting_started/03_loading_content.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/01_getting_started/03_loading_content.py) diff --git a/examples/knowledge/integrations/cloud/aws.mdx b/examples/knowledge/integrations/cloud/aws.mdx index ae399c167..49659e03d 100644 --- a/examples/knowledge/integrations/cloud/aws.mdx +++ b/examples/knowledge/integrations/cloud/aws.mdx @@ -136,4 +136,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/05_integrations/cloud/01_aws.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/05_integrations/cloud/01_aws.py) +Full source: [cookbook/07_knowledge/05_integrations/cloud/01_aws.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/cloud/01_aws.py) diff --git a/examples/knowledge/integrations/cloud/azure-sas.mdx b/examples/knowledge/integrations/cloud/azure-sas.mdx index 184e7cd52..7ef016d96 100644 --- a/examples/knowledge/integrations/cloud/azure-sas.mdx +++ b/examples/knowledge/integrations/cloud/azure-sas.mdx @@ -123,4 +123,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/05_integrations/cloud/02_azure_sas.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/05_integrations/cloud/02_azure_sas.py) +Full source: [cookbook/07_knowledge/05_integrations/cloud/02_azure_sas.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/cloud/02_azure_sas.py) diff --git a/examples/knowledge/integrations/cloud/azure.mdx b/examples/knowledge/integrations/cloud/azure.mdx index 897a19da5..f4dab991f 100644 --- a/examples/knowledge/integrations/cloud/azure.mdx +++ b/examples/knowledge/integrations/cloud/azure.mdx @@ -137,4 +137,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/05_integrations/cloud/02_azure.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/05_integrations/cloud/02_azure.py) +Full source: [cookbook/07_knowledge/05_integrations/cloud/02_azure.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/cloud/02_azure.py) diff --git a/examples/knowledge/integrations/cloud/gcp.mdx b/examples/knowledge/integrations/cloud/gcp.mdx index 6324c3e53..8a7016056 100644 --- a/examples/knowledge/integrations/cloud/gcp.mdx +++ b/examples/knowledge/integrations/cloud/gcp.mdx @@ -125,4 +125,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/05_integrations/cloud/03_gcp.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/05_integrations/cloud/03_gcp.py) +Full source: [cookbook/07_knowledge/05_integrations/cloud/03_gcp.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/cloud/03_gcp.py) diff --git a/examples/knowledge/integrations/cloud/github-dynamic-repo.mdx b/examples/knowledge/integrations/cloud/github-dynamic-repo.mdx index 102845fa9..bc5df2297 100644 --- a/examples/knowledge/integrations/cloud/github-dynamic-repo.mdx +++ b/examples/knowledge/integrations/cloud/github-dynamic-repo.mdx @@ -120,4 +120,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/05_integrations/cloud/05_github_dynamic_repo.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/05_integrations/cloud/05_github_dynamic_repo.py) +Full source: [cookbook/07_knowledge/05_integrations/cloud/05_github_dynamic_repo.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/cloud/05_github_dynamic_repo.py) diff --git a/examples/knowledge/integrations/cloud/multi-source.mdx b/examples/knowledge/integrations/cloud/multi-source.mdx index bce657220..1f9e2c86b 100644 --- a/examples/knowledge/integrations/cloud/multi-source.mdx +++ b/examples/knowledge/integrations/cloud/multi-source.mdx @@ -236,4 +236,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/05_integrations/cloud/06_multi_source.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/05_integrations/cloud/06_multi_source.py) +Full source: [cookbook/07_knowledge/05_integrations/cloud/06_multi_source.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/cloud/06_multi_source.py) diff --git a/examples/knowledge/integrations/cloud/sharepoint.mdx b/examples/knowledge/integrations/cloud/sharepoint.mdx index 1e655982d..e8483a62a 100644 --- a/examples/knowledge/integrations/cloud/sharepoint.mdx +++ b/examples/knowledge/integrations/cloud/sharepoint.mdx @@ -133,4 +133,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/05_integrations/cloud/04_sharepoint.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/05_integrations/cloud/04_sharepoint.py) +Full source: [cookbook/07_knowledge/05_integrations/cloud/04_sharepoint.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/cloud/04_sharepoint.py) diff --git a/examples/knowledge/integrations/rag/agentic-rag-infinity-reranker.mdx b/examples/knowledge/integrations/rag/agentic-rag-infinity-reranker.mdx index 5ae92942c..afb52aea3 100644 --- a/examples/knowledge/integrations/rag/agentic-rag-infinity-reranker.mdx +++ b/examples/knowledge/integrations/rag/agentic-rag-infinity-reranker.mdx @@ -163,4 +163,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/05_integrations/rag/agentic_rag_infinity_reranker.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/05_integrations/rag/agentic_rag_infinity_reranker.py) +Full source: [cookbook/07_knowledge/05_integrations/rag/agentic_rag_infinity_reranker.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/rag/agentic_rag_infinity_reranker.py) diff --git a/examples/knowledge/integrations/rag/agentic-rag-with-lightrag.mdx b/examples/knowledge/integrations/rag/agentic-rag-with-lightrag.mdx index 6536a2af2..b686915db 100644 --- a/examples/knowledge/integrations/rag/agentic-rag-with-lightrag.mdx +++ b/examples/knowledge/integrations/rag/agentic-rag-with-lightrag.mdx @@ -123,4 +123,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/05_integrations/rag/agentic_rag_with_lightrag.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/05_integrations/rag/agentic_rag_with_lightrag.py) +Full source: [cookbook/07_knowledge/05_integrations/rag/agentic_rag_with_lightrag.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/rag/agentic_rag_with_lightrag.py) diff --git a/examples/knowledge/integrations/rag/local-rag-langchain-qdrant.mdx b/examples/knowledge/integrations/rag/local-rag-langchain-qdrant.mdx index 50c4cab8b..f37d47b62 100644 --- a/examples/knowledge/integrations/rag/local-rag-langchain-qdrant.mdx +++ b/examples/knowledge/integrations/rag/local-rag-langchain-qdrant.mdx @@ -101,4 +101,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/05_integrations/rag/local_rag_langchain_qdrant.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/05_integrations/rag/local_rag_langchain_qdrant.py) +Full source: [cookbook/07_knowledge/05_integrations/rag/local_rag_langchain_qdrant.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/rag/local_rag_langchain_qdrant.py) diff --git a/examples/knowledge/integrations/readers/data.mdx b/examples/knowledge/integrations/readers/data.mdx index a1b8bf259..394530890 100644 --- a/examples/knowledge/integrations/readers/data.mdx +++ b/examples/knowledge/integrations/readers/data.mdx @@ -126,4 +126,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/05_integrations/readers/02_data.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/05_integrations/readers/02_data.py) +Full source: [cookbook/07_knowledge/05_integrations/readers/02_data.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/readers/02_data.py) diff --git a/examples/knowledge/integrations/readers/docling/docling-audio.mdx b/examples/knowledge/integrations/readers/docling/docling-audio.mdx index 6b88b3054..8db07b57c 100644 --- a/examples/knowledge/integrations/readers/docling/docling-audio.mdx +++ b/examples/knowledge/integrations/readers/docling/docling-audio.mdx @@ -210,4 +210,4 @@ def get_agent(knowledge: Knowledge) -> Agent: -Full source: [cookbook/07_knowledge/05_integrations/readers/docling/docling_audio.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/05_integrations/readers/docling/docling_audio.py) +Full source: [cookbook/07_knowledge/05_integrations/readers/docling/docling_audio.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/readers/docling/docling_audio.py) diff --git a/examples/knowledge/integrations/readers/docling/docling-documents.mdx b/examples/knowledge/integrations/readers/docling/docling-documents.mdx index aff7f6bd0..38e4d2672 100644 --- a/examples/knowledge/integrations/readers/docling/docling-documents.mdx +++ b/examples/knowledge/integrations/readers/docling/docling-documents.mdx @@ -193,4 +193,4 @@ def get_agent(knowledge: Knowledge) -> Agent: -Full source: [cookbook/07_knowledge/05_integrations/readers/docling/docling_documents.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/05_integrations/readers/docling/docling_documents.py) +Full source: [cookbook/07_knowledge/05_integrations/readers/docling/docling_documents.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/readers/docling/docling_documents.py) diff --git a/examples/knowledge/integrations/readers/docling/docling-images.mdx b/examples/knowledge/integrations/readers/docling/docling-images.mdx index e254a63e8..9114d09fd 100644 --- a/examples/knowledge/integrations/readers/docling/docling-images.mdx +++ b/examples/knowledge/integrations/readers/docling/docling-images.mdx @@ -183,4 +183,4 @@ def get_agent(knowledge: Knowledge) -> Agent: -Full source: [cookbook/07_knowledge/05_integrations/readers/docling/docling_images.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/05_integrations/readers/docling/docling_images.py) +Full source: [cookbook/07_knowledge/05_integrations/readers/docling/docling_images.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/readers/docling/docling_images.py) diff --git a/examples/knowledge/integrations/readers/docling/docling-input-types.mdx b/examples/knowledge/integrations/readers/docling/docling-input-types.mdx new file mode 100644 index 000000000..7ced71718 --- /dev/null +++ b/examples/knowledge/integrations/readers/docling/docling-input-types.mdx @@ -0,0 +1,98 @@ +--- +title: "Docling Reader: Input Types" +description: "DoclingReader.read() accepts several kinds of `file` input." +source: cookbook/07_knowledge/05_integrations/readers/docling/docling_input_types.py +--- + +DoclingReader.read() accepts several kinds of `file` input. This example shows each supported type resolving to the same document. + +```python docling_input_types.py +""" +Docling Reader: Input Types +=========================== +DoclingReader.read() accepts several kinds of `file` input. This example shows +each supported type resolving to the same document. + +Supported `file` inputs: +- Path object -> Path("cv_1.pdf") +- Local file path string -> "cookbook/.../cv_1.pdf" +- URL string -> "https://.../file.pdf" +- File-like object -> BytesIO(...) +""" + +from io import BytesIO +from pathlib import Path + +from agno.knowledge.reader.docling_reader import DoclingReader + +# --------------------------------------------------------------------------- +# Setup +# --------------------------------------------------------------------------- + +PDF_PATH = "cookbook/07_knowledge/testing_resources/cv_1.pdf" +reader = DoclingReader(output_format="markdown") + +# --------------------------------------------------------------------------- +# Run Demo +# --------------------------------------------------------------------------- + +if __name__ == "__main__": + # --- Local file path as a Path object --- + print("\n" + "=" * 60) + print("Local file: Path object") + print("=" * 60 + "\n") + + docs = reader.read(Path(PDF_PATH)) + print(f"name={docs[0].name} chars={len(docs[0].content)}") + + # --- Local file path as a string --- + print("\n" + "=" * 60) + print("Local file: path string") + print("=" * 60 + "\n") + + docs = reader.read(PDF_PATH) + print(f"name={docs[0].name} chars={len(docs[0].content)}") + + # --- File-like object (BytesIO) --- + print("\n" + "=" * 60) + print("File-like object: BytesIO") + print("=" * 60 + "\n") + + with open(PDF_PATH, "rb") as f: + buffer = BytesIO(f.read()) + buffer.name = "cv_1.pdf" + + docs = reader.read(buffer) + print(f"name={docs[0].name} chars={len(docs[0].content)}") + + # --- Remote file via URL string --- + print("\n" + "=" * 60) + print("Remote file: URL string") + print("=" * 60 + "\n") + + docs = reader.read( + "https://agno-public.s3.amazonaws.com/recipes/thai_recipes_short.pdf" + ) + print(f"name={docs[0].name} chars={len(docs[0].content)}") +``` + +## Run the Example + + + + + + ```bash + uv pip install -U agno docling + ``` + + + + Save the code above as `docling_input_types.py`, then run: + ```bash + python docling_input_types.py + ``` + + + +Full source: [cookbook/07_knowledge/05_integrations/readers/docling/docling_input_types.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/readers/docling/docling_input_types.py) diff --git a/examples/knowledge/integrations/readers/docling/docling-markup.mdx b/examples/knowledge/integrations/readers/docling/docling-markup.mdx index d4f38195d..23ffd2434 100644 --- a/examples/knowledge/integrations/readers/docling/docling-markup.mdx +++ b/examples/knowledge/integrations/readers/docling/docling-markup.mdx @@ -195,4 +195,4 @@ def get_agent(knowledge: Knowledge) -> Agent: -Full source: [cookbook/07_knowledge/05_integrations/readers/docling/docling_markup.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/05_integrations/readers/docling/docling_markup.py) +Full source: [cookbook/07_knowledge/05_integrations/readers/docling/docling_markup.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/readers/docling/docling_markup.py) diff --git a/examples/knowledge/integrations/readers/docling/docling-pdf.mdx b/examples/knowledge/integrations/readers/docling/docling-pdf.mdx index 13c0d3a04..63509e50d 100644 --- a/examples/knowledge/integrations/readers/docling/docling-pdf.mdx +++ b/examples/knowledge/integrations/readers/docling/docling-pdf.mdx @@ -224,4 +224,4 @@ def get_agent(knowledge: Knowledge) -> Agent: -Full source: [cookbook/07_knowledge/05_integrations/readers/docling/docling_pdf.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/05_integrations/readers/docling/docling_pdf.py) +Full source: [cookbook/07_knowledge/05_integrations/readers/docling/docling_pdf.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/readers/docling/docling_pdf.py) diff --git a/examples/knowledge/integrations/readers/docling/docling-xlsx.mdx b/examples/knowledge/integrations/readers/docling/docling-xlsx.mdx index 9ba06bcaf..a0b06f021 100644 --- a/examples/knowledge/integrations/readers/docling/docling-xlsx.mdx +++ b/examples/knowledge/integrations/readers/docling/docling-xlsx.mdx @@ -166,4 +166,4 @@ def get_agent(knowledge: Knowledge) -> Agent: -Full source: [cookbook/07_knowledge/05_integrations/readers/docling/docling_xlsx.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/05_integrations/readers/docling/docling_xlsx.py) +Full source: [cookbook/07_knowledge/05_integrations/readers/docling/docling_xlsx.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/readers/docling/docling_xlsx.py) diff --git a/examples/knowledge/integrations/readers/documents.mdx b/examples/knowledge/integrations/readers/documents.mdx index bfb09e214..caa2f349f 100644 --- a/examples/knowledge/integrations/readers/documents.mdx +++ b/examples/knowledge/integrations/readers/documents.mdx @@ -148,4 +148,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/05_integrations/readers/01_documents.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/05_integrations/readers/01_documents.py) +Full source: [cookbook/07_knowledge/05_integrations/readers/01_documents.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/readers/01_documents.py) diff --git a/examples/knowledge/integrations/readers/web.mdx b/examples/knowledge/integrations/readers/web.mdx index fabaea204..cffa304eb 100644 --- a/examples/knowledge/integrations/readers/web.mdx +++ b/examples/knowledge/integrations/readers/web.mdx @@ -126,4 +126,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/05_integrations/readers/03_web.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/05_integrations/readers/03_web.py) +Full source: [cookbook/07_knowledge/05_integrations/readers/03_web.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/readers/03_web.py) diff --git a/examples/knowledge/integrations/vector-dbs/local.mdx b/examples/knowledge/integrations/vector-dbs/local.mdx index a4b00114c..a40543a9d 100644 --- a/examples/knowledge/integrations/vector-dbs/local.mdx +++ b/examples/knowledge/integrations/vector-dbs/local.mdx @@ -134,4 +134,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/05_integrations/vector_dbs/02_local.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/05_integrations/vector_dbs/02_local.py) +Full source: [cookbook/07_knowledge/05_integrations/vector_dbs/02_local.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/vector_dbs/02_local.py) diff --git a/examples/knowledge/integrations/vector-dbs/managed.mdx b/examples/knowledge/integrations/vector-dbs/managed.mdx index 86e399f71..704590306 100644 --- a/examples/knowledge/integrations/vector-dbs/managed.mdx +++ b/examples/knowledge/integrations/vector-dbs/managed.mdx @@ -104,4 +104,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/05_integrations/vector_dbs/03_managed.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/05_integrations/vector_dbs/03_managed.py) +Full source: [cookbook/07_knowledge/05_integrations/vector_dbs/03_managed.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/vector_dbs/03_managed.py) diff --git a/examples/knowledge/integrations/vector-dbs/pgvector.mdx b/examples/knowledge/integrations/vector-dbs/pgvector.mdx index 457fd4841..9bba7e8f2 100644 --- a/examples/knowledge/integrations/vector-dbs/pgvector.mdx +++ b/examples/knowledge/integrations/vector-dbs/pgvector.mdx @@ -129,4 +129,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/05_integrations/vector_dbs/04_pgvector.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/05_integrations/vector_dbs/04_pgvector.py) +Full source: [cookbook/07_knowledge/05_integrations/vector_dbs/04_pgvector.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/vector_dbs/04_pgvector.py) diff --git a/examples/knowledge/integrations/vector-dbs/qdrant.mdx b/examples/knowledge/integrations/vector-dbs/qdrant.mdx index 52e1af1bf..833881c5c 100644 --- a/examples/knowledge/integrations/vector-dbs/qdrant.mdx +++ b/examples/knowledge/integrations/vector-dbs/qdrant.mdx @@ -133,4 +133,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/05_integrations/vector_dbs/01_qdrant.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/05_integrations/vector_dbs/01_qdrant.py) +Full source: [cookbook/07_knowledge/05_integrations/vector_dbs/01_qdrant.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/vector_dbs/01_qdrant.py) diff --git a/examples/knowledge/integrations/vector-dbs/scylladb.mdx b/examples/knowledge/integrations/vector-dbs/scylladb.mdx new file mode 100644 index 000000000..5c7b04f4f --- /dev/null +++ b/examples/knowledge/integrations/vector-dbs/scylladb.mdx @@ -0,0 +1,147 @@ +--- +title: "ScyllaDB: high-performance, real-time database for AI" +description: "ScyllaDB is a high-performance, real-time, distributed database that provides low latency reads/writes and supports vector similarity search." +source: cookbook/07_knowledge/05_integrations/vector_dbs/05_scylladb.py +--- + +```python scylladb.py +""" +ScyllaDB: high-performance, real-time database for AI +=============================================== +ScyllaDB is a high-performance, real-time, distributed database +that provides low latency reads/writes and supports vector similarity search. + +You can use ScyllaDB with Agno by reusing the existing Cassandra integration. + +Key features: +- High-availability and fault tolerance +- Globally distributed, multi-region support +- Vector ANN search +- High throughput and low latency at scale +- Self-hosted or cloud (ScyllaDB Cloud) + +Setup (self-hosted ScyllaDB): + docker run -d --name scylla \ + -p 9042:9042 \ + scylladb/scylla:latest \ + --developer-mode=1 \ + --enable-cassio-compatibility=1 + + Note: --enable-cassio-compatibility is required to ensure ScyllaDB can + leverage the existing Cassandra integration. + +Requires: pip install scylla-driver cassio + +See also: 01_qdrant.py for Qdrant production, 02_local.py for local dev, 03_managed.py for Pinecone, 04_pgvector.py for PostgreSQL. +""" + +from agno.agent import Agent +from agno.knowledge.embedder.openai import OpenAIEmbedder +from agno.knowledge.knowledge import Knowledge +from agno.models.openai import OpenAIResponses +from agno.vectordb.cassandra import Cassandra +from cassandra.cluster import Cluster + +# --------------------------------------------------------------------------- +# Setup +# --------------------------------------------------------------------------- + +SCYLLA_HOST = "127.0.0.1" +SCYLLA_PORT = 9042 +KEYSPACE = "agno_knowledge" + +# Connect and ensure the keyspace exists. +# For this example, we use a single-node ScyllaDB cluster running locally +# In production, you'd need at least three nodes. +cluster = Cluster([SCYLLA_HOST], port=SCYLLA_PORT) +session = cluster.connect() +session.execute( + f""" + CREATE KEYSPACE IF NOT EXISTS {KEYSPACE}; + """ +) + +# The vector store takes its dimension from the embedder, so the value set here +# determines the column size. text-embedding-3-small supports adjustable output +# dimensions via the API. +embedder = OpenAIEmbedder(id="text-embedding-3-small", dimensions=1024) + +# --- Basic ScyllaDB setup --- +knowledge = Knowledge( + vector_db=Cassandra( + table_name="thai_recipes", + keyspace=KEYSPACE, + session=session, + embedder=embedder, + ), +) + +# --------------------------------------------------------------------------- +# Create the Agent +# --------------------------------------------------------------------------- + +agent = Agent( + model=OpenAIResponses(id="gpt-5.2"), + knowledge=knowledge, + search_knowledge=True, + markdown=True, +) + +# --------------------------------------------------------------------------- +# Run the Agent +# --------------------------------------------------------------------------- + +if __name__ == "__main__": + pdf_url = "https://agno-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf" + + print("\n" + "=" * 60) + print("ScyllaDB: Loading documents into vector store") + print("=" * 60 + "\n") + knowledge.insert(url=pdf_url) + + print("\n" + "=" * 60) + print("ScyllaDB: Vector search") + print("=" * 60 + "\n") + agent.print_response("What Thai recipes do you know?", stream=True) + + print("\n" + "=" * 60) + print("ScyllaDB: Second query") + print("=" * 60 + "\n") + agent.print_response( + "What are the health benefits of Khao Niew Dam Piek Maphrao Awn?", + stream=True, + ) +``` + +## Run the Example + + + + + + ```bash + uv pip install -U agno cassandra openai pypdf + ``` + + + + + ```bash Mac/Linux + export OPENAI_API_KEY="your_openai_api_key_here" + ``` + + ```bash Windows + $Env:OPENAI_API_KEY="your_openai_api_key_here" + ``` + + + + + Save the code above as `scylladb.py`, then run: + ```bash + python scylladb.py + ``` + + + +Full source: [cookbook/07_knowledge/05_integrations/vector_dbs/05_scylladb.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/vector_dbs/05_scylladb.py) diff --git a/examples/knowledge/production/agent-os.mdx b/examples/knowledge/production/agent-os.mdx index 3bb6bacf5..894e7c5b4 100644 --- a/examples/knowledge/production/agent-os.mdx +++ b/examples/knowledge/production/agent-os.mdx @@ -145,4 +145,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/03_production/04_agent_os.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/03_production/04_agent_os.py) +Full source: [cookbook/07_knowledge/03_production/04_agent_os.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/03_production/04_agent_os.py) diff --git a/examples/knowledge/production/error-handling.mdx b/examples/knowledge/production/error-handling.mdx index 97ba6b2d8..2f14e5ce8 100644 --- a/examples/knowledge/production/error-handling.mdx +++ b/examples/knowledge/production/error-handling.mdx @@ -136,4 +136,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/03_production/04_error_handling.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/03_production/04_error_handling.py) +Full source: [cookbook/07_knowledge/03_production/04_error_handling.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/03_production/04_error_handling.py) diff --git a/examples/knowledge/production/knowledge-lifecycle.mdx b/examples/knowledge/production/knowledge-lifecycle.mdx index 01e1d6437..cfa6a005e 100644 --- a/examples/knowledge/production/knowledge-lifecycle.mdx +++ b/examples/knowledge/production/knowledge-lifecycle.mdx @@ -135,4 +135,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/03_production/02_knowledge_lifecycle.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/03_production/02_knowledge_lifecycle.py) +Full source: [cookbook/07_knowledge/03_production/02_knowledge_lifecycle.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/03_production/02_knowledge_lifecycle.py) diff --git a/examples/knowledge/production/multi-source-rag.mdx b/examples/knowledge/production/multi-source-rag.mdx index 4950c2886..053a213cf 100644 --- a/examples/knowledge/production/multi-source-rag.mdx +++ b/examples/knowledge/production/multi-source-rag.mdx @@ -129,4 +129,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/03_production/01_multi_source_rag.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/03_production/01_multi_source_rag.py) +Full source: [cookbook/07_knowledge/03_production/01_multi_source_rag.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/03_production/01_multi_source_rag.py) diff --git a/examples/knowledge/production/multi-tenant.mdx b/examples/knowledge/production/multi-tenant.mdx index d5faedf2d..282bf10b8 100644 --- a/examples/knowledge/production/multi-tenant.mdx +++ b/examples/knowledge/production/multi-tenant.mdx @@ -148,4 +148,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/03_production/03_multi_tenant.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/03_production/03_multi_tenant.py) +Full source: [cookbook/07_knowledge/03_production/03_multi_tenant.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/03_production/03_multi_tenant.py) diff --git a/examples/knowledge/production/ssrf-allowed-hosts.mdx b/examples/knowledge/production/ssrf-allowed-hosts.mdx index 27b826d47..b049c241e 100644 --- a/examples/knowledge/production/ssrf-allowed-hosts.mdx +++ b/examples/knowledge/production/ssrf-allowed-hosts.mdx @@ -158,4 +158,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/03_production/05_ssrf_allowed_hosts.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/03_production/05_ssrf_allowed_hosts.py) +Full source: [cookbook/07_knowledge/03_production/05_ssrf_allowed_hosts.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/03_production/05_ssrf_allowed_hosts.py) diff --git a/examples/learning/basics/a-entity-memory-always.mdx b/examples/learning/basics/a-entity-memory-always.mdx index a9ba06028..85a2203ed 100644 --- a/examples/learning/basics/a-entity-memory-always.mdx +++ b/examples/learning/basics/a-entity-memory-always.mdx @@ -123,4 +123,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/01_basics/5a_entity_memory_always.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/01_basics/5a_entity_memory_always.py) +Full source: [cookbook/08_learning/01_basics/5a_entity_memory_always.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/01_basics/5a_entity_memory_always.py) diff --git a/examples/learning/basics/a-session-context-summary.mdx b/examples/learning/basics/a-session-context-summary.mdx index 0547b40f1..b9eba29ec 100644 --- a/examples/learning/basics/a-session-context-summary.mdx +++ b/examples/learning/basics/a-session-context-summary.mdx @@ -120,4 +120,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/01_basics/3a_session_context_summary.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/01_basics/3a_session_context_summary.py) +Full source: [cookbook/08_learning/01_basics/3a_session_context_summary.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/01_basics/3a_session_context_summary.py) diff --git a/examples/learning/basics/a-user-memory-always.mdx b/examples/learning/basics/a-user-memory-always.mdx index b5731112c..bfc5af3f3 100644 --- a/examples/learning/basics/a-user-memory-always.mdx +++ b/examples/learning/basics/a-user-memory-always.mdx @@ -115,4 +115,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/01_basics/2a_user_memory_always.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/01_basics/2a_user_memory_always.py) +Full source: [cookbook/08_learning/01_basics/2a_user_memory_always.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/01_basics/2a_user_memory_always.py) diff --git a/examples/learning/basics/a-user-profile-always.mdx b/examples/learning/basics/a-user-profile-always.mdx index 4696d8995..a6a603d3d 100644 --- a/examples/learning/basics/a-user-profile-always.mdx +++ b/examples/learning/basics/a-user-profile-always.mdx @@ -111,4 +111,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/01_basics/1a_user_profile_always.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/01_basics/1a_user_profile_always.py) +Full source: [cookbook/08_learning/01_basics/1a_user_profile_always.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/01_basics/1a_user_profile_always.py) diff --git a/examples/learning/basics/b-entity-memory-agentic.mdx b/examples/learning/basics/b-entity-memory-agentic.mdx index 71eaa0216..c2daedbad 100644 --- a/examples/learning/basics/b-entity-memory-agentic.mdx +++ b/examples/learning/basics/b-entity-memory-agentic.mdx @@ -128,4 +128,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/01_basics/5b_entity_memory_agentic.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/01_basics/5b_entity_memory_agentic.py) +Full source: [cookbook/08_learning/01_basics/5b_entity_memory_agentic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/01_basics/5b_entity_memory_agentic.py) diff --git a/examples/learning/basics/b-session-context-planning.mdx b/examples/learning/basics/b-session-context-planning.mdx index 7862ea292..188324a0f 100644 --- a/examples/learning/basics/b-session-context-planning.mdx +++ b/examples/learning/basics/b-session-context-planning.mdx @@ -125,4 +125,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/01_basics/3b_session_context_planning.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/01_basics/3b_session_context_planning.py) +Full source: [cookbook/08_learning/01_basics/3b_session_context_planning.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/01_basics/3b_session_context_planning.py) diff --git a/examples/learning/basics/b-user-memory-agentic.mdx b/examples/learning/basics/b-user-memory-agentic.mdx index 4a9e89d34..97eaadc34 100644 --- a/examples/learning/basics/b-user-memory-agentic.mdx +++ b/examples/learning/basics/b-user-memory-agentic.mdx @@ -115,4 +115,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/01_basics/2b_user_memory_agentic.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/01_basics/2b_user_memory_agentic.py) +Full source: [cookbook/08_learning/01_basics/2b_user_memory_agentic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/01_basics/2b_user_memory_agentic.py) diff --git a/examples/learning/basics/b-user-profile-agentic.mdx b/examples/learning/basics/b-user-profile-agentic.mdx index 2fcdd90d3..340dcb589 100644 --- a/examples/learning/basics/b-user-profile-agentic.mdx +++ b/examples/learning/basics/b-user-profile-agentic.mdx @@ -112,4 +112,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/01_basics/1b_user_profile_agentic.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/01_basics/1b_user_profile_agentic.py) +Full source: [cookbook/08_learning/01_basics/1b_user_profile_agentic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/01_basics/1b_user_profile_agentic.py) diff --git a/examples/learning/basics/learned-knowledge.mdx b/examples/learning/basics/learned-knowledge.mdx index a1495b663..00f5db07c 100644 --- a/examples/learning/basics/learned-knowledge.mdx +++ b/examples/learning/basics/learned-knowledge.mdx @@ -125,4 +125,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/01_basics/4_learned_knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/01_basics/4_learned_knowledge.py) +Full source: [cookbook/08_learning/01_basics/4_learned_knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/01_basics/4_learned_knowledge.py) diff --git a/examples/learning/custom-stores/custom-store-with-db.mdx b/examples/learning/custom-stores/custom-store-with-db.mdx index 61fd4beee..2a57b868a 100644 --- a/examples/learning/custom-stores/custom-store-with-db.mdx +++ b/examples/learning/custom-stores/custom-store-with-db.mdx @@ -443,4 +443,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/08_custom_stores/02_custom_store_with_db.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/08_custom_stores/02_custom_store_with_db.py) +Full source: [cookbook/08_learning/08_custom_stores/02_custom_store_with_db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/08_custom_stores/02_custom_store_with_db.py) diff --git a/examples/learning/custom-stores/minimal-custom-store.mdx b/examples/learning/custom-stores/minimal-custom-store.mdx index 0e5e28a07..2f58ca517 100644 --- a/examples/learning/custom-stores/minimal-custom-store.mdx +++ b/examples/learning/custom-stores/minimal-custom-store.mdx @@ -271,4 +271,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/08_custom_stores/01_minimal_custom_store.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/08_custom_stores/01_minimal_custom_store.py) +Full source: [cookbook/08_learning/08_custom_stores/01_minimal_custom_store.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/08_custom_stores/01_minimal_custom_store.py) diff --git a/examples/learning/decision-logs/basic-decision-log.mdx b/examples/learning/decision-logs/basic-decision-log.mdx index e413aeb5e..19731c8a5 100644 --- a/examples/learning/decision-logs/basic-decision-log.mdx +++ b/examples/learning/decision-logs/basic-decision-log.mdx @@ -110,4 +110,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/09_decision_logs/01_basic_decision_log.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/09_decision_logs/01_basic_decision_log.py) +Full source: [cookbook/08_learning/09_decision_logs/01_basic_decision_log.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/09_decision_logs/01_basic_decision_log.py) diff --git a/examples/learning/decision-logs/decision-log-always.mdx b/examples/learning/decision-logs/decision-log-always.mdx index c878fe23f..ba7853845 100644 --- a/examples/learning/decision-logs/decision-log-always.mdx +++ b/examples/learning/decision-logs/decision-log-always.mdx @@ -106,4 +106,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/09_decision_logs/02_decision_log_always.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/09_decision_logs/02_decision_log_always.py) +Full source: [cookbook/08_learning/09_decision_logs/02_decision_log_always.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/09_decision_logs/02_decision_log_always.py) diff --git a/examples/learning/demo/agents.mdx b/examples/learning/demo/agents.mdx index d30884b88..d8484d301 100644 --- a/examples/learning/demo/agents.mdx +++ b/examples/learning/demo/agents.mdx @@ -122,4 +122,4 @@ ops_assistant = Agent( -Full source: [cookbook/08_learning/10_demo/agents.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/10_demo/agents.py) +Full source: [cookbook/08_learning/10_demo/agents.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/10_demo/agents.py) diff --git a/examples/learning/demo/run.mdx b/examples/learning/demo/run.mdx index de56aacb5..5ec0d2279 100644 --- a/examples/learning/demo/run.mdx +++ b/examples/learning/demo/run.mdx @@ -154,4 +154,4 @@ ops_assistant = Agent( -Full source: [cookbook/08_learning/10_demo/run.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/10_demo/run.py) +Full source: [cookbook/08_learning/10_demo/run.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/10_demo/run.py) diff --git a/examples/learning/demo/seed.mdx b/examples/learning/demo/seed.mdx index 8140b3288..71ef903ec 100644 --- a/examples/learning/demo/seed.mdx +++ b/examples/learning/demo/seed.mdx @@ -244,4 +244,4 @@ ops_assistant = Agent( -Full source: [cookbook/08_learning/10_demo/seed.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/10_demo/seed.py) +Full source: [cookbook/08_learning/10_demo/seed.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/10_demo/seed.py) diff --git a/examples/learning/entity-memory/entity-relationships.mdx b/examples/learning/entity-memory/entity-relationships.mdx index bcc9af46e..2c0151112 100644 --- a/examples/learning/entity-memory/entity-relationships.mdx +++ b/examples/learning/entity-memory/entity-relationships.mdx @@ -142,4 +142,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/04_entity_memory/02_entity_relationships.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/04_entity_memory/02_entity_relationships.py) +Full source: [cookbook/08_learning/04_entity_memory/02_entity_relationships.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/04_entity_memory/02_entity_relationships.py) diff --git a/examples/learning/entity-memory/facts-and-events.mdx b/examples/learning/entity-memory/facts-and-events.mdx index 89017a43f..d005b6533 100644 --- a/examples/learning/entity-memory/facts-and-events.mdx +++ b/examples/learning/entity-memory/facts-and-events.mdx @@ -141,4 +141,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/04_entity_memory/01_facts_and_events.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/04_entity_memory/01_facts_and_events.py) +Full source: [cookbook/08_learning/04_entity_memory/01_facts_and_events.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/04_entity_memory/01_facts_and_events.py) diff --git a/examples/learning/learned-knowledge/agentic-mode.mdx b/examples/learning/learned-knowledge/agentic-mode.mdx index f31b8fb99..6c1892381 100644 --- a/examples/learning/learned-knowledge/agentic-mode.mdx +++ b/examples/learning/learned-knowledge/agentic-mode.mdx @@ -143,4 +143,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/05_learned_knowledge/01_agentic_mode.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/05_learned_knowledge/01_agentic_mode.py) +Full source: [cookbook/08_learning/05_learned_knowledge/01_agentic_mode.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/05_learned_knowledge/01_agentic_mode.py) diff --git a/examples/learning/learned-knowledge/propose-mode.mdx b/examples/learning/learned-knowledge/propose-mode.mdx index 516b0a850..51eaab902 100644 --- a/examples/learning/learned-knowledge/propose-mode.mdx +++ b/examples/learning/learned-knowledge/propose-mode.mdx @@ -151,4 +151,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/05_learned_knowledge/02_propose_mode.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/05_learned_knowledge/02_propose_mode.py) +Full source: [cookbook/08_learning/05_learned_knowledge/02_propose_mode.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/05_learned_knowledge/02_propose_mode.py) diff --git a/examples/learning/patterns/personal-assistant.mdx b/examples/learning/patterns/personal-assistant.mdx index 9976af5ec..e83e1a65d 100644 --- a/examples/learning/patterns/personal-assistant.mdx +++ b/examples/learning/patterns/personal-assistant.mdx @@ -147,4 +147,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/07_patterns/personal_assistant.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/07_patterns/personal_assistant.py) +Full source: [cookbook/08_learning/07_patterns/personal_assistant.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/07_patterns/personal_assistant.py) diff --git a/examples/learning/patterns/research-assistant.mdx b/examples/learning/patterns/research-assistant.mdx index 7832a2884..08364d049 100644 --- a/examples/learning/patterns/research-assistant.mdx +++ b/examples/learning/patterns/research-assistant.mdx @@ -145,4 +145,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/07_patterns/research_assistant.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/07_patterns/research_assistant.py) +Full source: [cookbook/08_learning/07_patterns/research_assistant.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/07_patterns/research_assistant.py) diff --git a/examples/learning/patterns/support-agent.mdx b/examples/learning/patterns/support-agent.mdx index eec3ecbca..ceedb56c8 100644 --- a/examples/learning/patterns/support-agent.mdx +++ b/examples/learning/patterns/support-agent.mdx @@ -163,4 +163,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/07_patterns/support_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/07_patterns/support_agent.py) +Full source: [cookbook/08_learning/07_patterns/support_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/07_patterns/support_agent.py) diff --git a/examples/learning/quick-tests/async-user-profile.mdx b/examples/learning/quick-tests/async-user-profile.mdx index 42473a052..e3357204a 100644 --- a/examples/learning/quick-tests/async-user-profile.mdx +++ b/examples/learning/quick-tests/async-user-profile.mdx @@ -119,4 +119,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/06_quick_tests/01_async_user_profile.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/06_quick_tests/01_async_user_profile.py) +Full source: [cookbook/08_learning/06_quick_tests/01_async_user_profile.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/06_quick_tests/01_async_user_profile.py) diff --git a/examples/learning/quick-tests/claude-model.mdx b/examples/learning/quick-tests/claude-model.mdx index d567fd7fa..a769a76b8 100644 --- a/examples/learning/quick-tests/claude-model.mdx +++ b/examples/learning/quick-tests/claude-model.mdx @@ -132,4 +132,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/06_quick_tests/04_claude_model.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/06_quick_tests/04_claude_model.py) +Full source: [cookbook/08_learning/06_quick_tests/04_claude_model.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/06_quick_tests/04_claude_model.py) diff --git a/examples/learning/quick-tests/learning-true-shorthand.mdx b/examples/learning/quick-tests/learning-true-shorthand.mdx index 9680cc058..83ab8ff4c 100644 --- a/examples/learning/quick-tests/learning-true-shorthand.mdx +++ b/examples/learning/quick-tests/learning-true-shorthand.mdx @@ -148,4 +148,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/06_quick_tests/02_learning_true_shorthand.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/06_quick_tests/02_learning_true_shorthand.py) +Full source: [cookbook/08_learning/06_quick_tests/02_learning_true_shorthand.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/06_quick_tests/02_learning_true_shorthand.py) diff --git a/examples/learning/quick-tests/no-db-graceful.mdx b/examples/learning/quick-tests/no-db-graceful.mdx index c738e1cf7..8cf34a9ec 100644 --- a/examples/learning/quick-tests/no-db-graceful.mdx +++ b/examples/learning/quick-tests/no-db-graceful.mdx @@ -137,4 +137,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/06_quick_tests/03_no_db_graceful.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/06_quick_tests/03_no_db_graceful.py) +Full source: [cookbook/08_learning/06_quick_tests/03_no_db_graceful.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/06_quick_tests/03_no_db_graceful.py) diff --git a/examples/learning/quickstart/agentic-learn.mdx b/examples/learning/quickstart/agentic-learn.mdx index cd7efd752..a842a30c3 100644 --- a/examples/learning/quickstart/agentic-learn.mdx +++ b/examples/learning/quickstart/agentic-learn.mdx @@ -101,4 +101,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/00_quickstart/02_agentic_learn.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/00_quickstart/02_agentic_learn.py) +Full source: [cookbook/08_learning/00_quickstart/02_agentic_learn.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/00_quickstart/02_agentic_learn.py) diff --git a/examples/learning/quickstart/always-learn.mdx b/examples/learning/quickstart/always-learn.mdx index b27a7012c..c9fa76bc3 100644 --- a/examples/learning/quickstart/always-learn.mdx +++ b/examples/learning/quickstart/always-learn.mdx @@ -93,4 +93,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/00_quickstart/01_always_learn.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/00_quickstart/01_always_learn.py) +Full source: [cookbook/08_learning/00_quickstart/01_always_learn.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/00_quickstart/01_always_learn.py) diff --git a/examples/learning/quickstart/learned-knowledge.mdx b/examples/learning/quickstart/learned-knowledge.mdx index ca2bd71d7..9281367cf 100644 --- a/examples/learning/quickstart/learned-knowledge.mdx +++ b/examples/learning/quickstart/learned-knowledge.mdx @@ -110,4 +110,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/00_quickstart/03_learned_knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/00_quickstart/03_learned_knowledge.py) +Full source: [cookbook/08_learning/00_quickstart/03_learned_knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/00_quickstart/03_learned_knowledge.py) diff --git a/examples/learning/session-context/planning-mode.mdx b/examples/learning/session-context/planning-mode.mdx index be24241a5..44dd0ff29 100644 --- a/examples/learning/session-context/planning-mode.mdx +++ b/examples/learning/session-context/planning-mode.mdx @@ -137,4 +137,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/03_session_context/02_planning_mode.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/03_session_context/02_planning_mode.py) +Full source: [cookbook/08_learning/03_session_context/02_planning_mode.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/03_session_context/02_planning_mode.py) diff --git a/examples/learning/session-context/summary-mode.mdx b/examples/learning/session-context/summary-mode.mdx index 51aa1a782..d107619b4 100644 --- a/examples/learning/session-context/summary-mode.mdx +++ b/examples/learning/session-context/summary-mode.mdx @@ -135,4 +135,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/03_session_context/01_summary_mode.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/03_session_context/01_summary_mode.py) +Full source: [cookbook/08_learning/03_session_context/01_summary_mode.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/03_session_context/01_summary_mode.py) diff --git a/examples/learning/user-profile/agentic-mode.mdx b/examples/learning/user-profile/agentic-mode.mdx index 6c163486b..2618accde 100644 --- a/examples/learning/user-profile/agentic-mode.mdx +++ b/examples/learning/user-profile/agentic-mode.mdx @@ -123,4 +123,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/02_user_profile/02_agentic_mode.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/02_user_profile/02_agentic_mode.py) +Full source: [cookbook/08_learning/02_user_profile/02_agentic_mode.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/02_user_profile/02_agentic_mode.py) diff --git a/examples/learning/user-profile/always-extraction.mdx b/examples/learning/user-profile/always-extraction.mdx index 8ab49b81e..5860903c9 100644 --- a/examples/learning/user-profile/always-extraction.mdx +++ b/examples/learning/user-profile/always-extraction.mdx @@ -135,4 +135,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/02_user_profile/01_always_extraction.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/02_user_profile/01_always_extraction.py) +Full source: [cookbook/08_learning/02_user_profile/01_always_extraction.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/02_user_profile/01_always_extraction.py) diff --git a/examples/learning/user-profile/custom-schema.mdx b/examples/learning/user-profile/custom-schema.mdx index c00773880..c8fa35dee 100644 --- a/examples/learning/user-profile/custom-schema.mdx +++ b/examples/learning/user-profile/custom-schema.mdx @@ -154,4 +154,4 @@ if __name__ == "__main__": -Full source: [cookbook/08_learning/02_user_profile/03_custom_schema.py](https://github.com/agno-agi/agno/blob/main/cookbook/08_learning/02_user_profile/03_custom_schema.py) +Full source: [cookbook/08_learning/02_user_profile/03_custom_schema.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/08_learning/02_user_profile/03_custom_schema.py) diff --git a/examples/memory/agent-with-memory.mdx b/examples/memory/agent-with-memory.mdx index 56b780239..2e87a1263 100644 --- a/examples/memory/agent-with-memory.mdx +++ b/examples/memory/agent-with-memory.mdx @@ -109,4 +109,4 @@ if __name__ == "__main__": -Full source: [cookbook/11_memory/01_agent_with_memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/11_memory/01_agent_with_memory.py) +Full source: [cookbook/11_memory/01_agent_with_memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/11_memory/01_agent_with_memory.py) diff --git a/examples/memory/agentic-memory.mdx b/examples/memory/agentic-memory.mdx index 2ea21b57e..8d72edd7c 100644 --- a/examples/memory/agentic-memory.mdx +++ b/examples/memory/agentic-memory.mdx @@ -113,4 +113,4 @@ if __name__ == "__main__": -Full source: [cookbook/11_memory/02_agentic_memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/11_memory/02_agentic_memory.py) +Full source: [cookbook/11_memory/02_agentic_memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/11_memory/02_agentic_memory.py) diff --git a/examples/memory/agents-share-memory.mdx b/examples/memory/agents-share-memory.mdx index 812cf755d..761024a09 100644 --- a/examples/memory/agents-share-memory.mdx +++ b/examples/memory/agents-share-memory.mdx @@ -100,4 +100,4 @@ if __name__ == "__main__": -Full source: [cookbook/11_memory/03_agents_share_memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/11_memory/03_agents_share_memory.py) +Full source: [cookbook/11_memory/03_agents_share_memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/11_memory/03_agents_share_memory.py) diff --git a/examples/memory/custom-memory-manager.mdx b/examples/memory/custom-memory-manager.mdx index 871ab4abd..2e8597fe5 100644 --- a/examples/memory/custom-memory-manager.mdx +++ b/examples/memory/custom-memory-manager.mdx @@ -97,4 +97,4 @@ if __name__ == "__main__": -Full source: [cookbook/11_memory/04_custom_memory_manager.py](https://github.com/agno-agi/agno/blob/main/cookbook/11_memory/04_custom_memory_manager.py) +Full source: [cookbook/11_memory/04_custom_memory_manager.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/11_memory/04_custom_memory_manager.py) diff --git a/examples/memory/integrations/dakera-integration.mdx b/examples/memory/integrations/dakera-integration.mdx index e37e441ae..c2b44b606 100644 --- a/examples/memory/integrations/dakera-integration.mdx +++ b/examples/memory/integrations/dakera-integration.mdx @@ -192,4 +192,4 @@ pprint_run_response(response2) The current `ghcr.io/dakera-ai/dakera:latest` image requires `DAKERA_ROOT_API_KEY`. The pinned client uses `/v1/memories` and `/v1/memories/search`, while the current API uses `/v1/memory/store` and `/v1/memory/recall` and returns recalled entries under `memories`. Update the server environment, client authentication, routes, and response parsing before running this example. -Full source: [cookbook/11_memory/integrations/dakera_integration.py](https://github.com/agno-agi/agno/blob/main/cookbook/11_memory/integrations/dakera_integration.py) +Full source: [cookbook/11_memory/integrations/dakera_integration.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/11_memory/integrations/dakera_integration.py) diff --git a/examples/memory/memory-manager/custom-memory-instructions.mdx b/examples/memory/memory-manager/custom-memory-instructions.mdx index f4fcb13cf..8d55f5efe 100644 --- a/examples/memory/memory-manager/custom-memory-instructions.mdx +++ b/examples/memory/memory-manager/custom-memory-instructions.mdx @@ -135,4 +135,4 @@ I am interested to learn about the history of the universe and other astronomica -Full source: [cookbook/11_memory/memory_manager/03_custom_memory_instructions.py](https://github.com/agno-agi/agno/blob/main/cookbook/11_memory/memory_manager/03_custom_memory_instructions.py) +Full source: [cookbook/11_memory/memory_manager/03_custom_memory_instructions.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/11_memory/memory_manager/03_custom_memory_instructions.py) diff --git a/examples/memory/memory-manager/db-tools-control.mdx b/examples/memory/memory-manager/db-tools-control.mdx index 14538af1a..316c5e898 100644 --- a/examples/memory/memory-manager/db-tools-control.mdx +++ b/examples/memory/memory-manager/db-tools-control.mdx @@ -96,4 +96,4 @@ if __name__ == "__main__": -Full source: [cookbook/11_memory/memory_manager/05_db_tools_control.py](https://github.com/agno-agi/agno/blob/main/cookbook/11_memory/memory_manager/05_db_tools_control.py) +Full source: [cookbook/11_memory/memory_manager/05_db_tools_control.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/11_memory/memory_manager/05_db_tools_control.py) diff --git a/examples/memory/memory-manager/memory-creation.mdx b/examples/memory/memory-manager/memory-creation.mdx index 55b3f1906..a2f6f5e26 100644 --- a/examples/memory/memory-manager/memory-creation.mdx +++ b/examples/memory/memory-manager/memory-creation.mdx @@ -103,4 +103,4 @@ I also like to meditate in the mornings and practice yoga to stay centered. -Full source: [cookbook/11_memory/memory_manager/02_memory_creation.py](https://github.com/agno-agi/agno/blob/main/cookbook/11_memory/memory_manager/02_memory_creation.py) +Full source: [cookbook/11_memory/memory_manager/02_memory_creation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/11_memory/memory_manager/02_memory_creation.py) diff --git a/examples/memory/memory-manager/memory-search.mdx b/examples/memory/memory-manager/memory-search.mdx index d603dd94e..c7263f3b0 100644 --- a/examples/memory/memory-manager/memory-search.mdx +++ b/examples/memory/memory-manager/memory-search.mdx @@ -101,4 +101,4 @@ if __name__ == "__main__": -Full source: [cookbook/11_memory/memory_manager/04_memory_search.py](https://github.com/agno-agi/agno/blob/main/cookbook/11_memory/memory_manager/04_memory_search.py) +Full source: [cookbook/11_memory/memory_manager/04_memory_search.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/11_memory/memory_manager/04_memory_search.py) diff --git a/examples/memory/memory-manager/standalone-memory.mdx b/examples/memory/memory-manager/standalone-memory.mdx index f756024f6..3167c0306 100644 --- a/examples/memory/memory-manager/standalone-memory.mdx +++ b/examples/memory/memory-manager/standalone-memory.mdx @@ -92,4 +92,4 @@ if __name__ == "__main__": -Full source: [cookbook/11_memory/memory_manager/01_standalone_memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/11_memory/memory_manager/01_standalone_memory.py) +Full source: [cookbook/11_memory/memory_manager/01_standalone_memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/11_memory/memory_manager/01_standalone_memory.py) diff --git a/examples/memory/memory-tools.mdx b/examples/memory/memory-tools.mdx index f58b074da..89ce6c145 100644 --- a/examples/memory/memory-tools.mdx +++ b/examples/memory/memory-tools.mdx @@ -101,4 +101,4 @@ if __name__ == "__main__": -Full source: [cookbook/11_memory/08_memory_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/11_memory/08_memory_tools.py) +Full source: [cookbook/11_memory/08_memory_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/11_memory/08_memory_tools.py) diff --git a/examples/memory/multi-user-multi-session-chat-concurrent.mdx b/examples/memory/multi-user-multi-session-chat-concurrent.mdx index 77cf8acc2..9990274f5 100644 --- a/examples/memory/multi-user-multi-session-chat-concurrent.mdx +++ b/examples/memory/multi-user-multi-session-chat-concurrent.mdx @@ -161,4 +161,4 @@ if __name__ == "__main__": -Full source: [cookbook/11_memory/06_multi_user_multi_session_chat_concurrent.py](https://github.com/agno-agi/agno/blob/main/cookbook/11_memory/06_multi_user_multi_session_chat_concurrent.py) +Full source: [cookbook/11_memory/06_multi_user_multi_session_chat_concurrent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/11_memory/06_multi_user_multi_session_chat_concurrent.py) diff --git a/examples/memory/multi-user-multi-session-chat.mdx b/examples/memory/multi-user-multi-session-chat.mdx index ab47a3352..40662073a 100644 --- a/examples/memory/multi-user-multi-session-chat.mdx +++ b/examples/memory/multi-user-multi-session-chat.mdx @@ -145,4 +145,4 @@ if __name__ == "__main__": -Full source: [cookbook/11_memory/05_multi_user_multi_session_chat.py](https://github.com/agno-agi/agno/blob/main/cookbook/11_memory/05_multi_user_multi_session_chat.py) +Full source: [cookbook/11_memory/05_multi_user_multi_session_chat.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/11_memory/05_multi_user_multi_session_chat.py) diff --git a/examples/memory/optimize-memories/custom-memory-strategy.mdx b/examples/memory/optimize-memories/custom-memory-strategy.mdx index 630709a73..0b9f8013f 100644 --- a/examples/memory/optimize-memories/custom-memory-strategy.mdx +++ b/examples/memory/optimize-memories/custom-memory-strategy.mdx @@ -185,4 +185,4 @@ if __name__ == "__main__": -Full source: [cookbook/11_memory/optimize_memories/02_custom_memory_strategy.py](https://github.com/agno-agi/agno/blob/main/cookbook/11_memory/optimize_memories/02_custom_memory_strategy.py) +Full source: [cookbook/11_memory/optimize_memories/02_custom_memory_strategy.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/11_memory/optimize_memories/02_custom_memory_strategy.py) diff --git a/examples/memory/optimize-memories/memory-summarize-strategy.mdx b/examples/memory/optimize-memories/memory-summarize-strategy.mdx index 7b0ac12f4..2df334ad0 100644 --- a/examples/memory/optimize-memories/memory-summarize-strategy.mdx +++ b/examples/memory/optimize-memories/memory-summarize-strategy.mdx @@ -144,4 +144,4 @@ if __name__ == "__main__": -Full source: [cookbook/11_memory/optimize_memories/01_memory_summarize_strategy.py](https://github.com/agno-agi/agno/blob/main/cookbook/11_memory/optimize_memories/01_memory_summarize_strategy.py) +Full source: [cookbook/11_memory/optimize_memories/01_memory_summarize_strategy.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/11_memory/optimize_memories/01_memory_summarize_strategy.py) diff --git a/examples/memory/share-memory-and-history-between-agents.mdx b/examples/memory/share-memory-and-history-between-agents.mdx index a30d7d65a..e7a5b67fc 100644 --- a/examples/memory/share-memory-and-history-between-agents.mdx +++ b/examples/memory/share-memory-and-history-between-agents.mdx @@ -104,4 +104,4 @@ if __name__ == "__main__": -Full source: [cookbook/11_memory/07_share_memory_and_history_between_agents.py](https://github.com/agno-agi/agno/blob/main/cookbook/11_memory/07_share_memory_and_history_between_agents.py) +Full source: [cookbook/11_memory/07_share_memory_and_history_between_agents.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/11_memory/07_share_memory_and_history_between_agents.py) diff --git a/examples/models/aimlapi/basic.mdx b/examples/models/aimlapi/basic.mdx index 47d405b24..6bae5dedb 100644 --- a/examples/models/aimlapi/basic.mdx +++ b/examples/models/aimlapi/basic.mdx @@ -84,4 +84,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/aimlapi/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/aimlapi/basic.py) +Full source: [cookbook/90_models/aimlapi/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/aimlapi/basic.py) diff --git a/examples/models/aimlapi/image-agent-bytes.mdx b/examples/models/aimlapi/image-agent-bytes.mdx index 840eb862a..424c6be35 100644 --- a/examples/models/aimlapi/image-agent-bytes.mdx +++ b/examples/models/aimlapi/image-agent-bytes.mdx @@ -79,4 +79,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/aimlapi/image_agent_bytes.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/aimlapi/image_agent_bytes.py) +Full source: [cookbook/90_models/aimlapi/image_agent_bytes.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/aimlapi/image_agent_bytes.py) diff --git a/examples/models/aimlapi/image-agent-with-memory.mdx b/examples/models/aimlapi/image-agent-with-memory.mdx index f701eff2e..ea6cbc97f 100644 --- a/examples/models/aimlapi/image-agent-with-memory.mdx +++ b/examples/models/aimlapi/image-agent-with-memory.mdx @@ -78,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/aimlapi/image_agent_with_memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/aimlapi/image_agent_with_memory.py) +Full source: [cookbook/90_models/aimlapi/image_agent_with_memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/aimlapi/image_agent_with_memory.py) diff --git a/examples/models/aimlapi/image-agent.mdx b/examples/models/aimlapi/image-agent.mdx index be435c5c7..c91563715 100644 --- a/examples/models/aimlapi/image-agent.mdx +++ b/examples/models/aimlapi/image-agent.mdx @@ -74,4 +74,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/aimlapi/image_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/aimlapi/image_agent.py) +Full source: [cookbook/90_models/aimlapi/image_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/aimlapi/image_agent.py) diff --git a/examples/models/aimlapi/retry.mdx b/examples/models/aimlapi/retry.mdx index 525f73796..2845f5a0c 100644 --- a/examples/models/aimlapi/retry.mdx +++ b/examples/models/aimlapi/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/aimlapi/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/aimlapi/retry.py) +Full source: [cookbook/90_models/aimlapi/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/aimlapi/retry.py) diff --git a/examples/models/aimlapi/structured-output.mdx b/examples/models/aimlapi/structured-output.mdx index 5fbaadb94..e66698651 100644 --- a/examples/models/aimlapi/structured-output.mdx +++ b/examples/models/aimlapi/structured-output.mdx @@ -95,4 +95,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/aimlapi/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/aimlapi/structured_output.py) +Full source: [cookbook/90_models/aimlapi/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/aimlapi/structured_output.py) diff --git a/examples/models/aimlapi/tool-use.mdx b/examples/models/aimlapi/tool-use.mdx index 8f3b73311..c6fbe7374 100644 --- a/examples/models/aimlapi/tool-use.mdx +++ b/examples/models/aimlapi/tool-use.mdx @@ -65,4 +65,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/aimlapi/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/aimlapi/tool_use.py) +Full source: [cookbook/90_models/aimlapi/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/aimlapi/tool_use.py) diff --git a/examples/models/anthropic/adaptive-thinking.mdx b/examples/models/anthropic/adaptive-thinking.mdx index 51559231f..5a9e548b7 100644 --- a/examples/models/anthropic/adaptive-thinking.mdx +++ b/examples/models/anthropic/adaptive-thinking.mdx @@ -86,4 +86,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/adaptive_thinking.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/adaptive_thinking.py) +Full source: [cookbook/90_models/anthropic/adaptive_thinking.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/adaptive_thinking.py) diff --git a/examples/models/anthropic/append-trailing-user-message.mdx b/examples/models/anthropic/append-trailing-user-message.mdx index a9039e0cd..eb78417ea 100644 --- a/examples/models/anthropic/append-trailing-user-message.mdx +++ b/examples/models/anthropic/append-trailing-user-message.mdx @@ -83,4 +83,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/append_trailing_user_message.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/append_trailing_user_message.py) +Full source: [cookbook/90_models/anthropic/append_trailing_user_message.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/append_trailing_user_message.py) diff --git a/examples/models/anthropic/basic-with-timeout.mdx b/examples/models/anthropic/basic-with-timeout.mdx index b3f0a9ab3..0043fa740 100644 --- a/examples/models/anthropic/basic-with-timeout.mdx +++ b/examples/models/anthropic/basic-with-timeout.mdx @@ -62,4 +62,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/basic_with_timeout.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/basic_with_timeout.py) +Full source: [cookbook/90_models/anthropic/basic_with_timeout.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/basic_with_timeout.py) diff --git a/examples/models/anthropic/basic.mdx b/examples/models/anthropic/basic.mdx index 2f5a4c38c..8c3e17a3f 100644 --- a/examples/models/anthropic/basic.mdx +++ b/examples/models/anthropic/basic.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/basic.py) +Full source: [cookbook/90_models/anthropic/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/basic.py) diff --git a/examples/models/anthropic/betas.mdx b/examples/models/anthropic/betas.mdx index 83e57f494..32116506d 100644 --- a/examples/models/anthropic/betas.mdx +++ b/examples/models/anthropic/betas.mdx @@ -26,7 +26,7 @@ model = Claude(betas=betas) # Note: you can see all beta features available in your Anthropic version like this: all_betas = anthropic.types.AnthropicBetaParam -agent = Agent(model=model, debug_mode=True) +agent = Agent(model=model) # --------------------------------------------------------------------------- # Run Agent @@ -72,4 +72,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/betas.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/betas.py) +Full source: [cookbook/90_models/anthropic/betas.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/betas.py) diff --git a/examples/models/anthropic/code-execution.mdx b/examples/models/anthropic/code-execution.mdx index f18ce4411..134b63d5f 100644 --- a/examples/models/anthropic/code-execution.mdx +++ b/examples/models/anthropic/code-execution.mdx @@ -77,4 +77,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/code_execution.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/code_execution.py) +Full source: [cookbook/90_models/anthropic/code_execution.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/code_execution.py) diff --git a/examples/models/anthropic/context-management.mdx b/examples/models/anthropic/context-management.mdx index f936173c0..14d39e09e 100644 --- a/examples/models/anthropic/context-management.mdx +++ b/examples/models/anthropic/context-management.mdx @@ -115,4 +115,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/context_management.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/context_management.py) +Full source: [cookbook/90_models/anthropic/context_management.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/context_management.py) diff --git a/examples/models/anthropic/csv-input.mdx b/examples/models/anthropic/csv-input.mdx index 145109f82..a2711f224 100644 --- a/examples/models/anthropic/csv-input.mdx +++ b/examples/models/anthropic/csv-input.mdx @@ -83,4 +83,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/csv_input.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/csv_input.py) +Full source: [cookbook/90_models/anthropic/csv_input.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/csv_input.py) diff --git a/examples/models/anthropic/db.mdx b/examples/models/anthropic/db.mdx index e3a278eca..40bbcb666 100644 --- a/examples/models/anthropic/db.mdx +++ b/examples/models/anthropic/db.mdx @@ -70,4 +70,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/db.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/db.py) +Full source: [cookbook/90_models/anthropic/db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/db.py) diff --git a/examples/models/anthropic/financial-analyst-thinking.mdx b/examples/models/anthropic/financial-analyst-thinking.mdx index 12b3c7746..9c95decdf 100644 --- a/examples/models/anthropic/financial-analyst-thinking.mdx +++ b/examples/models/anthropic/financial-analyst-thinking.mdx @@ -90,4 +90,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/financial_analyst_thinking.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/financial_analyst_thinking.py) +Full source: [cookbook/90_models/anthropic/financial_analyst_thinking.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/financial_analyst_thinking.py) diff --git a/examples/models/anthropic/image-input-bytes.mdx b/examples/models/anthropic/image-input-bytes.mdx index 0cd432537..23828e549 100644 --- a/examples/models/anthropic/image-input-bytes.mdx +++ b/examples/models/anthropic/image-input-bytes.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/image_input_bytes.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/image_input_bytes.py) +Full source: [cookbook/90_models/anthropic/image_input_bytes.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/image_input_bytes.py) diff --git a/examples/models/anthropic/image-input-file-upload.mdx b/examples/models/anthropic/image-input-file-upload.mdx index d1273e852..ae2801343 100644 --- a/examples/models/anthropic/image-input-file-upload.mdx +++ b/examples/models/anthropic/image-input-file-upload.mdx @@ -92,4 +92,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/image_input_file_upload.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/image_input_file_upload.py) +Full source: [cookbook/90_models/anthropic/image_input_file_upload.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/image_input_file_upload.py) diff --git a/examples/models/anthropic/image-input-local-file.mdx b/examples/models/anthropic/image-input-local-file.mdx index eddcb9f79..5f37febcc 100644 --- a/examples/models/anthropic/image-input-local-file.mdx +++ b/examples/models/anthropic/image-input-local-file.mdx @@ -83,4 +83,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/image_input_local_file.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/image_input_local_file.py) +Full source: [cookbook/90_models/anthropic/image_input_local_file.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/image_input_local_file.py) diff --git a/examples/models/anthropic/image-input-url.mdx b/examples/models/anthropic/image-input-url.mdx index 2e759b1d9..41693a43f 100644 --- a/examples/models/anthropic/image-input-url.mdx +++ b/examples/models/anthropic/image-input-url.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/image_input_url.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/image_input_url.py) +Full source: [cookbook/90_models/anthropic/image_input_url.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/image_input_url.py) diff --git a/examples/models/anthropic/knowledge.mdx b/examples/models/anthropic/knowledge.mdx index e24bbd0cd..4dd522523 100644 --- a/examples/models/anthropic/knowledge.mdx +++ b/examples/models/anthropic/knowledge.mdx @@ -80,4 +80,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/knowledge.py) +Full source: [cookbook/90_models/anthropic/knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/knowledge.py) diff --git a/examples/models/anthropic/markdown-input.mdx b/examples/models/anthropic/markdown-input.mdx index 451891110..2ccaa427a 100644 --- a/examples/models/anthropic/markdown-input.mdx +++ b/examples/models/anthropic/markdown-input.mdx @@ -99,4 +99,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/markdown_input.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/markdown_input.py) +Full source: [cookbook/90_models/anthropic/markdown_input.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/markdown_input.py) diff --git a/examples/models/anthropic/mcp-connector.mdx b/examples/models/anthropic/mcp-connector.mdx index 7ab7c0df8..f8afae523 100644 --- a/examples/models/anthropic/mcp-connector.mdx +++ b/examples/models/anthropic/mcp-connector.mdx @@ -79,4 +79,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/mcp_connector.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/mcp_connector.py) +Full source: [cookbook/90_models/anthropic/mcp_connector.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/mcp_connector.py) diff --git a/examples/models/anthropic/memory.mdx b/examples/models/anthropic/memory.mdx index 6e95066e2..9554c284b 100644 --- a/examples/models/anthropic/memory.mdx +++ b/examples/models/anthropic/memory.mdx @@ -89,4 +89,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/memory.py) +Full source: [cookbook/90_models/anthropic/memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/memory.py) diff --git a/examples/models/anthropic/pdf-input-bytes.mdx b/examples/models/anthropic/pdf-input-bytes.mdx index 9011556d0..2bf140405 100644 --- a/examples/models/anthropic/pdf-input-bytes.mdx +++ b/examples/models/anthropic/pdf-input-bytes.mdx @@ -86,4 +86,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/pdf_input_bytes.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/pdf_input_bytes.py) +Full source: [cookbook/90_models/anthropic/pdf_input_bytes.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/pdf_input_bytes.py) diff --git a/examples/models/anthropic/pdf-input-file-upload.mdx b/examples/models/anthropic/pdf-input-file-upload.mdx index 1cd015312..b3375bcea 100644 --- a/examples/models/anthropic/pdf-input-file-upload.mdx +++ b/examples/models/anthropic/pdf-input-file-upload.mdx @@ -88,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/pdf_input_file_upload.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/pdf_input_file_upload.py) +Full source: [cookbook/90_models/anthropic/pdf_input_file_upload.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/pdf_input_file_upload.py) diff --git a/examples/models/anthropic/pdf-input-local.mdx b/examples/models/anthropic/pdf-input-local.mdx index a3b2b1393..825aa8e5f 100644 --- a/examples/models/anthropic/pdf-input-local.mdx +++ b/examples/models/anthropic/pdf-input-local.mdx @@ -86,4 +86,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/pdf_input_local.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/pdf_input_local.py) +Full source: [cookbook/90_models/anthropic/pdf_input_local.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/pdf_input_local.py) diff --git a/examples/models/anthropic/pdf-input-url.mdx b/examples/models/anthropic/pdf-input-url.mdx index 4b15cb37f..19e08daea 100644 --- a/examples/models/anthropic/pdf-input-url.mdx +++ b/examples/models/anthropic/pdf-input-url.mdx @@ -71,4 +71,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/pdf_input_url.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/pdf_input_url.py) +Full source: [cookbook/90_models/anthropic/pdf_input_url.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/pdf_input_url.py) diff --git a/examples/models/anthropic/prompt-caching-extended.mdx b/examples/models/anthropic/prompt-caching-extended.mdx index 39d1757ee..efd6a69e0 100644 --- a/examples/models/anthropic/prompt-caching-extended.mdx +++ b/examples/models/anthropic/prompt-caching-extended.mdx @@ -105,4 +105,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/prompt_caching_extended.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/prompt_caching_extended.py) +Full source: [cookbook/90_models/anthropic/prompt_caching_extended.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/prompt_caching_extended.py) diff --git a/examples/models/anthropic/prompt-caching-multi-block.mdx b/examples/models/anthropic/prompt-caching-multi-block.mdx index 4445ebab7..8731d1c4d 100644 --- a/examples/models/anthropic/prompt-caching-multi-block.mdx +++ b/examples/models/anthropic/prompt-caching-multi-block.mdx @@ -117,4 +117,4 @@ if response and response.metrics: -Full source: [cookbook/90_models/anthropic/prompt_caching_multi_block.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/prompt_caching_multi_block.py) +Full source: [cookbook/90_models/anthropic/prompt_caching_multi_block.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/prompt_caching_multi_block.py) diff --git a/examples/models/anthropic/prompt-caching-with-dynamic-block.mdx b/examples/models/anthropic/prompt-caching-with-dynamic-block.mdx index 8829fc9cf..cacb11d76 100644 --- a/examples/models/anthropic/prompt-caching-with-dynamic-block.mdx +++ b/examples/models/anthropic/prompt-caching-with-dynamic-block.mdx @@ -112,4 +112,4 @@ if response and response.metrics: -Full source: [cookbook/90_models/anthropic/prompt_caching_with_dynamic_block.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/prompt_caching_with_dynamic_block.py) +Full source: [cookbook/90_models/anthropic/prompt_caching_with_dynamic_block.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/prompt_caching_with_dynamic_block.py) diff --git a/examples/models/anthropic/prompt-caching.mdx b/examples/models/anthropic/prompt-caching.mdx index 90bb8e3ae..3e2525464 100644 --- a/examples/models/anthropic/prompt-caching.mdx +++ b/examples/models/anthropic/prompt-caching.mdx @@ -96,4 +96,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/prompt_caching.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/prompt_caching.py) +Full source: [cookbook/90_models/anthropic/prompt_caching.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/prompt_caching.py) diff --git a/examples/models/anthropic/pydantic-tool-input.mdx b/examples/models/anthropic/pydantic-tool-input.mdx index 4247f153c..78e3bc3e0 100644 --- a/examples/models/anthropic/pydantic-tool-input.mdx +++ b/examples/models/anthropic/pydantic-tool-input.mdx @@ -294,4 +294,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/pydantic_tool_input.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/pydantic_tool_input.py) +Full source: [cookbook/90_models/anthropic/pydantic_tool_input.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/pydantic_tool_input.py) diff --git a/examples/models/anthropic/retry.mdx b/examples/models/anthropic/retry.mdx index 4aebbba79..932210f13 100644 --- a/examples/models/anthropic/retry.mdx +++ b/examples/models/anthropic/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/anthropic/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/retry.py) +Full source: [cookbook/90_models/anthropic/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/retry.py) diff --git a/examples/models/anthropic/server-tools-multi-turn.mdx b/examples/models/anthropic/server-tools-multi-turn.mdx index acbda03b1..c02d39347 100644 --- a/examples/models/anthropic/server-tools-multi-turn.mdx +++ b/examples/models/anthropic/server-tools-multi-turn.mdx @@ -84,4 +84,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/server_tools_multi_turn.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/server_tools_multi_turn.py) +Full source: [cookbook/90_models/anthropic/server_tools_multi_turn.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/server_tools_multi_turn.py) diff --git a/examples/models/anthropic/skills/agent-with-documents.mdx b/examples/models/anthropic/skills/agent-with-documents.mdx index ded08cbf4..56f3a5e83 100644 --- a/examples/models/anthropic/skills/agent-with-documents.mdx +++ b/examples/models/anthropic/skills/agent-with-documents.mdx @@ -155,4 +155,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/skills/agent_with_documents.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/skills/agent_with_documents.py) +Full source: [cookbook/90_models/anthropic/skills/agent_with_documents.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/skills/agent_with_documents.py) diff --git a/examples/models/anthropic/skills/agent-with-excel.mdx b/examples/models/anthropic/skills/agent-with-excel.mdx index ba87d9dcf..8b5f27292 100644 --- a/examples/models/anthropic/skills/agent-with-excel.mdx +++ b/examples/models/anthropic/skills/agent-with-excel.mdx @@ -142,4 +142,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/skills/agent_with_excel.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/skills/agent_with_excel.py) +Full source: [cookbook/90_models/anthropic/skills/agent_with_excel.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/skills/agent_with_excel.py) diff --git a/examples/models/anthropic/skills/agent-with-powerpoint.mdx b/examples/models/anthropic/skills/agent-with-powerpoint.mdx index 16d4fd68f..ed70dfbf4 100644 --- a/examples/models/anthropic/skills/agent-with-powerpoint.mdx +++ b/examples/models/anthropic/skills/agent-with-powerpoint.mdx @@ -135,4 +135,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/skills/agent_with_powerpoint.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/skills/agent_with_powerpoint.py) +Full source: [cookbook/90_models/anthropic/skills/agent_with_powerpoint.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/skills/agent_with_powerpoint.py) diff --git a/examples/models/anthropic/skills/multi-skill-agent.mdx b/examples/models/anthropic/skills/multi-skill-agent.mdx index 8f32f705f..0b216da7f 100644 --- a/examples/models/anthropic/skills/multi-skill-agent.mdx +++ b/examples/models/anthropic/skills/multi-skill-agent.mdx @@ -137,4 +137,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/skills/multi_skill_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/skills/multi_skill_agent.py) +Full source: [cookbook/90_models/anthropic/skills/multi_skill_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/skills/multi_skill_agent.py) diff --git a/examples/models/anthropic/structured-output-strict-tools.mdx b/examples/models/anthropic/structured-output-strict-tools.mdx index 3cef9fa5a..b41d87330 100644 --- a/examples/models/anthropic/structured-output-strict-tools.mdx +++ b/examples/models/anthropic/structured-output-strict-tools.mdx @@ -110,4 +110,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/structured_output_strict_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/structured_output_strict_tools.py) +Full source: [cookbook/90_models/anthropic/structured_output_strict_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/structured_output_strict_tools.py) diff --git a/examples/models/anthropic/structured-output.mdx b/examples/models/anthropic/structured-output.mdx index aa1a68082..208abd79b 100644 --- a/examples/models/anthropic/structured-output.mdx +++ b/examples/models/anthropic/structured-output.mdx @@ -94,4 +94,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/structured_output.py) +Full source: [cookbook/90_models/anthropic/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/structured_output.py) diff --git a/examples/models/anthropic/thinking.mdx b/examples/models/anthropic/thinking.mdx index d0c9b2056..c0553d609 100644 --- a/examples/models/anthropic/thinking.mdx +++ b/examples/models/anthropic/thinking.mdx @@ -72,4 +72,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/thinking.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/thinking.py) +Full source: [cookbook/90_models/anthropic/thinking.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/thinking.py) diff --git a/examples/models/anthropic/tool-use.mdx b/examples/models/anthropic/tool-use.mdx index f7897e1a9..d47f61d93 100644 --- a/examples/models/anthropic/tool-use.mdx +++ b/examples/models/anthropic/tool-use.mdx @@ -68,4 +68,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/tool_use.py) +Full source: [cookbook/90_models/anthropic/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/tool_use.py) diff --git a/examples/models/anthropic/web-fetch.mdx b/examples/models/anthropic/web-fetch.mdx index aa7088954..87432368c 100644 --- a/examples/models/anthropic/web-fetch.mdx +++ b/examples/models/anthropic/web-fetch.mdx @@ -75,4 +75,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/web_fetch.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/web_fetch.py) +Full source: [cookbook/90_models/anthropic/web_fetch.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/web_fetch.py) diff --git a/examples/models/anthropic/web-search.mdx b/examples/models/anthropic/web-search.mdx index 3b78d4354..3cf30a942 100644 --- a/examples/models/anthropic/web-search.mdx +++ b/examples/models/anthropic/web-search.mdx @@ -84,4 +84,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/anthropic/web_search.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/anthropic/web_search.py) +Full source: [cookbook/90_models/anthropic/web_search.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/web_search.py) diff --git a/examples/models/aws/bedrock/basic.mdx b/examples/models/aws/bedrock/basic.mdx index 45613a300..631197cc5 100644 --- a/examples/models/aws/bedrock/basic.mdx +++ b/examples/models/aws/bedrock/basic.mdx @@ -82,4 +82,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/aws/bedrock/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/aws/bedrock/basic.py) +Full source: [cookbook/90_models/aws/bedrock/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/aws/bedrock/basic.py) diff --git a/examples/models/aws/bedrock/image-agent-bytes.mdx b/examples/models/aws/bedrock/image-agent-bytes.mdx index 2e4270234..bb117b1ca 100644 --- a/examples/models/aws/bedrock/image-agent-bytes.mdx +++ b/examples/models/aws/bedrock/image-agent-bytes.mdx @@ -90,4 +90,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/aws/bedrock/image_agent_bytes.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/aws/bedrock/image_agent_bytes.py) +Full source: [cookbook/90_models/aws/bedrock/image_agent_bytes.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/aws/bedrock/image_agent_bytes.py) diff --git a/examples/models/aws/bedrock/pdf-agent-bytes.mdx b/examples/models/aws/bedrock/pdf-agent-bytes.mdx index 71deb7efc..f418dc536 100644 --- a/examples/models/aws/bedrock/pdf-agent-bytes.mdx +++ b/examples/models/aws/bedrock/pdf-agent-bytes.mdx @@ -84,4 +84,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/aws/bedrock/pdf_agent_bytes.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/aws/bedrock/pdf_agent_bytes.py) +Full source: [cookbook/90_models/aws/bedrock/pdf_agent_bytes.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/aws/bedrock/pdf_agent_bytes.py) diff --git a/examples/models/aws/bedrock/structured-output.mdx b/examples/models/aws/bedrock/structured-output.mdx index bd009f000..20fa3f8d2 100644 --- a/examples/models/aws/bedrock/structured-output.mdx +++ b/examples/models/aws/bedrock/structured-output.mdx @@ -98,4 +98,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/aws/bedrock/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/aws/bedrock/structured_output.py) +Full source: [cookbook/90_models/aws/bedrock/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/aws/bedrock/structured_output.py) diff --git a/examples/models/aws/bedrock/tool-use.mdx b/examples/models/aws/bedrock/tool-use.mdx index 272af2866..b63b521c8 100644 --- a/examples/models/aws/bedrock/tool-use.mdx +++ b/examples/models/aws/bedrock/tool-use.mdx @@ -73,4 +73,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/aws/bedrock/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/aws/bedrock/tool_use.py) +Full source: [cookbook/90_models/aws/bedrock/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/aws/bedrock/tool_use.py) diff --git a/examples/models/aws/claude/adaptive-thinking.mdx b/examples/models/aws/claude/adaptive-thinking.mdx index 5183f4665..1d6679683 100644 --- a/examples/models/aws/claude/adaptive-thinking.mdx +++ b/examples/models/aws/claude/adaptive-thinking.mdx @@ -94,4 +94,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/aws/claude/adaptive_thinking.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/aws/claude/adaptive_thinking.py) +Full source: [cookbook/90_models/aws/claude/adaptive_thinking.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/aws/claude/adaptive_thinking.py) diff --git a/examples/models/aws/claude/append-trailing-user-message.mdx b/examples/models/aws/claude/append-trailing-user-message.mdx index e4c074e52..5a543ddd8 100644 --- a/examples/models/aws/claude/append-trailing-user-message.mdx +++ b/examples/models/aws/claude/append-trailing-user-message.mdx @@ -88,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/aws/claude/append_trailing_user_message.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/aws/claude/append_trailing_user_message.py) +Full source: [cookbook/90_models/aws/claude/append_trailing_user_message.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/aws/claude/append_trailing_user_message.py) diff --git a/examples/models/aws/claude/basic.mdx b/examples/models/aws/claude/basic.mdx index b78d6c641..092895c99 100644 --- a/examples/models/aws/claude/basic.mdx +++ b/examples/models/aws/claude/basic.mdx @@ -82,4 +82,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/aws/claude/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/aws/claude/basic.py) +Full source: [cookbook/90_models/aws/claude/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/aws/claude/basic.py) diff --git a/examples/models/aws/claude/db.mdx b/examples/models/aws/claude/db.mdx index ea6f58084..05cc47f1d 100644 --- a/examples/models/aws/claude/db.mdx +++ b/examples/models/aws/claude/db.mdx @@ -74,4 +74,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/aws/claude/db.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/aws/claude/db.py) +Full source: [cookbook/90_models/aws/claude/db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/aws/claude/db.py) diff --git a/examples/models/aws/claude/image-agent.mdx b/examples/models/aws/claude/image-agent.mdx index 63d18dbb8..ac6eb2b1f 100644 --- a/examples/models/aws/claude/image-agent.mdx +++ b/examples/models/aws/claude/image-agent.mdx @@ -80,4 +80,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/aws/claude/image_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/aws/claude/image_agent.py) +Full source: [cookbook/90_models/aws/claude/image_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/aws/claude/image_agent.py) diff --git a/examples/models/aws/claude/knowledge.mdx b/examples/models/aws/claude/knowledge.mdx index 453a5fcaf..a44024d1f 100644 --- a/examples/models/aws/claude/knowledge.mdx +++ b/examples/models/aws/claude/knowledge.mdx @@ -77,4 +77,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/aws/claude/knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/aws/claude/knowledge.py) +Full source: [cookbook/90_models/aws/claude/knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/aws/claude/knowledge.py) diff --git a/examples/models/aws/claude/structured-output.mdx b/examples/models/aws/claude/structured-output.mdx index a5ddec7e9..c0b07e87d 100644 --- a/examples/models/aws/claude/structured-output.mdx +++ b/examples/models/aws/claude/structured-output.mdx @@ -98,4 +98,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/aws/claude/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/aws/claude/structured_output.py) +Full source: [cookbook/90_models/aws/claude/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/aws/claude/structured_output.py) diff --git a/examples/models/aws/claude/tool-use.mdx b/examples/models/aws/claude/tool-use.mdx index 8e1d4e907..2d04d2513 100644 --- a/examples/models/aws/claude/tool-use.mdx +++ b/examples/models/aws/claude/tool-use.mdx @@ -72,4 +72,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/aws/claude/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/aws/claude/tool_use.py) +Full source: [cookbook/90_models/aws/claude/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/aws/claude/tool_use.py) diff --git a/examples/models/aws/retry.mdx b/examples/models/aws/retry.mdx index a6128291f..1668d3226 100644 --- a/examples/models/aws/retry.mdx +++ b/examples/models/aws/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/aws/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/aws/retry.py) +Full source: [cookbook/90_models/aws/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/aws/retry.py) diff --git a/examples/models/azure/ai-foundry/basic.mdx b/examples/models/azure/ai-foundry/basic.mdx index 47118fcff..0906913d5 100644 --- a/examples/models/azure/ai-foundry/basic.mdx +++ b/examples/models/azure/ai-foundry/basic.mdx @@ -80,4 +80,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/azure/ai_foundry/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/azure/ai_foundry/basic.py) +Full source: [cookbook/90_models/azure/ai_foundry/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/azure/ai_foundry/basic.py) diff --git a/examples/models/azure/ai-foundry/db.mdx b/examples/models/azure/ai-foundry/db.mdx index 33cb4524a..5467af186 100644 --- a/examples/models/azure/ai-foundry/db.mdx +++ b/examples/models/azure/ai-foundry/db.mdx @@ -72,4 +72,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/azure/ai_foundry/db.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/azure/ai_foundry/db.py) +Full source: [cookbook/90_models/azure/ai_foundry/db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/azure/ai_foundry/db.py) diff --git a/examples/models/azure/ai-foundry/demo-cohere.mdx b/examples/models/azure/ai-foundry/demo-cohere.mdx index 7596bf754..bafb117aa 100644 --- a/examples/models/azure/ai-foundry/demo-cohere.mdx +++ b/examples/models/azure/ai-foundry/demo-cohere.mdx @@ -69,4 +69,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/azure/ai_foundry/demo_cohere.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/azure/ai_foundry/demo_cohere.py) +Full source: [cookbook/90_models/azure/ai_foundry/demo_cohere.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/azure/ai_foundry/demo_cohere.py) diff --git a/examples/models/azure/ai-foundry/demo-mistral.mdx b/examples/models/azure/ai-foundry/demo-mistral.mdx index 03a317149..6776217f3 100644 --- a/examples/models/azure/ai-foundry/demo-mistral.mdx +++ b/examples/models/azure/ai-foundry/demo-mistral.mdx @@ -69,4 +69,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/azure/ai_foundry/demo_mistral.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/azure/ai_foundry/demo_mistral.py) +Full source: [cookbook/90_models/azure/ai_foundry/demo_mistral.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/azure/ai_foundry/demo_mistral.py) diff --git a/examples/models/azure/ai-foundry/image-agent-bytes.mdx b/examples/models/azure/ai-foundry/image-agent-bytes.mdx index 80000242b..505ae3d5e 100644 --- a/examples/models/azure/ai-foundry/image-agent-bytes.mdx +++ b/examples/models/azure/ai-foundry/image-agent-bytes.mdx @@ -97,4 +97,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/azure/ai_foundry/image_agent_bytes.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/azure/ai_foundry/image_agent_bytes.py) +Full source: [cookbook/90_models/azure/ai_foundry/image_agent_bytes.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/azure/ai_foundry/image_agent_bytes.py) diff --git a/examples/models/azure/ai-foundry/image-agent.mdx b/examples/models/azure/ai-foundry/image-agent.mdx index 7d023a051..c5c7d0628 100644 --- a/examples/models/azure/ai-foundry/image-agent.mdx +++ b/examples/models/azure/ai-foundry/image-agent.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/azure/ai_foundry/image_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/azure/ai_foundry/image_agent.py) +Full source: [cookbook/90_models/azure/ai_foundry/image_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/azure/ai_foundry/image_agent.py) diff --git a/examples/models/azure/ai-foundry/knowledge.mdx b/examples/models/azure/ai-foundry/knowledge.mdx index 4e312b299..f340e597c 100644 --- a/examples/models/azure/ai-foundry/knowledge.mdx +++ b/examples/models/azure/ai-foundry/knowledge.mdx @@ -82,4 +82,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/azure/ai_foundry/knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/azure/ai_foundry/knowledge.py) +Full source: [cookbook/90_models/azure/ai_foundry/knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/azure/ai_foundry/knowledge.py) diff --git a/examples/models/azure/ai-foundry/overview.mdx b/examples/models/azure/ai-foundry/overview.mdx index eeae64460..f846d6f22 100644 --- a/examples/models/azure/ai-foundry/overview.mdx +++ b/examples/models/azure/ai-foundry/overview.mdx @@ -12,5 +12,5 @@ description: "Azure AI Foundry examples for Claude, Cohere, Mistral, images, kno | [Azure Image Agent](/examples/models/azure/ai-foundry/image-agent) | Migrate an Azure AI Foundry image-URL agent from retired Llama 3.2 Vision to Llama 4 Scout. | | [Azure Image Agent Bytes](/examples/models/azure/ai-foundry/image-agent-bytes) | Migrate an Azure AI Foundry image-bytes agent from retired Llama 3.2 Vision to Llama 4 Scout. | | [Knowledge](/examples/models/azure/ai-foundry/knowledge) | Query a PgVector knowledge base from an Azure AI Foundry model with Azure OpenAI embeddings. | -| [AI Foundry Structured Output](/examples/models/azure/ai-foundry/structured-output) | Use Azure OpenAI for supported Pydantic structured output because the v2.7.2 Azure AI Foundry source fails before sending a request. | +| [AI Foundry Structured Output](/examples/models/azure/ai-foundry/structured-output) | Use Azure OpenAI for supported Pydantic structured output because the v2.7.4 Azure AI Foundry source fails before sending a request. | | [AI Foundry Tool Use](/examples/models/azure/ai-foundry/tool-use) | Call WebSearchTools from a Cohere Command R agent on Azure AI Foundry. | diff --git a/examples/models/azure/ai-foundry/structured-output.mdx b/examples/models/azure/ai-foundry/structured-output.mdx index c317add07..beb3ce7e7 100644 --- a/examples/models/azure/ai-foundry/structured-output.mdx +++ b/examples/models/azure/ai-foundry/structured-output.mdx @@ -1,13 +1,13 @@ --- title: "AI Foundry Structured Output" -description: "Use Azure OpenAI for supported Pydantic structured output because the v2.7.2 Azure AI Foundry source fails before sending a request." +description: "Use Azure OpenAI for supported Pydantic structured output because the v2.7.4 Azure AI Foundry source fails before sending a request." source: cookbook/90_models/azure/ai_foundry/structured_output.py --- -Use Azure OpenAI for the supported Pydantic structured-output pattern. The v2.7.2 Azure AI Foundry source below fails before sending a request. +Use Azure OpenAI for the supported Pydantic structured-output pattern. The v2.7.4 Azure AI Foundry source below fails before sending a request. - Agno v2.7.2's `AzureAIFoundry.get_request_params()` constructs `response_format` as a tuple, so both agents fail before sending a request. The adapter also depends on Microsoft's retired `azure-ai-inference` SDK. Do not run this source as written. + Agno v2.7.4's `AzureAIFoundry.get_request_params()` constructs `response_format` as a tuple, so both agents fail before sending a request. The adapter also depends on Microsoft's retired `azure-ai-inference` SDK. Do not run this source as written. ```python structured_output.py @@ -83,4 +83,4 @@ if __name__ == "__main__": Use [Azure OpenAI Structured Output](/models/providers/cloud/azure-openai/usage/structured-output) for a supported Pydantic output-schema example. -Full source: [cookbook/90_models/azure/ai_foundry/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/azure/ai_foundry/structured_output.py) +Full source: [cookbook/90_models/azure/ai_foundry/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/azure/ai_foundry/structured_output.py) diff --git a/examples/models/azure/ai-foundry/tool-use.mdx b/examples/models/azure/ai-foundry/tool-use.mdx index eaa69b5f2..425851f9a 100644 --- a/examples/models/azure/ai-foundry/tool-use.mdx +++ b/examples/models/azure/ai-foundry/tool-use.mdx @@ -67,4 +67,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/azure/ai_foundry/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/azure/ai_foundry/tool_use.py) +Full source: [cookbook/90_models/azure/ai_foundry/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/azure/ai_foundry/tool_use.py) diff --git a/examples/models/azure/claude/basic.mdx b/examples/models/azure/claude/basic.mdx index 57aa42040..87559d2b0 100644 --- a/examples/models/azure/claude/basic.mdx +++ b/examples/models/azure/claude/basic.mdx @@ -80,4 +80,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/azure/claude/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/azure/claude/basic.py) +Full source: [cookbook/90_models/azure/claude/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/azure/claude/basic.py) diff --git a/examples/models/azure/claude/thinking.mdx b/examples/models/azure/claude/thinking.mdx index cb76babb6..a575d8ae1 100644 --- a/examples/models/azure/claude/thinking.mdx +++ b/examples/models/azure/claude/thinking.mdx @@ -75,4 +75,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/azure/claude/thinking.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/azure/claude/thinking.py) +Full source: [cookbook/90_models/azure/claude/thinking.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/azure/claude/thinking.py) diff --git a/examples/models/azure/claude/tool-use.mdx b/examples/models/azure/claude/tool-use.mdx index e6e950240..0e693c92b 100644 --- a/examples/models/azure/claude/tool-use.mdx +++ b/examples/models/azure/claude/tool-use.mdx @@ -73,4 +73,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/azure/claude/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/azure/claude/tool_use.py) +Full source: [cookbook/90_models/azure/claude/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/azure/claude/tool_use.py) diff --git a/examples/models/azure/openai/basic.mdx b/examples/models/azure/openai/basic.mdx index 8dc094e9c..fc6798924 100644 --- a/examples/models/azure/openai/basic.mdx +++ b/examples/models/azure/openai/basic.mdx @@ -80,4 +80,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/azure/openai/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/azure/openai/basic.py) +Full source: [cookbook/90_models/azure/openai/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/azure/openai/basic.py) diff --git a/examples/models/azure/openai/db.mdx b/examples/models/azure/openai/db.mdx index a91f3948e..ed6f86da8 100644 --- a/examples/models/azure/openai/db.mdx +++ b/examples/models/azure/openai/db.mdx @@ -72,4 +72,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/azure/openai/db.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/azure/openai/db.py) +Full source: [cookbook/90_models/azure/openai/db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/azure/openai/db.py) diff --git a/examples/models/azure/openai/knowledge.mdx b/examples/models/azure/openai/knowledge.mdx index 099c4b47d..c8b0cf9ba 100644 --- a/examples/models/azure/openai/knowledge.mdx +++ b/examples/models/azure/openai/knowledge.mdx @@ -96,4 +96,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/azure/openai/knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/azure/openai/knowledge.py) +Full source: [cookbook/90_models/azure/openai/knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/azure/openai/knowledge.py) diff --git a/examples/models/azure/openai/structured-output.mdx b/examples/models/azure/openai/structured-output.mdx index 0419d66b8..ee76ce1b5 100644 --- a/examples/models/azure/openai/structured-output.mdx +++ b/examples/models/azure/openai/structured-output.mdx @@ -96,4 +96,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/azure/openai/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/azure/openai/structured_output.py) +Full source: [cookbook/90_models/azure/openai/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/azure/openai/structured_output.py) diff --git a/examples/models/azure/openai/tool-use.mdx b/examples/models/azure/openai/tool-use.mdx index bc8db9ee4..892e0f960 100644 --- a/examples/models/azure/openai/tool-use.mdx +++ b/examples/models/azure/openai/tool-use.mdx @@ -64,4 +64,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/azure/openai/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/azure/openai/tool_use.py) +Full source: [cookbook/90_models/azure/openai/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/azure/openai/tool_use.py) diff --git a/examples/models/azure/retry.mdx b/examples/models/azure/retry.mdx index 98ca96717..37f032fc6 100644 --- a/examples/models/azure/retry.mdx +++ b/examples/models/azure/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/azure/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/azure/retry.py) +Full source: [cookbook/90_models/azure/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/azure/retry.py) diff --git a/examples/models/cerebras-openai/basic.mdx b/examples/models/cerebras-openai/basic.mdx index c4a88e387..7c870a53c 100644 --- a/examples/models/cerebras-openai/basic.mdx +++ b/examples/models/cerebras-openai/basic.mdx @@ -84,4 +84,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cerebras_openai/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cerebras_openai/basic.py) +Full source: [cookbook/90_models/cerebras_openai/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cerebras_openai/basic.py) diff --git a/examples/models/cerebras-openai/db.mdx b/examples/models/cerebras-openai/db.mdx index aa338402f..dc0e817f1 100644 --- a/examples/models/cerebras-openai/db.mdx +++ b/examples/models/cerebras-openai/db.mdx @@ -78,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cerebras_openai/db.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cerebras_openai/db.py) +Full source: [cookbook/90_models/cerebras_openai/db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cerebras_openai/db.py) diff --git a/examples/models/cerebras-openai/knowledge.mdx b/examples/models/cerebras-openai/knowledge.mdx index 7520c459f..b27418333 100644 --- a/examples/models/cerebras-openai/knowledge.mdx +++ b/examples/models/cerebras-openai/knowledge.mdx @@ -80,4 +80,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cerebras_openai/knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cerebras_openai/knowledge.py) +Full source: [cookbook/90_models/cerebras_openai/knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cerebras_openai/knowledge.py) diff --git a/examples/models/cerebras-openai/oss-gpt.mdx b/examples/models/cerebras-openai/oss-gpt.mdx index 90bb5ef3f..30494b7d8 100644 --- a/examples/models/cerebras-openai/oss-gpt.mdx +++ b/examples/models/cerebras-openai/oss-gpt.mdx @@ -70,4 +70,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cerebras_openai/oss_gpt.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cerebras_openai/oss_gpt.py) +Full source: [cookbook/90_models/cerebras_openai/oss_gpt.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cerebras_openai/oss_gpt.py) diff --git a/examples/models/cerebras-openai/structured-output.mdx b/examples/models/cerebras-openai/structured-output.mdx index 630dfa361..f5a8f5d1e 100644 --- a/examples/models/cerebras-openai/structured-output.mdx +++ b/examples/models/cerebras-openai/structured-output.mdx @@ -99,4 +99,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cerebras_openai/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cerebras_openai/structured_output.py) +Full source: [cookbook/90_models/cerebras_openai/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cerebras_openai/structured_output.py) diff --git a/examples/models/cerebras-openai/tool-use.mdx b/examples/models/cerebras-openai/tool-use.mdx index c6f0d6fcf..f0f1746f7 100644 --- a/examples/models/cerebras-openai/tool-use.mdx +++ b/examples/models/cerebras-openai/tool-use.mdx @@ -86,4 +86,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cerebras_openai/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cerebras_openai/tool_use.py) +Full source: [cookbook/90_models/cerebras_openai/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cerebras_openai/tool_use.py) diff --git a/examples/models/cerebras/basic.mdx b/examples/models/cerebras/basic.mdx index 3b480d67b..e0b121a0b 100644 --- a/examples/models/cerebras/basic.mdx +++ b/examples/models/cerebras/basic.mdx @@ -84,4 +84,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cerebras/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cerebras/basic.py) +Full source: [cookbook/90_models/cerebras/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cerebras/basic.py) diff --git a/examples/models/cerebras/db.mdx b/examples/models/cerebras/db.mdx index 9e01adc0e..c0b3b656d 100644 --- a/examples/models/cerebras/db.mdx +++ b/examples/models/cerebras/db.mdx @@ -78,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cerebras/db.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cerebras/db.py) +Full source: [cookbook/90_models/cerebras/db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cerebras/db.py) diff --git a/examples/models/cerebras/knowledge.mdx b/examples/models/cerebras/knowledge.mdx index 5ac5b74c5..1278ec8fe 100644 --- a/examples/models/cerebras/knowledge.mdx +++ b/examples/models/cerebras/knowledge.mdx @@ -78,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cerebras/knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cerebras/knowledge.py) +Full source: [cookbook/90_models/cerebras/knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cerebras/knowledge.py) diff --git a/examples/models/cerebras/oss-gpt.mdx b/examples/models/cerebras/oss-gpt.mdx index acd14bf97..9afc3932d 100644 --- a/examples/models/cerebras/oss-gpt.mdx +++ b/examples/models/cerebras/oss-gpt.mdx @@ -70,4 +70,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cerebras/oss_gpt.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cerebras/oss_gpt.py) +Full source: [cookbook/90_models/cerebras/oss_gpt.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cerebras/oss_gpt.py) diff --git a/examples/models/cerebras/retry.mdx b/examples/models/cerebras/retry.mdx index a34757e95..963467aee 100644 --- a/examples/models/cerebras/retry.mdx +++ b/examples/models/cerebras/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/cerebras/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cerebras/retry.py) +Full source: [cookbook/90_models/cerebras/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cerebras/retry.py) diff --git a/examples/models/cerebras/structured-output.mdx b/examples/models/cerebras/structured-output.mdx index 64bcf8117..c32eab1ea 100644 --- a/examples/models/cerebras/structured-output.mdx +++ b/examples/models/cerebras/structured-output.mdx @@ -111,4 +111,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cerebras/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cerebras/structured_output.py) +Full source: [cookbook/90_models/cerebras/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cerebras/structured_output.py) diff --git a/examples/models/cerebras/tool-use.mdx b/examples/models/cerebras/tool-use.mdx index 7756745a3..4f93d2e92 100644 --- a/examples/models/cerebras/tool-use.mdx +++ b/examples/models/cerebras/tool-use.mdx @@ -86,4 +86,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cerebras/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cerebras/tool_use.py) +Full source: [cookbook/90_models/cerebras/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cerebras/tool_use.py) diff --git a/examples/models/clients/http-client-caching.mdx b/examples/models/clients/http-client-caching.mdx index 640af54f1..d91d04bef 100644 --- a/examples/models/clients/http-client-caching.mdx +++ b/examples/models/clients/http-client-caching.mdx @@ -206,4 +206,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/clients/http_client_caching.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/clients/http_client_caching.py) +Full source: [cookbook/90_models/clients/http_client_caching.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/clients/http_client_caching.py) diff --git a/examples/models/cloudflare/basic.mdx b/examples/models/cloudflare/basic.mdx index 59e61678b..534f06c44 100644 --- a/examples/models/cloudflare/basic.mdx +++ b/examples/models/cloudflare/basic.mdx @@ -97,4 +97,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cloudflare/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cloudflare/basic.py) +Full source: [cookbook/90_models/cloudflare/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cloudflare/basic.py) diff --git a/examples/models/cloudflare/structured-output.mdx b/examples/models/cloudflare/structured-output.mdx index ea9d4d7c7..e11bfccb8 100644 --- a/examples/models/cloudflare/structured-output.mdx +++ b/examples/models/cloudflare/structured-output.mdx @@ -108,4 +108,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cloudflare/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cloudflare/structured_output.py) +Full source: [cookbook/90_models/cloudflare/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cloudflare/structured_output.py) diff --git a/examples/models/cloudflare/switch-model.mdx b/examples/models/cloudflare/switch-model.mdx index fd052615f..c207d8470 100644 --- a/examples/models/cloudflare/switch-model.mdx +++ b/examples/models/cloudflare/switch-model.mdx @@ -95,4 +95,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cloudflare/switch_model.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cloudflare/switch_model.py) +Full source: [cookbook/90_models/cloudflare/switch_model.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cloudflare/switch_model.py) diff --git a/examples/models/cloudflare/tool-use.mdx b/examples/models/cloudflare/tool-use.mdx index 70ec585a1..233c55bd2 100644 --- a/examples/models/cloudflare/tool-use.mdx +++ b/examples/models/cloudflare/tool-use.mdx @@ -84,4 +84,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cloudflare/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cloudflare/tool_use.py) +Full source: [cookbook/90_models/cloudflare/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cloudflare/tool_use.py) diff --git a/examples/models/cohere/basic.mdx b/examples/models/cohere/basic.mdx index 95ee9f9e8..8ed0b67c1 100644 --- a/examples/models/cohere/basic.mdx +++ b/examples/models/cohere/basic.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cohere/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cohere/basic.py) +Full source: [cookbook/90_models/cohere/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cohere/basic.py) diff --git a/examples/models/cohere/db.mdx b/examples/models/cohere/db.mdx index d4b1e2f33..9c3c12df0 100644 --- a/examples/models/cohere/db.mdx +++ b/examples/models/cohere/db.mdx @@ -70,4 +70,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cohere/db.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cohere/db.py) +Full source: [cookbook/90_models/cohere/db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cohere/db.py) diff --git a/examples/models/cohere/image-agent-bytes.mdx b/examples/models/cohere/image-agent-bytes.mdx index 8ff402b9e..d8c6c7915 100644 --- a/examples/models/cohere/image-agent-bytes.mdx +++ b/examples/models/cohere/image-agent-bytes.mdx @@ -93,4 +93,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cohere/image_agent_bytes.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cohere/image_agent_bytes.py) +Full source: [cookbook/90_models/cohere/image_agent_bytes.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cohere/image_agent_bytes.py) diff --git a/examples/models/cohere/image-agent-local-file.mdx b/examples/models/cohere/image-agent-local-file.mdx index 91de3ac2f..78c0ff6db 100644 --- a/examples/models/cohere/image-agent-local-file.mdx +++ b/examples/models/cohere/image-agent-local-file.mdx @@ -90,4 +90,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cohere/image_agent_local_file.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cohere/image_agent_local_file.py) +Full source: [cookbook/90_models/cohere/image_agent_local_file.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cohere/image_agent_local_file.py) diff --git a/examples/models/cohere/image-agent.mdx b/examples/models/cohere/image-agent.mdx index 7d785fa35..9a4b1e583 100644 --- a/examples/models/cohere/image-agent.mdx +++ b/examples/models/cohere/image-agent.mdx @@ -82,4 +82,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cohere/image_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cohere/image_agent.py) +Full source: [cookbook/90_models/cohere/image_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cohere/image_agent.py) diff --git a/examples/models/cohere/knowledge.mdx b/examples/models/cohere/knowledge.mdx index 3d1c9611e..876cb2fd7 100644 --- a/examples/models/cohere/knowledge.mdx +++ b/examples/models/cohere/knowledge.mdx @@ -70,4 +70,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cohere/knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cohere/knowledge.py) +Full source: [cookbook/90_models/cohere/knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cohere/knowledge.py) diff --git a/examples/models/cohere/memory.mdx b/examples/models/cohere/memory.mdx index 82d262785..ff5718467 100644 --- a/examples/models/cohere/memory.mdx +++ b/examples/models/cohere/memory.mdx @@ -85,4 +85,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cohere/memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cohere/memory.py) +Full source: [cookbook/90_models/cohere/memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cohere/memory.py) diff --git a/examples/models/cohere/retry.mdx b/examples/models/cohere/retry.mdx index 585900f91..7a894d99e 100644 --- a/examples/models/cohere/retry.mdx +++ b/examples/models/cohere/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/cohere/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cohere/retry.py) +Full source: [cookbook/90_models/cohere/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cohere/retry.py) diff --git a/examples/models/cohere/structured-output.mdx b/examples/models/cohere/structured-output.mdx index b568205dc..4c335809a 100644 --- a/examples/models/cohere/structured-output.mdx +++ b/examples/models/cohere/structured-output.mdx @@ -97,4 +97,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cohere/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cohere/structured_output.py) +Full source: [cookbook/90_models/cohere/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cohere/structured_output.py) diff --git a/examples/models/cohere/tool-use.mdx b/examples/models/cohere/tool-use.mdx index beb8cb328..3b8e95f0b 100644 --- a/examples/models/cohere/tool-use.mdx +++ b/examples/models/cohere/tool-use.mdx @@ -68,4 +68,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cohere/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cohere/tool_use.py) +Full source: [cookbook/90_models/cohere/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cohere/tool_use.py) diff --git a/examples/models/cometapi/basic.mdx b/examples/models/cometapi/basic.mdx index 7034184ef..87ca2485f 100644 --- a/examples/models/cometapi/basic.mdx +++ b/examples/models/cometapi/basic.mdx @@ -80,4 +80,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cometapi/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cometapi/basic.py) +Full source: [cookbook/90_models/cometapi/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cometapi/basic.py) diff --git a/examples/models/cometapi/image-agent-with-memory.mdx b/examples/models/cometapi/image-agent-with-memory.mdx index da564021d..40db51678 100644 --- a/examples/models/cometapi/image-agent-with-memory.mdx +++ b/examples/models/cometapi/image-agent-with-memory.mdx @@ -81,4 +81,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cometapi/image_agent_with_memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cometapi/image_agent_with_memory.py) +Full source: [cookbook/90_models/cometapi/image_agent_with_memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cometapi/image_agent_with_memory.py) diff --git a/examples/models/cometapi/image-agent.mdx b/examples/models/cometapi/image-agent.mdx index 2fe530701..cdcc7dd65 100644 --- a/examples/models/cometapi/image-agent.mdx +++ b/examples/models/cometapi/image-agent.mdx @@ -72,4 +72,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cometapi/image_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cometapi/image_agent.py) +Full source: [cookbook/90_models/cometapi/image_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cometapi/image_agent.py) diff --git a/examples/models/cometapi/multi-model.mdx b/examples/models/cometapi/multi-model.mdx index a170b54b8..d57c9880c 100644 --- a/examples/models/cometapi/multi-model.mdx +++ b/examples/models/cometapi/multi-model.mdx @@ -99,4 +99,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cometapi/multi_model.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cometapi/multi_model.py) +Full source: [cookbook/90_models/cometapi/multi_model.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cometapi/multi_model.py) diff --git a/examples/models/cometapi/retry.mdx b/examples/models/cometapi/retry.mdx index 9df11d0f9..8bd3fa2cf 100644 --- a/examples/models/cometapi/retry.mdx +++ b/examples/models/cometapi/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/cometapi/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cometapi/retry.py) +Full source: [cookbook/90_models/cometapi/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cometapi/retry.py) diff --git a/examples/models/cometapi/structured-output.mdx b/examples/models/cometapi/structured-output.mdx index 6f6f246ed..c1bf16b39 100644 --- a/examples/models/cometapi/structured-output.mdx +++ b/examples/models/cometapi/structured-output.mdx @@ -81,4 +81,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cometapi/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cometapi/structured_output.py) +Full source: [cookbook/90_models/cometapi/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cometapi/structured_output.py) diff --git a/examples/models/cometapi/tool-use.mdx b/examples/models/cometapi/tool-use.mdx index b5da421d5..9427d1082 100644 --- a/examples/models/cometapi/tool-use.mdx +++ b/examples/models/cometapi/tool-use.mdx @@ -86,4 +86,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/cometapi/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cometapi/tool_use.py) +Full source: [cookbook/90_models/cometapi/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cometapi/tool_use.py) diff --git a/examples/models/dashscope/basic.mdx b/examples/models/dashscope/basic.mdx index d7513cbc4..6e09ec75f 100644 --- a/examples/models/dashscope/basic.mdx +++ b/examples/models/dashscope/basic.mdx @@ -82,4 +82,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/dashscope/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/dashscope/basic.py) +Full source: [cookbook/90_models/dashscope/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/dashscope/basic.py) diff --git a/examples/models/dashscope/image-agent-bytes.mdx b/examples/models/dashscope/image-agent-bytes.mdx index 6c4ec3f96..3b1ead698 100644 --- a/examples/models/dashscope/image-agent-bytes.mdx +++ b/examples/models/dashscope/image-agent-bytes.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/dashscope/image_agent_bytes.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/dashscope/image_agent_bytes.py) +Full source: [cookbook/90_models/dashscope/image_agent_bytes.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/dashscope/image_agent_bytes.py) diff --git a/examples/models/dashscope/image-agent.mdx b/examples/models/dashscope/image-agent.mdx index d495c6abb..beb16ec50 100644 --- a/examples/models/dashscope/image-agent.mdx +++ b/examples/models/dashscope/image-agent.mdx @@ -104,4 +104,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/dashscope/image_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/dashscope/image_agent.py) +Full source: [cookbook/90_models/dashscope/image_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/dashscope/image_agent.py) diff --git a/examples/models/dashscope/knowledge-tools.mdx b/examples/models/dashscope/knowledge-tools.mdx index f92631af6..773d2dc14 100644 --- a/examples/models/dashscope/knowledge-tools.mdx +++ b/examples/models/dashscope/knowledge-tools.mdx @@ -98,4 +98,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/dashscope/knowledge_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/dashscope/knowledge_tools.py) +Full source: [cookbook/90_models/dashscope/knowledge_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/dashscope/knowledge_tools.py) diff --git a/examples/models/dashscope/retry.mdx b/examples/models/dashscope/retry.mdx index 0be242160..5c097a1f6 100644 --- a/examples/models/dashscope/retry.mdx +++ b/examples/models/dashscope/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/dashscope/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/dashscope/retry.py) +Full source: [cookbook/90_models/dashscope/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/dashscope/retry.py) diff --git a/examples/models/dashscope/structured-output.mdx b/examples/models/dashscope/structured-output.mdx index 709cabd8a..a805e2349 100644 --- a/examples/models/dashscope/structured-output.mdx +++ b/examples/models/dashscope/structured-output.mdx @@ -94,4 +94,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/dashscope/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/dashscope/structured_output.py) +Full source: [cookbook/90_models/dashscope/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/dashscope/structured_output.py) diff --git a/examples/models/dashscope/thinking-agent.mdx b/examples/models/dashscope/thinking-agent.mdx index c30ffe055..b7893a2fc 100644 --- a/examples/models/dashscope/thinking-agent.mdx +++ b/examples/models/dashscope/thinking-agent.mdx @@ -71,4 +71,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/dashscope/thinking_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/dashscope/thinking_agent.py) +Full source: [cookbook/90_models/dashscope/thinking_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/dashscope/thinking_agent.py) diff --git a/examples/models/dashscope/tool-use.mdx b/examples/models/dashscope/tool-use.mdx index 16147543f..1a934078c 100644 --- a/examples/models/dashscope/tool-use.mdx +++ b/examples/models/dashscope/tool-use.mdx @@ -75,4 +75,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/dashscope/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/dashscope/tool_use.py) +Full source: [cookbook/90_models/dashscope/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/dashscope/tool_use.py) diff --git a/examples/models/deepinfra/basic.mdx b/examples/models/deepinfra/basic.mdx index 02bb40fa6..33f23466c 100644 --- a/examples/models/deepinfra/basic.mdx +++ b/examples/models/deepinfra/basic.mdx @@ -89,4 +89,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/deepinfra/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/deepinfra/basic.py) +Full source: [cookbook/90_models/deepinfra/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/deepinfra/basic.py) diff --git a/examples/models/deepinfra/json-output.mdx b/examples/models/deepinfra/json-output.mdx index acb1b88d6..2aa4bc796 100644 --- a/examples/models/deepinfra/json-output.mdx +++ b/examples/models/deepinfra/json-output.mdx @@ -95,4 +95,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/deepinfra/json_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/deepinfra/json_output.py) +Full source: [cookbook/90_models/deepinfra/json_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/deepinfra/json_output.py) diff --git a/examples/models/deepinfra/retry.mdx b/examples/models/deepinfra/retry.mdx index 916cfad99..18a43c240 100644 --- a/examples/models/deepinfra/retry.mdx +++ b/examples/models/deepinfra/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/deepinfra/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/deepinfra/retry.py) +Full source: [cookbook/90_models/deepinfra/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/deepinfra/retry.py) diff --git a/examples/models/deepinfra/tool-use.mdx b/examples/models/deepinfra/tool-use.mdx index 9f83c32b2..f8d661dfa 100644 --- a/examples/models/deepinfra/tool-use.mdx +++ b/examples/models/deepinfra/tool-use.mdx @@ -74,4 +74,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/deepinfra/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/deepinfra/tool_use.py) +Full source: [cookbook/90_models/deepinfra/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/deepinfra/tool_use.py) diff --git a/examples/models/deepseek/basic.mdx b/examples/models/deepseek/basic.mdx index c83897963..b757bee22 100644 --- a/examples/models/deepseek/basic.mdx +++ b/examples/models/deepseek/basic.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/deepseek/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/deepseek/basic.py) +Full source: [cookbook/90_models/deepseek/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/deepseek/basic.py) diff --git a/examples/models/deepseek/reasoning-agent.mdx b/examples/models/deepseek/reasoning-agent.mdx index 39efad542..462cf63d8 100644 --- a/examples/models/deepseek/reasoning-agent.mdx +++ b/examples/models/deepseek/reasoning-agent.mdx @@ -73,4 +73,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/deepseek/reasoning_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/deepseek/reasoning_agent.py) +Full source: [cookbook/90_models/deepseek/reasoning_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/deepseek/reasoning_agent.py) diff --git a/examples/models/deepseek/reasoning-effort.mdx b/examples/models/deepseek/reasoning-effort.mdx index d368e486b..72ec310bd 100644 --- a/examples/models/deepseek/reasoning-effort.mdx +++ b/examples/models/deepseek/reasoning-effort.mdx @@ -77,4 +77,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/deepseek/reasoning_effort.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/deepseek/reasoning_effort.py) +Full source: [cookbook/90_models/deepseek/reasoning_effort.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/deepseek/reasoning_effort.py) diff --git a/examples/models/deepseek/retry.mdx b/examples/models/deepseek/retry.mdx index 57d989e08..7c4e48066 100644 --- a/examples/models/deepseek/retry.mdx +++ b/examples/models/deepseek/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/deepseek/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/deepseek/retry.py) +Full source: [cookbook/90_models/deepseek/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/deepseek/retry.py) diff --git a/examples/models/deepseek/structured-output.mdx b/examples/models/deepseek/structured-output.mdx index 22c922207..f9da1f8f9 100644 --- a/examples/models/deepseek/structured-output.mdx +++ b/examples/models/deepseek/structured-output.mdx @@ -100,4 +100,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/deepseek/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/deepseek/structured_output.py) +Full source: [cookbook/90_models/deepseek/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/deepseek/structured_output.py) diff --git a/examples/models/deepseek/thinking-mode.mdx b/examples/models/deepseek/thinking-mode.mdx index bac36f582..4bd3ae8c6 100644 --- a/examples/models/deepseek/thinking-mode.mdx +++ b/examples/models/deepseek/thinking-mode.mdx @@ -75,4 +75,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/deepseek/thinking_mode.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/deepseek/thinking_mode.py) +Full source: [cookbook/90_models/deepseek/thinking_mode.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/deepseek/thinking_mode.py) diff --git a/examples/models/deepseek/thinking-tool-calls.mdx b/examples/models/deepseek/thinking-tool-calls.mdx index 0b78ed8c5..34026d365 100644 --- a/examples/models/deepseek/thinking-tool-calls.mdx +++ b/examples/models/deepseek/thinking-tool-calls.mdx @@ -68,4 +68,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/deepseek/thinking_tool_calls.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/deepseek/thinking_tool_calls.py) +Full source: [cookbook/90_models/deepseek/thinking_tool_calls.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/deepseek/thinking_tool_calls.py) diff --git a/examples/models/deepseek/tool-use.mdx b/examples/models/deepseek/tool-use.mdx index 3b9783efb..46194faf8 100644 --- a/examples/models/deepseek/tool-use.mdx +++ b/examples/models/deepseek/tool-use.mdx @@ -69,4 +69,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/deepseek/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/deepseek/tool_use.py) +Full source: [cookbook/90_models/deepseek/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/deepseek/tool_use.py) diff --git a/examples/models/fireworks/basic.mdx b/examples/models/fireworks/basic.mdx index c6b2adf76..36a3231c9 100644 --- a/examples/models/fireworks/basic.mdx +++ b/examples/models/fireworks/basic.mdx @@ -89,4 +89,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/fireworks/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/fireworks/basic.py) +Full source: [cookbook/90_models/fireworks/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/fireworks/basic.py) diff --git a/examples/models/fireworks/retry.mdx b/examples/models/fireworks/retry.mdx index d23002057..e5e510d99 100644 --- a/examples/models/fireworks/retry.mdx +++ b/examples/models/fireworks/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/fireworks/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/fireworks/retry.py) +Full source: [cookbook/90_models/fireworks/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/fireworks/retry.py) diff --git a/examples/models/fireworks/structured-output.mdx b/examples/models/fireworks/structured-output.mdx index da0e0d3f5..c44298482 100644 --- a/examples/models/fireworks/structured-output.mdx +++ b/examples/models/fireworks/structured-output.mdx @@ -103,4 +103,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/fireworks/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/fireworks/structured_output.py) +Full source: [cookbook/90_models/fireworks/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/fireworks/structured_output.py) diff --git a/examples/models/fireworks/tool-use.mdx b/examples/models/fireworks/tool-use.mdx index 4f876da0a..f7de6ca60 100644 --- a/examples/models/fireworks/tool-use.mdx +++ b/examples/models/fireworks/tool-use.mdx @@ -73,4 +73,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/fireworks/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/fireworks/tool_use.py) +Full source: [cookbook/90_models/fireworks/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/fireworks/tool_use.py) diff --git a/examples/models/google/gemini-interactions/antigravity-environment-config.mdx b/examples/models/google/gemini-interactions/antigravity-environment-config.mdx index 9b903f279..b90c6329a 100644 --- a/examples/models/google/gemini-interactions/antigravity-environment-config.mdx +++ b/examples/models/google/gemini-interactions/antigravity-environment-config.mdx @@ -115,4 +115,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini_interactions/antigravity_environment_config.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini_interactions/antigravity_environment_config.py) +Full source: [cookbook/90_models/google/gemini_interactions/antigravity_environment_config.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini_interactions/antigravity_environment_config.py) diff --git a/examples/models/google/gemini-interactions/antigravity-multi-turn.mdx b/examples/models/google/gemini-interactions/antigravity-multi-turn.mdx index c56971520..a7b32e20a 100644 --- a/examples/models/google/gemini-interactions/antigravity-multi-turn.mdx +++ b/examples/models/google/gemini-interactions/antigravity-multi-turn.mdx @@ -94,4 +94,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini_interactions/antigravity_multi_turn.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini_interactions/antigravity_multi_turn.py) +Full source: [cookbook/90_models/google/gemini_interactions/antigravity_multi_turn.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini_interactions/antigravity_multi_turn.py) diff --git a/examples/models/google/gemini-interactions/antigravity-streaming.mdx b/examples/models/google/gemini-interactions/antigravity-streaming.mdx index 2ce3f339b..653afced2 100644 --- a/examples/models/google/gemini-interactions/antigravity-streaming.mdx +++ b/examples/models/google/gemini-interactions/antigravity-streaming.mdx @@ -78,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini_interactions/antigravity_streaming.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini_interactions/antigravity_streaming.py) +Full source: [cookbook/90_models/google/gemini_interactions/antigravity_streaming.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini_interactions/antigravity_streaming.py) diff --git a/examples/models/google/gemini-interactions/antigravity.mdx b/examples/models/google/gemini-interactions/antigravity.mdx index cf1296844..34b93fe5f 100644 --- a/examples/models/google/gemini-interactions/antigravity.mdx +++ b/examples/models/google/gemini-interactions/antigravity.mdx @@ -78,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini_interactions/antigravity.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini_interactions/antigravity.py) +Full source: [cookbook/90_models/google/gemini_interactions/antigravity.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini_interactions/antigravity.py) diff --git a/examples/models/google/gemini-interactions/audio-understanding.mdx b/examples/models/google/gemini-interactions/audio-understanding.mdx index 87dd79624..2903fefac 100644 --- a/examples/models/google/gemini-interactions/audio-understanding.mdx +++ b/examples/models/google/gemini-interactions/audio-understanding.mdx @@ -75,4 +75,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini_interactions/audio_understanding.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini_interactions/audio_understanding.py) +Full source: [cookbook/90_models/google/gemini_interactions/audio_understanding.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini_interactions/audio_understanding.py) diff --git a/examples/models/google/gemini-interactions/basic.mdx b/examples/models/google/gemini-interactions/basic.mdx index c6a9eb82c..eca4b0698 100644 --- a/examples/models/google/gemini-interactions/basic.mdx +++ b/examples/models/google/gemini-interactions/basic.mdx @@ -79,4 +79,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini_interactions/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini_interactions/basic.py) +Full source: [cookbook/90_models/google/gemini_interactions/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini_interactions/basic.py) diff --git a/examples/models/google/gemini-interactions/deep-research-collaborative-planning.mdx b/examples/models/google/gemini-interactions/deep-research-collaborative-planning.mdx index a3d98b488..af7d3d796 100644 --- a/examples/models/google/gemini-interactions/deep-research-collaborative-planning.mdx +++ b/examples/models/google/gemini-interactions/deep-research-collaborative-planning.mdx @@ -104,4 +104,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini_interactions/deep_research_collaborative_planning.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini_interactions/deep_research_collaborative_planning.py) +Full source: [cookbook/90_models/google/gemini_interactions/deep_research_collaborative_planning.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini_interactions/deep_research_collaborative_planning.py) diff --git a/examples/models/google/gemini-interactions/deep-research-file-search.mdx b/examples/models/google/gemini-interactions/deep-research-file-search.mdx index e1ee9c879..4ff7e8d6c 100644 --- a/examples/models/google/gemini-interactions/deep-research-file-search.mdx +++ b/examples/models/google/gemini-interactions/deep-research-file-search.mdx @@ -116,4 +116,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini_interactions/deep_research_file_search.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini_interactions/deep_research_file_search.py) +Full source: [cookbook/90_models/google/gemini_interactions/deep_research_file_search.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini_interactions/deep_research_file_search.py) diff --git a/examples/models/google/gemini-interactions/deep-research-mcp.mdx b/examples/models/google/gemini-interactions/deep-research-mcp.mdx index a26ea3b62..ac226c802 100644 --- a/examples/models/google/gemini-interactions/deep-research-mcp.mdx +++ b/examples/models/google/gemini-interactions/deep-research-mcp.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini_interactions/deep_research_mcp.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini_interactions/deep_research_mcp.py) +Full source: [cookbook/90_models/google/gemini_interactions/deep_research_mcp.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini_interactions/deep_research_mcp.py) diff --git a/examples/models/google/gemini-interactions/deep-research-multi-turn.mdx b/examples/models/google/gemini-interactions/deep-research-multi-turn.mdx index 238008b32..3ae9b9f7e 100644 --- a/examples/models/google/gemini-interactions/deep-research-multi-turn.mdx +++ b/examples/models/google/gemini-interactions/deep-research-multi-turn.mdx @@ -93,4 +93,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini_interactions/deep_research_multi_turn.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini_interactions/deep_research_multi_turn.py) +Full source: [cookbook/90_models/google/gemini_interactions/deep_research_multi_turn.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini_interactions/deep_research_multi_turn.py) diff --git a/examples/models/google/gemini-interactions/deep-research-multimodal.mdx b/examples/models/google/gemini-interactions/deep-research-multimodal.mdx index e28a2d98a..254ebbe85 100644 --- a/examples/models/google/gemini-interactions/deep-research-multimodal.mdx +++ b/examples/models/google/gemini-interactions/deep-research-multimodal.mdx @@ -80,4 +80,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini_interactions/deep_research_multimodal.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini_interactions/deep_research_multimodal.py) +Full source: [cookbook/90_models/google/gemini_interactions/deep_research_multimodal.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini_interactions/deep_research_multimodal.py) diff --git a/examples/models/google/gemini-interactions/deep-research-streaming.mdx b/examples/models/google/gemini-interactions/deep-research-streaming.mdx index 3145412d8..733e05fbb 100644 --- a/examples/models/google/gemini-interactions/deep-research-streaming.mdx +++ b/examples/models/google/gemini-interactions/deep-research-streaming.mdx @@ -77,4 +77,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini_interactions/deep_research_streaming.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini_interactions/deep_research_streaming.py) +Full source: [cookbook/90_models/google/gemini_interactions/deep_research_streaming.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini_interactions/deep_research_streaming.py) diff --git a/examples/models/google/gemini-interactions/deep-research-visualization.mdx b/examples/models/google/gemini-interactions/deep-research-visualization.mdx index 83ce9014d..9bc03a40f 100644 --- a/examples/models/google/gemini-interactions/deep-research-visualization.mdx +++ b/examples/models/google/gemini-interactions/deep-research-visualization.mdx @@ -69,4 +69,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini_interactions/deep_research_visualization.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini_interactions/deep_research_visualization.py) +Full source: [cookbook/90_models/google/gemini_interactions/deep_research_visualization.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini_interactions/deep_research_visualization.py) diff --git a/examples/models/google/gemini-interactions/deep-research.mdx b/examples/models/google/gemini-interactions/deep-research.mdx index 03e7b2323..be159333d 100644 --- a/examples/models/google/gemini-interactions/deep-research.mdx +++ b/examples/models/google/gemini-interactions/deep-research.mdx @@ -92,4 +92,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini_interactions/deep_research.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini_interactions/deep_research.py) +Full source: [cookbook/90_models/google/gemini_interactions/deep_research.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini_interactions/deep_research.py) diff --git a/examples/models/google/gemini-interactions/document-processing.mdx b/examples/models/google/gemini-interactions/document-processing.mdx index 3c5fa142b..e67fc4f34 100644 --- a/examples/models/google/gemini-interactions/document-processing.mdx +++ b/examples/models/google/gemini-interactions/document-processing.mdx @@ -75,4 +75,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini_interactions/document_processing.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini_interactions/document_processing.py) +Full source: [cookbook/90_models/google/gemini_interactions/document_processing.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini_interactions/document_processing.py) diff --git a/examples/models/google/gemini-interactions/image-generation.mdx b/examples/models/google/gemini-interactions/image-generation.mdx index 881c7ff79..9ccd09a1d 100644 --- a/examples/models/google/gemini-interactions/image-generation.mdx +++ b/examples/models/google/gemini-interactions/image-generation.mdx @@ -89,4 +89,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini_interactions/image_generation.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini_interactions/image_generation.py) +Full source: [cookbook/90_models/google/gemini_interactions/image_generation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini_interactions/image_generation.py) diff --git a/examples/models/google/gemini-interactions/image-understanding.mdx b/examples/models/google/gemini-interactions/image-understanding.mdx index a29e25af3..ac432342d 100644 --- a/examples/models/google/gemini-interactions/image-understanding.mdx +++ b/examples/models/google/gemini-interactions/image-understanding.mdx @@ -70,4 +70,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini_interactions/image_understanding.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini_interactions/image_understanding.py) +Full source: [cookbook/90_models/google/gemini_interactions/image_understanding.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini_interactions/image_understanding.py) diff --git a/examples/models/google/gemini-interactions/multi-turn.mdx b/examples/models/google/gemini-interactions/multi-turn.mdx index 35fd53457..baf05fc17 100644 --- a/examples/models/google/gemini-interactions/multi-turn.mdx +++ b/examples/models/google/gemini-interactions/multi-turn.mdx @@ -83,4 +83,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini_interactions/multi_turn.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini_interactions/multi_turn.py) +Full source: [cookbook/90_models/google/gemini_interactions/multi_turn.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini_interactions/multi_turn.py) diff --git a/examples/models/google/gemini-interactions/search.mdx b/examples/models/google/gemini-interactions/search.mdx index de538dd83..796c09ba1 100644 --- a/examples/models/google/gemini-interactions/search.mdx +++ b/examples/models/google/gemini-interactions/search.mdx @@ -73,4 +73,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini_interactions/search.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini_interactions/search.py) +Full source: [cookbook/90_models/google/gemini_interactions/search.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini_interactions/search.py) diff --git a/examples/models/google/gemini-interactions/structured-output.mdx b/examples/models/google/gemini-interactions/structured-output.mdx index 978a1dca9..995e57d0c 100644 --- a/examples/models/google/gemini-interactions/structured-output.mdx +++ b/examples/models/google/gemini-interactions/structured-output.mdx @@ -93,4 +93,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini_interactions/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini_interactions/structured_output.py) +Full source: [cookbook/90_models/google/gemini_interactions/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini_interactions/structured_output.py) diff --git a/examples/models/google/gemini-interactions/thinking.mdx b/examples/models/google/gemini-interactions/thinking.mdx index b06e1e0f8..ae5c9ca82 100644 --- a/examples/models/google/gemini-interactions/thinking.mdx +++ b/examples/models/google/gemini-interactions/thinking.mdx @@ -78,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini_interactions/thinking.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini_interactions/thinking.py) +Full source: [cookbook/90_models/google/gemini_interactions/thinking.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini_interactions/thinking.py) diff --git a/examples/models/google/gemini-interactions/tool-use.mdx b/examples/models/google/gemini-interactions/tool-use.mdx index a11f69474..0d6ce4887 100644 --- a/examples/models/google/gemini-interactions/tool-use.mdx +++ b/examples/models/google/gemini-interactions/tool-use.mdx @@ -75,4 +75,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini_interactions/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini_interactions/tool_use.py) +Full source: [cookbook/90_models/google/gemini_interactions/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini_interactions/tool_use.py) diff --git a/examples/models/google/gemini-interactions/video-understanding.mdx b/examples/models/google/gemini-interactions/video-understanding.mdx index 7b4d378d9..300d84eef 100644 --- a/examples/models/google/gemini-interactions/video-understanding.mdx +++ b/examples/models/google/gemini-interactions/video-understanding.mdx @@ -77,4 +77,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini_interactions/video_understanding.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini_interactions/video_understanding.py) +Full source: [cookbook/90_models/google/gemini_interactions/video_understanding.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini_interactions/video_understanding.py) diff --git a/examples/models/google/gemini/agent-with-thinking-budget.mdx b/examples/models/google/gemini/agent-with-thinking-budget.mdx index 6b5ba8527..c578ee4b2 100644 --- a/examples/models/google/gemini/agent-with-thinking-budget.mdx +++ b/examples/models/google/gemini/agent-with-thinking-budget.mdx @@ -84,4 +84,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/agent_with_thinking_budget.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/agent_with_thinking_budget.py) +Full source: [cookbook/90_models/google/gemini/agent_with_thinking_budget.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/agent_with_thinking_budget.py) diff --git a/examples/models/google/gemini/audio-input-bytes-content.mdx b/examples/models/google/gemini/audio-input-bytes-content.mdx index 6c4b7b7a8..1cc6d1bd0 100644 --- a/examples/models/google/gemini/audio-input-bytes-content.mdx +++ b/examples/models/google/gemini/audio-input-bytes-content.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/audio_input_bytes_content.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/audio_input_bytes_content.py) +Full source: [cookbook/90_models/google/gemini/audio_input_bytes_content.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/audio_input_bytes_content.py) diff --git a/examples/models/google/gemini/audio-input-file-upload.mdx b/examples/models/google/gemini/audio-input-file-upload.mdx index b730625f3..d15c31919 100644 --- a/examples/models/google/gemini/audio-input-file-upload.mdx +++ b/examples/models/google/gemini/audio-input-file-upload.mdx @@ -95,4 +95,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/audio_input_file_upload.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/audio_input_file_upload.py) +Full source: [cookbook/90_models/google/gemini/audio_input_file_upload.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/audio_input_file_upload.py) diff --git a/examples/models/google/gemini/audio-input-local-file-upload.mdx b/examples/models/google/gemini/audio-input-local-file-upload.mdx index 344cd0aa1..1bc379c05 100644 --- a/examples/models/google/gemini/audio-input-local-file-upload.mdx +++ b/examples/models/google/gemini/audio-input-local-file-upload.mdx @@ -75,4 +75,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/audio_input_local_file_upload.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/audio_input_local_file_upload.py) +Full source: [cookbook/90_models/google/gemini/audio_input_local_file_upload.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/audio_input_local_file_upload.py) diff --git a/examples/models/google/gemini/basic.mdx b/examples/models/google/gemini/basic.mdx index 6916aff1b..0d311e29f 100644 --- a/examples/models/google/gemini/basic.mdx +++ b/examples/models/google/gemini/basic.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/basic.py) +Full source: [cookbook/90_models/google/gemini/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/basic.py) diff --git a/examples/models/google/gemini/csv-input.mdx b/examples/models/google/gemini/csv-input.mdx index 6fc21a06b..966844987 100644 --- a/examples/models/google/gemini/csv-input.mdx +++ b/examples/models/google/gemini/csv-input.mdx @@ -83,4 +83,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/csv_input.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/csv_input.py) +Full source: [cookbook/90_models/google/gemini/csv_input.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/csv_input.py) diff --git a/examples/models/google/gemini/db.mdx b/examples/models/google/gemini/db.mdx index 1d0a87635..e53cd2527 100644 --- a/examples/models/google/gemini/db.mdx +++ b/examples/models/google/gemini/db.mdx @@ -70,4 +70,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/db.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/db.py) +Full source: [cookbook/90_models/google/gemini/db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/db.py) diff --git a/examples/models/google/gemini/external-url-input.mdx b/examples/models/google/gemini/external-url-input.mdx index 68bfa444e..c91370e3a 100644 --- a/examples/models/google/gemini/external-url-input.mdx +++ b/examples/models/google/gemini/external-url-input.mdx @@ -88,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/external_url_input.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/external_url_input.py) +Full source: [cookbook/90_models/google/gemini/external_url_input.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/external_url_input.py) diff --git a/examples/models/google/gemini/file-search-advanced.mdx b/examples/models/google/gemini/file-search-advanced.mdx index 0fd5de8af..53180b3cb 100644 --- a/examples/models/google/gemini/file-search-advanced.mdx +++ b/examples/models/google/gemini/file-search-advanced.mdx @@ -243,4 +243,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/file_search_advanced.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/file_search_advanced.py) +Full source: [cookbook/90_models/google/gemini/file_search_advanced.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/file_search_advanced.py) diff --git a/examples/models/google/gemini/file-search-basic.mdx b/examples/models/google/gemini/file-search-basic.mdx index a9d6b9cf1..4246627eb 100644 --- a/examples/models/google/gemini/file-search-basic.mdx +++ b/examples/models/google/gemini/file-search-basic.mdx @@ -149,4 +149,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/file_search_basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/file_search_basic.py) +Full source: [cookbook/90_models/google/gemini/file_search_basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/file_search_basic.py) diff --git a/examples/models/google/gemini/file-search-image-upload.mdx b/examples/models/google/gemini/file-search-image-upload.mdx index fdfa25eff..fcc37db45 100644 --- a/examples/models/google/gemini/file-search-image-upload.mdx +++ b/examples/models/google/gemini/file-search-image-upload.mdx @@ -178,4 +178,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/file_search_image_upload.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/file_search_image_upload.py) +Full source: [cookbook/90_models/google/gemini/file_search_image_upload.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/file_search_image_upload.py) diff --git a/examples/models/google/gemini/file-search-rag-pipeline.mdx b/examples/models/google/gemini/file-search-rag-pipeline.mdx index eeadf4c44..a664f449b 100644 --- a/examples/models/google/gemini/file-search-rag-pipeline.mdx +++ b/examples/models/google/gemini/file-search-rag-pipeline.mdx @@ -290,4 +290,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/file_search_rag_pipeline.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/file_search_rag_pipeline.py) +Full source: [cookbook/90_models/google/gemini/file_search_rag_pipeline.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/file_search_rag_pipeline.py) diff --git a/examples/models/google/gemini/file-upload-with-cache.mdx b/examples/models/google/gemini/file-upload-with-cache.mdx index 32dee5432..6b8084ff6 100644 --- a/examples/models/google/gemini/file-upload-with-cache.mdx +++ b/examples/models/google/gemini/file-upload-with-cache.mdx @@ -118,4 +118,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/file_upload_with_cache.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/file_upload_with_cache.py) +Full source: [cookbook/90_models/google/gemini/file_upload_with_cache.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/file_upload_with_cache.py) diff --git a/examples/models/google/gemini/gcs-file-input.mdx b/examples/models/google/gemini/gcs-file-input.mdx index d24808737..34b85ff81 100644 --- a/examples/models/google/gemini/gcs-file-input.mdx +++ b/examples/models/google/gemini/gcs-file-input.mdx @@ -101,4 +101,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/gcs_file_input.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/gcs_file_input.py) +Full source: [cookbook/90_models/google/gemini/gcs_file_input.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/gcs_file_input.py) diff --git a/examples/models/google/gemini/gemini-2-to-3.mdx b/examples/models/google/gemini/gemini-2-to-3.mdx index 4bf5a61b4..a107c10ed 100644 --- a/examples/models/google/gemini/gemini-2-to-3.mdx +++ b/examples/models/google/gemini/gemini-2-to-3.mdx @@ -99,4 +99,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/gemini_2_to_3.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/gemini_2_to_3.py) +Full source: [cookbook/90_models/google/gemini/gemini_2_to_3.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/gemini_2_to_3.py) diff --git a/examples/models/google/gemini/gemini-3-pro-thinking-level.mdx b/examples/models/google/gemini/gemini-3-pro-thinking-level.mdx index 22ed74ab1..68e09b0b9 100644 --- a/examples/models/google/gemini/gemini-3-pro-thinking-level.mdx +++ b/examples/models/google/gemini/gemini-3-pro-thinking-level.mdx @@ -72,4 +72,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/gemini_3_pro_thinking_level.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/gemini_3_pro_thinking_level.py) +Full source: [cookbook/90_models/google/gemini/gemini_3_pro_thinking_level.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/gemini_3_pro_thinking_level.py) diff --git a/examples/models/google/gemini/gemini-3-pro.mdx b/examples/models/google/gemini/gemini-3-pro.mdx index cb266c455..f729ff9ac 100644 --- a/examples/models/google/gemini/gemini-3-pro.mdx +++ b/examples/models/google/gemini/gemini-3-pro.mdx @@ -84,4 +84,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/gemini_3_pro.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/gemini_3_pro.py) +Full source: [cookbook/90_models/google/gemini/gemini_3_pro.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/gemini_3_pro.py) diff --git a/examples/models/google/gemini/grounding.mdx b/examples/models/google/gemini/grounding.mdx index 36084756a..f5d6c2c1a 100644 --- a/examples/models/google/gemini/grounding.mdx +++ b/examples/models/google/gemini/grounding.mdx @@ -78,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/grounding.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/grounding.py) +Full source: [cookbook/90_models/google/gemini/grounding.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/grounding.py) diff --git a/examples/models/google/gemini/image-editing.mdx b/examples/models/google/gemini/image-editing.mdx index c302fa80d..8c29604e2 100644 --- a/examples/models/google/gemini/image-editing.mdx +++ b/examples/models/google/gemini/image-editing.mdx @@ -92,4 +92,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/image_editing.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/image_editing.py) +Full source: [cookbook/90_models/google/gemini/image_editing.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/image_editing.py) diff --git a/examples/models/google/gemini/image-generation.mdx b/examples/models/google/gemini/image-generation.mdx index f3e8b0eaf..797d5727d 100644 --- a/examples/models/google/gemini/image-generation.mdx +++ b/examples/models/google/gemini/image-generation.mdx @@ -86,4 +86,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/image_generation.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/image_generation.py) +Full source: [cookbook/90_models/google/gemini/image_generation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/image_generation.py) diff --git a/examples/models/google/gemini/image-input-file-upload.mdx b/examples/models/google/gemini/image-input-file-upload.mdx index a3bd4586b..743d93126 100644 --- a/examples/models/google/gemini/image-input-file-upload.mdx +++ b/examples/models/google/gemini/image-input-file-upload.mdx @@ -81,4 +81,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/image_input_file_upload.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/image_input_file_upload.py) +Full source: [cookbook/90_models/google/gemini/image_input_file_upload.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/image_input_file_upload.py) diff --git a/examples/models/google/gemini/image-input.mdx b/examples/models/google/gemini/image-input.mdx index c1f87fcf6..17882162e 100644 --- a/examples/models/google/gemini/image-input.mdx +++ b/examples/models/google/gemini/image-input.mdx @@ -75,4 +75,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/image_input.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/image_input.py) +Full source: [cookbook/90_models/google/gemini/image_input.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/image_input.py) diff --git a/examples/models/google/gemini/imagen-tool-advanced.mdx b/examples/models/google/gemini/imagen-tool-advanced.mdx index a7a186a5b..3fe946e6f 100644 --- a/examples/models/google/gemini/imagen-tool-advanced.mdx +++ b/examples/models/google/gemini/imagen-tool-advanced.mdx @@ -116,4 +116,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/imagen_tool_advanced.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/imagen_tool_advanced.py) +Full source: [cookbook/90_models/google/gemini/imagen_tool_advanced.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/imagen_tool_advanced.py) diff --git a/examples/models/google/gemini/imagen-tool.mdx b/examples/models/google/gemini/imagen-tool.mdx index 99370136a..fc86798cb 100644 --- a/examples/models/google/gemini/imagen-tool.mdx +++ b/examples/models/google/gemini/imagen-tool.mdx @@ -79,4 +79,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/imagen_tool.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/imagen_tool.py) +Full source: [cookbook/90_models/google/gemini/imagen_tool.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/imagen_tool.py) diff --git a/examples/models/google/gemini/knowledge.mdx b/examples/models/google/gemini/knowledge.mdx index dc130de77..c3d1081a5 100644 --- a/examples/models/google/gemini/knowledge.mdx +++ b/examples/models/google/gemini/knowledge.mdx @@ -73,4 +73,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/knowledge.py) +Full source: [cookbook/90_models/google/gemini/knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/knowledge.py) diff --git a/examples/models/google/gemini/parallel-grounding.mdx b/examples/models/google/gemini/parallel-grounding.mdx index 19999b9c3..3bb02d94a 100644 --- a/examples/models/google/gemini/parallel-grounding.mdx +++ b/examples/models/google/gemini/parallel-grounding.mdx @@ -117,4 +117,4 @@ agent.print_response( -Full source: [cookbook/90_models/google/gemini/parallel_grounding.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/parallel_grounding.py) +Full source: [cookbook/90_models/google/gemini/parallel_grounding.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/parallel_grounding.py) diff --git a/examples/models/google/gemini/pdf-input-file-upload.mdx b/examples/models/google/gemini/pdf-input-file-upload.mdx index ccc8fa259..7e5e14988 100644 --- a/examples/models/google/gemini/pdf-input-file-upload.mdx +++ b/examples/models/google/gemini/pdf-input-file-upload.mdx @@ -106,4 +106,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/pdf_input_file_upload.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/pdf_input_file_upload.py) +Full source: [cookbook/90_models/google/gemini/pdf_input_file_upload.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/pdf_input_file_upload.py) diff --git a/examples/models/google/gemini/pdf-input-local.mdx b/examples/models/google/gemini/pdf-input-local.mdx index 545960a65..b66789a56 100644 --- a/examples/models/google/gemini/pdf-input-local.mdx +++ b/examples/models/google/gemini/pdf-input-local.mdx @@ -81,4 +81,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/pdf_input_local.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/pdf_input_local.py) +Full source: [cookbook/90_models/google/gemini/pdf_input_local.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/pdf_input_local.py) diff --git a/examples/models/google/gemini/pdf-input-url.mdx b/examples/models/google/gemini/pdf-input-url.mdx index 2211c99ef..4b1d0b4c5 100644 --- a/examples/models/google/gemini/pdf-input-url.mdx +++ b/examples/models/google/gemini/pdf-input-url.mdx @@ -74,4 +74,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/pdf_input_url.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/pdf_input_url.py) +Full source: [cookbook/90_models/google/gemini/pdf_input_url.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/pdf_input_url.py) diff --git a/examples/models/google/gemini/retry.mdx b/examples/models/google/gemini/retry.mdx index d79ee650d..9e7c1c308 100644 --- a/examples/models/google/gemini/retry.mdx +++ b/examples/models/google/gemini/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/google/gemini/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/retry.py) +Full source: [cookbook/90_models/google/gemini/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/retry.py) diff --git a/examples/models/google/gemini/s3-url-file-input.mdx b/examples/models/google/gemini/s3-url-file-input.mdx index 13afa501d..83c15a7f5 100644 --- a/examples/models/google/gemini/s3-url-file-input.mdx +++ b/examples/models/google/gemini/s3-url-file-input.mdx @@ -103,4 +103,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/s3_url_file_input.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/s3_url_file_input.py) +Full source: [cookbook/90_models/google/gemini/s3_url_file_input.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/s3_url_file_input.py) diff --git a/examples/models/google/gemini/search.mdx b/examples/models/google/gemini/search.mdx index ef8875f0a..24774a6c7 100644 --- a/examples/models/google/gemini/search.mdx +++ b/examples/models/google/gemini/search.mdx @@ -68,4 +68,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/search.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/search.py) +Full source: [cookbook/90_models/google/gemini/search.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/search.py) diff --git a/examples/models/google/gemini/storage-and-memory.mdx b/examples/models/google/gemini/storage-and-memory.mdx index 587d7735e..f67993fdc 100644 --- a/examples/models/google/gemini/storage-and-memory.mdx +++ b/examples/models/google/gemini/storage-and-memory.mdx @@ -89,4 +89,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/storage_and_memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/storage_and_memory.py) +Full source: [cookbook/90_models/google/gemini/storage_and_memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/storage_and_memory.py) diff --git a/examples/models/google/gemini/structured-output.mdx b/examples/models/google/gemini/structured-output.mdx index ad8487b2c..999551a79 100644 --- a/examples/models/google/gemini/structured-output.mdx +++ b/examples/models/google/gemini/structured-output.mdx @@ -142,4 +142,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/structured_output.py) +Full source: [cookbook/90_models/google/gemini/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/structured_output.py) diff --git a/examples/models/google/gemini/text-to-speech.mdx b/examples/models/google/gemini/text-to-speech.mdx index dd2e3de45..120ac17f6 100644 --- a/examples/models/google/gemini/text-to-speech.mdx +++ b/examples/models/google/gemini/text-to-speech.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/text_to_speech.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/text_to_speech.py) +Full source: [cookbook/90_models/google/gemini/text_to_speech.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/text_to_speech.py) diff --git a/examples/models/google/gemini/thinking-agent.mdx b/examples/models/google/gemini/thinking-agent.mdx index 7f1e3839d..823492e47 100644 --- a/examples/models/google/gemini/thinking-agent.mdx +++ b/examples/models/google/gemini/thinking-agent.mdx @@ -77,4 +77,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/thinking_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/thinking_agent.py) +Full source: [cookbook/90_models/google/gemini/thinking_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/thinking_agent.py) diff --git a/examples/models/google/gemini/timeout.mdx b/examples/models/google/gemini/timeout.mdx index f1e245dc1..e0e362026 100644 --- a/examples/models/google/gemini/timeout.mdx +++ b/examples/models/google/gemini/timeout.mdx @@ -73,4 +73,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/timeout.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/timeout.py) +Full source: [cookbook/90_models/google/gemini/timeout.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/timeout.py) diff --git a/examples/models/google/gemini/tool-use.mdx b/examples/models/google/gemini/tool-use.mdx index 2a85549ad..7af7332be 100644 --- a/examples/models/google/gemini/tool-use.mdx +++ b/examples/models/google/gemini/tool-use.mdx @@ -68,4 +68,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/tool_use.py) +Full source: [cookbook/90_models/google/gemini/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/tool_use.py) diff --git a/examples/models/google/gemini/url-context-with-search.mdx b/examples/models/google/gemini/url-context-with-search.mdx index bd4019412..fccedd5bf 100644 --- a/examples/models/google/gemini/url-context-with-search.mdx +++ b/examples/models/google/gemini/url-context-with-search.mdx @@ -67,4 +67,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/url_context_with_search.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/url_context_with_search.py) +Full source: [cookbook/90_models/google/gemini/url_context_with_search.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/url_context_with_search.py) diff --git a/examples/models/google/gemini/url-context.mdx b/examples/models/google/gemini/url-context.mdx index d26411a35..5152f8489 100644 --- a/examples/models/google/gemini/url-context.mdx +++ b/examples/models/google/gemini/url-context.mdx @@ -5,7 +5,7 @@ source: cookbook/90_models/google/gemini/url_context.py --- - This example's source docstring names the legacy `google-generativeai` package. Agno v2.7.2 uses the Google Gen AI SDK from `google-genai`. Use the generated install step below. + This example's source docstring names the legacy `google-generativeai` package. Agno v2.7.4 uses the Google Gen AI SDK from `google-genai`. Use the generated install step below. ```python url_context.py @@ -67,4 +67,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/url_context.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/url_context.py) +Full source: [cookbook/90_models/google/gemini/url_context.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/url_context.py) diff --git a/examples/models/google/gemini/vertex-ai-search.mdx b/examples/models/google/gemini/vertex-ai-search.mdx index 73e7f6c8d..56ff7a4fd 100644 --- a/examples/models/google/gemini/vertex-ai-search.mdx +++ b/examples/models/google/gemini/vertex-ai-search.mdx @@ -92,4 +92,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/vertex_ai_search.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/vertex_ai_search.py) +Full source: [cookbook/90_models/google/gemini/vertex_ai_search.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/vertex_ai_search.py) diff --git a/examples/models/google/gemini/vertexai-with-credentials.mdx b/examples/models/google/gemini/vertexai-with-credentials.mdx index b4342c056..4e1665cd2 100644 --- a/examples/models/google/gemini/vertexai-with-credentials.mdx +++ b/examples/models/google/gemini/vertexai-with-credentials.mdx @@ -77,4 +77,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/vertexai_with_credentials.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/vertexai_with_credentials.py) +Full source: [cookbook/90_models/google/gemini/vertexai_with_credentials.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/vertexai_with_credentials.py) diff --git a/examples/models/google/gemini/vertexai.mdx b/examples/models/google/gemini/vertexai.mdx index a61b8da55..eb2014b39 100644 --- a/examples/models/google/gemini/vertexai.mdx +++ b/examples/models/google/gemini/vertexai.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/vertexai.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/vertexai.py) +Full source: [cookbook/90_models/google/gemini/vertexai.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/vertexai.py) diff --git a/examples/models/google/gemini/video-input-bytes-content.mdx b/examples/models/google/gemini/video-input-bytes-content.mdx index 7e5e40a01..6e249c323 100644 --- a/examples/models/google/gemini/video-input-bytes-content.mdx +++ b/examples/models/google/gemini/video-input-bytes-content.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/video_input_bytes_content.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/video_input_bytes_content.py) +Full source: [cookbook/90_models/google/gemini/video_input_bytes_content.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/video_input_bytes_content.py) diff --git a/examples/models/google/gemini/video-input-file-upload.mdx b/examples/models/google/gemini/video-input-file-upload.mdx index ebcd4dd3d..000edb9ed 100644 --- a/examples/models/google/gemini/video-input-file-upload.mdx +++ b/examples/models/google/gemini/video-input-file-upload.mdx @@ -106,4 +106,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/video_input_file_upload.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/video_input_file_upload.py) +Full source: [cookbook/90_models/google/gemini/video_input_file_upload.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/video_input_file_upload.py) diff --git a/examples/models/google/gemini/video-input-local-file-upload.mdx b/examples/models/google/gemini/video-input-local-file-upload.mdx index cd3a42780..4021f22db 100644 --- a/examples/models/google/gemini/video-input-local-file-upload.mdx +++ b/examples/models/google/gemini/video-input-local-file-upload.mdx @@ -71,4 +71,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/video_input_local_file_upload.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/video_input_local_file_upload.py) +Full source: [cookbook/90_models/google/gemini/video_input_local_file_upload.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/video_input_local_file_upload.py) diff --git a/examples/models/google/gemini/video-input-youtube.mdx b/examples/models/google/gemini/video-input-youtube.mdx index 1acf8f8e0..faa8a3768 100644 --- a/examples/models/google/gemini/video-input-youtube.mdx +++ b/examples/models/google/gemini/video-input-youtube.mdx @@ -78,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/google/gemini/video_input_youtube.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/google/gemini/video_input_youtube.py) +Full source: [cookbook/90_models/google/gemini/video_input_youtube.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/video_input_youtube.py) diff --git a/examples/models/groq/agent-team.mdx b/examples/models/groq/agent-team.mdx index 670d434ca..7c684fddc 100644 --- a/examples/models/groq/agent-team.mdx +++ b/examples/models/groq/agent-team.mdx @@ -103,4 +103,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/groq/agent_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/groq/agent_team.py) +Full source: [cookbook/90_models/groq/agent_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/groq/agent_team.py) diff --git a/examples/models/groq/basic.mdx b/examples/models/groq/basic.mdx index 37e734c46..1bbbf9c7d 100644 --- a/examples/models/groq/basic.mdx +++ b/examples/models/groq/basic.mdx @@ -86,4 +86,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/groq/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/groq/basic.py) +Full source: [cookbook/90_models/groq/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/groq/basic.py) diff --git a/examples/models/groq/browser-search.mdx b/examples/models/groq/browser-search.mdx index b9601752b..aa818835f 100644 --- a/examples/models/groq/browser-search.mdx +++ b/examples/models/groq/browser-search.mdx @@ -64,4 +64,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/groq/browser_search.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/groq/browser_search.py) +Full source: [cookbook/90_models/groq/browser_search.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/groq/browser_search.py) diff --git a/examples/models/groq/db.mdx b/examples/models/groq/db.mdx index 22571dc5a..d5d7ed454 100644 --- a/examples/models/groq/db.mdx +++ b/examples/models/groq/db.mdx @@ -78,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/groq/db.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/groq/db.py) +Full source: [cookbook/90_models/groq/db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/groq/db.py) diff --git a/examples/models/groq/deep-knowledge.mdx b/examples/models/groq/deep-knowledge.mdx index 45f02f920..a1748f52b 100644 --- a/examples/models/groq/deep-knowledge.mdx +++ b/examples/models/groq/deep-knowledge.mdx @@ -270,4 +270,4 @@ Explore Agno's capabilities with these queries: -Full source: [cookbook/90_models/groq/deep_knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/groq/deep_knowledge.py) +Full source: [cookbook/90_models/groq/deep_knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/groq/deep_knowledge.py) diff --git a/examples/models/groq/image-agent.mdx b/examples/models/groq/image-agent.mdx index 9adb2b196..be4701f34 100644 --- a/examples/models/groq/image-agent.mdx +++ b/examples/models/groq/image-agent.mdx @@ -77,4 +77,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/groq/image_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/groq/image_agent.py) +Full source: [cookbook/90_models/groq/image_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/groq/image_agent.py) diff --git a/examples/models/groq/knowledge.mdx b/examples/models/groq/knowledge.mdx index 47f57f05b..efd1af75f 100644 --- a/examples/models/groq/knowledge.mdx +++ b/examples/models/groq/knowledge.mdx @@ -81,4 +81,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/groq/knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/groq/knowledge.py) +Full source: [cookbook/90_models/groq/knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/groq/knowledge.py) diff --git a/examples/models/groq/metrics.mdx b/examples/models/groq/metrics.mdx index d2313f61a..3a2405445 100644 --- a/examples/models/groq/metrics.mdx +++ b/examples/models/groq/metrics.mdx @@ -94,4 +94,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/groq/metrics.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/groq/metrics.py) +Full source: [cookbook/90_models/groq/metrics.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/groq/metrics.py) diff --git a/examples/models/groq/reasoning-agent.mdx b/examples/models/groq/reasoning-agent.mdx index ed9a0432b..1b672010f 100644 --- a/examples/models/groq/reasoning-agent.mdx +++ b/examples/models/groq/reasoning-agent.mdx @@ -83,4 +83,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/groq/reasoning_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/groq/reasoning_agent.py) +Full source: [cookbook/90_models/groq/reasoning_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/groq/reasoning_agent.py) diff --git a/examples/models/groq/reasoning/basic.mdx b/examples/models/groq/reasoning/basic.mdx index 166465e89..35d1f592a 100644 --- a/examples/models/groq/reasoning/basic.mdx +++ b/examples/models/groq/reasoning/basic.mdx @@ -73,4 +73,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/groq/reasoning/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/groq/reasoning/basic.py) +Full source: [cookbook/90_models/groq/reasoning/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/groq/reasoning/basic.py) diff --git a/examples/models/groq/reasoning/demo-deepseek-qwen.mdx b/examples/models/groq/reasoning/demo-deepseek-qwen.mdx index 273dcf76a..00cc95272 100644 --- a/examples/models/groq/reasoning/demo-deepseek-qwen.mdx +++ b/examples/models/groq/reasoning/demo-deepseek-qwen.mdx @@ -74,4 +74,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/groq/reasoning/demo_deepseek_qwen.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/groq/reasoning/demo_deepseek_qwen.py) +Full source: [cookbook/90_models/groq/reasoning/demo_deepseek_qwen.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/groq/reasoning/demo_deepseek_qwen.py) diff --git a/examples/models/groq/reasoning/demo-qwen-2-5-32b.mdx b/examples/models/groq/reasoning/demo-qwen-2-5-32b.mdx index 8ab695014..19bca5915 100644 --- a/examples/models/groq/reasoning/demo-qwen-2-5-32b.mdx +++ b/examples/models/groq/reasoning/demo-qwen-2-5-32b.mdx @@ -78,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/groq/reasoning/demo_qwen_2_5_32B.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/groq/reasoning/demo_qwen_2_5_32B.py) +Full source: [cookbook/90_models/groq/reasoning/demo_qwen_2_5_32B.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/groq/reasoning/demo_qwen_2_5_32B.py) diff --git a/examples/models/groq/reasoning/finance-agent.mdx b/examples/models/groq/reasoning/finance-agent.mdx index ba19418dd..84c03968b 100644 --- a/examples/models/groq/reasoning/finance-agent.mdx +++ b/examples/models/groq/reasoning/finance-agent.mdx @@ -86,4 +86,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/groq/reasoning/finance_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/groq/reasoning/finance_agent.py) +Full source: [cookbook/90_models/groq/reasoning/finance_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/groq/reasoning/finance_agent.py) diff --git a/examples/models/groq/research-agent-exa.mdx b/examples/models/groq/research-agent-exa.mdx index 4e93882b5..a7f87d783 100644 --- a/examples/models/groq/research-agent-exa.mdx +++ b/examples/models/groq/research-agent-exa.mdx @@ -118,4 +118,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/groq/research_agent_exa.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/groq/research_agent_exa.py) +Full source: [cookbook/90_models/groq/research_agent_exa.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/groq/research_agent_exa.py) diff --git a/examples/models/groq/research-agent-seltz.mdx b/examples/models/groq/research-agent-seltz.mdx index 090e378b7..5a919a82e 100644 --- a/examples/models/groq/research-agent-seltz.mdx +++ b/examples/models/groq/research-agent-seltz.mdx @@ -117,4 +117,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/groq/research_agent_seltz.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/groq/research_agent_seltz.py) +Full source: [cookbook/90_models/groq/research_agent_seltz.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/groq/research_agent_seltz.py) diff --git a/examples/models/groq/retry.mdx b/examples/models/groq/retry.mdx index 37bdeeffb..34e06d8d6 100644 --- a/examples/models/groq/retry.mdx +++ b/examples/models/groq/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/groq/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/groq/retry.py) +Full source: [cookbook/90_models/groq/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/groq/retry.py) diff --git a/examples/models/groq/structured-output.mdx b/examples/models/groq/structured-output.mdx index 7483b9d15..419093517 100644 --- a/examples/models/groq/structured-output.mdx +++ b/examples/models/groq/structured-output.mdx @@ -103,4 +103,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/groq/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/groq/structured_output.py) +Full source: [cookbook/90_models/groq/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/groq/structured_output.py) diff --git a/examples/models/groq/tool-use.mdx b/examples/models/groq/tool-use.mdx index 2f1ca0d82..fe3371510 100644 --- a/examples/models/groq/tool-use.mdx +++ b/examples/models/groq/tool-use.mdx @@ -83,4 +83,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/groq/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/groq/tool_use.py) +Full source: [cookbook/90_models/groq/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/groq/tool_use.py) diff --git a/examples/models/groq/transcription-agent.mdx b/examples/models/groq/transcription-agent.mdx index 2889124f6..b69190eb2 100644 --- a/examples/models/groq/transcription-agent.mdx +++ b/examples/models/groq/transcription-agent.mdx @@ -66,4 +66,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/groq/transcription_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/groq/transcription_agent.py) +Full source: [cookbook/90_models/groq/transcription_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/groq/transcription_agent.py) diff --git a/examples/models/groq/translation-agent.mdx b/examples/models/groq/translation-agent.mdx index 53fcc54f4..c01d4c53e 100644 --- a/examples/models/groq/translation-agent.mdx +++ b/examples/models/groq/translation-agent.mdx @@ -82,4 +82,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/groq/translation_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/groq/translation_agent.py) +Full source: [cookbook/90_models/groq/translation_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/groq/translation_agent.py) diff --git a/examples/models/huggingface/basic.mdx b/examples/models/huggingface/basic.mdx index 7f968d593..c58c6785d 100644 --- a/examples/models/huggingface/basic.mdx +++ b/examples/models/huggingface/basic.mdx @@ -89,4 +89,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/huggingface/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/huggingface/basic.py) +Full source: [cookbook/90_models/huggingface/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/huggingface/basic.py) diff --git a/examples/models/huggingface/llama-essay-writer.mdx b/examples/models/huggingface/llama-essay-writer.mdx index 2bad98792..ffd5fbf33 100644 --- a/examples/models/huggingface/llama-essay-writer.mdx +++ b/examples/models/huggingface/llama-essay-writer.mdx @@ -67,4 +67,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/huggingface/llama_essay_writer.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/huggingface/llama_essay_writer.py) +Full source: [cookbook/90_models/huggingface/llama_essay_writer.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/huggingface/llama_essay_writer.py) diff --git a/examples/models/huggingface/retry.mdx b/examples/models/huggingface/retry.mdx index fa75fa715..812089ea9 100644 --- a/examples/models/huggingface/retry.mdx +++ b/examples/models/huggingface/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/huggingface/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/huggingface/retry.py) +Full source: [cookbook/90_models/huggingface/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/huggingface/retry.py) diff --git a/examples/models/huggingface/tool-use.mdx b/examples/models/huggingface/tool-use.mdx index 63cbb8d9d..59a2a2f78 100644 --- a/examples/models/huggingface/tool-use.mdx +++ b/examples/models/huggingface/tool-use.mdx @@ -68,4 +68,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/huggingface/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/huggingface/tool_use.py) +Full source: [cookbook/90_models/huggingface/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/huggingface/tool_use.py) diff --git a/examples/models/ibm/retry.mdx b/examples/models/ibm/retry.mdx index e8d6acd53..238d439aa 100644 --- a/examples/models/ibm/retry.mdx +++ b/examples/models/ibm/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/ibm/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/ibm/retry.py) +Full source: [cookbook/90_models/ibm/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/ibm/retry.py) diff --git a/examples/models/ibm/watsonx/basic.mdx b/examples/models/ibm/watsonx/basic.mdx index 85f7d4c02..c56f5eee2 100644 --- a/examples/models/ibm/watsonx/basic.mdx +++ b/examples/models/ibm/watsonx/basic.mdx @@ -80,4 +80,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/ibm/watsonx/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/ibm/watsonx/basic.py) +Full source: [cookbook/90_models/ibm/watsonx/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/ibm/watsonx/basic.py) diff --git a/examples/models/ibm/watsonx/db.mdx b/examples/models/ibm/watsonx/db.mdx index 6dae804f8..21986acce 100644 --- a/examples/models/ibm/watsonx/db.mdx +++ b/examples/models/ibm/watsonx/db.mdx @@ -72,4 +72,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/ibm/watsonx/db.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/ibm/watsonx/db.py) +Full source: [cookbook/90_models/ibm/watsonx/db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/ibm/watsonx/db.py) diff --git a/examples/models/ibm/watsonx/image-agent-bytes.mdx b/examples/models/ibm/watsonx/image-agent-bytes.mdx index f82d3b51b..6bbb198b5 100644 --- a/examples/models/ibm/watsonx/image-agent-bytes.mdx +++ b/examples/models/ibm/watsonx/image-agent-bytes.mdx @@ -85,4 +85,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/ibm/watsonx/image_agent_bytes.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/ibm/watsonx/image_agent_bytes.py) +Full source: [cookbook/90_models/ibm/watsonx/image_agent_bytes.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/ibm/watsonx/image_agent_bytes.py) diff --git a/examples/models/ibm/watsonx/knowledge.mdx b/examples/models/ibm/watsonx/knowledge.mdx index 836b30d36..db20f21cd 100644 --- a/examples/models/ibm/watsonx/knowledge.mdx +++ b/examples/models/ibm/watsonx/knowledge.mdx @@ -75,4 +75,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/ibm/watsonx/knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/ibm/watsonx/knowledge.py) +Full source: [cookbook/90_models/ibm/watsonx/knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/ibm/watsonx/knowledge.py) diff --git a/examples/models/ibm/watsonx/structured-output.mdx b/examples/models/ibm/watsonx/structured-output.mdx index 31d93826a..838f83e83 100644 --- a/examples/models/ibm/watsonx/structured-output.mdx +++ b/examples/models/ibm/watsonx/structured-output.mdx @@ -96,4 +96,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/ibm/watsonx/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/ibm/watsonx/structured_output.py) +Full source: [cookbook/90_models/ibm/watsonx/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/ibm/watsonx/structured_output.py) diff --git a/examples/models/ibm/watsonx/tool-use.mdx b/examples/models/ibm/watsonx/tool-use.mdx index 601c689b8..3251ecd5d 100644 --- a/examples/models/ibm/watsonx/tool-use.mdx +++ b/examples/models/ibm/watsonx/tool-use.mdx @@ -67,4 +67,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/ibm/watsonx/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/ibm/watsonx/tool_use.py) +Full source: [cookbook/90_models/ibm/watsonx/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/ibm/watsonx/tool_use.py) diff --git a/examples/models/inception/basic.mdx b/examples/models/inception/basic.mdx index 384f3ce76..5609a38bd 100644 --- a/examples/models/inception/basic.mdx +++ b/examples/models/inception/basic.mdx @@ -80,4 +80,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/inception/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/inception/basic.py) +Full source: [cookbook/90_models/inception/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/inception/basic.py) diff --git a/examples/models/inception/structured-output.mdx b/examples/models/inception/structured-output.mdx index 30278dc41..0874f052c 100644 --- a/examples/models/inception/structured-output.mdx +++ b/examples/models/inception/structured-output.mdx @@ -105,4 +105,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/inception/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/inception/structured_output.py) +Full source: [cookbook/90_models/inception/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/inception/structured_output.py) diff --git a/examples/models/inception/tool-use.mdx b/examples/models/inception/tool-use.mdx index b8019ba26..6511aec75 100644 --- a/examples/models/inception/tool-use.mdx +++ b/examples/models/inception/tool-use.mdx @@ -65,4 +65,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/inception/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/inception/tool_use.py) +Full source: [cookbook/90_models/inception/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/inception/tool_use.py) diff --git a/examples/models/internlm/retry.mdx b/examples/models/internlm/retry.mdx index ab1179d5d..9515a143b 100644 --- a/examples/models/internlm/retry.mdx +++ b/examples/models/internlm/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/internlm/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/internlm/retry.py) +Full source: [cookbook/90_models/internlm/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/internlm/retry.py) diff --git a/examples/models/langdb/agent.mdx b/examples/models/langdb/agent.mdx index 7aec375a8..3d2076a60 100644 --- a/examples/models/langdb/agent.mdx +++ b/examples/models/langdb/agent.mdx @@ -5,7 +5,7 @@ source: cookbook/90_models/langdb/agent.py --- - Agno v2.7.2 defaults LangDB requests to the legacy regional host `https://api.us-east-1.langdb.ai`. Export `LANGDB_API_BASE_URL=https://api.langdb.ai` to use LangDB's current API host. + Agno v2.7.4 defaults LangDB requests to the legacy regional host `https://api.us-east-1.langdb.ai`. Export `LANGDB_API_BASE_URL=https://api.langdb.ai` to use LangDB's current API host. ```python agent.py @@ -78,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/langdb/agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/langdb/agent.py) +Full source: [cookbook/90_models/langdb/agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/langdb/agent.py) diff --git a/examples/models/langdb/basic.mdx b/examples/models/langdb/basic.mdx index d90b1458a..057f02fce 100644 --- a/examples/models/langdb/basic.mdx +++ b/examples/models/langdb/basic.mdx @@ -71,4 +71,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/langdb/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/langdb/basic.py) +Full source: [cookbook/90_models/langdb/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/langdb/basic.py) diff --git a/examples/models/langdb/data-analyst.mdx b/examples/models/langdb/data-analyst.mdx index ebecfc5f0..0804072cd 100644 --- a/examples/models/langdb/data-analyst.mdx +++ b/examples/models/langdb/data-analyst.mdx @@ -75,4 +75,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/langdb/data_analyst.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/langdb/data_analyst.py) +Full source: [cookbook/90_models/langdb/data_analyst.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/langdb/data_analyst.py) diff --git a/examples/models/langdb/finance-agent.mdx b/examples/models/langdb/finance-agent.mdx index b8fcd05e4..b2cd93ec0 100644 --- a/examples/models/langdb/finance-agent.mdx +++ b/examples/models/langdb/finance-agent.mdx @@ -67,4 +67,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/langdb/finance_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/langdb/finance_agent.py) +Full source: [cookbook/90_models/langdb/finance_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/langdb/finance_agent.py) diff --git a/examples/models/langdb/retry.mdx b/examples/models/langdb/retry.mdx index 6048118b8..4a87f1a52 100644 --- a/examples/models/langdb/retry.mdx +++ b/examples/models/langdb/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/langdb/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/langdb/retry.py) +Full source: [cookbook/90_models/langdb/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/langdb/retry.py) diff --git a/examples/models/langdb/structured-output.mdx b/examples/models/langdb/structured-output.mdx index f5da2bbaa..ad54fb537 100644 --- a/examples/models/langdb/structured-output.mdx +++ b/examples/models/langdb/structured-output.mdx @@ -108,4 +108,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/langdb/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/langdb/structured_output.py) +Full source: [cookbook/90_models/langdb/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/langdb/structured_output.py) diff --git a/examples/models/langdb/web-search.mdx b/examples/models/langdb/web-search.mdx index 906500d93..15ea1b7cf 100644 --- a/examples/models/langdb/web-search.mdx +++ b/examples/models/langdb/web-search.mdx @@ -63,4 +63,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/langdb/web_search.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/langdb/web_search.py) +Full source: [cookbook/90_models/langdb/web_search.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/langdb/web_search.py) diff --git a/examples/models/litellm-openai/audio-input-agent.mdx b/examples/models/litellm-openai/audio-input-agent.mdx index 841f1d2b5..465b43160 100644 --- a/examples/models/litellm-openai/audio-input-agent.mdx +++ b/examples/models/litellm-openai/audio-input-agent.mdx @@ -88,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/litellm_openai/audio_input_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/litellm_openai/audio_input_agent.py) +Full source: [cookbook/90_models/litellm_openai/audio_input_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/litellm_openai/audio_input_agent.py) diff --git a/examples/models/litellm-openai/basic.mdx b/examples/models/litellm-openai/basic.mdx index 031e418d0..1641ad82b 100644 --- a/examples/models/litellm-openai/basic.mdx +++ b/examples/models/litellm-openai/basic.mdx @@ -78,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/litellm_openai/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/litellm_openai/basic.py) +Full source: [cookbook/90_models/litellm_openai/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/litellm_openai/basic.py) diff --git a/examples/models/litellm-openai/tool-use.mdx b/examples/models/litellm-openai/tool-use.mdx index 447f5d66d..c5ff5b2e5 100644 --- a/examples/models/litellm-openai/tool-use.mdx +++ b/examples/models/litellm-openai/tool-use.mdx @@ -70,4 +70,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/litellm_openai/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/litellm_openai/tool_use.py) +Full source: [cookbook/90_models/litellm_openai/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/litellm_openai/tool_use.py) diff --git a/examples/models/litellm/append-trailing-user-message.mdx b/examples/models/litellm/append-trailing-user-message.mdx index 6e4c2e6f6..8bd375018 100644 --- a/examples/models/litellm/append-trailing-user-message.mdx +++ b/examples/models/litellm/append-trailing-user-message.mdx @@ -89,4 +89,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/litellm/append_trailing_user_message.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/litellm/append_trailing_user_message.py) +Full source: [cookbook/90_models/litellm/append_trailing_user_message.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/litellm/append_trailing_user_message.py) diff --git a/examples/models/litellm/audio-input-agent.mdx b/examples/models/litellm/audio-input-agent.mdx index 6e07c52da..d10e0940e 100644 --- a/examples/models/litellm/audio-input-agent.mdx +++ b/examples/models/litellm/audio-input-agent.mdx @@ -77,4 +77,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/litellm/audio_input_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/litellm/audio_input_agent.py) +Full source: [cookbook/90_models/litellm/audio_input_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/litellm/audio_input_agent.py) diff --git a/examples/models/litellm/basic-gpt.mdx b/examples/models/litellm/basic-gpt.mdx index 5edd55912..3b0cf7aaa 100644 --- a/examples/models/litellm/basic-gpt.mdx +++ b/examples/models/litellm/basic-gpt.mdx @@ -68,4 +68,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/litellm/basic_gpt.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/litellm/basic_gpt.py) +Full source: [cookbook/90_models/litellm/basic_gpt.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/litellm/basic_gpt.py) diff --git a/examples/models/litellm/basic.mdx b/examples/models/litellm/basic.mdx index 3b5f785e7..122b5c040 100644 --- a/examples/models/litellm/basic.mdx +++ b/examples/models/litellm/basic.mdx @@ -79,4 +79,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/litellm/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/litellm/basic.py) +Full source: [cookbook/90_models/litellm/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/litellm/basic.py) diff --git a/examples/models/litellm/db.mdx b/examples/models/litellm/db.mdx index e99a4da2c..38b607b42 100644 --- a/examples/models/litellm/db.mdx +++ b/examples/models/litellm/db.mdx @@ -71,4 +71,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/litellm/db.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/litellm/db.py) +Full source: [cookbook/90_models/litellm/db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/litellm/db.py) diff --git a/examples/models/litellm/image-agent-bytes.mdx b/examples/models/litellm/image-agent-bytes.mdx index 9a3054aa7..a08c4528f 100644 --- a/examples/models/litellm/image-agent-bytes.mdx +++ b/examples/models/litellm/image-agent-bytes.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/litellm/image_agent_bytes.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/litellm/image_agent_bytes.py) +Full source: [cookbook/90_models/litellm/image_agent_bytes.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/litellm/image_agent_bytes.py) diff --git a/examples/models/litellm/image-agent.mdx b/examples/models/litellm/image-agent.mdx index e769cf4ee..54194f3ff 100644 --- a/examples/models/litellm/image-agent.mdx +++ b/examples/models/litellm/image-agent.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/litellm/image_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/litellm/image_agent.py) +Full source: [cookbook/90_models/litellm/image_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/litellm/image_agent.py) diff --git a/examples/models/litellm/knowledge.mdx b/examples/models/litellm/knowledge.mdx index 4f413fccd..d1fda92c6 100644 --- a/examples/models/litellm/knowledge.mdx +++ b/examples/models/litellm/knowledge.mdx @@ -75,4 +75,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/litellm/knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/litellm/knowledge.py) +Full source: [cookbook/90_models/litellm/knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/litellm/knowledge.py) diff --git a/examples/models/litellm/memory.mdx b/examples/models/litellm/memory.mdx index bf057c1ee..5ecc9a517 100644 --- a/examples/models/litellm/memory.mdx +++ b/examples/models/litellm/memory.mdx @@ -82,4 +82,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/litellm/memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/litellm/memory.py) +Full source: [cookbook/90_models/litellm/memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/litellm/memory.py) diff --git a/examples/models/litellm/metrics.mdx b/examples/models/litellm/metrics.mdx index 384095ea4..b6d0de55f 100644 --- a/examples/models/litellm/metrics.mdx +++ b/examples/models/litellm/metrics.mdx @@ -88,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/litellm/metrics.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/litellm/metrics.py) +Full source: [cookbook/90_models/litellm/metrics.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/litellm/metrics.py) diff --git a/examples/models/litellm/pdf-input-bytes.mdx b/examples/models/litellm/pdf-input-bytes.mdx index 568e228ba..da7e3a94e 100644 --- a/examples/models/litellm/pdf-input-bytes.mdx +++ b/examples/models/litellm/pdf-input-bytes.mdx @@ -82,4 +82,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/litellm/pdf_input_bytes.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/litellm/pdf_input_bytes.py) +Full source: [cookbook/90_models/litellm/pdf_input_bytes.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/litellm/pdf_input_bytes.py) diff --git a/examples/models/litellm/pdf-input-local.mdx b/examples/models/litellm/pdf-input-local.mdx index 8e05bd019..a8e3e38b9 100644 --- a/examples/models/litellm/pdf-input-local.mdx +++ b/examples/models/litellm/pdf-input-local.mdx @@ -80,4 +80,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/litellm/pdf_input_local.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/litellm/pdf_input_local.py) +Full source: [cookbook/90_models/litellm/pdf_input_local.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/litellm/pdf_input_local.py) diff --git a/examples/models/litellm/pdf-input-url.mdx b/examples/models/litellm/pdf-input-url.mdx index 990c94884..a0a131043 100644 --- a/examples/models/litellm/pdf-input-url.mdx +++ b/examples/models/litellm/pdf-input-url.mdx @@ -70,4 +70,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/litellm/pdf_input_url.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/litellm/pdf_input_url.py) +Full source: [cookbook/90_models/litellm/pdf_input_url.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/litellm/pdf_input_url.py) diff --git a/examples/models/litellm/reasoning-agent.mdx b/examples/models/litellm/reasoning-agent.mdx index 1ad914b67..49ebc4c75 100644 --- a/examples/models/litellm/reasoning-agent.mdx +++ b/examples/models/litellm/reasoning-agent.mdx @@ -75,4 +75,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/litellm/reasoning_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/litellm/reasoning_agent.py) +Full source: [cookbook/90_models/litellm/reasoning_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/litellm/reasoning_agent.py) diff --git a/examples/models/litellm/retry.mdx b/examples/models/litellm/retry.mdx index 54a3ca267..9592c4a28 100644 --- a/examples/models/litellm/retry.mdx +++ b/examples/models/litellm/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/litellm/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/litellm/retry.py) +Full source: [cookbook/90_models/litellm/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/litellm/retry.py) diff --git a/examples/models/litellm/structured-output.mdx b/examples/models/litellm/structured-output.mdx index 64ce6eaa0..ebd6b3ae4 100644 --- a/examples/models/litellm/structured-output.mdx +++ b/examples/models/litellm/structured-output.mdx @@ -102,4 +102,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/litellm/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/litellm/structured_output.py) +Full source: [cookbook/90_models/litellm/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/litellm/structured_output.py) diff --git a/examples/models/litellm/tool-use.mdx b/examples/models/litellm/tool-use.mdx index e9e5487d2..62e814c1b 100644 --- a/examples/models/litellm/tool-use.mdx +++ b/examples/models/litellm/tool-use.mdx @@ -78,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/litellm/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/litellm/tool_use.py) +Full source: [cookbook/90_models/litellm/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/litellm/tool_use.py) diff --git a/examples/models/llama-cpp/basic.mdx b/examples/models/llama-cpp/basic.mdx index 2971fab28..1dd099c33 100644 --- a/examples/models/llama-cpp/basic.mdx +++ b/examples/models/llama-cpp/basic.mdx @@ -71,4 +71,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/llama_cpp/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/llama_cpp/basic.py) +Full source: [cookbook/90_models/llama_cpp/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/llama_cpp/basic.py) diff --git a/examples/models/llama-cpp/retry.mdx b/examples/models/llama-cpp/retry.mdx index 88f566a8e..b04b2d2be 100644 --- a/examples/models/llama-cpp/retry.mdx +++ b/examples/models/llama-cpp/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/llama_cpp/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/llama_cpp/retry.py) +Full source: [cookbook/90_models/llama_cpp/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/llama_cpp/retry.py) diff --git a/examples/models/llama-cpp/structured-output.mdx b/examples/models/llama-cpp/structured-output.mdx index 29546c3a7..08c56bcbe 100644 --- a/examples/models/llama-cpp/structured-output.mdx +++ b/examples/models/llama-cpp/structured-output.mdx @@ -96,4 +96,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/llama_cpp/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/llama_cpp/structured_output.py) +Full source: [cookbook/90_models/llama_cpp/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/llama_cpp/structured_output.py) diff --git a/examples/models/llama-cpp/tool-use.mdx b/examples/models/llama-cpp/tool-use.mdx index d2eb0d278..d68257548 100644 --- a/examples/models/llama-cpp/tool-use.mdx +++ b/examples/models/llama-cpp/tool-use.mdx @@ -65,4 +65,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/llama_cpp/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/llama_cpp/tool_use.py) +Full source: [cookbook/90_models/llama_cpp/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/llama_cpp/tool_use.py) diff --git a/examples/models/lmstudio/basic.mdx b/examples/models/lmstudio/basic.mdx index ddd117d96..379206787 100644 --- a/examples/models/lmstudio/basic.mdx +++ b/examples/models/lmstudio/basic.mdx @@ -61,4 +61,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/lmstudio/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/lmstudio/basic.py) +Full source: [cookbook/90_models/lmstudio/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/lmstudio/basic.py) diff --git a/examples/models/lmstudio/db.mdx b/examples/models/lmstudio/db.mdx index 7198f7c11..81567e37f 100644 --- a/examples/models/lmstudio/db.mdx +++ b/examples/models/lmstudio/db.mdx @@ -62,4 +62,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/lmstudio/db.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/lmstudio/db.py) +Full source: [cookbook/90_models/lmstudio/db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/lmstudio/db.py) diff --git a/examples/models/lmstudio/image-agent.mdx b/examples/models/lmstudio/image-agent.mdx index 3e21d23f1..ed58245cb 100644 --- a/examples/models/lmstudio/image-agent.mdx +++ b/examples/models/lmstudio/image-agent.mdx @@ -67,4 +67,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/lmstudio/image_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/lmstudio/image_agent.py) +Full source: [cookbook/90_models/lmstudio/image_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/lmstudio/image_agent.py) diff --git a/examples/models/lmstudio/knowledge.mdx b/examples/models/lmstudio/knowledge.mdx index 42b2e5a08..341c45a31 100644 --- a/examples/models/lmstudio/knowledge.mdx +++ b/examples/models/lmstudio/knowledge.mdx @@ -75,4 +75,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/lmstudio/knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/lmstudio/knowledge.py) +Full source: [cookbook/90_models/lmstudio/knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/lmstudio/knowledge.py) diff --git a/examples/models/lmstudio/memory.mdx b/examples/models/lmstudio/memory.mdx index dfdc23c8e..54e635b9f 100644 --- a/examples/models/lmstudio/memory.mdx +++ b/examples/models/lmstudio/memory.mdx @@ -83,4 +83,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/lmstudio/memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/lmstudio/memory.py) +Full source: [cookbook/90_models/lmstudio/memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/lmstudio/memory.py) diff --git a/examples/models/lmstudio/retry.mdx b/examples/models/lmstudio/retry.mdx index 166eb2b59..b9e3579d3 100644 --- a/examples/models/lmstudio/retry.mdx +++ b/examples/models/lmstudio/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/lmstudio/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/lmstudio/retry.py) +Full source: [cookbook/90_models/lmstudio/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/lmstudio/retry.py) diff --git a/examples/models/lmstudio/structured-output.mdx b/examples/models/lmstudio/structured-output.mdx index b94439b0a..1bb67bd40 100644 --- a/examples/models/lmstudio/structured-output.mdx +++ b/examples/models/lmstudio/structured-output.mdx @@ -86,4 +86,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/lmstudio/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/lmstudio/structured_output.py) +Full source: [cookbook/90_models/lmstudio/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/lmstudio/structured_output.py) diff --git a/examples/models/lmstudio/tool-use.mdx b/examples/models/lmstudio/tool-use.mdx index 1d43427f9..1771a0af7 100644 --- a/examples/models/lmstudio/tool-use.mdx +++ b/examples/models/lmstudio/tool-use.mdx @@ -55,4 +55,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/lmstudio/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/lmstudio/tool_use.py) +Full source: [cookbook/90_models/lmstudio/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/lmstudio/tool_use.py) diff --git a/examples/models/meta/llama-openai/basic.mdx b/examples/models/meta/llama-openai/basic.mdx index c50aaf36c..a9620737e 100644 --- a/examples/models/meta/llama-openai/basic.mdx +++ b/examples/models/meta/llama-openai/basic.mdx @@ -79,4 +79,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/meta/llama_openai/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/meta/llama_openai/basic.py) +Full source: [cookbook/90_models/meta/llama_openai/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/meta/llama_openai/basic.py) diff --git a/examples/models/meta/llama-openai/image-input-bytes.mdx b/examples/models/meta/llama-openai/image-input-bytes.mdx index a0921968a..c7c202423 100644 --- a/examples/models/meta/llama-openai/image-input-bytes.mdx +++ b/examples/models/meta/llama-openai/image-input-bytes.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/meta/llama_openai/image_input_bytes.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/meta/llama_openai/image_input_bytes.py) +Full source: [cookbook/90_models/meta/llama_openai/image_input_bytes.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/meta/llama_openai/image_input_bytes.py) diff --git a/examples/models/meta/llama-openai/image-input-file.mdx b/examples/models/meta/llama-openai/image-input-file.mdx index ee79e3690..56da61cad 100644 --- a/examples/models/meta/llama-openai/image-input-file.mdx +++ b/examples/models/meta/llama-openai/image-input-file.mdx @@ -80,4 +80,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/meta/llama_openai/image_input_file.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/meta/llama_openai/image_input_file.py) +Full source: [cookbook/90_models/meta/llama_openai/image_input_file.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/meta/llama_openai/image_input_file.py) diff --git a/examples/models/meta/llama-openai/knowledge.mdx b/examples/models/meta/llama-openai/knowledge.mdx index 82e8777f8..36ced2ae3 100644 --- a/examples/models/meta/llama-openai/knowledge.mdx +++ b/examples/models/meta/llama-openai/knowledge.mdx @@ -73,4 +73,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/meta/llama_openai/knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/meta/llama_openai/knowledge.py) +Full source: [cookbook/90_models/meta/llama_openai/knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/meta/llama_openai/knowledge.py) diff --git a/examples/models/meta/llama-openai/memory.mdx b/examples/models/meta/llama-openai/memory.mdx index b0837a802..29816aca4 100644 --- a/examples/models/meta/llama-openai/memory.mdx +++ b/examples/models/meta/llama-openai/memory.mdx @@ -30,7 +30,6 @@ agent = Agent( update_memory_on_run=True, enable_session_summaries=True, # Show debug logs so, you can see the memory being created - debug_mode=True, ) # -*- Share personal information @@ -100,4 +99,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/meta/llama_openai/memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/meta/llama_openai/memory.py) +Full source: [cookbook/90_models/meta/llama_openai/memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/meta/llama_openai/memory.py) diff --git a/examples/models/meta/llama-openai/metrics.mdx b/examples/models/meta/llama-openai/metrics.mdx index 07a7dd773..43fec5ee8 100644 --- a/examples/models/meta/llama-openai/metrics.mdx +++ b/examples/models/meta/llama-openai/metrics.mdx @@ -103,4 +103,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/meta/llama_openai/metrics.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/meta/llama_openai/metrics.py) +Full source: [cookbook/90_models/meta/llama_openai/metrics.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/meta/llama_openai/metrics.py) diff --git a/examples/models/meta/llama-openai/storage.mdx b/examples/models/meta/llama-openai/storage.mdx index 2424538ec..641521876 100644 --- a/examples/models/meta/llama-openai/storage.mdx +++ b/examples/models/meta/llama-openai/storage.mdx @@ -68,4 +68,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/meta/llama_openai/storage.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/meta/llama_openai/storage.py) +Full source: [cookbook/90_models/meta/llama_openai/storage.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/meta/llama_openai/storage.py) diff --git a/examples/models/meta/llama-openai/structured-output.mdx b/examples/models/meta/llama-openai/structured-output.mdx index 3eadf0911..30f088c71 100644 --- a/examples/models/meta/llama-openai/structured-output.mdx +++ b/examples/models/meta/llama-openai/structured-output.mdx @@ -91,4 +91,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/meta/llama_openai/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/meta/llama_openai/structured_output.py) +Full source: [cookbook/90_models/meta/llama_openai/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/meta/llama_openai/structured_output.py) diff --git a/examples/models/meta/llama-openai/tool-use.mdx b/examples/models/meta/llama-openai/tool-use.mdx index c79f91d4a..59744c2e6 100644 --- a/examples/models/meta/llama-openai/tool-use.mdx +++ b/examples/models/meta/llama-openai/tool-use.mdx @@ -70,4 +70,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/meta/llama_openai/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/meta/llama_openai/tool_use.py) +Full source: [cookbook/90_models/meta/llama_openai/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/meta/llama_openai/tool_use.py) diff --git a/examples/models/meta/llama/async-knowledge.mdx b/examples/models/meta/llama/async-knowledge.mdx index 95dcf3e94..41434ecb0 100644 --- a/examples/models/meta/llama/async-knowledge.mdx +++ b/examples/models/meta/llama/async-knowledge.mdx @@ -78,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/meta/llama/async_knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/meta/llama/async_knowledge.py) +Full source: [cookbook/90_models/meta/llama/async_knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/meta/llama/async_knowledge.py) diff --git a/examples/models/meta/llama/basic.mdx b/examples/models/meta/llama/basic.mdx index c40736c9f..93544b221 100644 --- a/examples/models/meta/llama/basic.mdx +++ b/examples/models/meta/llama/basic.mdx @@ -79,4 +79,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/meta/llama/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/meta/llama/basic.py) +Full source: [cookbook/90_models/meta/llama/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/meta/llama/basic.py) diff --git a/examples/models/meta/llama/db.mdx b/examples/models/meta/llama/db.mdx index d98e01e08..460b63b89 100644 --- a/examples/models/meta/llama/db.mdx +++ b/examples/models/meta/llama/db.mdx @@ -70,4 +70,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/meta/llama/db.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/meta/llama/db.py) +Full source: [cookbook/90_models/meta/llama/db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/meta/llama/db.py) diff --git a/examples/models/meta/llama/image-input-bytes.mdx b/examples/models/meta/llama/image-input-bytes.mdx index 7532341a0..2b342f258 100644 --- a/examples/models/meta/llama/image-input-bytes.mdx +++ b/examples/models/meta/llama/image-input-bytes.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/meta/llama/image_input_bytes.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/meta/llama/image_input_bytes.py) +Full source: [cookbook/90_models/meta/llama/image_input_bytes.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/meta/llama/image_input_bytes.py) diff --git a/examples/models/meta/llama/image-input-file.mdx b/examples/models/meta/llama/image-input-file.mdx index a3a7e6005..ff48db580 100644 --- a/examples/models/meta/llama/image-input-file.mdx +++ b/examples/models/meta/llama/image-input-file.mdx @@ -80,4 +80,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/meta/llama/image_input_file.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/meta/llama/image_input_file.py) +Full source: [cookbook/90_models/meta/llama/image_input_file.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/meta/llama/image_input_file.py) diff --git a/examples/models/meta/llama/knowledge.mdx b/examples/models/meta/llama/knowledge.mdx index fe38c51fa..5d46abea4 100644 --- a/examples/models/meta/llama/knowledge.mdx +++ b/examples/models/meta/llama/knowledge.mdx @@ -72,4 +72,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/meta/llama/knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/meta/llama/knowledge.py) +Full source: [cookbook/90_models/meta/llama/knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/meta/llama/knowledge.py) diff --git a/examples/models/meta/llama/memory.mdx b/examples/models/meta/llama/memory.mdx index 3a5dfa697..f05b3f03c 100644 --- a/examples/models/meta/llama/memory.mdx +++ b/examples/models/meta/llama/memory.mdx @@ -104,4 +104,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/meta/llama/memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/meta/llama/memory.py) +Full source: [cookbook/90_models/meta/llama/memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/meta/llama/memory.py) diff --git a/examples/models/meta/llama/metrics.mdx b/examples/models/meta/llama/metrics.mdx index 23a0a1cd9..7500e2f25 100644 --- a/examples/models/meta/llama/metrics.mdx +++ b/examples/models/meta/llama/metrics.mdx @@ -86,4 +86,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/meta/llama/metrics.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/meta/llama/metrics.py) +Full source: [cookbook/90_models/meta/llama/metrics.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/meta/llama/metrics.py) diff --git a/examples/models/meta/llama/structured-output.mdx b/examples/models/meta/llama/structured-output.mdx index 503bca731..c31a9a77f 100644 --- a/examples/models/meta/llama/structured-output.mdx +++ b/examples/models/meta/llama/structured-output.mdx @@ -90,4 +90,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/meta/llama/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/meta/llama/structured_output.py) +Full source: [cookbook/90_models/meta/llama/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/meta/llama/structured_output.py) diff --git a/examples/models/meta/llama/tool-use.mdx b/examples/models/meta/llama/tool-use.mdx index a2c2e883e..3357f39ed 100644 --- a/examples/models/meta/llama/tool-use.mdx +++ b/examples/models/meta/llama/tool-use.mdx @@ -70,4 +70,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/meta/llama/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/meta/llama/tool_use.py) +Full source: [cookbook/90_models/meta/llama/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/meta/llama/tool_use.py) diff --git a/examples/models/meta/retry.mdx b/examples/models/meta/retry.mdx index 3a7f202ae..a2dc6f023 100644 --- a/examples/models/meta/retry.mdx +++ b/examples/models/meta/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/meta/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/meta/retry.py) +Full source: [cookbook/90_models/meta/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/meta/retry.py) diff --git a/examples/models/minimax/basic.mdx b/examples/models/minimax/basic.mdx index d91819b97..fbad688c0 100644 --- a/examples/models/minimax/basic.mdx +++ b/examples/models/minimax/basic.mdx @@ -71,4 +71,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/minimax/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/minimax/basic.py) +Full source: [cookbook/90_models/minimax/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/minimax/basic.py) diff --git a/examples/models/minimax/structured-output.mdx b/examples/models/minimax/structured-output.mdx index 6fdd6794c..1f54dc796 100644 --- a/examples/models/minimax/structured-output.mdx +++ b/examples/models/minimax/structured-output.mdx @@ -97,4 +97,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/minimax/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/minimax/structured_output.py) +Full source: [cookbook/90_models/minimax/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/minimax/structured_output.py) diff --git a/examples/models/minimax/tool-use.mdx b/examples/models/minimax/tool-use.mdx index fac817b0f..26f79e495 100644 --- a/examples/models/minimax/tool-use.mdx +++ b/examples/models/minimax/tool-use.mdx @@ -65,4 +65,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/minimax/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/minimax/tool_use.py) +Full source: [cookbook/90_models/minimax/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/minimax/tool_use.py) diff --git a/examples/models/mistral/basic.mdx b/examples/models/mistral/basic.mdx index b89a2d1e2..abfa2156f 100644 --- a/examples/models/mistral/basic.mdx +++ b/examples/models/mistral/basic.mdx @@ -72,4 +72,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/mistral/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/mistral/basic.py) +Full source: [cookbook/90_models/mistral/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/mistral/basic.py) diff --git a/examples/models/mistral/image-bytes-input-agent.mdx b/examples/models/mistral/image-bytes-input-agent.mdx index 3ff559913..43476a21f 100644 --- a/examples/models/mistral/image-bytes-input-agent.mdx +++ b/examples/models/mistral/image-bytes-input-agent.mdx @@ -96,4 +96,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/mistral/image_bytes_input_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/mistral/image_bytes_input_agent.py) +Full source: [cookbook/90_models/mistral/image_bytes_input_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/mistral/image_bytes_input_agent.py) diff --git a/examples/models/mistral/image-compare-agent.mdx b/examples/models/mistral/image-compare-agent.mdx index d364cbed7..f3e63c95d 100644 --- a/examples/models/mistral/image-compare-agent.mdx +++ b/examples/models/mistral/image-compare-agent.mdx @@ -83,4 +83,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/mistral/image_compare_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/mistral/image_compare_agent.py) +Full source: [cookbook/90_models/mistral/image_compare_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/mistral/image_compare_agent.py) diff --git a/examples/models/mistral/image-file-input-agent.mdx b/examples/models/mistral/image-file-input-agent.mdx index 468ec039e..d5942e659 100644 --- a/examples/models/mistral/image-file-input-agent.mdx +++ b/examples/models/mistral/image-file-input-agent.mdx @@ -90,4 +90,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/mistral/image_file_input_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/mistral/image_file_input_agent.py) +Full source: [cookbook/90_models/mistral/image_file_input_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/mistral/image_file_input_agent.py) diff --git a/examples/models/mistral/image-ocr-with-structured-output.mdx b/examples/models/mistral/image-ocr-with-structured-output.mdx index afc9be77b..20a36cd81 100644 --- a/examples/models/mistral/image-ocr-with-structured-output.mdx +++ b/examples/models/mistral/image-ocr-with-structured-output.mdx @@ -94,4 +94,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/mistral/image_ocr_with_structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/mistral/image_ocr_with_structured_output.py) +Full source: [cookbook/90_models/mistral/image_ocr_with_structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/mistral/image_ocr_with_structured_output.py) diff --git a/examples/models/mistral/image-transcribe-document-agent.mdx b/examples/models/mistral/image-transcribe-document-agent.mdx index dcfe93b75..a54409978 100644 --- a/examples/models/mistral/image-transcribe-document-agent.mdx +++ b/examples/models/mistral/image-transcribe-document-agent.mdx @@ -74,4 +74,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/mistral/image_transcribe_document_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/mistral/image_transcribe_document_agent.py) +Full source: [cookbook/90_models/mistral/image_transcribe_document_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/mistral/image_transcribe_document_agent.py) diff --git a/examples/models/mistral/memory.mdx b/examples/models/mistral/memory.mdx index d4252af74..7ac687094 100644 --- a/examples/models/mistral/memory.mdx +++ b/examples/models/mistral/memory.mdx @@ -96,4 +96,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/mistral/memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/mistral/memory.py) +Full source: [cookbook/90_models/mistral/memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/mistral/memory.py) diff --git a/examples/models/mistral/mistral-small.mdx b/examples/models/mistral/mistral-small.mdx index 7c7d7ac2b..c63d21505 100644 --- a/examples/models/mistral/mistral-small.mdx +++ b/examples/models/mistral/mistral-small.mdx @@ -61,4 +61,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/mistral/mistral_small.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/mistral/mistral_small.py) +Full source: [cookbook/90_models/mistral/mistral_small.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/mistral/mistral_small.py) diff --git a/examples/models/mistral/retry.mdx b/examples/models/mistral/retry.mdx index 543cb98b1..e9ce13ce5 100644 --- a/examples/models/mistral/retry.mdx +++ b/examples/models/mistral/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/mistral/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/mistral/retry.py) +Full source: [cookbook/90_models/mistral/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/mistral/retry.py) diff --git a/examples/models/mistral/structured-output-with-tool-use.mdx b/examples/models/mistral/structured-output-with-tool-use.mdx index 6516f8129..d1d97480d 100644 --- a/examples/models/mistral/structured-output-with-tool-use.mdx +++ b/examples/models/mistral/structured-output-with-tool-use.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/mistral/structured_output_with_tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/mistral/structured_output_with_tool_use.py) +Full source: [cookbook/90_models/mistral/structured_output_with_tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/mistral/structured_output_with_tool_use.py) diff --git a/examples/models/mistral/structured-output.mdx b/examples/models/mistral/structured-output.mdx index 7b46d137a..e51404c00 100644 --- a/examples/models/mistral/structured-output.mdx +++ b/examples/models/mistral/structured-output.mdx @@ -101,4 +101,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/mistral/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/mistral/structured_output.py) +Full source: [cookbook/90_models/mistral/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/mistral/structured_output.py) diff --git a/examples/models/mistral/tool-use.mdx b/examples/models/mistral/tool-use.mdx index 375d223b4..c64a0b955 100644 --- a/examples/models/mistral/tool-use.mdx +++ b/examples/models/mistral/tool-use.mdx @@ -88,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/mistral/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/mistral/tool_use.py) +Full source: [cookbook/90_models/mistral/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/mistral/tool_use.py) diff --git a/examples/models/moonshot/basic.mdx b/examples/models/moonshot/basic.mdx index 682868f2a..8d5e152f1 100644 --- a/examples/models/moonshot/basic.mdx +++ b/examples/models/moonshot/basic.mdx @@ -63,4 +63,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/moonshot/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/moonshot/basic.py) +Full source: [cookbook/90_models/moonshot/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/moonshot/basic.py) diff --git a/examples/models/moonshot/tool-use.mdx b/examples/models/moonshot/tool-use.mdx index 00261808d..965f4934d 100644 --- a/examples/models/moonshot/tool-use.mdx +++ b/examples/models/moonshot/tool-use.mdx @@ -67,4 +67,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/moonshot/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/moonshot/tool_use.py) +Full source: [cookbook/90_models/moonshot/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/moonshot/tool_use.py) diff --git a/examples/models/n1n/basic.mdx b/examples/models/n1n/basic.mdx index c0945716a..0b2a73982 100644 --- a/examples/models/n1n/basic.mdx +++ b/examples/models/n1n/basic.mdx @@ -63,4 +63,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/n1n/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/n1n/basic.py) +Full source: [cookbook/90_models/n1n/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/n1n/basic.py) diff --git a/examples/models/n1n/tool-use.mdx b/examples/models/n1n/tool-use.mdx index dd0c80fee..79fbafdb2 100644 --- a/examples/models/n1n/tool-use.mdx +++ b/examples/models/n1n/tool-use.mdx @@ -67,4 +67,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/n1n/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/n1n/tool_use.py) +Full source: [cookbook/90_models/n1n/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/n1n/tool_use.py) diff --git a/examples/models/nebius/basic.mdx b/examples/models/nebius/basic.mdx index 4711d684d..19e60647c 100644 --- a/examples/models/nebius/basic.mdx +++ b/examples/models/nebius/basic.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/nebius/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/nebius/basic.py) +Full source: [cookbook/90_models/nebius/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/nebius/basic.py) diff --git a/examples/models/nebius/db.mdx b/examples/models/nebius/db.mdx index ad8b3e6fc..66239848f 100644 --- a/examples/models/nebius/db.mdx +++ b/examples/models/nebius/db.mdx @@ -70,4 +70,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/nebius/db.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/nebius/db.py) +Full source: [cookbook/90_models/nebius/db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/nebius/db.py) diff --git a/examples/models/nebius/knowledge.mdx b/examples/models/nebius/knowledge.mdx index 89ac6f3fa..862708f5c 100644 --- a/examples/models/nebius/knowledge.mdx +++ b/examples/models/nebius/knowledge.mdx @@ -70,4 +70,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/nebius/knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/nebius/knowledge.py) +Full source: [cookbook/90_models/nebius/knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/nebius/knowledge.py) diff --git a/examples/models/nebius/retry.mdx b/examples/models/nebius/retry.mdx index 5ed0aec27..18578ddef 100644 --- a/examples/models/nebius/retry.mdx +++ b/examples/models/nebius/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/nebius/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/nebius/retry.py) +Full source: [cookbook/90_models/nebius/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/nebius/retry.py) diff --git a/examples/models/nebius/structured-output.mdx b/examples/models/nebius/structured-output.mdx index 1b9c4649f..c59278e4b 100644 --- a/examples/models/nebius/structured-output.mdx +++ b/examples/models/nebius/structured-output.mdx @@ -91,4 +91,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/nebius/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/nebius/structured_output.py) +Full source: [cookbook/90_models/nebius/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/nebius/structured_output.py) diff --git a/examples/models/nebius/tool-use.mdx b/examples/models/nebius/tool-use.mdx index 60e96c3bc..ad338e032 100644 --- a/examples/models/nebius/tool-use.mdx +++ b/examples/models/nebius/tool-use.mdx @@ -78,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/nebius/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/nebius/tool_use.py) +Full source: [cookbook/90_models/nebius/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/nebius/tool_use.py) diff --git a/examples/models/neosantara/basic.mdx b/examples/models/neosantara/basic.mdx index 76bf54944..fd1360828 100644 --- a/examples/models/neosantara/basic.mdx +++ b/examples/models/neosantara/basic.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/neosantara/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/neosantara/basic.py) +Full source: [cookbook/90_models/neosantara/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/neosantara/basic.py) diff --git a/examples/models/neosantara/structured-output.mdx b/examples/models/neosantara/structured-output.mdx index 2a8084fdd..17943ef22 100644 --- a/examples/models/neosantara/structured-output.mdx +++ b/examples/models/neosantara/structured-output.mdx @@ -92,4 +92,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/neosantara/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/neosantara/structured_output.py) +Full source: [cookbook/90_models/neosantara/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/neosantara/structured_output.py) diff --git a/examples/models/neosantara/tool-use.mdx b/examples/models/neosantara/tool-use.mdx index 9b9f71069..2bfad886d 100644 --- a/examples/models/neosantara/tool-use.mdx +++ b/examples/models/neosantara/tool-use.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/neosantara/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/neosantara/tool_use.py) +Full source: [cookbook/90_models/neosantara/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/neosantara/tool_use.py) diff --git a/examples/models/nexus/basic.mdx b/examples/models/nexus/basic.mdx index 5c24e42ad..ee5a607b3 100644 --- a/examples/models/nexus/basic.mdx +++ b/examples/models/nexus/basic.mdx @@ -64,4 +64,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/nexus/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/nexus/basic.py) +Full source: [cookbook/90_models/nexus/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/nexus/basic.py) diff --git a/examples/models/nexus/retry.mdx b/examples/models/nexus/retry.mdx index 129a24699..b40076d6f 100644 --- a/examples/models/nexus/retry.mdx +++ b/examples/models/nexus/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/nexus/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/nexus/retry.py) +Full source: [cookbook/90_models/nexus/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/nexus/retry.py) diff --git a/examples/models/nexus/tool-use.mdx b/examples/models/nexus/tool-use.mdx index c0d48d021..6f6c4f66e 100644 --- a/examples/models/nexus/tool-use.mdx +++ b/examples/models/nexus/tool-use.mdx @@ -59,4 +59,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/nexus/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/nexus/tool_use.py) +Full source: [cookbook/90_models/nexus/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/nexus/tool_use.py) diff --git a/examples/models/nvidia/basic.mdx b/examples/models/nvidia/basic.mdx index 9fbbea45b..f12bce56b 100644 --- a/examples/models/nvidia/basic.mdx +++ b/examples/models/nvidia/basic.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/nvidia/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/nvidia/basic.py) +Full source: [cookbook/90_models/nvidia/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/nvidia/basic.py) diff --git a/examples/models/nvidia/retry.mdx b/examples/models/nvidia/retry.mdx index edbec90b3..f2b8b676e 100644 --- a/examples/models/nvidia/retry.mdx +++ b/examples/models/nvidia/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/nvidia/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/nvidia/retry.py) +Full source: [cookbook/90_models/nvidia/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/nvidia/retry.py) diff --git a/examples/models/nvidia/tool-use.mdx b/examples/models/nvidia/tool-use.mdx index eaaa476c1..a07228bc8 100644 --- a/examples/models/nvidia/tool-use.mdx +++ b/examples/models/nvidia/tool-use.mdx @@ -68,4 +68,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/nvidia/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/nvidia/tool_use.py) +Full source: [cookbook/90_models/nvidia/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/nvidia/tool_use.py) diff --git a/examples/models/ollama/chat/basic.mdx b/examples/models/ollama/chat/basic.mdx index 956206615..2a63bee0e 100644 --- a/examples/models/ollama/chat/basic.mdx +++ b/examples/models/ollama/chat/basic.mdx @@ -71,4 +71,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/ollama/chat/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/ollama/chat/basic.py) +Full source: [cookbook/90_models/ollama/chat/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/ollama/chat/basic.py) diff --git a/examples/models/ollama/chat/db.mdx b/examples/models/ollama/chat/db.mdx index 7b6fcf576..9b69abbd2 100644 --- a/examples/models/ollama/chat/db.mdx +++ b/examples/models/ollama/chat/db.mdx @@ -65,4 +65,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/ollama/chat/db.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/ollama/chat/db.py) +Full source: [cookbook/90_models/ollama/chat/db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/ollama/chat/db.py) diff --git a/examples/models/ollama/chat/demo-deepseek-r1.mdx b/examples/models/ollama/chat/demo-deepseek-r1.mdx index 780cd5e30..120f01431 100644 --- a/examples/models/ollama/chat/demo-deepseek-r1.mdx +++ b/examples/models/ollama/chat/demo-deepseek-r1.mdx @@ -60,4 +60,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/ollama/chat/demo_deepseek_r1.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/ollama/chat/demo_deepseek_r1.py) +Full source: [cookbook/90_models/ollama/chat/demo_deepseek_r1.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/ollama/chat/demo_deepseek_r1.py) diff --git a/examples/models/ollama/chat/demo-gemma.mdx b/examples/models/ollama/chat/demo-gemma.mdx index de64d7121..8987c98db 100644 --- a/examples/models/ollama/chat/demo-gemma.mdx +++ b/examples/models/ollama/chat/demo-gemma.mdx @@ -69,4 +69,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/ollama/chat/demo_gemma.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/ollama/chat/demo_gemma.py) +Full source: [cookbook/90_models/ollama/chat/demo_gemma.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/ollama/chat/demo_gemma.py) diff --git a/examples/models/ollama/chat/demo-phi4.mdx b/examples/models/ollama/chat/demo-phi4.mdx index bb610898a..dfbebbafb 100644 --- a/examples/models/ollama/chat/demo-phi4.mdx +++ b/examples/models/ollama/chat/demo-phi4.mdx @@ -58,4 +58,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/ollama/chat/demo_phi4.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/ollama/chat/demo_phi4.py) +Full source: [cookbook/90_models/ollama/chat/demo_phi4.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/ollama/chat/demo_phi4.py) diff --git a/examples/models/ollama/chat/demo-qwen.mdx b/examples/models/ollama/chat/demo-qwen.mdx index 9ca2c2f75..325ad8ad4 100644 --- a/examples/models/ollama/chat/demo-qwen.mdx +++ b/examples/models/ollama/chat/demo-qwen.mdx @@ -64,4 +64,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/ollama/chat/demo_qwen.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/ollama/chat/demo_qwen.py) +Full source: [cookbook/90_models/ollama/chat/demo_qwen.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/ollama/chat/demo_qwen.py) diff --git a/examples/models/ollama/chat/image-agent.mdx b/examples/models/ollama/chat/image-agent.mdx index c4d5ae283..08589c2ad 100644 --- a/examples/models/ollama/chat/image-agent.mdx +++ b/examples/models/ollama/chat/image-agent.mdx @@ -71,4 +71,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/ollama/chat/image_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/ollama/chat/image_agent.py) +Full source: [cookbook/90_models/ollama/chat/image_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/ollama/chat/image_agent.py) diff --git a/examples/models/ollama/chat/knowledge.mdx b/examples/models/ollama/chat/knowledge.mdx index a3eb259d2..6f86f122e 100644 --- a/examples/models/ollama/chat/knowledge.mdx +++ b/examples/models/ollama/chat/knowledge.mdx @@ -68,4 +68,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/ollama/chat/knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/ollama/chat/knowledge.py) +Full source: [cookbook/90_models/ollama/chat/knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/ollama/chat/knowledge.py) diff --git a/examples/models/ollama/chat/memory.mdx b/examples/models/ollama/chat/memory.mdx index e3f4ccf55..457a32b3d 100644 --- a/examples/models/ollama/chat/memory.mdx +++ b/examples/models/ollama/chat/memory.mdx @@ -86,4 +86,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/ollama/chat/memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/ollama/chat/memory.py) +Full source: [cookbook/90_models/ollama/chat/memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/ollama/chat/memory.py) diff --git a/examples/models/ollama/chat/ollama-cloud.mdx b/examples/models/ollama/chat/ollama-cloud.mdx index 1df90c69b..835ba12ec 100644 --- a/examples/models/ollama/chat/ollama-cloud.mdx +++ b/examples/models/ollama/chat/ollama-cloud.mdx @@ -61,4 +61,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/ollama/chat/ollama_cloud.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/ollama/chat/ollama_cloud.py) +Full source: [cookbook/90_models/ollama/chat/ollama_cloud.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/ollama/chat/ollama_cloud.py) diff --git a/examples/models/ollama/chat/reasoning-agent.mdx b/examples/models/ollama/chat/reasoning-agent.mdx index e8e06eb10..aee8514e7 100644 --- a/examples/models/ollama/chat/reasoning-agent.mdx +++ b/examples/models/ollama/chat/reasoning-agent.mdx @@ -22,7 +22,6 @@ from agno.models.ollama import Ollama reasoning_agent = Agent( model=Ollama(id="gpt-oss:120b"), reasoning=True, - debug_mode=True, ) reasoning_agent.print_response( @@ -63,4 +62,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/ollama/chat/reasoning_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/ollama/chat/reasoning_agent.py) +Full source: [cookbook/90_models/ollama/chat/reasoning_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/ollama/chat/reasoning_agent.py) diff --git a/examples/models/ollama/chat/retry.mdx b/examples/models/ollama/chat/retry.mdx index 22ebd421c..888e47383 100644 --- a/examples/models/ollama/chat/retry.mdx +++ b/examples/models/ollama/chat/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/ollama/chat/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/ollama/chat/retry.py) +Full source: [cookbook/90_models/ollama/chat/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/ollama/chat/retry.py) diff --git a/examples/models/ollama/chat/set-client.mdx b/examples/models/ollama/chat/set-client.mdx index 495c7f6aa..4274b7b8f 100644 --- a/examples/models/ollama/chat/set-client.mdx +++ b/examples/models/ollama/chat/set-client.mdx @@ -57,4 +57,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/ollama/chat/set_client.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/ollama/chat/set_client.py) +Full source: [cookbook/90_models/ollama/chat/set_client.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/ollama/chat/set_client.py) diff --git a/examples/models/ollama/chat/set-temperature.mdx b/examples/models/ollama/chat/set-temperature.mdx index 8ba59996b..f24b01859 100644 --- a/examples/models/ollama/chat/set-temperature.mdx +++ b/examples/models/ollama/chat/set-temperature.mdx @@ -62,4 +62,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/ollama/chat/set_temperature.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/ollama/chat/set_temperature.py) +Full source: [cookbook/90_models/ollama/chat/set_temperature.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/ollama/chat/set_temperature.py) diff --git a/examples/models/ollama/chat/structured-output.mdx b/examples/models/ollama/chat/structured-output.mdx index 6ac84e496..1a017e084 100644 --- a/examples/models/ollama/chat/structured-output.mdx +++ b/examples/models/ollama/chat/structured-output.mdx @@ -93,4 +93,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/ollama/chat/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/ollama/chat/structured_output.py) +Full source: [cookbook/90_models/ollama/chat/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/ollama/chat/structured_output.py) diff --git a/examples/models/ollama/chat/tool-use.mdx b/examples/models/ollama/chat/tool-use.mdx index d4a4be012..a5b756243 100644 --- a/examples/models/ollama/chat/tool-use.mdx +++ b/examples/models/ollama/chat/tool-use.mdx @@ -58,4 +58,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/ollama/chat/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/ollama/chat/tool_use.py) +Full source: [cookbook/90_models/ollama/chat/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/ollama/chat/tool_use.py) diff --git a/examples/models/ollama/responses/basic.mdx b/examples/models/ollama/responses/basic.mdx index 98eaee472..5f5418e30 100644 --- a/examples/models/ollama/responses/basic.mdx +++ b/examples/models/ollama/responses/basic.mdx @@ -73,4 +73,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/ollama/responses/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/ollama/responses/basic.py) +Full source: [cookbook/90_models/ollama/responses/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/ollama/responses/basic.py) diff --git a/examples/models/ollama/responses/structured-output.mdx b/examples/models/ollama/responses/structured-output.mdx index a67e2c1cf..c8f350498 100644 --- a/examples/models/ollama/responses/structured-output.mdx +++ b/examples/models/ollama/responses/structured-output.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/ollama/responses/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/ollama/responses/structured_output.py) +Full source: [cookbook/90_models/ollama/responses/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/ollama/responses/structured_output.py) diff --git a/examples/models/ollama/responses/tool-use.mdx b/examples/models/ollama/responses/tool-use.mdx index 83c1cfa9c..c695637d7 100644 --- a/examples/models/ollama/responses/tool-use.mdx +++ b/examples/models/ollama/responses/tool-use.mdx @@ -65,4 +65,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/ollama/responses/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/ollama/responses/tool_use.py) +Full source: [cookbook/90_models/ollama/responses/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/ollama/responses/tool_use.py) diff --git a/examples/models/openai/chat/access-memories-in-memory-completed-event.mdx b/examples/models/openai/chat/access-memories-in-memory-completed-event.mdx index 6271a1589..1e76de51a 100644 --- a/examples/models/openai/chat/access-memories-in-memory-completed-event.mdx +++ b/examples/models/openai/chat/access-memories-in-memory-completed-event.mdx @@ -130,4 +130,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/chat/access_memories_in_memory_completed_event.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/access_memories_in_memory_completed_event.py) +Full source: [cookbook/90_models/openai/chat/access_memories_in_memory_completed_event.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/access_memories_in_memory_completed_event.py) diff --git a/examples/models/openai/chat/agent-flex-tier.mdx b/examples/models/openai/chat/agent-flex-tier.mdx index f2ce56ab4..e0a827c38 100644 --- a/examples/models/openai/chat/agent-flex-tier.mdx +++ b/examples/models/openai/chat/agent-flex-tier.mdx @@ -65,4 +65,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/chat/agent_flex_tier.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/agent_flex_tier.py) +Full source: [cookbook/90_models/openai/chat/agent_flex_tier.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/agent_flex_tier.py) diff --git a/examples/models/openai/chat/audio-input-agent.mdx b/examples/models/openai/chat/audio-input-agent.mdx index 836df072d..402f02623 100644 --- a/examples/models/openai/chat/audio-input-agent.mdx +++ b/examples/models/openai/chat/audio-input-agent.mdx @@ -75,4 +75,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/chat/audio_input_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/audio_input_agent.py) +Full source: [cookbook/90_models/openai/chat/audio_input_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/audio_input_agent.py) diff --git a/examples/models/openai/chat/audio-input-and-output-multi-turn.mdx b/examples/models/openai/chat/audio-input-and-output-multi-turn.mdx index f036ce6b0..7601b9277 100644 --- a/examples/models/openai/chat/audio-input-and-output-multi-turn.mdx +++ b/examples/models/openai/chat/audio-input-and-output-multi-turn.mdx @@ -111,4 +111,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/chat/audio_input_and_output_multi_turn.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/audio_input_and_output_multi_turn.py) +Full source: [cookbook/90_models/openai/chat/audio_input_and_output_multi_turn.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/audio_input_and_output_multi_turn.py) diff --git a/examples/models/openai/chat/audio-input-local-file-upload.mdx b/examples/models/openai/chat/audio-input-local-file-upload.mdx index 477e02876..d58512f52 100644 --- a/examples/models/openai/chat/audio-input-local-file-upload.mdx +++ b/examples/models/openai/chat/audio-input-local-file-upload.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/chat/audio_input_local_file_upload.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/audio_input_local_file_upload.py) +Full source: [cookbook/90_models/openai/chat/audio_input_local_file_upload.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/audio_input_local_file_upload.py) diff --git a/examples/models/openai/chat/audio-output-agent.mdx b/examples/models/openai/chat/audio-output-agent.mdx index 812f944b6..6f290ef9d 100644 --- a/examples/models/openai/chat/audio-output-agent.mdx +++ b/examples/models/openai/chat/audio-output-agent.mdx @@ -88,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/chat/audio_output_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/audio_output_agent.py) +Full source: [cookbook/90_models/openai/chat/audio_output_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/audio_output_agent.py) diff --git a/examples/models/openai/chat/audio-output-stream.mdx b/examples/models/openai/chat/audio-output-stream.mdx index 3f43a028f..5e0c713a2 100644 --- a/examples/models/openai/chat/audio-output-stream.mdx +++ b/examples/models/openai/chat/audio-output-stream.mdx @@ -111,4 +111,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/chat/audio_output_stream.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/audio_output_stream.py) +Full source: [cookbook/90_models/openai/chat/audio_output_stream.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/audio_output_stream.py) diff --git a/examples/models/openai/chat/basic-stream-metrics.mdx b/examples/models/openai/chat/basic-stream-metrics.mdx index 9a02afacd..a84b32283 100644 --- a/examples/models/openai/chat/basic-stream-metrics.mdx +++ b/examples/models/openai/chat/basic-stream-metrics.mdx @@ -80,4 +80,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/chat/basic_stream_metrics.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/basic_stream_metrics.py) +Full source: [cookbook/90_models/openai/chat/basic_stream_metrics.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/basic_stream_metrics.py) diff --git a/examples/models/openai/chat/basic.mdx b/examples/models/openai/chat/basic.mdx index fad8498e6..1ea308f15 100644 --- a/examples/models/openai/chat/basic.mdx +++ b/examples/models/openai/chat/basic.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/chat/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/basic.py) +Full source: [cookbook/90_models/openai/chat/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/basic.py) diff --git a/examples/models/openai/chat/citations.mdx b/examples/models/openai/chat/citations.mdx index 6b4e05c73..ccd88bd87 100644 --- a/examples/models/openai/chat/citations.mdx +++ b/examples/models/openai/chat/citations.mdx @@ -66,4 +66,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/chat/citations.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/citations.py) +Full source: [cookbook/90_models/openai/chat/citations.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/citations.py) diff --git a/examples/models/openai/chat/custom-role-map.mdx b/examples/models/openai/chat/custom-role-map.mdx index e0a6ae7ef..f4dfb1ddf 100644 --- a/examples/models/openai/chat/custom-role-map.mdx +++ b/examples/models/openai/chat/custom-role-map.mdx @@ -89,4 +89,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/chat/custom_role_map.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/custom_role_map.py) +Full source: [cookbook/90_models/openai/chat/custom_role_map.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/custom_role_map.py) diff --git a/examples/models/openai/chat/db.mdx b/examples/models/openai/chat/db.mdx index 6fa767343..05ba304df 100644 --- a/examples/models/openai/chat/db.mdx +++ b/examples/models/openai/chat/db.mdx @@ -70,4 +70,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/chat/db.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/db.py) +Full source: [cookbook/90_models/openai/chat/db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/db.py) diff --git a/examples/models/openai/chat/generate-images.mdx b/examples/models/openai/chat/generate-images.mdx index 67f8c74ed..855798837 100644 --- a/examples/models/openai/chat/generate-images.mdx +++ b/examples/models/openai/chat/generate-images.mdx @@ -57,4 +57,4 @@ if __name__ == "__main__": Follow [Image Generation Agent](/models/providers/native/openai/responses/usage/image-generation-agent) to generate images with GPT Image 2. -Full source: [cookbook/90_models/openai/chat/generate_images.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/generate_images.py) +Full source: [cookbook/90_models/openai/chat/generate_images.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/generate_images.py) diff --git a/examples/models/openai/chat/image-agent-bytes.mdx b/examples/models/openai/chat/image-agent-bytes.mdx index f26484801..158e39ae5 100644 --- a/examples/models/openai/chat/image-agent-bytes.mdx +++ b/examples/models/openai/chat/image-agent-bytes.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/chat/image_agent_bytes.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/image_agent_bytes.py) +Full source: [cookbook/90_models/openai/chat/image_agent_bytes.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/image_agent_bytes.py) diff --git a/examples/models/openai/chat/image-agent-file.mdx b/examples/models/openai/chat/image-agent-file.mdx index bfbfed96b..2327c0c55 100644 --- a/examples/models/openai/chat/image-agent-file.mdx +++ b/examples/models/openai/chat/image-agent-file.mdx @@ -73,4 +73,4 @@ agent.print_response( -Full source: [cookbook/90_models/openai/chat/image_agent_file.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/image_agent_file.py) +Full source: [cookbook/90_models/openai/chat/image_agent_file.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/image_agent_file.py) diff --git a/examples/models/openai/chat/image-agent-with-memory.mdx b/examples/models/openai/chat/image-agent-with-memory.mdx index 52bdc63b9..46bd4bf52 100644 --- a/examples/models/openai/chat/image-agent-with-memory.mdx +++ b/examples/models/openai/chat/image-agent-with-memory.mdx @@ -79,4 +79,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/chat/image_agent_with_memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/image_agent_with_memory.py) +Full source: [cookbook/90_models/openai/chat/image_agent_with_memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/image_agent_with_memory.py) diff --git a/examples/models/openai/chat/image-agent.mdx b/examples/models/openai/chat/image-agent.mdx index 8416fae6f..4a0843d4f 100644 --- a/examples/models/openai/chat/image-agent.mdx +++ b/examples/models/openai/chat/image-agent.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/chat/image_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/image_agent.py) +Full source: [cookbook/90_models/openai/chat/image_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/image_agent.py) diff --git a/examples/models/openai/chat/knowledge.mdx b/examples/models/openai/chat/knowledge.mdx index b039e93ab..dbbbc042e 100644 --- a/examples/models/openai/chat/knowledge.mdx +++ b/examples/models/openai/chat/knowledge.mdx @@ -68,4 +68,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/chat/knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/knowledge.py) +Full source: [cookbook/90_models/openai/chat/knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/knowledge.py) diff --git a/examples/models/openai/chat/memory.mdx b/examples/models/openai/chat/memory.mdx index a9e5350d7..799d89317 100644 --- a/examples/models/openai/chat/memory.mdx +++ b/examples/models/openai/chat/memory.mdx @@ -116,4 +116,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/chat/memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/memory.py) +Full source: [cookbook/90_models/openai/chat/memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/memory.py) diff --git a/examples/models/openai/chat/metrics.mdx b/examples/models/openai/chat/metrics.mdx index 32428bc90..a03946d9c 100644 --- a/examples/models/openai/chat/metrics.mdx +++ b/examples/models/openai/chat/metrics.mdx @@ -86,4 +86,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/chat/metrics.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/metrics.py) +Full source: [cookbook/90_models/openai/chat/metrics.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/metrics.py) diff --git a/examples/models/openai/chat/pdf-input-bytes.mdx b/examples/models/openai/chat/pdf-input-bytes.mdx index 2f899f33f..a192a88d8 100644 --- a/examples/models/openai/chat/pdf-input-bytes.mdx +++ b/examples/models/openai/chat/pdf-input-bytes.mdx @@ -74,4 +74,4 @@ agent.print_response( -Full source: [cookbook/90_models/openai/chat/pdf_input_bytes.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/pdf_input_bytes.py) +Full source: [cookbook/90_models/openai/chat/pdf_input_bytes.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/pdf_input_bytes.py) diff --git a/examples/models/openai/chat/pdf-input-file-upload.mdx b/examples/models/openai/chat/pdf-input-file-upload.mdx index bb59b7cd9..b87188591 100644 --- a/examples/models/openai/chat/pdf-input-file-upload.mdx +++ b/examples/models/openai/chat/pdf-input-file-upload.mdx @@ -89,4 +89,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/chat/pdf_input_file_upload.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/pdf_input_file_upload.py) +Full source: [cookbook/90_models/openai/chat/pdf_input_file_upload.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/pdf_input_file_upload.py) diff --git a/examples/models/openai/chat/pdf-input-local.mdx b/examples/models/openai/chat/pdf-input-local.mdx index 658535ccc..7bd55accc 100644 --- a/examples/models/openai/chat/pdf-input-local.mdx +++ b/examples/models/openai/chat/pdf-input-local.mdx @@ -80,4 +80,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/chat/pdf_input_local.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/pdf_input_local.py) +Full source: [cookbook/90_models/openai/chat/pdf_input_local.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/pdf_input_local.py) diff --git a/examples/models/openai/chat/pdf-input-url.mdx b/examples/models/openai/chat/pdf-input-url.mdx index 9e22fe8c3..8f80c5653 100644 --- a/examples/models/openai/chat/pdf-input-url.mdx +++ b/examples/models/openai/chat/pdf-input-url.mdx @@ -70,4 +70,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/chat/pdf_input_url.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/pdf_input_url.py) +Full source: [cookbook/90_models/openai/chat/pdf_input_url.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/pdf_input_url.py) diff --git a/examples/models/openai/chat/reasoning-o3-mini.mdx b/examples/models/openai/chat/reasoning-o3-mini.mdx index f24f2063e..54963c3cf 100644 --- a/examples/models/openai/chat/reasoning-o3-mini.mdx +++ b/examples/models/openai/chat/reasoning-o3-mini.mdx @@ -68,4 +68,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/chat/reasoning_o3_mini.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/reasoning_o3_mini.py) +Full source: [cookbook/90_models/openai/chat/reasoning_o3_mini.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/reasoning_o3_mini.py) diff --git a/examples/models/openai/chat/retry.mdx b/examples/models/openai/chat/retry.mdx index 28634e840..3d391a0f2 100644 --- a/examples/models/openai/chat/retry.mdx +++ b/examples/models/openai/chat/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/openai/chat/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/retry.py) +Full source: [cookbook/90_models/openai/chat/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/retry.py) diff --git a/examples/models/openai/chat/structured-output.mdx b/examples/models/openai/chat/structured-output.mdx index 48ef3c7bb..0205c067c 100644 --- a/examples/models/openai/chat/structured-output.mdx +++ b/examples/models/openai/chat/structured-output.mdx @@ -128,4 +128,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/chat/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/structured_output.py) +Full source: [cookbook/90_models/openai/chat/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/structured_output.py) diff --git a/examples/models/openai/chat/text-to-speech-agent.mdx b/examples/models/openai/chat/text-to-speech-agent.mdx index 0dfead348..a153e8217 100644 --- a/examples/models/openai/chat/text-to-speech-agent.mdx +++ b/examples/models/openai/chat/text-to-speech-agent.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/chat/text_to_speech_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/text_to_speech_agent.py) +Full source: [cookbook/90_models/openai/chat/text_to_speech_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/text_to_speech_agent.py) diff --git a/examples/models/openai/chat/tool-use.mdx b/examples/models/openai/chat/tool-use.mdx index 6e308fb51..9abb4e178 100644 --- a/examples/models/openai/chat/tool-use.mdx +++ b/examples/models/openai/chat/tool-use.mdx @@ -68,4 +68,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/chat/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/tool_use.py) +Full source: [cookbook/90_models/openai/chat/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/tool_use.py) diff --git a/examples/models/openai/chat/verbosity-control.mdx b/examples/models/openai/chat/verbosity-control.mdx index d36400e07..3808acd60 100644 --- a/examples/models/openai/chat/verbosity-control.mdx +++ b/examples/models/openai/chat/verbosity-control.mdx @@ -67,4 +67,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/chat/verbosity_control.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/verbosity_control.py) +Full source: [cookbook/90_models/openai/chat/verbosity_control.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/verbosity_control.py) diff --git a/examples/models/openai/chat/with-retries.mdx b/examples/models/openai/chat/with-retries.mdx index 5b8968918..43c584c44 100644 --- a/examples/models/openai/chat/with-retries.mdx +++ b/examples/models/openai/chat/with-retries.mdx @@ -45,4 +45,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/openai/chat/with_retries.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/chat/with_retries.py) +Full source: [cookbook/90_models/openai/chat/with_retries.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/chat/with_retries.py) diff --git a/examples/models/openai/responses/agent-flex-tier.mdx b/examples/models/openai/responses/agent-flex-tier.mdx index 983e4b2bd..c6bbaa3f4 100644 --- a/examples/models/openai/responses/agent-flex-tier.mdx +++ b/examples/models/openai/responses/agent-flex-tier.mdx @@ -65,4 +65,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/responses/agent_flex_tier.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/responses/agent_flex_tier.py) +Full source: [cookbook/90_models/openai/responses/agent_flex_tier.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/responses/agent_flex_tier.py) diff --git a/examples/models/openai/responses/background.mdx b/examples/models/openai/responses/background.mdx index cbd6aabdf..1660b3675 100644 --- a/examples/models/openai/responses/background.mdx +++ b/examples/models/openai/responses/background.mdx @@ -72,4 +72,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/responses/background.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/responses/background.py) +Full source: [cookbook/90_models/openai/responses/background.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/responses/background.py) diff --git a/examples/models/openai/responses/basic.mdx b/examples/models/openai/responses/basic.mdx index 53a551401..c1b69e00e 100644 --- a/examples/models/openai/responses/basic.mdx +++ b/examples/models/openai/responses/basic.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/responses/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/responses/basic.py) +Full source: [cookbook/90_models/openai/responses/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/responses/basic.py) diff --git a/examples/models/openai/responses/db.mdx b/examples/models/openai/responses/db.mdx index 83ffe57fe..5559f3609 100644 --- a/examples/models/openai/responses/db.mdx +++ b/examples/models/openai/responses/db.mdx @@ -70,4 +70,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/responses/db.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/responses/db.py) +Full source: [cookbook/90_models/openai/responses/db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/responses/db.py) diff --git a/examples/models/openai/responses/deep-research-agent.mdx b/examples/models/openai/responses/deep-research-agent.mdx index 7d29403a0..94cbc27a6 100644 --- a/examples/models/openai/responses/deep-research-agent.mdx +++ b/examples/models/openai/responses/deep-research-agent.mdx @@ -86,4 +86,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/responses/deep_research_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/responses/deep_research_agent.py) +Full source: [cookbook/90_models/openai/responses/deep_research_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/responses/deep_research_agent.py) diff --git a/examples/models/openai/responses/file-input-direct.mdx b/examples/models/openai/responses/file-input-direct.mdx index 8378def39..954b6573f 100644 --- a/examples/models/openai/responses/file-input-direct.mdx +++ b/examples/models/openai/responses/file-input-direct.mdx @@ -89,4 +89,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/responses/file_input_direct.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/responses/file_input_direct.py) +Full source: [cookbook/90_models/openai/responses/file_input_direct.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/responses/file_input_direct.py) diff --git a/examples/models/openai/responses/image-agent-bytes.mdx b/examples/models/openai/responses/image-agent-bytes.mdx index 6dad6f4b6..6cd52f69a 100644 --- a/examples/models/openai/responses/image-agent-bytes.mdx +++ b/examples/models/openai/responses/image-agent-bytes.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/responses/image_agent_bytes.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/responses/image_agent_bytes.py) +Full source: [cookbook/90_models/openai/responses/image_agent_bytes.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/responses/image_agent_bytes.py) diff --git a/examples/models/openai/responses/image-agent-file.mdx b/examples/models/openai/responses/image-agent-file.mdx index b75086c00..ceb0aea6e 100644 --- a/examples/models/openai/responses/image-agent-file.mdx +++ b/examples/models/openai/responses/image-agent-file.mdx @@ -73,4 +73,4 @@ agent.print_response( -Full source: [cookbook/90_models/openai/responses/image_agent_file.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/responses/image_agent_file.py) +Full source: [cookbook/90_models/openai/responses/image_agent_file.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/responses/image_agent_file.py) diff --git a/examples/models/openai/responses/image-agent-with-memory.mdx b/examples/models/openai/responses/image-agent-with-memory.mdx index 176646cda..df26ee968 100644 --- a/examples/models/openai/responses/image-agent-with-memory.mdx +++ b/examples/models/openai/responses/image-agent-with-memory.mdx @@ -79,4 +79,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/responses/image_agent_with_memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/responses/image_agent_with_memory.py) +Full source: [cookbook/90_models/openai/responses/image_agent_with_memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/responses/image_agent_with_memory.py) diff --git a/examples/models/openai/responses/image-agent.mdx b/examples/models/openai/responses/image-agent.mdx index 446cc5f90..c92034adb 100644 --- a/examples/models/openai/responses/image-agent.mdx +++ b/examples/models/openai/responses/image-agent.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/responses/image_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/responses/image_agent.py) +Full source: [cookbook/90_models/openai/responses/image_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/responses/image_agent.py) diff --git a/examples/models/openai/responses/image-generation-agent.mdx b/examples/models/openai/responses/image-generation-agent.mdx index 1151b53f8..d5bac1c6b 100644 --- a/examples/models/openai/responses/image-generation-agent.mdx +++ b/examples/models/openai/responses/image-generation-agent.mdx @@ -93,4 +93,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/responses/image_generation_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/responses/image_generation_agent.py) +Full source: [cookbook/90_models/openai/responses/image_generation_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/responses/image_generation_agent.py) diff --git a/examples/models/openai/responses/knowledge.mdx b/examples/models/openai/responses/knowledge.mdx index 5d5ca99d6..90dfc801e 100644 --- a/examples/models/openai/responses/knowledge.mdx +++ b/examples/models/openai/responses/knowledge.mdx @@ -68,4 +68,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/responses/knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/responses/knowledge.py) +Full source: [cookbook/90_models/openai/responses/knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/responses/knowledge.py) diff --git a/examples/models/openai/responses/memory.mdx b/examples/models/openai/responses/memory.mdx index 0032ff3e2..edb2bf934 100644 --- a/examples/models/openai/responses/memory.mdx +++ b/examples/models/openai/responses/memory.mdx @@ -112,4 +112,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/responses/memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/responses/memory.py) +Full source: [cookbook/90_models/openai/responses/memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/responses/memory.py) diff --git a/examples/models/openai/responses/pdf-input-local.mdx b/examples/models/openai/responses/pdf-input-local.mdx index dc84be6e3..d47b94e20 100644 --- a/examples/models/openai/responses/pdf-input-local.mdx +++ b/examples/models/openai/responses/pdf-input-local.mdx @@ -82,4 +82,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/responses/pdf_input_local.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/responses/pdf_input_local.py) +Full source: [cookbook/90_models/openai/responses/pdf_input_local.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/responses/pdf_input_local.py) diff --git a/examples/models/openai/responses/pdf-input-url.mdx b/examples/models/openai/responses/pdf-input-url.mdx index d8255f0cf..82c40f3d7 100644 --- a/examples/models/openai/responses/pdf-input-url.mdx +++ b/examples/models/openai/responses/pdf-input-url.mdx @@ -84,4 +84,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/responses/pdf_input_url.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/responses/pdf_input_url.py) +Full source: [cookbook/90_models/openai/responses/pdf_input_url.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/responses/pdf_input_url.py) diff --git a/examples/models/openai/responses/reasoning-o3-mini.mdx b/examples/models/openai/responses/reasoning-o3-mini.mdx index ac63814b7..818b3c235 100644 --- a/examples/models/openai/responses/reasoning-o3-mini.mdx +++ b/examples/models/openai/responses/reasoning-o3-mini.mdx @@ -68,4 +68,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/responses/reasoning_o3_mini.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/responses/reasoning_o3_mini.py) +Full source: [cookbook/90_models/openai/responses/reasoning_o3_mini.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/responses/reasoning_o3_mini.py) diff --git a/examples/models/openai/responses/structured-output-with-tools.mdx b/examples/models/openai/responses/structured-output-with-tools.mdx index e726dd517..500115fbe 100644 --- a/examples/models/openai/responses/structured-output-with-tools.mdx +++ b/examples/models/openai/responses/structured-output-with-tools.mdx @@ -92,4 +92,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/responses/structured_output_with_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/responses/structured_output_with_tools.py) +Full source: [cookbook/90_models/openai/responses/structured_output_with_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/responses/structured_output_with_tools.py) diff --git a/examples/models/openai/responses/structured-output.mdx b/examples/models/openai/responses/structured-output.mdx index 52846ac5a..b4225b70c 100644 --- a/examples/models/openai/responses/structured-output.mdx +++ b/examples/models/openai/responses/structured-output.mdx @@ -114,4 +114,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/responses/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/responses/structured_output.py) +Full source: [cookbook/90_models/openai/responses/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/responses/structured_output.py) diff --git a/examples/models/openai/responses/tool-use-gpt-5.mdx b/examples/models/openai/responses/tool-use-gpt-5.mdx index e107bffb9..67a668b5e 100644 --- a/examples/models/openai/responses/tool-use-gpt-5.mdx +++ b/examples/models/openai/responses/tool-use-gpt-5.mdx @@ -68,4 +68,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/responses/tool_use_gpt_5.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/responses/tool_use_gpt_5.py) +Full source: [cookbook/90_models/openai/responses/tool_use_gpt_5.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/responses/tool_use_gpt_5.py) diff --git a/examples/models/openai/responses/tool-use-o3.mdx b/examples/models/openai/responses/tool-use-o3.mdx index 4f476afc5..f3ab70c85 100644 --- a/examples/models/openai/responses/tool-use-o3.mdx +++ b/examples/models/openai/responses/tool-use-o3.mdx @@ -68,4 +68,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/responses/tool_use_o3.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/responses/tool_use_o3.py) +Full source: [cookbook/90_models/openai/responses/tool_use_o3.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/responses/tool_use_o3.py) diff --git a/examples/models/openai/responses/tool-use.mdx b/examples/models/openai/responses/tool-use.mdx index 52ffe4afa..dd434c323 100644 --- a/examples/models/openai/responses/tool-use.mdx +++ b/examples/models/openai/responses/tool-use.mdx @@ -68,4 +68,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/responses/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/responses/tool_use.py) +Full source: [cookbook/90_models/openai/responses/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/responses/tool_use.py) diff --git a/examples/models/openai/responses/verbosity-control.mdx b/examples/models/openai/responses/verbosity-control.mdx index d60aa5f7b..46137f98f 100644 --- a/examples/models/openai/responses/verbosity-control.mdx +++ b/examples/models/openai/responses/verbosity-control.mdx @@ -67,4 +67,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/responses/verbosity_control.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/responses/verbosity_control.py) +Full source: [cookbook/90_models/openai/responses/verbosity_control.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/responses/verbosity_control.py) diff --git a/examples/models/openai/responses/websearch-builtin-tool.mdx b/examples/models/openai/responses/websearch-builtin-tool.mdx index 794f7a993..33970e8b4 100644 --- a/examples/models/openai/responses/websearch-builtin-tool.mdx +++ b/examples/models/openai/responses/websearch-builtin-tool.mdx @@ -67,4 +67,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/responses/websearch_builtin_tool.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/responses/websearch_builtin_tool.py) +Full source: [cookbook/90_models/openai/responses/websearch_builtin_tool.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/responses/websearch_builtin_tool.py) diff --git a/examples/models/openai/responses/zdr-reasoning-agent.mdx b/examples/models/openai/responses/zdr-reasoning-agent.mdx index f55a1bb75..33fdffedb 100644 --- a/examples/models/openai/responses/zdr-reasoning-agent.mdx +++ b/examples/models/openai/responses/zdr-reasoning-agent.mdx @@ -78,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openai/responses/zdr_reasoning_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openai/responses/zdr_reasoning_agent.py) +Full source: [cookbook/90_models/openai/responses/zdr_reasoning_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openai/responses/zdr_reasoning_agent.py) diff --git a/examples/models/openrouter/chat/basic.mdx b/examples/models/openrouter/chat/basic.mdx index 5ddd3b484..32f6418f3 100644 --- a/examples/models/openrouter/chat/basic.mdx +++ b/examples/models/openrouter/chat/basic.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openrouter/chat/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openrouter/chat/basic.py) +Full source: [cookbook/90_models/openrouter/chat/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openrouter/chat/basic.py) diff --git a/examples/models/openrouter/chat/dynamic-model-router.mdx b/examples/models/openrouter/chat/dynamic-model-router.mdx index cd327e775..7be994435 100644 --- a/examples/models/openrouter/chat/dynamic-model-router.mdx +++ b/examples/models/openrouter/chat/dynamic-model-router.mdx @@ -85,4 +85,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openrouter/chat/dynamic_model_router.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openrouter/chat/dynamic_model_router.py) +Full source: [cookbook/90_models/openrouter/chat/dynamic_model_router.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openrouter/chat/dynamic_model_router.py) diff --git a/examples/models/openrouter/chat/image-generation.mdx b/examples/models/openrouter/chat/image-generation.mdx new file mode 100644 index 000000000..09ebffe38 --- /dev/null +++ b/examples/models/openrouter/chat/image-generation.mdx @@ -0,0 +1,67 @@ +--- +title: "Image Generation" +description: "Generate an image with Gemini 2.5 Flash Image through OpenRouter and display the returned bytes." +source: cookbook/90_models/openrouter/chat/image_generation.py +--- + +```python image_generation.py +from io import BytesIO + +from agno.agent import Agent, RunOutput # noqa +from agno.models.openrouter import OpenRouter +from PIL import Image + +# Request both image and text modalities so OpenRouter returns generated images +agent = Agent( + model=OpenRouter( + id="google/gemini-2.5-flash-image", + modalities=["image", "text"], + ) +) + +run_response = agent.run("Make me an image of a cat in a tree.") + +if run_response and isinstance(run_response, RunOutput) and run_response.images: + for image_response in run_response.images: + image_bytes = image_response.content + if image_bytes: + image = Image.open(BytesIO(image_bytes)) + image.show() + # Save the image to a file + # image.save("generated_image.png") +else: + print("No images found in run response") +``` + +## Run the Example + + + + + + ```bash + uv pip install -U agno openai pillow + ``` + + + + + ```bash Mac/Linux + export OPENROUTER_API_KEY="your_openrouter_api_key_here" + ``` + + ```bash Windows + $Env:OPENROUTER_API_KEY="your_openrouter_api_key_here" + ``` + + + + + Save the code above as `image_generation.py`, then run: + ```bash + python image_generation.py + ``` + + + +Full source: [cookbook/90_models/openrouter/chat/image_generation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openrouter/chat/image_generation.py) diff --git a/examples/models/openrouter/chat/retry.mdx b/examples/models/openrouter/chat/retry.mdx index 119aa493b..7b7489927 100644 --- a/examples/models/openrouter/chat/retry.mdx +++ b/examples/models/openrouter/chat/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/openrouter/chat/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openrouter/chat/retry.py) +Full source: [cookbook/90_models/openrouter/chat/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openrouter/chat/retry.py) diff --git a/examples/models/openrouter/chat/structured-output.mdx b/examples/models/openrouter/chat/structured-output.mdx index bfccc9f55..04e9c5c1e 100644 --- a/examples/models/openrouter/chat/structured-output.mdx +++ b/examples/models/openrouter/chat/structured-output.mdx @@ -106,4 +106,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openrouter/chat/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openrouter/chat/structured_output.py) +Full source: [cookbook/90_models/openrouter/chat/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openrouter/chat/structured_output.py) diff --git a/examples/models/openrouter/chat/tool-use.mdx b/examples/models/openrouter/chat/tool-use.mdx index a8a6e8233..19c40a788 100644 --- a/examples/models/openrouter/chat/tool-use.mdx +++ b/examples/models/openrouter/chat/tool-use.mdx @@ -65,4 +65,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openrouter/chat/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openrouter/chat/tool_use.py) +Full source: [cookbook/90_models/openrouter/chat/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openrouter/chat/tool_use.py) diff --git a/examples/models/openrouter/responses/basic.mdx b/examples/models/openrouter/responses/basic.mdx index 3d3017767..81d633ab4 100644 --- a/examples/models/openrouter/responses/basic.mdx +++ b/examples/models/openrouter/responses/basic.mdx @@ -74,4 +74,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openrouter/responses/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openrouter/responses/basic.py) +Full source: [cookbook/90_models/openrouter/responses/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openrouter/responses/basic.py) diff --git a/examples/models/openrouter/responses/fallback.mdx b/examples/models/openrouter/responses/fallback.mdx index 108860bb0..a4989032c 100644 --- a/examples/models/openrouter/responses/fallback.mdx +++ b/examples/models/openrouter/responses/fallback.mdx @@ -77,4 +77,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openrouter/responses/fallback.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openrouter/responses/fallback.py) +Full source: [cookbook/90_models/openrouter/responses/fallback.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openrouter/responses/fallback.py) diff --git a/examples/models/openrouter/responses/stream.mdx b/examples/models/openrouter/responses/stream.mdx index f36352e9f..b58866b23 100644 --- a/examples/models/openrouter/responses/stream.mdx +++ b/examples/models/openrouter/responses/stream.mdx @@ -65,4 +65,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openrouter/responses/stream.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openrouter/responses/stream.py) +Full source: [cookbook/90_models/openrouter/responses/stream.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openrouter/responses/stream.py) diff --git a/examples/models/openrouter/responses/tool-use.mdx b/examples/models/openrouter/responses/tool-use.mdx index 820b767fb..5e3c9b91c 100644 --- a/examples/models/openrouter/responses/tool-use.mdx +++ b/examples/models/openrouter/responses/tool-use.mdx @@ -70,4 +70,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/openrouter/responses/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/openrouter/responses/tool_use.py) +Full source: [cookbook/90_models/openrouter/responses/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/openrouter/responses/tool_use.py) diff --git a/examples/models/perplexity/basic.mdx b/examples/models/perplexity/basic.mdx index a1593f332..822477ce8 100644 --- a/examples/models/perplexity/basic.mdx +++ b/examples/models/perplexity/basic.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/perplexity/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/perplexity/basic.py) +Full source: [cookbook/90_models/perplexity/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/perplexity/basic.py) diff --git a/examples/models/perplexity/knowledge.mdx b/examples/models/perplexity/knowledge.mdx index fbfcb35c9..dd784118b 100644 --- a/examples/models/perplexity/knowledge.mdx +++ b/examples/models/perplexity/knowledge.mdx @@ -75,4 +75,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/perplexity/knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/perplexity/knowledge.py) +Full source: [cookbook/90_models/perplexity/knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/perplexity/knowledge.py) diff --git a/examples/models/perplexity/memory.mdx b/examples/models/perplexity/memory.mdx index b3bf2f246..ea748ea26 100644 --- a/examples/models/perplexity/memory.mdx +++ b/examples/models/perplexity/memory.mdx @@ -104,4 +104,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/perplexity/memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/perplexity/memory.py) +Full source: [cookbook/90_models/perplexity/memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/perplexity/memory.py) diff --git a/examples/models/perplexity/retry.mdx b/examples/models/perplexity/retry.mdx index aa2f48886..83b49aeb4 100644 --- a/examples/models/perplexity/retry.mdx +++ b/examples/models/perplexity/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/perplexity/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/perplexity/retry.py) +Full source: [cookbook/90_models/perplexity/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/perplexity/retry.py) diff --git a/examples/models/perplexity/structured-output.mdx b/examples/models/perplexity/structured-output.mdx index be412313c..d1aa7ee2e 100644 --- a/examples/models/perplexity/structured-output.mdx +++ b/examples/models/perplexity/structured-output.mdx @@ -97,4 +97,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/perplexity/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/perplexity/structured_output.py) +Full source: [cookbook/90_models/perplexity/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/perplexity/structured_output.py) diff --git a/examples/models/perplexity/web-search.mdx b/examples/models/perplexity/web-search.mdx index 48553df2e..959379588 100644 --- a/examples/models/perplexity/web-search.mdx +++ b/examples/models/perplexity/web-search.mdx @@ -67,4 +67,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/perplexity/web_search.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/perplexity/web_search.py) +Full source: [cookbook/90_models/perplexity/web_search.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/perplexity/web_search.py) diff --git a/examples/models/portkey/basic.mdx b/examples/models/portkey/basic.mdx index 9a5c69109..2c8ab6c35 100644 --- a/examples/models/portkey/basic.mdx +++ b/examples/models/portkey/basic.mdx @@ -89,4 +89,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/portkey/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/portkey/basic.py) +Full source: [cookbook/90_models/portkey/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/portkey/basic.py) diff --git a/examples/models/portkey/retry.mdx b/examples/models/portkey/retry.mdx index 1fe9984c5..89bd7f7c1 100644 --- a/examples/models/portkey/retry.mdx +++ b/examples/models/portkey/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/portkey/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/portkey/retry.py) +Full source: [cookbook/90_models/portkey/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/portkey/retry.py) diff --git a/examples/models/portkey/structured-output.mdx b/examples/models/portkey/structured-output.mdx index e564c7b2b..fea0550bf 100644 --- a/examples/models/portkey/structured-output.mdx +++ b/examples/models/portkey/structured-output.mdx @@ -93,4 +93,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/portkey/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/portkey/structured_output.py) +Full source: [cookbook/90_models/portkey/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/portkey/structured_output.py) diff --git a/examples/models/portkey/tool-use.mdx b/examples/models/portkey/tool-use.mdx index 847826c86..d8471c8b7 100644 --- a/examples/models/portkey/tool-use.mdx +++ b/examples/models/portkey/tool-use.mdx @@ -86,4 +86,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/portkey/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/portkey/tool_use.py) +Full source: [cookbook/90_models/portkey/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/portkey/tool_use.py) diff --git a/examples/models/requesty/basic.mdx b/examples/models/requesty/basic.mdx index c83993e58..49f829ab4 100644 --- a/examples/models/requesty/basic.mdx +++ b/examples/models/requesty/basic.mdx @@ -81,4 +81,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/requesty/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/requesty/basic.py) +Full source: [cookbook/90_models/requesty/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/requesty/basic.py) diff --git a/examples/models/requesty/retry.mdx b/examples/models/requesty/retry.mdx index fdee03b05..c0e59c414 100644 --- a/examples/models/requesty/retry.mdx +++ b/examples/models/requesty/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/requesty/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/requesty/retry.py) +Full source: [cookbook/90_models/requesty/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/requesty/retry.py) diff --git a/examples/models/requesty/structured-output.mdx b/examples/models/requesty/structured-output.mdx index a37069d55..4a148f922 100644 --- a/examples/models/requesty/structured-output.mdx +++ b/examples/models/requesty/structured-output.mdx @@ -90,4 +90,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/requesty/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/requesty/structured_output.py) +Full source: [cookbook/90_models/requesty/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/requesty/structured_output.py) diff --git a/examples/models/requesty/tool-use.mdx b/examples/models/requesty/tool-use.mdx index 5fba3bbdd..40401a76c 100644 --- a/examples/models/requesty/tool-use.mdx +++ b/examples/models/requesty/tool-use.mdx @@ -65,4 +65,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/requesty/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/requesty/tool_use.py) +Full source: [cookbook/90_models/requesty/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/requesty/tool_use.py) diff --git a/examples/models/sambanova/basic.mdx b/examples/models/sambanova/basic.mdx index 88501ddbe..49a7be41b 100644 --- a/examples/models/sambanova/basic.mdx +++ b/examples/models/sambanova/basic.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/sambanova/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/sambanova/basic.py) +Full source: [cookbook/90_models/sambanova/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/sambanova/basic.py) diff --git a/examples/models/sambanova/retry.mdx b/examples/models/sambanova/retry.mdx index dec78a812..d1d32d06f 100644 --- a/examples/models/sambanova/retry.mdx +++ b/examples/models/sambanova/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/sambanova/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/sambanova/retry.py) +Full source: [cookbook/90_models/sambanova/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/sambanova/retry.py) diff --git a/examples/models/siliconflow/basic.mdx b/examples/models/siliconflow/basic.mdx index 97f964268..e1da672d1 100644 --- a/examples/models/siliconflow/basic.mdx +++ b/examples/models/siliconflow/basic.mdx @@ -73,4 +73,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/siliconflow/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/siliconflow/basic.py) +Full source: [cookbook/90_models/siliconflow/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/siliconflow/basic.py) diff --git a/examples/models/siliconflow/retry.mdx b/examples/models/siliconflow/retry.mdx index cb7bc391a..294ad13ee 100644 --- a/examples/models/siliconflow/retry.mdx +++ b/examples/models/siliconflow/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/siliconflow/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/siliconflow/retry.py) +Full source: [cookbook/90_models/siliconflow/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/siliconflow/retry.py) diff --git a/examples/models/siliconflow/structured-output.mdx b/examples/models/siliconflow/structured-output.mdx index a9865e6e4..91ae5ce1f 100644 --- a/examples/models/siliconflow/structured-output.mdx +++ b/examples/models/siliconflow/structured-output.mdx @@ -95,4 +95,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/siliconflow/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/siliconflow/structured_output.py) +Full source: [cookbook/90_models/siliconflow/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/siliconflow/structured_output.py) diff --git a/examples/models/siliconflow/tool-use.mdx b/examples/models/siliconflow/tool-use.mdx index 5277a1623..c916ce997 100644 --- a/examples/models/siliconflow/tool-use.mdx +++ b/examples/models/siliconflow/tool-use.mdx @@ -22,9 +22,7 @@ The current version of the siliconflow-chat model's Function Calling capability agent = Agent( model=Siliconflow(id="openai/gpt-oss-120b"), tools=[WebSearchTools()], - show_tool_calls=True, markdown=True, - debug_mode=True, ) agent.print_response("What happing in America?") @@ -68,4 +66,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/siliconflow/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/siliconflow/tool_use.py) +Full source: [cookbook/90_models/siliconflow/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/siliconflow/tool_use.py) diff --git a/examples/models/together/basic.mdx b/examples/models/together/basic.mdx index 2e02239fc..5f882b27a 100644 --- a/examples/models/together/basic.mdx +++ b/examples/models/together/basic.mdx @@ -88,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/together/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/together/basic.py) +Full source: [cookbook/90_models/together/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/together/basic.py) diff --git a/examples/models/together/image-agent-bytes.mdx b/examples/models/together/image-agent-bytes.mdx index 18805d1e2..e7d39143a 100644 --- a/examples/models/together/image-agent-bytes.mdx +++ b/examples/models/together/image-agent-bytes.mdx @@ -93,4 +93,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/together/image_agent_bytes.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/together/image_agent_bytes.py) +Full source: [cookbook/90_models/together/image_agent_bytes.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/together/image_agent_bytes.py) diff --git a/examples/models/together/image-agent-with-memory.mdx b/examples/models/together/image-agent-with-memory.mdx index 58df0e559..1bebf5ddf 100644 --- a/examples/models/together/image-agent-with-memory.mdx +++ b/examples/models/together/image-agent-with-memory.mdx @@ -88,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/together/image_agent_with_memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/together/image_agent_with_memory.py) +Full source: [cookbook/90_models/together/image_agent_with_memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/together/image_agent_with_memory.py) diff --git a/examples/models/together/image-agent.mdx b/examples/models/together/image-agent.mdx index ef14183ec..8d292b028 100644 --- a/examples/models/together/image-agent.mdx +++ b/examples/models/together/image-agent.mdx @@ -84,4 +84,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/together/image_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/together/image_agent.py) +Full source: [cookbook/90_models/together/image_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/together/image_agent.py) diff --git a/examples/models/together/overview.mdx b/examples/models/together/overview.mdx index b68f52940..665007c56 100644 --- a/examples/models/together/overview.mdx +++ b/examples/models/together/overview.mdx @@ -5,7 +5,7 @@ description: "Run Together models with streaming, image input, reasoning, struct --- -Together retires serverless model IDs on a rolling schedule. The Agno 2.7.2 cookbook examples may reference retired IDs. Before running an example, choose a current model from the [serverless catalog](https://docs.together.ai/docs/serverless/models) and verify the capabilities required by that example. +Together retires serverless model IDs on a rolling schedule. The Agno 2.7.4 cookbook examples may reference retired IDs. Before running an example, choose a current model from the [serverless catalog](https://docs.together.ai/docs/serverless/models) and verify the capabilities required by that example. | Example | Description | diff --git a/examples/models/together/reasoning-agent.mdx b/examples/models/together/reasoning-agent.mdx index 9314f4c03..0fdbbc7f6 100644 --- a/examples/models/together/reasoning-agent.mdx +++ b/examples/models/together/reasoning-agent.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/together/reasoning_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/together/reasoning_agent.py) +Full source: [cookbook/90_models/together/reasoning_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/together/reasoning_agent.py) diff --git a/examples/models/together/retry.mdx b/examples/models/together/retry.mdx index c56c5dee3..d1779b351 100644 --- a/examples/models/together/retry.mdx +++ b/examples/models/together/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/together/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/together/retry.py) +Full source: [cookbook/90_models/together/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/together/retry.py) diff --git a/examples/models/together/structured-output.mdx b/examples/models/together/structured-output.mdx index cf30a5054..29ea11569 100644 --- a/examples/models/together/structured-output.mdx +++ b/examples/models/together/structured-output.mdx @@ -108,4 +108,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/together/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/together/structured_output.py) +Full source: [cookbook/90_models/together/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/together/structured_output.py) diff --git a/examples/models/together/tool-use.mdx b/examples/models/together/tool-use.mdx index 69f210780..3362b42a4 100644 --- a/examples/models/together/tool-use.mdx +++ b/examples/models/together/tool-use.mdx @@ -78,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/together/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/together/tool_use.py) +Full source: [cookbook/90_models/together/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/together/tool_use.py) diff --git a/examples/models/tokenlab/basic.mdx b/examples/models/tokenlab/basic.mdx new file mode 100644 index 000000000..58d2bc571 --- /dev/null +++ b/examples/models/tokenlab/basic.mdx @@ -0,0 +1,83 @@ +--- +title: "TokenLab Basic" +description: "Run synchronous, streaming, and asynchronous agent responses through TokenLab with GPT-5.4 Mini." +source: cookbook/90_models/tokenlab/basic.py +--- + +```python basic.py +""" +TokenLab Basic +============== + +Cookbook example for `tokenlab/basic.py`. +""" + +import asyncio + +from agno.agent import Agent, RunOutput # noqa +from agno.models.tokenlab import TokenLab + +# --------------------------------------------------------------------------- +# Create Agent +# --------------------------------------------------------------------------- + +agent = Agent( + model=TokenLab(id="gpt-5.4-mini"), + markdown=True, +) + +# Get the response in a variable +# run: RunOutput = agent.run("Share a 2 sentence sci-fi story") +# print(run.content) + +# Print the response in the terminal + +# --------------------------------------------------------------------------- +# Run Agent +# --------------------------------------------------------------------------- +if __name__ == "__main__": + # --- Sync --- + agent.print_response("Share a 2 sentence sci-fi story") + + # --- Sync + Streaming --- + agent.print_response("Share a 2 sentence sci-fi story", stream=True) + + # --- Async --- + asyncio.run(agent.aprint_response("Share a 2 sentence sci-fi story")) + + # --- Async + Streaming --- + asyncio.run(agent.aprint_response("Share a 2 sentence sci-fi story", stream=True)) +``` + +## Run the Example + + + + + + ```bash + uv pip install -U agno openai + ``` + + + + + ```bash Mac/Linux + export TOKENLAB_API_KEY="your_tokenlab_api_key_here" + ``` + + ```bash Windows + $Env:TOKENLAB_API_KEY="your_tokenlab_api_key_here" + ``` + + + + + Save the code above as `basic.py`, then run: + ```bash + python basic.py + ``` + + + +Full source: [cookbook/90_models/tokenlab/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/tokenlab/basic.py) diff --git a/examples/models/tuning-engines/basic.mdx b/examples/models/tuning-engines/basic.mdx index a2c5a50fe..1675552c8 100644 --- a/examples/models/tuning-engines/basic.mdx +++ b/examples/models/tuning-engines/basic.mdx @@ -56,4 +56,4 @@ agent.print_response( -Full source: [cookbook/90_models/tuning_engines/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/tuning_engines/basic.py) +Full source: [cookbook/90_models/tuning_engines/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/tuning_engines/basic.py) diff --git a/examples/models/vercel/basic.mdx b/examples/models/vercel/basic.mdx index 9f4a79a8c..0da316e78 100644 --- a/examples/models/vercel/basic.mdx +++ b/examples/models/vercel/basic.mdx @@ -78,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/vercel/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vercel/basic.py) +Full source: [cookbook/90_models/vercel/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vercel/basic.py) diff --git a/examples/models/vercel/image-agent.mdx b/examples/models/vercel/image-agent.mdx index 0edc8c7c6..e0bee0dd6 100644 --- a/examples/models/vercel/image-agent.mdx +++ b/examples/models/vercel/image-agent.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/vercel/image_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vercel/image_agent.py) +Full source: [cookbook/90_models/vercel/image_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vercel/image_agent.py) diff --git a/examples/models/vercel/knowledge.mdx b/examples/models/vercel/knowledge.mdx index b19536afe..a6cd312b4 100644 --- a/examples/models/vercel/knowledge.mdx +++ b/examples/models/vercel/knowledge.mdx @@ -70,4 +70,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/vercel/knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vercel/knowledge.py) +Full source: [cookbook/90_models/vercel/knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vercel/knowledge.py) diff --git a/examples/models/vercel/retry.mdx b/examples/models/vercel/retry.mdx index 22a6cb527..fe3692456 100644 --- a/examples/models/vercel/retry.mdx +++ b/examples/models/vercel/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/vercel/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vercel/retry.py) +Full source: [cookbook/90_models/vercel/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vercel/retry.py) diff --git a/examples/models/vercel/tool-use.mdx b/examples/models/vercel/tool-use.mdx index cf103955c..c327d218d 100644 --- a/examples/models/vercel/tool-use.mdx +++ b/examples/models/vercel/tool-use.mdx @@ -65,4 +65,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/vercel/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vercel/tool_use.py) +Full source: [cookbook/90_models/vercel/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vercel/tool_use.py) diff --git a/examples/models/vertexai/claude/adaptive-thinking.mdx b/examples/models/vertexai/claude/adaptive-thinking.mdx index 5e76e8eef..5b5f924c1 100644 --- a/examples/models/vertexai/claude/adaptive-thinking.mdx +++ b/examples/models/vertexai/claude/adaptive-thinking.mdx @@ -99,4 +99,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/vertexai/claude/adaptive_thinking.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vertexai/claude/adaptive_thinking.py) +Full source: [cookbook/90_models/vertexai/claude/adaptive_thinking.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vertexai/claude/adaptive_thinking.py) diff --git a/examples/models/vertexai/claude/basic-with-timeout.mdx b/examples/models/vertexai/claude/basic-with-timeout.mdx index d92e57569..bf0d646de 100644 --- a/examples/models/vertexai/claude/basic-with-timeout.mdx +++ b/examples/models/vertexai/claude/basic-with-timeout.mdx @@ -71,4 +71,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/vertexai/claude/basic_with_timeout.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vertexai/claude/basic_with_timeout.py) +Full source: [cookbook/90_models/vertexai/claude/basic_with_timeout.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vertexai/claude/basic_with_timeout.py) diff --git a/examples/models/vertexai/claude/basic.mdx b/examples/models/vertexai/claude/basic.mdx index fdf17b617..bf41b5222 100644 --- a/examples/models/vertexai/claude/basic.mdx +++ b/examples/models/vertexai/claude/basic.mdx @@ -85,4 +85,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/vertexai/claude/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vertexai/claude/basic.py) +Full source: [cookbook/90_models/vertexai/claude/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vertexai/claude/basic.py) diff --git a/examples/models/vertexai/claude/betas.mdx b/examples/models/vertexai/claude/betas.mdx index acd3905f5..585bf687c 100644 --- a/examples/models/vertexai/claude/betas.mdx +++ b/examples/models/vertexai/claude/betas.mdx @@ -26,7 +26,7 @@ model = Claude(id="claude-sonnet-4@20250514", betas=betas) # Note: you can see all beta features available in your Anthropic version like this: all_betas = anthropic.types.AnthropicBetaParam -agent = Agent(model=model, debug_mode=True) +agent = Agent(model=model) # --------------------------------------------------------------------------- # Run Agent @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/vertexai/claude/betas.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vertexai/claude/betas.py) +Full source: [cookbook/90_models/vertexai/claude/betas.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vertexai/claude/betas.py) diff --git a/examples/models/vertexai/claude/db.mdx b/examples/models/vertexai/claude/db.mdx index 2471ef753..c201925fd 100644 --- a/examples/models/vertexai/claude/db.mdx +++ b/examples/models/vertexai/claude/db.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/vertexai/claude/db.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vertexai/claude/db.py) +Full source: [cookbook/90_models/vertexai/claude/db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vertexai/claude/db.py) diff --git a/examples/models/vertexai/claude/image-input-bytes.mdx b/examples/models/vertexai/claude/image-input-bytes.mdx index 48c219142..0eb6bd083 100644 --- a/examples/models/vertexai/claude/image-input-bytes.mdx +++ b/examples/models/vertexai/claude/image-input-bytes.mdx @@ -96,4 +96,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/vertexai/claude/image_input_bytes.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vertexai/claude/image_input_bytes.py) +Full source: [cookbook/90_models/vertexai/claude/image_input_bytes.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vertexai/claude/image_input_bytes.py) diff --git a/examples/models/vertexai/claude/image-input-url.mdx b/examples/models/vertexai/claude/image-input-url.mdx index 1fe577503..f4cd8469d 100644 --- a/examples/models/vertexai/claude/image-input-url.mdx +++ b/examples/models/vertexai/claude/image-input-url.mdx @@ -85,4 +85,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/vertexai/claude/image_input_url.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vertexai/claude/image_input_url.py) +Full source: [cookbook/90_models/vertexai/claude/image_input_url.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vertexai/claude/image_input_url.py) diff --git a/examples/models/vertexai/claude/knowledge.mdx b/examples/models/vertexai/claude/knowledge.mdx index f2a2951c9..7e31ca3f3 100644 --- a/examples/models/vertexai/claude/knowledge.mdx +++ b/examples/models/vertexai/claude/knowledge.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/vertexai/claude/knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vertexai/claude/knowledge.py) +Full source: [cookbook/90_models/vertexai/claude/knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vertexai/claude/knowledge.py) diff --git a/examples/models/vertexai/claude/memory.mdx b/examples/models/vertexai/claude/memory.mdx index 9ce7013cf..34c8586b0 100644 --- a/examples/models/vertexai/claude/memory.mdx +++ b/examples/models/vertexai/claude/memory.mdx @@ -98,4 +98,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/vertexai/claude/memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vertexai/claude/memory.py) +Full source: [cookbook/90_models/vertexai/claude/memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vertexai/claude/memory.py) diff --git a/examples/models/vertexai/claude/pdf-input-bytes.mdx b/examples/models/vertexai/claude/pdf-input-bytes.mdx index c0cab48a8..1799f61e7 100644 --- a/examples/models/vertexai/claude/pdf-input-bytes.mdx +++ b/examples/models/vertexai/claude/pdf-input-bytes.mdx @@ -92,4 +92,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/vertexai/claude/pdf_input_bytes.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vertexai/claude/pdf_input_bytes.py) +Full source: [cookbook/90_models/vertexai/claude/pdf_input_bytes.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vertexai/claude/pdf_input_bytes.py) diff --git a/examples/models/vertexai/claude/pdf-input-local.mdx b/examples/models/vertexai/claude/pdf-input-local.mdx index f968bafb6..a1e438d75 100644 --- a/examples/models/vertexai/claude/pdf-input-local.mdx +++ b/examples/models/vertexai/claude/pdf-input-local.mdx @@ -92,4 +92,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/vertexai/claude/pdf_input_local.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vertexai/claude/pdf_input_local.py) +Full source: [cookbook/90_models/vertexai/claude/pdf_input_local.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vertexai/claude/pdf_input_local.py) diff --git a/examples/models/vertexai/claude/prompt-caching.mdx b/examples/models/vertexai/claude/prompt-caching.mdx index 8d4fa498e..0b2b1a249 100644 --- a/examples/models/vertexai/claude/prompt-caching.mdx +++ b/examples/models/vertexai/claude/prompt-caching.mdx @@ -107,4 +107,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/vertexai/claude/prompt_caching.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vertexai/claude/prompt_caching.py) +Full source: [cookbook/90_models/vertexai/claude/prompt_caching.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vertexai/claude/prompt_caching.py) diff --git a/examples/models/vertexai/claude/structured-output.mdx b/examples/models/vertexai/claude/structured-output.mdx index d34bc86e1..10a30b2d7 100644 --- a/examples/models/vertexai/claude/structured-output.mdx +++ b/examples/models/vertexai/claude/structured-output.mdx @@ -101,4 +101,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/vertexai/claude/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vertexai/claude/structured_output.py) +Full source: [cookbook/90_models/vertexai/claude/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vertexai/claude/structured_output.py) diff --git a/examples/models/vertexai/claude/thinking.mdx b/examples/models/vertexai/claude/thinking.mdx index 097e5aa80..36ba4a9f6 100644 --- a/examples/models/vertexai/claude/thinking.mdx +++ b/examples/models/vertexai/claude/thinking.mdx @@ -81,4 +81,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/vertexai/claude/thinking.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vertexai/claude/thinking.py) +Full source: [cookbook/90_models/vertexai/claude/thinking.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vertexai/claude/thinking.py) diff --git a/examples/models/vertexai/claude/tool-use.mdx b/examples/models/vertexai/claude/tool-use.mdx index 6ace6491d..69d84cc30 100644 --- a/examples/models/vertexai/claude/tool-use.mdx +++ b/examples/models/vertexai/claude/tool-use.mdx @@ -77,4 +77,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/vertexai/claude/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vertexai/claude/tool_use.py) +Full source: [cookbook/90_models/vertexai/claude/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vertexai/claude/tool_use.py) diff --git a/examples/models/vertexai/retry.mdx b/examples/models/vertexai/retry.mdx index 49583c03b..0a65738c8 100644 --- a/examples/models/vertexai/retry.mdx +++ b/examples/models/vertexai/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/vertexai/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vertexai/retry.py) +Full source: [cookbook/90_models/vertexai/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vertexai/retry.py) diff --git a/examples/models/vllm/basic.mdx b/examples/models/vllm/basic.mdx index df8121a7b..e85354c60 100644 --- a/examples/models/vllm/basic.mdx +++ b/examples/models/vllm/basic.mdx @@ -88,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/vllm/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vllm/basic.py) +Full source: [cookbook/90_models/vllm/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vllm/basic.py) diff --git a/examples/models/vllm/code-generation.mdx b/examples/models/vllm/code-generation.mdx index 1b64475b0..cb2f99f73 100644 --- a/examples/models/vllm/code-generation.mdx +++ b/examples/models/vllm/code-generation.mdx @@ -83,4 +83,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/vllm/code_generation.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vllm/code_generation.py) +Full source: [cookbook/90_models/vllm/code_generation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vllm/code_generation.py) diff --git a/examples/models/vllm/db.mdx b/examples/models/vllm/db.mdx index 05c8df8f7..5f168a79a 100644 --- a/examples/models/vllm/db.mdx +++ b/examples/models/vllm/db.mdx @@ -85,4 +85,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/vllm/db.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vllm/db.py) +Full source: [cookbook/90_models/vllm/db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vllm/db.py) diff --git a/examples/models/vllm/memory.mdx b/examples/models/vllm/memory.mdx index b8e487cbc..2acfaac6b 100644 --- a/examples/models/vllm/memory.mdx +++ b/examples/models/vllm/memory.mdx @@ -127,4 +127,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/vllm/memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vllm/memory.py) +Full source: [cookbook/90_models/vllm/memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vllm/memory.py) diff --git a/examples/models/vllm/retry.mdx b/examples/models/vllm/retry.mdx index e63b3e9f6..a9b5a907d 100644 --- a/examples/models/vllm/retry.mdx +++ b/examples/models/vllm/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/vllm/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vllm/retry.py) +Full source: [cookbook/90_models/vllm/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vllm/retry.py) diff --git a/examples/models/vllm/structured-output.mdx b/examples/models/vllm/structured-output.mdx index 3c8cf286e..2007dd6fc 100644 --- a/examples/models/vllm/structured-output.mdx +++ b/examples/models/vllm/structured-output.mdx @@ -103,4 +103,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/vllm/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vllm/structured_output.py) +Full source: [cookbook/90_models/vllm/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vllm/structured_output.py) diff --git a/examples/models/vllm/tool-use.mdx b/examples/models/vllm/tool-use.mdx index 2636d5d30..cfc98d65c 100644 --- a/examples/models/vllm/tool-use.mdx +++ b/examples/models/vllm/tool-use.mdx @@ -84,4 +84,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/vllm/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/vllm/tool_use.py) +Full source: [cookbook/90_models/vllm/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vllm/tool_use.py) diff --git a/examples/models/xai/basic.mdx b/examples/models/xai/basic.mdx index 8b1cb1e44..f5ed23133 100644 --- a/examples/models/xai/basic.mdx +++ b/examples/models/xai/basic.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/xai/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/xai/basic.py) +Full source: [cookbook/90_models/xai/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/xai/basic.py) diff --git a/examples/models/xai/finance-agent.mdx b/examples/models/xai/finance-agent.mdx index e5a51eacd..a959bf1b2 100644 --- a/examples/models/xai/finance-agent.mdx +++ b/examples/models/xai/finance-agent.mdx @@ -164,4 +164,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/xai/finance_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/xai/finance_agent.py) +Full source: [cookbook/90_models/xai/finance_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/xai/finance_agent.py) diff --git a/examples/models/xai/image-agent-bytes.mdx b/examples/models/xai/image-agent-bytes.mdx index e9a50f068..ea17ef0a1 100644 --- a/examples/models/xai/image-agent-bytes.mdx +++ b/examples/models/xai/image-agent-bytes.mdx @@ -93,4 +93,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/xai/image_agent_bytes.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/xai/image_agent_bytes.py) +Full source: [cookbook/90_models/xai/image_agent_bytes.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/xai/image_agent_bytes.py) diff --git a/examples/models/xai/image-agent-with-memory.mdx b/examples/models/xai/image-agent-with-memory.mdx index 40922926d..0b9923f6e 100644 --- a/examples/models/xai/image-agent-with-memory.mdx +++ b/examples/models/xai/image-agent-with-memory.mdx @@ -85,4 +85,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/xai/image_agent_with_memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/xai/image_agent_with_memory.py) +Full source: [cookbook/90_models/xai/image_agent_with_memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/xai/image_agent_with_memory.py) diff --git a/examples/models/xai/image-agent.mdx b/examples/models/xai/image-agent.mdx index 8bde56a3d..96f1d7435 100644 --- a/examples/models/xai/image-agent.mdx +++ b/examples/models/xai/image-agent.mdx @@ -82,4 +82,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/xai/image_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/xai/image_agent.py) +Full source: [cookbook/90_models/xai/image_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/xai/image_agent.py) diff --git a/examples/models/xai/live-search-agent-stream.mdx b/examples/models/xai/live-search-agent-stream.mdx index f58cfa61f..8584b557e 100644 --- a/examples/models/xai/live-search-agent-stream.mdx +++ b/examples/models/xai/live-search-agent-stream.mdx @@ -73,4 +73,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/xai/live_search_agent_stream.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/xai/live_search_agent_stream.py) +Full source: [cookbook/90_models/xai/live_search_agent_stream.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/xai/live_search_agent_stream.py) diff --git a/examples/models/xai/live-search-agent.mdx b/examples/models/xai/live-search-agent.mdx index 0bd95cb51..d30119948 100644 --- a/examples/models/xai/live-search-agent.mdx +++ b/examples/models/xai/live-search-agent.mdx @@ -71,4 +71,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/xai/live_search_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/xai/live_search_agent.py) +Full source: [cookbook/90_models/xai/live_search_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/xai/live_search_agent.py) diff --git a/examples/models/xai/reasoning-agent.mdx b/examples/models/xai/reasoning-agent.mdx index 37c34a7c6..c025347fd 100644 --- a/examples/models/xai/reasoning-agent.mdx +++ b/examples/models/xai/reasoning-agent.mdx @@ -88,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/xai/reasoning_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/xai/reasoning_agent.py) +Full source: [cookbook/90_models/xai/reasoning_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/xai/reasoning_agent.py) diff --git a/examples/models/xai/retry.mdx b/examples/models/xai/retry.mdx index c78b3ae4c..c81122b5c 100644 --- a/examples/models/xai/retry.mdx +++ b/examples/models/xai/retry.mdx @@ -44,4 +44,4 @@ if __name__ == "__main__": Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. -Full source: [cookbook/90_models/xai/retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/xai/retry.py) +Full source: [cookbook/90_models/xai/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/xai/retry.py) diff --git a/examples/models/xai/structured-output.mdx b/examples/models/xai/structured-output.mdx index f85940fbf..cb080ddce 100644 --- a/examples/models/xai/structured-output.mdx +++ b/examples/models/xai/structured-output.mdx @@ -96,4 +96,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/xai/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/xai/structured_output.py) +Full source: [cookbook/90_models/xai/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/xai/structured_output.py) diff --git a/examples/models/xai/tool-use.mdx b/examples/models/xai/tool-use.mdx index c4a351295..8d13b6285 100644 --- a/examples/models/xai/tool-use.mdx +++ b/examples/models/xai/tool-use.mdx @@ -68,4 +68,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/xai/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/xai/tool_use.py) +Full source: [cookbook/90_models/xai/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/xai/tool_use.py) diff --git a/examples/models/xiaomi/basic.mdx b/examples/models/xiaomi/basic.mdx index ac2e95185..87e678902 100644 --- a/examples/models/xiaomi/basic.mdx +++ b/examples/models/xiaomi/basic.mdx @@ -81,4 +81,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/xiaomi/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/xiaomi/basic.py) +Full source: [cookbook/90_models/xiaomi/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/xiaomi/basic.py) diff --git a/examples/models/xiaomi/reasoning-agent.mdx b/examples/models/xiaomi/reasoning-agent.mdx index db05ce9da..526a37f7f 100644 --- a/examples/models/xiaomi/reasoning-agent.mdx +++ b/examples/models/xiaomi/reasoning-agent.mdx @@ -73,4 +73,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/xiaomi/reasoning_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/xiaomi/reasoning_agent.py) +Full source: [cookbook/90_models/xiaomi/reasoning_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/xiaomi/reasoning_agent.py) diff --git a/examples/models/xiaomi/string-model.mdx b/examples/models/xiaomi/string-model.mdx index f9cee1399..764a04a7b 100644 --- a/examples/models/xiaomi/string-model.mdx +++ b/examples/models/xiaomi/string-model.mdx @@ -62,4 +62,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/xiaomi/string_model.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/xiaomi/string_model.py) +Full source: [cookbook/90_models/xiaomi/string_model.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/xiaomi/string_model.py) diff --git a/examples/models/xiaomi/structured-output.mdx b/examples/models/xiaomi/structured-output.mdx index 92205f90b..16fff0f62 100644 --- a/examples/models/xiaomi/structured-output.mdx +++ b/examples/models/xiaomi/structured-output.mdx @@ -102,4 +102,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/xiaomi/structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/xiaomi/structured_output.py) +Full source: [cookbook/90_models/xiaomi/structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/xiaomi/structured_output.py) diff --git a/examples/models/xiaomi/thinking-mode.mdx b/examples/models/xiaomi/thinking-mode.mdx index 010fef77a..9761c3e80 100644 --- a/examples/models/xiaomi/thinking-mode.mdx +++ b/examples/models/xiaomi/thinking-mode.mdx @@ -77,4 +77,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/xiaomi/thinking_mode.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/xiaomi/thinking_mode.py) +Full source: [cookbook/90_models/xiaomi/thinking_mode.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/xiaomi/thinking_mode.py) diff --git a/examples/models/xiaomi/tool-use.mdx b/examples/models/xiaomi/tool-use.mdx index ce0730277..5719fa0c0 100644 --- a/examples/models/xiaomi/tool-use.mdx +++ b/examples/models/xiaomi/tool-use.mdx @@ -74,4 +74,4 @@ if __name__ == "__main__": -Full source: [cookbook/90_models/xiaomi/tool_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/xiaomi/tool_use.py) +Full source: [cookbook/90_models/xiaomi/tool_use.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/xiaomi/tool_use.py) diff --git a/examples/reasoning/agents/analyse-treaty-of-versailles.mdx b/examples/reasoning/agents/analyse-treaty-of-versailles.mdx index 9380ec937..ae2595560 100644 --- a/examples/reasoning/agents/analyse-treaty-of-versailles.mdx +++ b/examples/reasoning/agents/analyse-treaty-of-versailles.mdx @@ -92,4 +92,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/agents/analyse_treaty_of_versailles.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/agents/analyse_treaty_of_versailles.py) +Full source: [cookbook/10_reasoning/agents/analyse_treaty_of_versailles.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/agents/analyse_treaty_of_versailles.py) diff --git a/examples/reasoning/agents/capture-reasoning-content-default-cot.mdx b/examples/reasoning/agents/capture-reasoning-content-default-cot.mdx index bdb2bf683..8ecbec25c 100644 --- a/examples/reasoning/agents/capture-reasoning-content-default-cot.mdx +++ b/examples/reasoning/agents/capture-reasoning-content-default-cot.mdx @@ -149,4 +149,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/agents/capture_reasoning_content_default_COT.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/agents/capture_reasoning_content_default_COT.py) +Full source: [cookbook/10_reasoning/agents/capture_reasoning_content_default_COT.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/agents/capture_reasoning_content_default_COT.py) diff --git a/examples/reasoning/agents/cerebras-llama-default-cot.mdx b/examples/reasoning/agents/cerebras-llama-default-cot.mdx index 7dcec1ba0..ecd3fb27f 100644 --- a/examples/reasoning/agents/cerebras-llama-default-cot.mdx +++ b/examples/reasoning/agents/cerebras-llama-default-cot.mdx @@ -27,7 +27,6 @@ from agno.models.cerebras import Cerebras reasoning_agent = Agent( model=Cerebras(id="llama-3.3-70b"), reasoning=True, - debug_mode=True, markdown=True, ) @@ -77,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/agents/cerebras_llama_default_COT.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/agents/cerebras_llama_default_COT.py) +Full source: [cookbook/10_reasoning/agents/cerebras_llama_default_COT.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/agents/cerebras_llama_default_COT.py) diff --git a/examples/reasoning/agents/default-chain-of-thought.mdx b/examples/reasoning/agents/default-chain-of-thought.mdx index d0bedfc04..58514460a 100644 --- a/examples/reasoning/agents/default-chain-of-thought.mdx +++ b/examples/reasoning/agents/default-chain-of-thought.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/agents/default_chain_of_thought.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/agents/default_chain_of_thought.py) +Full source: [cookbook/10_reasoning/agents/default_chain_of_thought.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/agents/default_chain_of_thought.py) diff --git a/examples/reasoning/agents/fibonacci.mdx b/examples/reasoning/agents/fibonacci.mdx index 5a978079d..536a3c10c 100644 --- a/examples/reasoning/agents/fibonacci.mdx +++ b/examples/reasoning/agents/fibonacci.mdx @@ -79,4 +79,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/agents/fibonacci.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/agents/fibonacci.py) +Full source: [cookbook/10_reasoning/agents/fibonacci.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/agents/fibonacci.py) diff --git a/examples/reasoning/agents/finance-agent.mdx b/examples/reasoning/agents/finance-agent.mdx index a13a36beb..8e73fece3 100644 --- a/examples/reasoning/agents/finance-agent.mdx +++ b/examples/reasoning/agents/finance-agent.mdx @@ -85,4 +85,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/agents/finance_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/agents/finance_agent.py) +Full source: [cookbook/10_reasoning/agents/finance_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/agents/finance_agent.py) diff --git a/examples/reasoning/agents/ibm-watsonx-default-cot.mdx b/examples/reasoning/agents/ibm-watsonx-default-cot.mdx index 4c0123c72..b4d510336 100644 --- a/examples/reasoning/agents/ibm-watsonx-default-cot.mdx +++ b/examples/reasoning/agents/ibm-watsonx-default-cot.mdx @@ -23,7 +23,6 @@ from agno.models.ibm import WatsonX reasoning_agent = Agent( model=WatsonX(id="meta-llama/llama-3-3-70b-instruct"), reasoning=True, - debug_mode=True, markdown=True, ) @@ -71,4 +70,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/agents/ibm_watsonx_default_COT.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/agents/ibm_watsonx_default_COT.py) +Full source: [cookbook/10_reasoning/agents/ibm_watsonx_default_COT.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/agents/ibm_watsonx_default_COT.py) diff --git a/examples/reasoning/agents/is-9-11-bigger-than-9-9.mdx b/examples/reasoning/agents/is-9-11-bigger-than-9-9.mdx index ba95b4081..924e01ab0 100644 --- a/examples/reasoning/agents/is-9-11-bigger-than-9-9.mdx +++ b/examples/reasoning/agents/is-9-11-bigger-than-9-9.mdx @@ -104,4 +104,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/agents/is_9_11_bigger_than_9_9.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/agents/is_9_11_bigger_than_9_9.py) +Full source: [cookbook/10_reasoning/agents/is_9_11_bigger_than_9_9.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/agents/is_9_11_bigger_than_9_9.py) diff --git a/examples/reasoning/agents/life-in-500000-years.mdx b/examples/reasoning/agents/life-in-500000-years.mdx index a8cbcfd27..af614cb54 100644 --- a/examples/reasoning/agents/life-in-500000-years.mdx +++ b/examples/reasoning/agents/life-in-500000-years.mdx @@ -79,4 +79,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/agents/life_in_500000_years.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/agents/life_in_500000_years.py) +Full source: [cookbook/10_reasoning/agents/life_in_500000_years.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/agents/life_in_500000_years.py) diff --git a/examples/reasoning/agents/logical-puzzle.mdx b/examples/reasoning/agents/logical-puzzle.mdx index 141b8c5d6..1f1cc97b3 100644 --- a/examples/reasoning/agents/logical-puzzle.mdx +++ b/examples/reasoning/agents/logical-puzzle.mdx @@ -84,4 +84,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/agents/logical_puzzle.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/agents/logical_puzzle.py) +Full source: [cookbook/10_reasoning/agents/logical_puzzle.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/agents/logical_puzzle.py) diff --git a/examples/reasoning/agents/mathematical-proof.mdx b/examples/reasoning/agents/mathematical-proof.mdx index 4582b3f4f..c4dc31458 100644 --- a/examples/reasoning/agents/mathematical-proof.mdx +++ b/examples/reasoning/agents/mathematical-proof.mdx @@ -79,4 +79,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/agents/mathematical_proof.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/agents/mathematical_proof.py) +Full source: [cookbook/10_reasoning/agents/mathematical_proof.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/agents/mathematical_proof.py) diff --git a/examples/reasoning/agents/mistral-reasoning-cot.mdx b/examples/reasoning/agents/mistral-reasoning-cot.mdx index 73e34b0e2..e3bf75ce4 100644 --- a/examples/reasoning/agents/mistral-reasoning-cot.mdx +++ b/examples/reasoning/agents/mistral-reasoning-cot.mdx @@ -69,4 +69,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/agents/mistral_reasoning_cot.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/agents/mistral_reasoning_cot.py) +Full source: [cookbook/10_reasoning/agents/mistral_reasoning_cot.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/agents/mistral_reasoning_cot.py) diff --git a/examples/reasoning/agents/python-101-curriculum.mdx b/examples/reasoning/agents/python-101-curriculum.mdx index cfff1265a..ae4f8e8a2 100644 --- a/examples/reasoning/agents/python-101-curriculum.mdx +++ b/examples/reasoning/agents/python-101-curriculum.mdx @@ -79,4 +79,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/agents/python_101_curriculum.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/agents/python_101_curriculum.py) +Full source: [cookbook/10_reasoning/agents/python_101_curriculum.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/agents/python_101_curriculum.py) diff --git a/examples/reasoning/agents/scientific-research.mdx b/examples/reasoning/agents/scientific-research.mdx index 488930efe..e551f9662 100644 --- a/examples/reasoning/agents/scientific-research.mdx +++ b/examples/reasoning/agents/scientific-research.mdx @@ -86,4 +86,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/agents/scientific_research.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/agents/scientific_research.py) +Full source: [cookbook/10_reasoning/agents/scientific_research.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/agents/scientific_research.py) diff --git a/examples/reasoning/agents/ship-of-theseus.mdx b/examples/reasoning/agents/ship-of-theseus.mdx index 7fa87a4ea..73ff51ec4 100644 --- a/examples/reasoning/agents/ship-of-theseus.mdx +++ b/examples/reasoning/agents/ship-of-theseus.mdx @@ -83,4 +83,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/agents/ship_of_theseus.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/agents/ship_of_theseus.py) +Full source: [cookbook/10_reasoning/agents/ship_of_theseus.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/agents/ship_of_theseus.py) diff --git a/examples/reasoning/agents/strawberry.mdx b/examples/reasoning/agents/strawberry.mdx index 3842add72..2665dac7e 100644 --- a/examples/reasoning/agents/strawberry.mdx +++ b/examples/reasoning/agents/strawberry.mdx @@ -96,4 +96,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/agents/strawberry.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/agents/strawberry.py) +Full source: [cookbook/10_reasoning/agents/strawberry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/agents/strawberry.py) diff --git a/examples/reasoning/agents/trolley-problem.mdx b/examples/reasoning/agents/trolley-problem.mdx index 07783ebff..89827bffb 100644 --- a/examples/reasoning/agents/trolley-problem.mdx +++ b/examples/reasoning/agents/trolley-problem.mdx @@ -92,4 +92,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/agents/trolley_problem.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/agents/trolley_problem.py) +Full source: [cookbook/10_reasoning/agents/trolley_problem.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/agents/trolley_problem.py) diff --git a/examples/reasoning/models/anthropic/async-reasoning-stream.mdx b/examples/reasoning/models/anthropic/async-reasoning-stream.mdx index 64b0c1b2b..f54c82944 100644 --- a/examples/reasoning/models/anthropic/async-reasoning-stream.mdx +++ b/examples/reasoning/models/anthropic/async-reasoning-stream.mdx @@ -108,4 +108,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/models/anthropic/async_reasoning_stream.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/models/anthropic/async_reasoning_stream.py) +Full source: [cookbook/10_reasoning/models/anthropic/async_reasoning_stream.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/models/anthropic/async_reasoning_stream.py) diff --git a/examples/reasoning/models/anthropic/basic-reasoning-stream.mdx b/examples/reasoning/models/anthropic/basic-reasoning-stream.mdx index 8f15031a2..55689e26f 100644 --- a/examples/reasoning/models/anthropic/basic-reasoning-stream.mdx +++ b/examples/reasoning/models/anthropic/basic-reasoning-stream.mdx @@ -101,4 +101,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/models/anthropic/basic_reasoning_stream.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/models/anthropic/basic_reasoning_stream.py) +Full source: [cookbook/10_reasoning/models/anthropic/basic_reasoning_stream.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/models/anthropic/basic_reasoning_stream.py) diff --git a/examples/reasoning/models/anthropic/basic-reasoning.mdx b/examples/reasoning/models/anthropic/basic-reasoning.mdx index 9f9f56f96..fce7d1a22 100644 --- a/examples/reasoning/models/anthropic/basic-reasoning.mdx +++ b/examples/reasoning/models/anthropic/basic-reasoning.mdx @@ -99,4 +99,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/models/anthropic/basic_reasoning.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/models/anthropic/basic_reasoning.py) +Full source: [cookbook/10_reasoning/models/anthropic/basic_reasoning.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/models/anthropic/basic_reasoning.py) diff --git a/examples/reasoning/models/azure-ai-foundry/reasoning-model-deepseek.mdx b/examples/reasoning/models/azure-ai-foundry/reasoning-model-deepseek.mdx index 351b2feca..bd033ec57 100644 --- a/examples/reasoning/models/azure-ai-foundry/reasoning-model-deepseek.mdx +++ b/examples/reasoning/models/azure-ai-foundry/reasoning-model-deepseek.mdx @@ -79,4 +79,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/models/azure_ai_foundry/reasoning_model_deepseek.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/models/azure_ai_foundry/reasoning_model_deepseek.py) +Full source: [cookbook/10_reasoning/models/azure_ai_foundry/reasoning_model_deepseek.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/models/azure_ai_foundry/reasoning_model_deepseek.py) diff --git a/examples/reasoning/models/azure-ai-foundry/reasoning-model-stream-deepseek.mdx b/examples/reasoning/models/azure-ai-foundry/reasoning-model-stream-deepseek.mdx index a03696cda..565075a3f 100644 --- a/examples/reasoning/models/azure-ai-foundry/reasoning-model-stream-deepseek.mdx +++ b/examples/reasoning/models/azure-ai-foundry/reasoning-model-stream-deepseek.mdx @@ -117,4 +117,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/models/azure_ai_foundry/reasoning_model_stream_deepseek.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/models/azure_ai_foundry/reasoning_model_stream_deepseek.py) +Full source: [cookbook/10_reasoning/models/azure_ai_foundry/reasoning_model_stream_deepseek.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/models/azure_ai_foundry/reasoning_model_stream_deepseek.py) diff --git a/examples/reasoning/models/azure-openai/basic-reasoning-stream.mdx b/examples/reasoning/models/azure-openai/basic-reasoning-stream.mdx index 70152cc47..7faadb6cd 100644 --- a/examples/reasoning/models/azure-openai/basic-reasoning-stream.mdx +++ b/examples/reasoning/models/azure-openai/basic-reasoning-stream.mdx @@ -112,4 +112,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/models/azure_openai/basic_reasoning_stream.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/models/azure_openai/basic_reasoning_stream.py) +Full source: [cookbook/10_reasoning/models/azure_openai/basic_reasoning_stream.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/models/azure_openai/basic_reasoning_stream.py) diff --git a/examples/reasoning/models/azure-openai/o3-mini-with-tools.mdx b/examples/reasoning/models/azure-openai/o3-mini-with-tools.mdx index c3559bdda..45dc55c4e 100644 --- a/examples/reasoning/models/azure-openai/o3-mini-with-tools.mdx +++ b/examples/reasoning/models/azure-openai/o3-mini-with-tools.mdx @@ -70,4 +70,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/models/azure_openai/o3_mini_with_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/models/azure_openai/o3_mini_with_tools.py) +Full source: [cookbook/10_reasoning/models/azure_openai/o3_mini_with_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/models/azure_openai/o3_mini_with_tools.py) diff --git a/examples/reasoning/models/azure-openai/reasoning-model-gpt-4-1.mdx b/examples/reasoning/models/azure-openai/reasoning-model-gpt-4-1.mdx index c7b6e04bc..7657f50cb 100644 --- a/examples/reasoning/models/azure-openai/reasoning-model-gpt-4-1.mdx +++ b/examples/reasoning/models/azure-openai/reasoning-model-gpt-4-1.mdx @@ -70,4 +70,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/models/azure_openai/reasoning_model_gpt_4_1.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/models/azure_openai/reasoning_model_gpt_4_1.py) +Full source: [cookbook/10_reasoning/models/azure_openai/reasoning_model_gpt_4_1.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/models/azure_openai/reasoning_model_gpt_4_1.py) diff --git a/examples/reasoning/models/deepseek/ethical-dilemma.mdx b/examples/reasoning/models/deepseek/ethical-dilemma.mdx index 28b387980..36b3a2387 100644 --- a/examples/reasoning/models/deepseek/ethical-dilemma.mdx +++ b/examples/reasoning/models/deepseek/ethical-dilemma.mdx @@ -85,4 +85,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/models/deepseek/ethical_dilemma.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/models/deepseek/ethical_dilemma.py) +Full source: [cookbook/10_reasoning/models/deepseek/ethical_dilemma.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/models/deepseek/ethical_dilemma.py) diff --git a/examples/reasoning/models/deepseek/plan-itinerary.mdx b/examples/reasoning/models/deepseek/plan-itinerary.mdx index c4965044b..0b2be7aa0 100644 --- a/examples/reasoning/models/deepseek/plan-itinerary.mdx +++ b/examples/reasoning/models/deepseek/plan-itinerary.mdx @@ -79,4 +79,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/models/deepseek/plan_itinerary.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/models/deepseek/plan_itinerary.py) +Full source: [cookbook/10_reasoning/models/deepseek/plan_itinerary.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/models/deepseek/plan_itinerary.py) diff --git a/examples/reasoning/models/gemini/async-reasoning-stream.mdx b/examples/reasoning/models/gemini/async-reasoning-stream.mdx index 77fd45447..6a2da5879 100644 --- a/examples/reasoning/models/gemini/async-reasoning-stream.mdx +++ b/examples/reasoning/models/gemini/async-reasoning-stream.mdx @@ -115,4 +115,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/models/gemini/async_reasoning_stream.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/models/gemini/async_reasoning_stream.py) +Full source: [cookbook/10_reasoning/models/gemini/async_reasoning_stream.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/models/gemini/async_reasoning_stream.py) diff --git a/examples/reasoning/models/gemini/basic-reasoning-stream.mdx b/examples/reasoning/models/gemini/basic-reasoning-stream.mdx index 13da00cbd..c1e4fb31c 100644 --- a/examples/reasoning/models/gemini/basic-reasoning-stream.mdx +++ b/examples/reasoning/models/gemini/basic-reasoning-stream.mdx @@ -108,4 +108,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/models/gemini/basic_reasoning_stream.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/models/gemini/basic_reasoning_stream.py) +Full source: [cookbook/10_reasoning/models/gemini/basic_reasoning_stream.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/models/gemini/basic_reasoning_stream.py) diff --git a/examples/reasoning/models/gemini/basic-reasoning.mdx b/examples/reasoning/models/gemini/basic-reasoning.mdx index f9d5b5867..a9e4d55ec 100644 --- a/examples/reasoning/models/gemini/basic-reasoning.mdx +++ b/examples/reasoning/models/gemini/basic-reasoning.mdx @@ -108,4 +108,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/models/gemini/basic_reasoning.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/models/gemini/basic_reasoning.py) +Full source: [cookbook/10_reasoning/models/gemini/basic_reasoning.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/models/gemini/basic_reasoning.py) diff --git a/examples/reasoning/models/groq/deepseek-plus-claude.mdx b/examples/reasoning/models/groq/deepseek-plus-claude.mdx index 638544ebd..e7effe019 100644 --- a/examples/reasoning/models/groq/deepseek-plus-claude.mdx +++ b/examples/reasoning/models/groq/deepseek-plus-claude.mdx @@ -81,4 +81,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/models/groq/deepseek_plus_claude.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/models/groq/deepseek_plus_claude.py) +Full source: [cookbook/10_reasoning/models/groq/deepseek_plus_claude.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/models/groq/deepseek_plus_claude.py) diff --git a/examples/reasoning/models/groq/fast-reasoning.mdx b/examples/reasoning/models/groq/fast-reasoning.mdx index 0e839c027..d82bfee33 100644 --- a/examples/reasoning/models/groq/fast-reasoning.mdx +++ b/examples/reasoning/models/groq/fast-reasoning.mdx @@ -115,4 +115,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/models/groq/fast_reasoning.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/models/groq/fast_reasoning.py) +Full source: [cookbook/10_reasoning/models/groq/fast_reasoning.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/models/groq/fast_reasoning.py) diff --git a/examples/reasoning/models/groq/or-9-9.mdx b/examples/reasoning/models/groq/or-9-9.mdx index bd672a50a..ebf0eb454 100644 --- a/examples/reasoning/models/groq/or-9-9.mdx +++ b/examples/reasoning/models/groq/or-9-9.mdx @@ -81,4 +81,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/models/groq/9_11_or_9_9.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/models/groq/9_11_or_9_9.py) +Full source: [cookbook/10_reasoning/models/groq/9_11_or_9_9.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/models/groq/9_11_or_9_9.py) diff --git a/examples/reasoning/models/ollama/local-reasoning.mdx b/examples/reasoning/models/ollama/local-reasoning.mdx index 23c124794..0ca36e3e8 100644 --- a/examples/reasoning/models/ollama/local-reasoning.mdx +++ b/examples/reasoning/models/ollama/local-reasoning.mdx @@ -97,4 +97,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/models/ollama/local_reasoning.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/models/ollama/local_reasoning.py) +Full source: [cookbook/10_reasoning/models/ollama/local_reasoning.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/models/ollama/local_reasoning.py) diff --git a/examples/reasoning/models/ollama/reasoning-model-deepseek.mdx b/examples/reasoning/models/ollama/reasoning-model-deepseek.mdx index dc45e926a..970247284 100644 --- a/examples/reasoning/models/ollama/reasoning-model-deepseek.mdx +++ b/examples/reasoning/models/ollama/reasoning-model-deepseek.mdx @@ -65,4 +65,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/models/ollama/reasoning_model_deepseek.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/models/ollama/reasoning_model_deepseek.py) +Full source: [cookbook/10_reasoning/models/ollama/reasoning_model_deepseek.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/models/ollama/reasoning_model_deepseek.py) diff --git a/examples/reasoning/models/openai/o3-mini-with-tools.mdx b/examples/reasoning/models/openai/o3-mini-with-tools.mdx index 5641aa4e1..2990af19d 100644 --- a/examples/reasoning/models/openai/o3-mini-with-tools.mdx +++ b/examples/reasoning/models/openai/o3-mini-with-tools.mdx @@ -69,4 +69,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/models/openai/o3_mini_with_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/models/openai/o3_mini_with_tools.py) +Full source: [cookbook/10_reasoning/models/openai/o3_mini_with_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/models/openai/o3_mini_with_tools.py) diff --git a/examples/reasoning/models/openai/o3-mini.mdx b/examples/reasoning/models/openai/o3-mini.mdx index f85aaf5b1..ecf619097 100644 --- a/examples/reasoning/models/openai/o3-mini.mdx +++ b/examples/reasoning/models/openai/o3-mini.mdx @@ -68,4 +68,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/models/openai/o3_mini.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/models/openai/o3_mini.py) +Full source: [cookbook/10_reasoning/models/openai/o3_mini.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/models/openai/o3_mini.py) diff --git a/examples/reasoning/models/openai/reasoning-effort.mdx b/examples/reasoning/models/openai/reasoning-effort.mdx index d1d82ecfd..095642311 100644 --- a/examples/reasoning/models/openai/reasoning-effort.mdx +++ b/examples/reasoning/models/openai/reasoning-effort.mdx @@ -69,4 +69,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/models/openai/reasoning_effort.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/models/openai/reasoning_effort.py) +Full source: [cookbook/10_reasoning/models/openai/reasoning_effort.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/models/openai/reasoning_effort.py) diff --git a/examples/reasoning/models/openai/reasoning-model-gpt-4-1.mdx b/examples/reasoning/models/openai/reasoning-model-gpt-4-1.mdx index 71364f5f0..ab7e37dbc 100644 --- a/examples/reasoning/models/openai/reasoning-model-gpt-4-1.mdx +++ b/examples/reasoning/models/openai/reasoning-model-gpt-4-1.mdx @@ -69,4 +69,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/models/openai/reasoning_model_gpt_4_1.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/models/openai/reasoning_model_gpt_4_1.py) +Full source: [cookbook/10_reasoning/models/openai/reasoning_model_gpt_4_1.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/models/openai/reasoning_model_gpt_4_1.py) diff --git a/examples/reasoning/models/openai/reasoning-stream.mdx b/examples/reasoning/models/openai/reasoning-stream.mdx index cb09c476f..210c1f7bf 100644 --- a/examples/reasoning/models/openai/reasoning-stream.mdx +++ b/examples/reasoning/models/openai/reasoning-stream.mdx @@ -104,4 +104,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/models/openai/reasoning_stream.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/models/openai/reasoning_stream.py) +Full source: [cookbook/10_reasoning/models/openai/reasoning_stream.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/models/openai/reasoning_stream.py) diff --git a/examples/reasoning/models/openai/reasoning-summary.mdx b/examples/reasoning/models/openai/reasoning-summary.mdx index 16f37916c..0df2bef07 100644 --- a/examples/reasoning/models/openai/reasoning-summary.mdx +++ b/examples/reasoning/models/openai/reasoning-summary.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/models/openai/reasoning_summary.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/models/openai/reasoning_summary.py) +Full source: [cookbook/10_reasoning/models/openai/reasoning_summary.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/models/openai/reasoning_summary.py) diff --git a/examples/reasoning/models/vertex-ai/basic-reasoning-stream.mdx b/examples/reasoning/models/vertex-ai/basic-reasoning-stream.mdx index 110463761..c4f5a9baa 100644 --- a/examples/reasoning/models/vertex-ai/basic-reasoning-stream.mdx +++ b/examples/reasoning/models/vertex-ai/basic-reasoning-stream.mdx @@ -124,4 +124,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/models/vertex_ai/basic_reasoning_stream.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/models/vertex_ai/basic_reasoning_stream.py) +Full source: [cookbook/10_reasoning/models/vertex_ai/basic_reasoning_stream.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/models/vertex_ai/basic_reasoning_stream.py) diff --git a/examples/reasoning/models/xai/reasoning-effort.mdx b/examples/reasoning/models/xai/reasoning-effort.mdx index d410c0d59..66369bd06 100644 --- a/examples/reasoning/models/xai/reasoning-effort.mdx +++ b/examples/reasoning/models/xai/reasoning-effort.mdx @@ -68,4 +68,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/models/xai/reasoning_effort.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/models/xai/reasoning_effort.py) +Full source: [cookbook/10_reasoning/models/xai/reasoning_effort.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/models/xai/reasoning_effort.py) diff --git a/examples/reasoning/teams/finance-team-chain-of-thought.mdx b/examples/reasoning/teams/finance-team-chain-of-thought.mdx index df8bbe4a6..cd8031f29 100644 --- a/examples/reasoning/teams/finance-team-chain-of-thought.mdx +++ b/examples/reasoning/teams/finance-team-chain-of-thought.mdx @@ -129,4 +129,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/teams/finance_team_chain_of_thought.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/teams/finance_team_chain_of_thought.py) +Full source: [cookbook/10_reasoning/teams/finance_team_chain_of_thought.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/teams/finance_team_chain_of_thought.py) diff --git a/examples/reasoning/teams/knowledge-tool-team.mdx b/examples/reasoning/teams/knowledge-tool-team.mdx index 797f82f5a..8fa5f0dea 100644 --- a/examples/reasoning/teams/knowledge-tool-team.mdx +++ b/examples/reasoning/teams/knowledge-tool-team.mdx @@ -127,4 +127,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/teams/knowledge_tool_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/teams/knowledge_tool_team.py) +Full source: [cookbook/10_reasoning/teams/knowledge_tool_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/teams/knowledge_tool_team.py) diff --git a/examples/reasoning/teams/reasoning-finance-team.mdx b/examples/reasoning/teams/reasoning-finance-team.mdx index dbef0dcfb..2f1a6bf64 100644 --- a/examples/reasoning/teams/reasoning-finance-team.mdx +++ b/examples/reasoning/teams/reasoning-finance-team.mdx @@ -176,4 +176,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/teams/reasoning_finance_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/teams/reasoning_finance_team.py) +Full source: [cookbook/10_reasoning/teams/reasoning_finance_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/teams/reasoning_finance_team.py) diff --git a/examples/reasoning/tools/azure-openai-reasoning-tools.mdx b/examples/reasoning/tools/azure-openai-reasoning-tools.mdx index adcc364d3..22398a3f0 100644 --- a/examples/reasoning/tools/azure-openai-reasoning-tools.mdx +++ b/examples/reasoning/tools/azure-openai-reasoning-tools.mdx @@ -92,4 +92,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/tools/azure_openai_reasoning_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/tools/azure_openai_reasoning_tools.py) +Full source: [cookbook/10_reasoning/tools/azure_openai_reasoning_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/tools/azure_openai_reasoning_tools.py) diff --git a/examples/reasoning/tools/capture-reasoning-content-knowledge-tools.mdx b/examples/reasoning/tools/capture-reasoning-content-knowledge-tools.mdx index 5a2f3eb91..2f7a55bd4 100644 --- a/examples/reasoning/tools/capture-reasoning-content-knowledge-tools.mdx +++ b/examples/reasoning/tools/capture-reasoning-content-knowledge-tools.mdx @@ -176,4 +176,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/tools/capture_reasoning_content_knowledge_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/tools/capture_reasoning_content_knowledge_tools.py) +Full source: [cookbook/10_reasoning/tools/capture_reasoning_content_knowledge_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/tools/capture_reasoning_content_knowledge_tools.py) diff --git a/examples/reasoning/tools/capture-reasoning-content-reasoning-tools.mdx b/examples/reasoning/tools/capture-reasoning-content-reasoning-tools.mdx index f6c37baaa..f9c295336 100644 --- a/examples/reasoning/tools/capture-reasoning-content-reasoning-tools.mdx +++ b/examples/reasoning/tools/capture-reasoning-content-reasoning-tools.mdx @@ -133,4 +133,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/tools/capture_reasoning_content_reasoning_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/tools/capture_reasoning_content_reasoning_tools.py) +Full source: [cookbook/10_reasoning/tools/capture_reasoning_content_reasoning_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/tools/capture_reasoning_content_reasoning_tools.py) diff --git a/examples/reasoning/tools/cerebras-llama-reasoning-tools.mdx b/examples/reasoning/tools/cerebras-llama-reasoning-tools.mdx index c4fa82ce3..15b0ae571 100644 --- a/examples/reasoning/tools/cerebras-llama-reasoning-tools.mdx +++ b/examples/reasoning/tools/cerebras-llama-reasoning-tools.mdx @@ -134,4 +134,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/tools/cerebras_llama_reasoning_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/tools/cerebras_llama_reasoning_tools.py) +Full source: [cookbook/10_reasoning/tools/cerebras_llama_reasoning_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/tools/cerebras_llama_reasoning_tools.py) diff --git a/examples/reasoning/tools/claude-reasoning-tools.mdx b/examples/reasoning/tools/claude-reasoning-tools.mdx index 6fdb36ccb..38ccd8c71 100644 --- a/examples/reasoning/tools/claude-reasoning-tools.mdx +++ b/examples/reasoning/tools/claude-reasoning-tools.mdx @@ -84,4 +84,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/tools/claude_reasoning_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/tools/claude_reasoning_tools.py) +Full source: [cookbook/10_reasoning/tools/claude_reasoning_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/tools/claude_reasoning_tools.py) diff --git a/examples/reasoning/tools/gemini-finance-agent.mdx b/examples/reasoning/tools/gemini-finance-agent.mdx index 9aacaeb91..a0697b338 100644 --- a/examples/reasoning/tools/gemini-finance-agent.mdx +++ b/examples/reasoning/tools/gemini-finance-agent.mdx @@ -78,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/tools/gemini_finance_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/tools/gemini_finance_agent.py) +Full source: [cookbook/10_reasoning/tools/gemini_finance_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/tools/gemini_finance_agent.py) diff --git a/examples/reasoning/tools/gemini-reasoning-tools.mdx b/examples/reasoning/tools/gemini-reasoning-tools.mdx index 3e66a9b97..00b06bce3 100644 --- a/examples/reasoning/tools/gemini-reasoning-tools.mdx +++ b/examples/reasoning/tools/gemini-reasoning-tools.mdx @@ -78,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/tools/gemini_reasoning_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/tools/gemini_reasoning_tools.py) +Full source: [cookbook/10_reasoning/tools/gemini_reasoning_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/tools/gemini_reasoning_tools.py) diff --git a/examples/reasoning/tools/groq-llama-finance-agent.mdx b/examples/reasoning/tools/groq-llama-finance-agent.mdx index 7d423c482..b66ea9a97 100644 --- a/examples/reasoning/tools/groq-llama-finance-agent.mdx +++ b/examples/reasoning/tools/groq-llama-finance-agent.mdx @@ -95,4 +95,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/tools/groq_llama_finance_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/tools/groq_llama_finance_agent.py) +Full source: [cookbook/10_reasoning/tools/groq_llama_finance_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/tools/groq_llama_finance_agent.py) diff --git a/examples/reasoning/tools/ibm-watsonx-reasoning-tools.mdx b/examples/reasoning/tools/ibm-watsonx-reasoning-tools.mdx index b07d5606e..742669457 100644 --- a/examples/reasoning/tools/ibm-watsonx-reasoning-tools.mdx +++ b/examples/reasoning/tools/ibm-watsonx-reasoning-tools.mdx @@ -143,4 +143,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/tools/ibm_watsonx_reasoning_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/tools/ibm_watsonx_reasoning_tools.py) +Full source: [cookbook/10_reasoning/tools/ibm_watsonx_reasoning_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/tools/ibm_watsonx_reasoning_tools.py) diff --git a/examples/reasoning/tools/knowledge-tools.mdx b/examples/reasoning/tools/knowledge-tools.mdx index 4faf9b2e0..30a64abf2 100644 --- a/examples/reasoning/tools/knowledge-tools.mdx +++ b/examples/reasoning/tools/knowledge-tools.mdx @@ -97,4 +97,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/tools/knowledge_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/tools/knowledge_tools.py) +Full source: [cookbook/10_reasoning/tools/knowledge_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/tools/knowledge_tools.py) diff --git a/examples/reasoning/tools/llama-reasoning-tools.mdx b/examples/reasoning/tools/llama-reasoning-tools.mdx index 26f84f9ba..3de4125e6 100644 --- a/examples/reasoning/tools/llama-reasoning-tools.mdx +++ b/examples/reasoning/tools/llama-reasoning-tools.mdx @@ -79,4 +79,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/tools/llama_reasoning_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/tools/llama_reasoning_tools.py) +Full source: [cookbook/10_reasoning/tools/llama_reasoning_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/tools/llama_reasoning_tools.py) diff --git a/examples/reasoning/tools/memory-tools.mdx b/examples/reasoning/tools/memory-tools.mdx index 6bbebac11..4edbf1027 100644 --- a/examples/reasoning/tools/memory-tools.mdx +++ b/examples/reasoning/tools/memory-tools.mdx @@ -97,4 +97,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/tools/memory_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/tools/memory_tools.py) +Full source: [cookbook/10_reasoning/tools/memory_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/tools/memory_tools.py) diff --git a/examples/reasoning/tools/ollama-reasoning-tools.mdx b/examples/reasoning/tools/ollama-reasoning-tools.mdx index ac4a57486..4e6e6f2bf 100644 --- a/examples/reasoning/tools/ollama-reasoning-tools.mdx +++ b/examples/reasoning/tools/ollama-reasoning-tools.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/tools/ollama_reasoning_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/tools/ollama_reasoning_tools.py) +Full source: [cookbook/10_reasoning/tools/ollama_reasoning_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/tools/ollama_reasoning_tools.py) diff --git a/examples/reasoning/tools/openai-reasoning-tools.mdx b/examples/reasoning/tools/openai-reasoning-tools.mdx index de3176e19..abdefb870 100644 --- a/examples/reasoning/tools/openai-reasoning-tools.mdx +++ b/examples/reasoning/tools/openai-reasoning-tools.mdx @@ -81,4 +81,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/tools/openai_reasoning_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/tools/openai_reasoning_tools.py) +Full source: [cookbook/10_reasoning/tools/openai_reasoning_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/tools/openai_reasoning_tools.py) diff --git a/examples/reasoning/tools/reasoning-tools.mdx b/examples/reasoning/tools/reasoning-tools.mdx index 9fc00a15f..d21d3c049 100644 --- a/examples/reasoning/tools/reasoning-tools.mdx +++ b/examples/reasoning/tools/reasoning-tools.mdx @@ -126,4 +126,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/tools/reasoning_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/tools/reasoning_tools.py) +Full source: [cookbook/10_reasoning/tools/reasoning_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/tools/reasoning_tools.py) diff --git a/examples/reasoning/tools/vercel-reasoning-tools.mdx b/examples/reasoning/tools/vercel-reasoning-tools.mdx index 7c0ecb8c1..9f1316330 100644 --- a/examples/reasoning/tools/vercel-reasoning-tools.mdx +++ b/examples/reasoning/tools/vercel-reasoning-tools.mdx @@ -79,4 +79,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/tools/vercel_reasoning_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/tools/vercel_reasoning_tools.py) +Full source: [cookbook/10_reasoning/tools/vercel_reasoning_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/tools/vercel_reasoning_tools.py) diff --git a/examples/reasoning/tools/workflow-tools.mdx b/examples/reasoning/tools/workflow-tools.mdx index a492870de..14525b27b 100644 --- a/examples/reasoning/tools/workflow-tools.mdx +++ b/examples/reasoning/tools/workflow-tools.mdx @@ -180,4 +180,4 @@ if __name__ == "__main__": -Full source: [cookbook/10_reasoning/tools/workflow_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/tools/workflow_tools.py) +Full source: [cookbook/10_reasoning/tools/workflow_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/tools/workflow_tools.py) diff --git a/examples/storage/chat-history.mdx b/examples/storage/chat-history.mdx index f383e7cd3..a76b04b5f 100644 --- a/examples/storage/chat-history.mdx +++ b/examples/storage/chat-history.mdx @@ -79,4 +79,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/03_chat_history.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/03_chat_history.py) +Full source: [cookbook/06_storage/03_chat_history.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/03_chat_history.py) diff --git a/examples/storage/dynamodb/dynamo-for-agent.mdx b/examples/storage/dynamodb/dynamo-for-agent.mdx index 25f5158fd..3bc8b1806 100644 --- a/examples/storage/dynamodb/dynamo-for-agent.mdx +++ b/examples/storage/dynamodb/dynamo-for-agent.mdx @@ -78,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/dynamodb/dynamo_for_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/dynamodb/dynamo_for_agent.py) +Full source: [cookbook/06_storage/dynamodb/dynamo_for_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/dynamodb/dynamo_for_agent.py) diff --git a/examples/storage/dynamodb/dynamo-for-team.mdx b/examples/storage/dynamodb/dynamo-for-team.mdx index d9d9770a0..13f7fb6d8 100644 --- a/examples/storage/dynamodb/dynamo-for-team.mdx +++ b/examples/storage/dynamodb/dynamo-for-team.mdx @@ -116,4 +116,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/dynamodb/dynamo_for_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/dynamodb/dynamo_for_team.py) +Full source: [cookbook/06_storage/dynamodb/dynamo_for_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/dynamodb/dynamo_for_team.py) diff --git a/examples/storage/examples/multi-user-multi-session.mdx b/examples/storage/examples/multi-user-multi-session.mdx index 6cee4e94c..9cc47c6d6 100644 --- a/examples/storage/examples/multi-user-multi-session.mdx +++ b/examples/storage/examples/multi-user-multi-session.mdx @@ -103,4 +103,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/examples/multi_user_multi_session.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/examples/multi_user_multi_session.py) +Full source: [cookbook/06_storage/examples/multi_user_multi_session.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/examples/multi_user_multi_session.py) diff --git a/examples/storage/examples/selecting-tables.mdx b/examples/storage/examples/selecting-tables.mdx index ac763ebe0..970db5ff0 100644 --- a/examples/storage/examples/selecting-tables.mdx +++ b/examples/storage/examples/selecting-tables.mdx @@ -75,4 +75,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/examples/selecting_tables.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/examples/selecting_tables.py) +Full source: [cookbook/06_storage/examples/selecting_tables.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/examples/selecting_tables.py) diff --git a/examples/storage/firestore/firestore-for-agent.mdx b/examples/storage/firestore/firestore-for-agent.mdx index 0c8513c7a..7f495aa66 100644 --- a/examples/storage/firestore/firestore-for-agent.mdx +++ b/examples/storage/firestore/firestore-for-agent.mdx @@ -89,4 +89,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/firestore/firestore_for_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/firestore/firestore_for_agent.py) +Full source: [cookbook/06_storage/firestore/firestore_for_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/firestore/firestore_for_agent.py) diff --git a/examples/storage/gcs/gcs-json-for-agent.mdx b/examples/storage/gcs/gcs-json-for-agent.mdx index 4d8932729..ae48d4ef9 100644 --- a/examples/storage/gcs/gcs-json-for-agent.mdx +++ b/examples/storage/gcs/gcs-json-for-agent.mdx @@ -121,4 +121,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/gcs/gcs_json_for_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/gcs/gcs_json_for_agent.py) +Full source: [cookbook/06_storage/gcs/gcs_json_for_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/gcs/gcs_json_for_agent.py) diff --git a/examples/storage/in-memory/in-memory-storage-for-agent.mdx b/examples/storage/in-memory/in-memory-storage-for-agent.mdx index 85294a99a..34b2f4887 100644 --- a/examples/storage/in-memory/in-memory-storage-for-agent.mdx +++ b/examples/storage/in-memory/in-memory-storage-for-agent.mdx @@ -59,4 +59,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/in_memory/in_memory_storage_for_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/in_memory/in_memory_storage_for_agent.py) +Full source: [cookbook/06_storage/in_memory/in_memory_storage_for_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/in_memory/in_memory_storage_for_agent.py) diff --git a/examples/storage/in-memory/in-memory-storage-for-team.mdx b/examples/storage/in-memory/in-memory-storage-for-team.mdx index c02f09194..f2ecb41b6 100644 --- a/examples/storage/in-memory/in-memory-storage-for-team.mdx +++ b/examples/storage/in-memory/in-memory-storage-for-team.mdx @@ -102,4 +102,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/in_memory/in_memory_storage_for_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/in_memory/in_memory_storage_for_team.py) +Full source: [cookbook/06_storage/in_memory/in_memory_storage_for_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/in_memory/in_memory_storage_for_team.py) diff --git a/examples/storage/in-memory/in-memory-storage-for-workflow.mdx b/examples/storage/in-memory/in-memory-storage-for-workflow.mdx index b889d2fd0..a9b549320 100644 --- a/examples/storage/in-memory/in-memory-storage-for-workflow.mdx +++ b/examples/storage/in-memory/in-memory-storage-for-workflow.mdx @@ -116,4 +116,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/in_memory/in_memory_storage_for_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/in_memory/in_memory_storage_for_workflow.py) +Full source: [cookbook/06_storage/in_memory/in_memory_storage_for_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/in_memory/in_memory_storage_for_workflow.py) diff --git a/examples/storage/json-db/json-for-agent.mdx b/examples/storage/json-db/json-for-agent.mdx index 338024d4e..6ad402310 100644 --- a/examples/storage/json-db/json-for-agent.mdx +++ b/examples/storage/json-db/json-for-agent.mdx @@ -75,4 +75,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/json_db/json_for_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/json_db/json_for_agent.py) +Full source: [cookbook/06_storage/json_db/json_for_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/json_db/json_for_agent.py) diff --git a/examples/storage/json-db/json-for-team.mdx b/examples/storage/json-db/json-for-team.mdx index cbda7e4f0..a4e8a41e6 100644 --- a/examples/storage/json-db/json-for-team.mdx +++ b/examples/storage/json-db/json-for-team.mdx @@ -108,4 +108,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/json_db/json_for_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/json_db/json_for_team.py) +Full source: [cookbook/06_storage/json_db/json_for_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/json_db/json_for_team.py) diff --git a/examples/storage/json-db/json-for-workflows.mdx b/examples/storage/json-db/json-for-workflows.mdx index 1de76520c..73ea1aa08 100644 --- a/examples/storage/json-db/json-for-workflows.mdx +++ b/examples/storage/json-db/json-for-workflows.mdx @@ -118,4 +118,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/json_db/json_for_workflows.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/json_db/json_for_workflows.py) +Full source: [cookbook/06_storage/json_db/json_for_workflows.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/json_db/json_for_workflows.py) diff --git a/examples/storage/mongo/async-mongo/async-mongodb-for-agent.mdx b/examples/storage/mongo/async-mongo/async-mongodb-for-agent.mdx index 93b54e032..2fabe85fd 100644 --- a/examples/storage/mongo/async-mongo/async-mongodb-for-agent.mdx +++ b/examples/storage/mongo/async-mongo/async-mongodb-for-agent.mdx @@ -90,4 +90,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/mongo/async_mongo/async_mongodb_for_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/mongo/async_mongo/async_mongodb_for_agent.py) +Full source: [cookbook/06_storage/mongo/async_mongo/async_mongodb_for_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/mongo/async_mongo/async_mongodb_for_agent.py) diff --git a/examples/storage/mongo/async-mongo/async-mongodb-for-team.mdx b/examples/storage/mongo/async-mongo/async-mongodb-for-team.mdx index a4dff05ba..81488fea5 100644 --- a/examples/storage/mongo/async-mongo/async-mongodb-for-team.mdx +++ b/examples/storage/mongo/async-mongo/async-mongodb-for-team.mdx @@ -132,4 +132,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/mongo/async_mongo/async_mongodb_for_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/mongo/async_mongo/async_mongodb_for_team.py) +Full source: [cookbook/06_storage/mongo/async_mongo/async_mongodb_for_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/mongo/async_mongo/async_mongodb_for_team.py) diff --git a/examples/storage/mongo/async-mongo/async-mongodb-for-workflow.mdx b/examples/storage/mongo/async-mongo/async-mongodb-for-workflow.mdx index 26c61958f..ce260aa42 100644 --- a/examples/storage/mongo/async-mongo/async-mongodb-for-workflow.mdx +++ b/examples/storage/mongo/async-mongo/async-mongodb-for-workflow.mdx @@ -135,4 +135,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/mongo/async_mongo/async_mongodb_for_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/mongo/async_mongo/async_mongodb_for_workflow.py) +Full source: [cookbook/06_storage/mongo/async_mongo/async_mongodb_for_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/mongo/async_mongo/async_mongodb_for_workflow.py) diff --git a/examples/storage/mongo/mongodb-for-team.mdx b/examples/storage/mongo/mongodb-for-team.mdx index 4a562b37f..768eb0cf0 100644 --- a/examples/storage/mongo/mongodb-for-team.mdx +++ b/examples/storage/mongo/mongodb-for-team.mdx @@ -90,7 +90,7 @@ if __name__ == "__main__": ~~~ - The v2.7.2 cookbook uses the deprecated `gpt-4o` model. The source-fidelity fence above preserves those three model IDs. Replace all three with `gpt-5.4-mini` before running. See [GPT-4o](https://developers.openai.com/api/docs/models/gpt-4o) and [GPT-5.4 mini](https://developers.openai.com/api/docs/models/gpt-5.4-mini). + The v2.7.4 cookbook uses the deprecated `gpt-4o` model. The source-fidelity fence above preserves those three model IDs. Replace all three with `gpt-5.4-mini` before running. See [GPT-4o](https://developers.openai.com/api/docs/models/gpt-4o) and [GPT-5.4 mini](https://developers.openai.com/api/docs/models/gpt-5.4-mini). ## Run the Example diff --git a/examples/storage/mysql/async-mysql/async-mysql-for-agent.mdx b/examples/storage/mysql/async-mysql/async-mysql-for-agent.mdx index a7368c4f9..e527c0d20 100644 --- a/examples/storage/mysql/async-mysql/async-mysql-for-agent.mdx +++ b/examples/storage/mysql/async-mysql/async-mysql-for-agent.mdx @@ -94,4 +94,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/mysql/async_mysql/async_mysql_for_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/mysql/async_mysql/async_mysql_for_agent.py) +Full source: [cookbook/06_storage/mysql/async_mysql/async_mysql_for_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/mysql/async_mysql/async_mysql_for_agent.py) diff --git a/examples/storage/mysql/async-mysql/async-mysql-for-team.mdx b/examples/storage/mysql/async-mysql/async-mysql-for-team.mdx index ede921290..c853b57fd 100644 --- a/examples/storage/mysql/async-mysql/async-mysql-for-team.mdx +++ b/examples/storage/mysql/async-mysql/async-mysql-for-team.mdx @@ -123,4 +123,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/mysql/async_mysql/async_mysql_for_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/mysql/async_mysql/async_mysql_for_team.py) +Full source: [cookbook/06_storage/mysql/async_mysql/async_mysql_for_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/mysql/async_mysql/async_mysql_for_team.py) diff --git a/examples/storage/mysql/async-mysql/async-mysql-for-workflow.mdx b/examples/storage/mysql/async-mysql/async-mysql-for-workflow.mdx index 351d90bb9..dc12dcb54 100644 --- a/examples/storage/mysql/async-mysql/async-mysql-for-workflow.mdx +++ b/examples/storage/mysql/async-mysql/async-mysql-for-workflow.mdx @@ -146,4 +146,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/mysql/async_mysql/async_mysql_for_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/mysql/async_mysql/async_mysql_for_workflow.py) +Full source: [cookbook/06_storage/mysql/async_mysql/async_mysql_for_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/mysql/async_mysql/async_mysql_for_workflow.py) diff --git a/examples/storage/mysql/mysql-for-agent.mdx b/examples/storage/mysql/mysql-for-agent.mdx index 62db3aadc..68d80f693 100644 --- a/examples/storage/mysql/mysql-for-agent.mdx +++ b/examples/storage/mysql/mysql-for-agent.mdx @@ -71,4 +71,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/mysql/mysql_for_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/mysql/mysql_for_agent.py) +Full source: [cookbook/06_storage/mysql/mysql_for_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/mysql/mysql_for_agent.py) diff --git a/examples/storage/mysql/mysql-for-team.mdx b/examples/storage/mysql/mysql-for-team.mdx index cb8347807..b91e580af 100644 --- a/examples/storage/mysql/mysql-for-team.mdx +++ b/examples/storage/mysql/mysql-for-team.mdx @@ -112,4 +112,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/mysql/mysql_for_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/mysql/mysql_for_team.py) +Full source: [cookbook/06_storage/mysql/mysql_for_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/mysql/mysql_for_team.py) diff --git a/examples/storage/persistent-session-storage.mdx b/examples/storage/persistent-session-storage.mdx index d819f1143..7ead51bbb 100644 --- a/examples/storage/persistent-session-storage.mdx +++ b/examples/storage/persistent-session-storage.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/01_persistent_session_storage.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/01_persistent_session_storage.py) +Full source: [cookbook/06_storage/01_persistent_session_storage.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/01_persistent_session_storage.py) diff --git a/examples/storage/postgres/async-postgres/async-postgres-for-agent.mdx b/examples/storage/postgres/async-postgres/async-postgres-for-agent.mdx index 3e8c84ee2..8dc00b228 100644 --- a/examples/storage/postgres/async-postgres/async-postgres-for-agent.mdx +++ b/examples/storage/postgres/async-postgres/async-postgres-for-agent.mdx @@ -77,4 +77,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/postgres/async_postgres/async_postgres_for_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/postgres/async_postgres/async_postgres_for_agent.py) +Full source: [cookbook/06_storage/postgres/async_postgres/async_postgres_for_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/postgres/async_postgres/async_postgres_for_agent.py) diff --git a/examples/storage/postgres/async-postgres/async-postgres-for-team.mdx b/examples/storage/postgres/async-postgres/async-postgres-for-team.mdx index 8af2d71ae..02e61d466 100644 --- a/examples/storage/postgres/async-postgres/async-postgres-for-team.mdx +++ b/examples/storage/postgres/async-postgres/async-postgres-for-team.mdx @@ -112,4 +112,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/postgres/async_postgres/async_postgres_for_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/postgres/async_postgres/async_postgres_for_team.py) +Full source: [cookbook/06_storage/postgres/async_postgres/async_postgres_for_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/postgres/async_postgres/async_postgres_for_team.py) diff --git a/examples/storage/postgres/async-postgres/async-postgres-for-workflow.mdx b/examples/storage/postgres/async-postgres/async-postgres-for-workflow.mdx index 61a559920..c045494f2 100644 --- a/examples/storage/postgres/async-postgres/async-postgres-for-workflow.mdx +++ b/examples/storage/postgres/async-postgres/async-postgres-for-workflow.mdx @@ -125,4 +125,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/postgres/async_postgres/async_postgres_for_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/postgres/async_postgres/async_postgres_for_workflow.py) +Full source: [cookbook/06_storage/postgres/async_postgres/async_postgres_for_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/postgres/async_postgres/async_postgres_for_workflow.py) diff --git a/examples/storage/postgres/postgres-for-agent.mdx b/examples/storage/postgres/postgres-for-agent.mdx index d4b6698b6..4ba3a4602 100644 --- a/examples/storage/postgres/postgres-for-agent.mdx +++ b/examples/storage/postgres/postgres-for-agent.mdx @@ -69,4 +69,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/postgres/postgres_for_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/postgres/postgres_for_agent.py) +Full source: [cookbook/06_storage/postgres/postgres_for_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/postgres/postgres_for_agent.py) diff --git a/examples/storage/postgres/postgres-for-team.mdx b/examples/storage/postgres/postgres-for-team.mdx index 14ef72850..829b23a41 100644 --- a/examples/storage/postgres/postgres-for-team.mdx +++ b/examples/storage/postgres/postgres-for-team.mdx @@ -107,4 +107,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/postgres/postgres_for_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/postgres/postgres_for_team.py) +Full source: [cookbook/06_storage/postgres/postgres_for_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/postgres/postgres_for_team.py) diff --git a/examples/storage/postgres/postgres-for-workflow.mdx b/examples/storage/postgres/postgres-for-workflow.mdx index 2b694768a..69551002a 100644 --- a/examples/storage/postgres/postgres-for-workflow.mdx +++ b/examples/storage/postgres/postgres-for-workflow.mdx @@ -123,4 +123,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/postgres/postgres_for_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/postgres/postgres_for_workflow.py) +Full source: [cookbook/06_storage/postgres/postgres_for_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/postgres/postgres_for_workflow.py) diff --git a/examples/storage/redis/redis-for-agent.mdx b/examples/storage/redis/redis-for-agent.mdx index 3bef233c4..92a924c1c 100644 --- a/examples/storage/redis/redis-for-agent.mdx +++ b/examples/storage/redis/redis-for-agent.mdx @@ -92,4 +92,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/redis/redis_for_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/redis/redis_for_agent.py) +Full source: [cookbook/06_storage/redis/redis_for_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/redis/redis_for_agent.py) diff --git a/examples/storage/redis/redis-for-team.mdx b/examples/storage/redis/redis-for-team.mdx index 2e13cf197..01f8b6043 100644 --- a/examples/storage/redis/redis-for-team.mdx +++ b/examples/storage/redis/redis-for-team.mdx @@ -123,4 +123,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/redis/redis_for_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/redis/redis_for_team.py) +Full source: [cookbook/06_storage/redis/redis_for_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/redis/redis_for_team.py) diff --git a/examples/storage/redis/redis-for-workflow.mdx b/examples/storage/redis/redis-for-workflow.mdx index 74fe194da..b66e7d6fd 100644 --- a/examples/storage/redis/redis-for-workflow.mdx +++ b/examples/storage/redis/redis-for-workflow.mdx @@ -127,4 +127,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/redis/redis_for_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/redis/redis_for_workflow.py) +Full source: [cookbook/06_storage/redis/redis_for_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/redis/redis_for_workflow.py) diff --git a/examples/storage/session-summary-limits.mdx b/examples/storage/session-summary-limits.mdx index 2d29c62c9..5ec36ec42 100644 --- a/examples/storage/session-summary-limits.mdx +++ b/examples/storage/session-summary-limits.mdx @@ -126,4 +126,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/04_session_summary_limits.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/04_session_summary_limits.py) +Full source: [cookbook/06_storage/04_session_summary_limits.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/04_session_summary_limits.py) diff --git a/examples/storage/session-summary.mdx b/examples/storage/session-summary.mdx index 518473631..67a3d7aeb 100644 --- a/examples/storage/session-summary.mdx +++ b/examples/storage/session-summary.mdx @@ -91,4 +91,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/02_session_summary.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/02_session_summary.py) +Full source: [cookbook/06_storage/02_session_summary.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/02_session_summary.py) diff --git a/examples/storage/singlestore/singlestore-for-agent.mdx b/examples/storage/singlestore/singlestore-for-agent.mdx index e22a66f63..2a803fb6d 100644 --- a/examples/storage/singlestore/singlestore-for-agent.mdx +++ b/examples/storage/singlestore/singlestore-for-agent.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/singlestore/singlestore_for_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/singlestore/singlestore_for_agent.py) +Full source: [cookbook/06_storage/singlestore/singlestore_for_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/singlestore/singlestore_for_agent.py) diff --git a/examples/storage/singlestore/singlestore-for-team.mdx b/examples/storage/singlestore/singlestore-for-team.mdx index 769de7a82..a044b8848 100644 --- a/examples/storage/singlestore/singlestore-for-team.mdx +++ b/examples/storage/singlestore/singlestore-for-team.mdx @@ -125,4 +125,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/singlestore/singlestore_for_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/singlestore/singlestore_for_team.py) +Full source: [cookbook/06_storage/singlestore/singlestore_for_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/singlestore/singlestore_for_team.py) diff --git a/examples/storage/sqlite/async-sqlite/async-sqlite-for-agent.mdx b/examples/storage/sqlite/async-sqlite/async-sqlite-for-agent.mdx index dabdb9909..ecccc2af8 100644 --- a/examples/storage/sqlite/async-sqlite/async-sqlite-for-agent.mdx +++ b/examples/storage/sqlite/async-sqlite/async-sqlite-for-agent.mdx @@ -74,4 +74,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/sqlite/async_sqlite/async_sqlite_for_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/sqlite/async_sqlite/async_sqlite_for_agent.py) +Full source: [cookbook/06_storage/sqlite/async_sqlite/async_sqlite_for_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/sqlite/async_sqlite/async_sqlite_for_agent.py) diff --git a/examples/storage/sqlite/async-sqlite/async-sqlite-for-team.mdx b/examples/storage/sqlite/async-sqlite/async-sqlite-for-team.mdx index 1539c9471..56dc3f841 100644 --- a/examples/storage/sqlite/async-sqlite/async-sqlite-for-team.mdx +++ b/examples/storage/sqlite/async-sqlite/async-sqlite-for-team.mdx @@ -109,4 +109,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/sqlite/async_sqlite/async_sqlite_for_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/sqlite/async_sqlite/async_sqlite_for_team.py) +Full source: [cookbook/06_storage/sqlite/async_sqlite/async_sqlite_for_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/sqlite/async_sqlite/async_sqlite_for_team.py) diff --git a/examples/storage/sqlite/async-sqlite/async-sqlite-for-workflow.mdx b/examples/storage/sqlite/async-sqlite/async-sqlite-for-workflow.mdx index 5e860cf28..e3f9ba5fb 100644 --- a/examples/storage/sqlite/async-sqlite/async-sqlite-for-workflow.mdx +++ b/examples/storage/sqlite/async-sqlite/async-sqlite-for-workflow.mdx @@ -114,4 +114,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/sqlite/async_sqlite/async_sqlite_for_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/sqlite/async_sqlite/async_sqlite_for_workflow.py) +Full source: [cookbook/06_storage/sqlite/async_sqlite/async_sqlite_for_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/sqlite/async_sqlite/async_sqlite_for_workflow.py) diff --git a/examples/storage/sqlite/sqlite-for-agent.mdx b/examples/storage/sqlite/sqlite-for-agent.mdx index 68b44d360..73fa08ea9 100644 --- a/examples/storage/sqlite/sqlite-for-agent.mdx +++ b/examples/storage/sqlite/sqlite-for-agent.mdx @@ -70,4 +70,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/sqlite/sqlite_for_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/sqlite/sqlite_for_agent.py) +Full source: [cookbook/06_storage/sqlite/sqlite_for_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/sqlite/sqlite_for_agent.py) diff --git a/examples/storage/sqlite/sqlite-for-team.mdx b/examples/storage/sqlite/sqlite-for-team.mdx index 7a78ef23a..0a2ea9f61 100644 --- a/examples/storage/sqlite/sqlite-for-team.mdx +++ b/examples/storage/sqlite/sqlite-for-team.mdx @@ -104,4 +104,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/sqlite/sqlite_for_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/sqlite/sqlite_for_team.py) +Full source: [cookbook/06_storage/sqlite/sqlite_for_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/sqlite/sqlite_for_team.py) diff --git a/examples/storage/sqlite/sqlite-for-workflow.mdx b/examples/storage/sqlite/sqlite-for-workflow.mdx index 3a5bc1827..82ec20e77 100644 --- a/examples/storage/sqlite/sqlite-for-workflow.mdx +++ b/examples/storage/sqlite/sqlite-for-workflow.mdx @@ -118,4 +118,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/sqlite/sqlite_for_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/sqlite/sqlite_for_workflow.py) +Full source: [cookbook/06_storage/sqlite/sqlite_for_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/sqlite/sqlite_for_workflow.py) diff --git a/examples/storage/surrealdb/surrealdb-for-agent.mdx b/examples/storage/surrealdb/surrealdb-for-agent.mdx index 6aff0b859..0aac60ff7 100644 --- a/examples/storage/surrealdb/surrealdb-for-agent.mdx +++ b/examples/storage/surrealdb/surrealdb-for-agent.mdx @@ -97,4 +97,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/surrealdb/surrealdb_for_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/surrealdb/surrealdb_for_agent.py) +Full source: [cookbook/06_storage/surrealdb/surrealdb_for_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/surrealdb/surrealdb_for_agent.py) diff --git a/examples/storage/surrealdb/surrealdb-for-team.mdx b/examples/storage/surrealdb/surrealdb-for-team.mdx index a5f76ea2b..3fed32f39 100644 --- a/examples/storage/surrealdb/surrealdb-for-team.mdx +++ b/examples/storage/surrealdb/surrealdb-for-team.mdx @@ -131,4 +131,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/surrealdb/surrealdb_for_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/surrealdb/surrealdb_for_team.py) +Full source: [cookbook/06_storage/surrealdb/surrealdb_for_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/surrealdb/surrealdb_for_team.py) diff --git a/examples/storage/surrealdb/surrealdb-for-workflow.mdx b/examples/storage/surrealdb/surrealdb-for-workflow.mdx index 889a772c7..cba06ced1 100644 --- a/examples/storage/surrealdb/surrealdb-for-workflow.mdx +++ b/examples/storage/surrealdb/surrealdb-for-workflow.mdx @@ -142,4 +142,4 @@ if __name__ == "__main__": -Full source: [cookbook/06_storage/surrealdb/surrealdb_for_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/surrealdb/surrealdb_for_workflow.py) +Full source: [cookbook/06_storage/surrealdb/surrealdb_for_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/surrealdb/surrealdb_for_workflow.py) diff --git a/examples/storage/valkey/valkey-for-agent.mdx b/examples/storage/valkey/valkey-for-agent.mdx index 7bad7a3e5..f2f3bed42 100644 --- a/examples/storage/valkey/valkey-for-agent.mdx +++ b/examples/storage/valkey/valkey-for-agent.mdx @@ -1,12 +1,10 @@ --- -title: "Example showing how to use Valkey as the database for an agent." -sidebarTitle: "Valkey For Agent" -description: "Use Valkey as the storage backend for an agent." +title: "Valkey for Agent" +description: "Example showing how to use Valkey as the database for an agent." source: cookbook/06_storage/valkey/valkey_for_agent.py --- -Run `uv pip install valkey-glide-sync openai ddgs` to install dependencies. -```python +```python valkey_for_agent.py """ Example showing how to use Valkey as the database for an agent. @@ -58,19 +56,11 @@ if __name__ == "__main__": ## Run the Example - - Clone the repository and run the remaining commands from its root: - ```bash - git clone https://github.com/agno-agi/agno.git - cd agno - ``` - + - + ```bash - ./scripts/demo_setup.sh - source .venvs/demo/bin/activate - uv pip install -U ddgs openai valkey-glide-sync + uv pip install -U agno ddgs glide-sync openai valkey-glide-sync ``` @@ -86,15 +76,12 @@ if __name__ == "__main__": - - ```bash - docker run -d --name my-valkey -p 6379:6379 valkey/valkey-bundle - ``` - - + Save the code above as `valkey_for_agent.py`, then run: ```bash - python cookbook/06_storage/valkey/valkey_for_agent.py + python valkey_for_agent.py ``` + +Full source: [cookbook/06_storage/valkey/valkey_for_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/valkey/valkey_for_agent.py) diff --git a/examples/storage/valkey/valkey-for-team.mdx b/examples/storage/valkey/valkey-for-team.mdx index 47a5da277..7fed0d23d 100644 --- a/examples/storage/valkey/valkey-for-team.mdx +++ b/examples/storage/valkey/valkey-for-team.mdx @@ -1,12 +1,10 @@ --- -title: "Example showing how to use Valkey as the database for a team." -sidebarTitle: "Valkey For Team" -description: "Use Valkey as the storage backend for a team." +title: "Valkey for Team" +description: "Example showing how to use Valkey as the database for a team." source: cookbook/06_storage/valkey/valkey_for_team.py --- -Run `uv pip install ddgs openai valkey-glide-sync` to install dependencies. -```python +```python valkey_for_team.py """ Example showing how to use Valkey as the database for a team. @@ -89,19 +87,11 @@ if __name__ == "__main__": ## Run the Example - - Clone the repository and run the remaining commands from its root: - ```bash - git clone https://github.com/agno-agi/agno.git - cd agno - ``` - + - + ```bash - ./scripts/demo_setup.sh - source .venvs/demo/bin/activate - uv pip install -U ddgs openai valkey-glide-sync + uv pip install -U agno ddgs glide-sync openai valkey-glide-sync ``` @@ -117,15 +107,12 @@ if __name__ == "__main__": - - ```bash - docker run -d --name my-valkey -p 6379:6379 valkey/valkey-bundle - ``` - - + Save the code above as `valkey_for_team.py`, then run: ```bash - python cookbook/06_storage/valkey/valkey_for_team.py + python valkey_for_team.py ``` + +Full source: [cookbook/06_storage/valkey/valkey_for_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/valkey/valkey_for_team.py) diff --git a/examples/storage/valkey/valkey-for-workflow.mdx b/examples/storage/valkey/valkey-for-workflow.mdx index df63c2e55..1fe700e03 100644 --- a/examples/storage/valkey/valkey-for-workflow.mdx +++ b/examples/storage/valkey/valkey-for-workflow.mdx @@ -1,12 +1,10 @@ --- title: "Valkey Storage for Workflow" -sidebarTitle: "Valkey Storage for Workflow" -description: "Use ValkeyDb as the session storage backend for a workflow." +description: "Demonstrates using ValkeyDb as the session storage backend for a workflow." source: cookbook/06_storage/valkey/valkey_for_workflow.py --- -Run `uv pip install valkey-glide-sync openai ddgs` to install dependencies. -```python +```python valkey_for_workflow.py """ Valkey Storage for Workflow =========================== @@ -87,19 +85,11 @@ if __name__ == "__main__": ## Run the Example - - Clone the repository and run the remaining commands from its root: - ```bash - git clone https://github.com/agno-agi/agno.git - cd agno - ``` - + - + ```bash - ./scripts/demo_setup.sh - source .venvs/demo/bin/activate - uv pip install -U ddgs openai valkey-glide-sync + uv pip install -U agno ddgs fastapi glide-sync openai valkey-glide-sync ``` @@ -115,15 +105,12 @@ if __name__ == "__main__": - - ```bash - docker run -d --name my-valkey -p 6379:6379 valkey/valkey-bundle - ``` - - + Save the code above as `valkey_for_workflow.py`, then run: ```bash - python cookbook/06_storage/valkey/valkey_for_workflow.py + python valkey_for_workflow.py ``` + +Full source: [cookbook/06_storage/valkey/valkey_for_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/06_storage/valkey/valkey_for_workflow.py) diff --git a/examples/teams/basics/basic-coordination.mdx b/examples/teams/basics/basic-coordination.mdx index 4b163637e..39850e928 100644 --- a/examples/teams/basics/basic-coordination.mdx +++ b/examples/teams/basics/basic-coordination.mdx @@ -88,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/01_quickstart/01_basic_coordination.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/01_quickstart/01_basic_coordination.py) +Full source: [cookbook/03_teams/01_quickstart/01_basic_coordination.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/01_quickstart/01_basic_coordination.py) diff --git a/examples/teams/basics/broadcast-mode.mdx b/examples/teams/basics/broadcast-mode.mdx index fdf89b367..f827a5887 100644 --- a/examples/teams/basics/broadcast-mode.mdx +++ b/examples/teams/basics/broadcast-mode.mdx @@ -95,4 +95,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/01_quickstart/broadcast_mode.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/01_quickstart/broadcast_mode.py) +Full source: [cookbook/03_teams/01_quickstart/broadcast_mode.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/01_quickstart/broadcast_mode.py) diff --git a/examples/teams/basics/caching.mdx b/examples/teams/basics/caching.mdx index 574bb69ad..9a90837a3 100644 --- a/examples/teams/basics/caching.mdx +++ b/examples/teams/basics/caching.mdx @@ -40,7 +40,6 @@ content_team = Team( members=[researcher, writer], model=OpenAIResponses(id="gpt-5.2", cache_response=True), markdown=True, - debug_mode=True, ) # --------------------------------------------------------------------------- @@ -83,4 +82,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/01_quickstart/09_caching.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/01_quickstart/09_caching.py) +Full source: [cookbook/03_teams/01_quickstart/09_caching.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/01_quickstart/09_caching.py) diff --git a/examples/teams/basics/concurrent-member-agents.mdx b/examples/teams/basics/concurrent-member-agents.mdx index b6ab73013..20d8e51d4 100644 --- a/examples/teams/basics/concurrent-member-agents.mdx +++ b/examples/teams/basics/concurrent-member-agents.mdx @@ -134,4 +134,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/01_quickstart/08_concurrent_member_agents.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/01_quickstart/08_concurrent_member_agents.py) +Full source: [cookbook/03_teams/01_quickstart/08_concurrent_member_agents.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/01_quickstart/08_concurrent_member_agents.py) diff --git a/examples/teams/basics/delegate-to-all-members.mdx b/examples/teams/basics/delegate-to-all-members.mdx index 500fa22b5..b969cc1e7 100644 --- a/examples/teams/basics/delegate-to-all-members.mdx +++ b/examples/teams/basics/delegate-to-all-members.mdx @@ -124,4 +124,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/01_quickstart/03_delegate_to_all_members.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/01_quickstart/03_delegate_to_all_members.py) +Full source: [cookbook/03_teams/01_quickstart/03_delegate_to_all_members.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/01_quickstart/03_delegate_to_all_members.py) diff --git a/examples/teams/basics/history-of-members.mdx b/examples/teams/basics/history-of-members.mdx index 789811265..0919d7b02 100644 --- a/examples/teams/basics/history-of-members.mdx +++ b/examples/teams/basics/history-of-members.mdx @@ -122,4 +122,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/01_quickstart/06_history_of_members.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/01_quickstart/06_history_of_members.py) +Full source: [cookbook/03_teams/01_quickstart/06_history_of_members.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/01_quickstart/06_history_of_members.py) diff --git a/examples/teams/basics/nested-teams.mdx b/examples/teams/basics/nested-teams.mdx index fe197ce00..25f19143d 100644 --- a/examples/teams/basics/nested-teams.mdx +++ b/examples/teams/basics/nested-teams.mdx @@ -119,4 +119,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/01_quickstart/nested_teams.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/01_quickstart/nested_teams.py) +Full source: [cookbook/03_teams/01_quickstart/nested_teams.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/01_quickstart/nested_teams.py) diff --git a/examples/teams/basics/respond-directly-router-team.mdx b/examples/teams/basics/respond-directly-router-team.mdx index 04f76a326..94d8de364 100644 --- a/examples/teams/basics/respond-directly-router-team.mdx +++ b/examples/teams/basics/respond-directly-router-team.mdx @@ -153,4 +153,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/01_quickstart/02_respond_directly_router_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/01_quickstart/02_respond_directly_router_team.py) +Full source: [cookbook/03_teams/01_quickstart/02_respond_directly_router_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/01_quickstart/02_respond_directly_router_team.py) diff --git a/examples/teams/basics/respond-directly-with-history.mdx b/examples/teams/basics/respond-directly-with-history.mdx index 83914920a..8f5b22a85 100644 --- a/examples/teams/basics/respond-directly-with-history.mdx +++ b/examples/teams/basics/respond-directly-with-history.mdx @@ -122,4 +122,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/01_quickstart/04_respond_directly_with_history.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/01_quickstart/04_respond_directly_with_history.py) +Full source: [cookbook/03_teams/01_quickstart/04_respond_directly_with_history.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/01_quickstart/04_respond_directly_with_history.py) diff --git a/examples/teams/basics/share-member-interactions.mdx b/examples/teams/basics/share-member-interactions.mdx index 2d51c3040..c76c2e153 100644 --- a/examples/teams/basics/share-member-interactions.mdx +++ b/examples/teams/basics/share-member-interactions.mdx @@ -125,4 +125,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/01_quickstart/07_share_member_interactions.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/01_quickstart/07_share_member_interactions.py) +Full source: [cookbook/03_teams/01_quickstart/07_share_member_interactions.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/01_quickstart/07_share_member_interactions.py) diff --git a/examples/teams/basics/task-mode.mdx b/examples/teams/basics/task-mode.mdx index 46d1f0261..3263469f3 100644 --- a/examples/teams/basics/task-mode.mdx +++ b/examples/teams/basics/task-mode.mdx @@ -96,4 +96,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/01_quickstart/task_mode.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/01_quickstart/task_mode.py) +Full source: [cookbook/03_teams/01_quickstart/task_mode.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/01_quickstart/task_mode.py) diff --git a/examples/teams/basics/team-history.mdx b/examples/teams/basics/team-history.mdx index 09328bb86..272948311 100644 --- a/examples/teams/basics/team-history.mdx +++ b/examples/teams/basics/team-history.mdx @@ -109,4 +109,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/01_quickstart/05_team_history.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/01_quickstart/05_team_history.py) +Full source: [cookbook/03_teams/01_quickstart/05_team_history.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/01_quickstart/05_team_history.py) diff --git a/examples/teams/checkpointing/checkpoint-endpoints.mdx b/examples/teams/checkpointing/checkpoint-endpoints.mdx index 3a654a818..c1a2c2de8 100644 --- a/examples/teams/checkpointing/checkpoint-endpoints.mdx +++ b/examples/teams/checkpointing/checkpoint-endpoints.mdx @@ -167,4 +167,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/23_checkpointing/03_checkpoint_endpoints.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/23_checkpointing/03_checkpoint_endpoints.py) +Full source: [cookbook/03_teams/23_checkpointing/03_checkpoint_endpoints.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/23_checkpointing/03_checkpoint_endpoints.py) diff --git a/examples/teams/checkpointing/crash-recovery.mdx b/examples/teams/checkpointing/crash-recovery.mdx index 25872568f..ecdfb3d5f 100644 --- a/examples/teams/checkpointing/crash-recovery.mdx +++ b/examples/teams/checkpointing/crash-recovery.mdx @@ -206,4 +206,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/23_checkpointing/01_crash_recovery.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/23_checkpointing/01_crash_recovery.py) +Full source: [cookbook/03_teams/23_checkpointing/01_crash_recovery.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/23_checkpointing/01_crash_recovery.py) diff --git a/examples/teams/checkpointing/tool-error-persistence.mdx b/examples/teams/checkpointing/tool-error-persistence.mdx index bfbc14089..775a91838 100644 --- a/examples/teams/checkpointing/tool-error-persistence.mdx +++ b/examples/teams/checkpointing/tool-error-persistence.mdx @@ -238,4 +238,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/23_checkpointing/02_tool_error_persistence.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/23_checkpointing/02_tool_error_persistence.py) +Full source: [cookbook/03_teams/23_checkpointing/02_tool_error_persistence.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/23_checkpointing/02_tool_error_persistence.py) diff --git a/examples/teams/context-compression/tool-call-compression-with-manager.mdx b/examples/teams/context-compression/tool-call-compression-with-manager.mdx index 9c5c5a8ad..dd8f9c362 100644 --- a/examples/teams/context-compression/tool-call-compression-with-manager.mdx +++ b/examples/teams/context-compression/tool-call-compression-with-manager.mdx @@ -156,4 +156,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/10_context_compression/tool_call_compression_with_manager.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/10_context_compression/tool_call_compression_with_manager.py) +Full source: [cookbook/03_teams/10_context_compression/tool_call_compression_with_manager.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/10_context_compression/tool_call_compression_with_manager.py) diff --git a/examples/teams/context-compression/tool-call-compression.mdx b/examples/teams/context-compression/tool-call-compression.mdx index adee52fe7..7c23f25ba 100644 --- a/examples/teams/context-compression/tool-call-compression.mdx +++ b/examples/teams/context-compression/tool-call-compression.mdx @@ -179,4 +179,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/10_context_compression/tool_call_compression.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/10_context_compression/tool_call_compression.py) +Full source: [cookbook/03_teams/10_context_compression/tool_call_compression.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/10_context_compression/tool_call_compression.py) diff --git a/examples/teams/context-management/additional-context.mdx b/examples/teams/context-management/additional-context.mdx index ff785ab0a..6ca1fffa9 100644 --- a/examples/teams/context-management/additional-context.mdx +++ b/examples/teams/context-management/additional-context.mdx @@ -88,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/09_context_management/additional_context.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/09_context_management/additional_context.py) +Full source: [cookbook/03_teams/09_context_management/additional_context.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/09_context_management/additional_context.py) diff --git a/examples/teams/context-management/custom-system-message.mdx b/examples/teams/context-management/custom-system-message.mdx index 1e3de163f..2564d2436 100644 --- a/examples/teams/context-management/custom-system-message.mdx +++ b/examples/teams/context-management/custom-system-message.mdx @@ -88,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/09_context_management/custom_system_message.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/09_context_management/custom_system_message.py) +Full source: [cookbook/03_teams/09_context_management/custom_system_message.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/09_context_management/custom_system_message.py) diff --git a/examples/teams/context-management/datetime-format.mdx b/examples/teams/context-management/datetime-format.mdx index 4bc97cf88..d42218749 100644 --- a/examples/teams/context-management/datetime-format.mdx +++ b/examples/teams/context-management/datetime-format.mdx @@ -77,4 +77,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/09_context_management/datetime_format.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/09_context_management/datetime_format.py) +Full source: [cookbook/03_teams/09_context_management/datetime_format.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/09_context_management/datetime_format.py) diff --git a/examples/teams/context-management/few-shot-learning.mdx b/examples/teams/context-management/few-shot-learning.mdx index 92f88de1c..d02829ee0 100644 --- a/examples/teams/context-management/few-shot-learning.mdx +++ b/examples/teams/context-management/few-shot-learning.mdx @@ -158,4 +158,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/09_context_management/few_shot_learning.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/09_context_management/few_shot_learning.py) +Full source: [cookbook/03_teams/09_context_management/few_shot_learning.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/09_context_management/few_shot_learning.py) diff --git a/examples/teams/context-management/filter-tool-calls-from-history.mdx b/examples/teams/context-management/filter-tool-calls-from-history.mdx index c6d2c6fe2..9915bb5aa 100644 --- a/examples/teams/context-management/filter-tool-calls-from-history.mdx +++ b/examples/teams/context-management/filter-tool-calls-from-history.mdx @@ -130,4 +130,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/09_context_management/filter_tool_calls_from_history.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/09_context_management/filter_tool_calls_from_history.py) +Full source: [cookbook/03_teams/09_context_management/filter_tool_calls_from_history.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/09_context_management/filter_tool_calls_from_history.py) diff --git a/examples/teams/context-management/introduction.mdx b/examples/teams/context-management/introduction.mdx index 8f20b7799..84b555c41 100644 --- a/examples/teams/context-management/introduction.mdx +++ b/examples/teams/context-management/introduction.mdx @@ -84,4 +84,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/09_context_management/introduction.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/09_context_management/introduction.py) +Full source: [cookbook/03_teams/09_context_management/introduction.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/09_context_management/introduction.py) diff --git a/examples/teams/context-management/location-context.mdx b/examples/teams/context-management/location-context.mdx index dbefec916..f11a871e7 100644 --- a/examples/teams/context-management/location-context.mdx +++ b/examples/teams/context-management/location-context.mdx @@ -86,4 +86,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/09_context_management/location_context.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/09_context_management/location_context.py) +Full source: [cookbook/03_teams/09_context_management/location_context.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/09_context_management/location_context.py) diff --git a/examples/teams/dependencies/dependencies-in-context.mdx b/examples/teams/dependencies/dependencies-in-context.mdx index 91522eeea..b376d4073 100644 --- a/examples/teams/dependencies/dependencies-in-context.mdx +++ b/examples/teams/dependencies/dependencies-in-context.mdx @@ -81,7 +81,6 @@ team = Team( "Here is the user profile: {user_profile}", "Here is the current context: {current_context}", ], - debug_mode=True, markdown=True, ) @@ -127,4 +126,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/17_dependencies/dependencies_in_context.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/17_dependencies/dependencies_in_context.py) +Full source: [cookbook/03_teams/17_dependencies/dependencies_in_context.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/17_dependencies/dependencies_in_context.py) diff --git a/examples/teams/dependencies/dependencies-in-tools.mdx b/examples/teams/dependencies/dependencies-in-tools.mdx index 50032fd6a..2ba815bfa 100644 --- a/examples/teams/dependencies/dependencies-in-tools.mdx +++ b/examples/teams/dependencies/dependencies-in-tools.mdx @@ -212,4 +212,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/17_dependencies/dependencies_in_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/17_dependencies/dependencies_in_tools.py) +Full source: [cookbook/03_teams/17_dependencies/dependencies_in_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/17_dependencies/dependencies_in_tools.py) diff --git a/examples/teams/dependencies/dependencies-to-members.mdx b/examples/teams/dependencies/dependencies-to-members.mdx index 4fd85a60c..d5a24b908 100644 --- a/examples/teams/dependencies/dependencies-to-members.mdx +++ b/examples/teams/dependencies/dependencies-to-members.mdx @@ -86,7 +86,6 @@ if __name__ == "__main__": "current_context": get_current_context, }, add_dependencies_to_context=True, - debug_mode=True, ) ``` @@ -121,4 +120,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/17_dependencies/dependencies_to_members.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/17_dependencies/dependencies_to_members.py) +Full source: [cookbook/03_teams/17_dependencies/dependencies_to_members.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/17_dependencies/dependencies_to_members.py) diff --git a/examples/teams/distributed-rag/distributed-rag-lancedb.mdx b/examples/teams/distributed-rag/distributed-rag-lancedb.mdx index 32249de74..2d0a26a8a 100644 --- a/examples/teams/distributed-rag/distributed-rag-lancedb.mdx +++ b/examples/teams/distributed-rag/distributed-rag-lancedb.mdx @@ -224,4 +224,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/15_distributed_rag/02_distributed_rag_lancedb.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/15_distributed_rag/02_distributed_rag_lancedb.py) +Full source: [cookbook/03_teams/15_distributed_rag/02_distributed_rag_lancedb.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/15_distributed_rag/02_distributed_rag_lancedb.py) diff --git a/examples/teams/distributed-rag/distributed-rag-pgvector.mdx b/examples/teams/distributed-rag/distributed-rag-pgvector.mdx index 0b845338a..8914350c4 100644 --- a/examples/teams/distributed-rag/distributed-rag-pgvector.mdx +++ b/examples/teams/distributed-rag/distributed-rag-pgvector.mdx @@ -239,4 +239,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/15_distributed_rag/01_distributed_rag_pgvector.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/15_distributed_rag/01_distributed_rag_pgvector.py) +Full source: [cookbook/03_teams/15_distributed_rag/01_distributed_rag_pgvector.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/15_distributed_rag/01_distributed_rag_pgvector.py) diff --git a/examples/teams/distributed-rag/distributed-rag-with-reranking.mdx b/examples/teams/distributed-rag/distributed-rag-with-reranking.mdx index b67554a98..f48fc28f4 100644 --- a/examples/teams/distributed-rag/distributed-rag-with-reranking.mdx +++ b/examples/teams/distributed-rag/distributed-rag-with-reranking.mdx @@ -5,7 +5,7 @@ source: cookbook/03_teams/15_distributed_rag/03_distributed_rag_with_reranking.p --- - This example passes `url=` to `insert_many()` and `ainsert_many()`. Agno v2.7.2 reads the `urls` argument, so these calls insert no documents. The code fence remains source-exact. Apply the replacement below before running. + This example passes `url=` to `insert_many()` and `ainsert_many()`. Agno v2.7.4 reads the `urls` argument, so these calls insert no documents. The code fence remains source-exact. Apply the replacement below before running. ```python distributed_rag_with_reranking.py @@ -242,4 +242,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/15_distributed_rag/03_distributed_rag_with_reranking.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/15_distributed_rag/03_distributed_rag_with_reranking.py) +Full source: [cookbook/03_teams/15_distributed_rag/03_distributed_rag_with_reranking.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/15_distributed_rag/03_distributed_rag_with_reranking.py) diff --git a/examples/teams/fallback-models/basic-fallback.mdx b/examples/teams/fallback-models/basic-fallback.mdx index df6e8c54e..b4d857f54 100644 --- a/examples/teams/fallback-models/basic-fallback.mdx +++ b/examples/teams/fallback-models/basic-fallback.mdx @@ -79,4 +79,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/17_fallback_models/01_basic_fallback.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/17_fallback_models/01_basic_fallback.py) +Full source: [cookbook/03_teams/17_fallback_models/01_basic_fallback.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/17_fallback_models/01_basic_fallback.py) diff --git a/examples/teams/fallback-models/error-specific-fallbacks.mdx b/examples/teams/fallback-models/error-specific-fallbacks.mdx index 837c00974..80384e92d 100644 --- a/examples/teams/fallback-models/error-specific-fallbacks.mdx +++ b/examples/teams/fallback-models/error-specific-fallbacks.mdx @@ -94,4 +94,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/17_fallback_models/02_error_specific_fallbacks.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/17_fallback_models/02_error_specific_fallbacks.py) +Full source: [cookbook/03_teams/17_fallback_models/02_error_specific_fallbacks.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/17_fallback_models/02_error_specific_fallbacks.py) diff --git a/examples/teams/fork-session/fork-session.mdx b/examples/teams/fork-session/fork-session.mdx index 67c67e705..b7e992636 100644 --- a/examples/teams/fork-session/fork-session.mdx +++ b/examples/teams/fork-session/fork-session.mdx @@ -145,4 +145,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/26_fork_session/01_fork_session.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/26_fork_session/01_fork_session.py) +Full source: [cookbook/03_teams/26_fork_session/01_fork_session.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/26_fork_session/01_fork_session.py) diff --git a/examples/teams/guardrails/openai-moderation.mdx b/examples/teams/guardrails/openai-moderation.mdx index e2649c515..0b6b9c65b 100644 --- a/examples/teams/guardrails/openai-moderation.mdx +++ b/examples/teams/guardrails/openai-moderation.mdx @@ -144,4 +144,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/18_guardrails/openai_moderation.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/18_guardrails/openai_moderation.py) +Full source: [cookbook/03_teams/18_guardrails/openai_moderation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/18_guardrails/openai_moderation.py) diff --git a/examples/teams/guardrails/pii-detection.mdx b/examples/teams/guardrails/pii-detection.mdx index 40e7d30ee..a02f39f50 100644 --- a/examples/teams/guardrails/pii-detection.mdx +++ b/examples/teams/guardrails/pii-detection.mdx @@ -165,4 +165,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/18_guardrails/pii_detection.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/18_guardrails/pii_detection.py) +Full source: [cookbook/03_teams/18_guardrails/pii_detection.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/18_guardrails/pii_detection.py) diff --git a/examples/teams/guardrails/prompt-injection.mdx b/examples/teams/guardrails/prompt-injection.mdx index 45058ecdb..4c83f1bd9 100644 --- a/examples/teams/guardrails/prompt-injection.mdx +++ b/examples/teams/guardrails/prompt-injection.mdx @@ -128,4 +128,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/18_guardrails/prompt_injection.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/18_guardrails/prompt_injection.py) +Full source: [cookbook/03_teams/18_guardrails/prompt_injection.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/18_guardrails/prompt_injection.py) diff --git a/examples/teams/hooks/post-hook-output.mdx b/examples/teams/hooks/post-hook-output.mdx index 64c7b8e3a..c48732c08 100644 --- a/examples/teams/hooks/post-hook-output.mdx +++ b/examples/teams/hooks/post-hook-output.mdx @@ -534,4 +534,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/13_hooks/post_hook_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/13_hooks/post_hook_output.py) +Full source: [cookbook/03_teams/13_hooks/post_hook_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/13_hooks/post_hook_output.py) diff --git a/examples/teams/hooks/pre-hook-input.mdx b/examples/teams/hooks/pre-hook-input.mdx index fc4b29498..540149ae0 100644 --- a/examples/teams/hooks/pre-hook-input.mdx +++ b/examples/teams/hooks/pre-hook-input.mdx @@ -218,7 +218,6 @@ consulting_team = Team( "Coordinate your expertise to deliver actionable business advice.", "Give the user advice based on their request.", ], - debug_mode=True, ) @@ -332,4 +331,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/13_hooks/pre_hook_input.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/13_hooks/pre_hook_input.py) +Full source: [cookbook/03_teams/13_hooks/pre_hook_input.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/13_hooks/pre_hook_input.py) diff --git a/examples/teams/hooks/stream-hook.mdx b/examples/teams/hooks/stream-hook.mdx index ffe00c37e..7b9e41a70 100644 --- a/examples/teams/hooks/stream-hook.mdx +++ b/examples/teams/hooks/stream-hook.mdx @@ -102,4 +102,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/13_hooks/stream_hook.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/13_hooks/stream_hook.py) +Full source: [cookbook/03_teams/13_hooks/stream_hook.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/13_hooks/stream_hook.py) diff --git a/examples/teams/human-in-the-loop/confirmation-rejected-stream.mdx b/examples/teams/human-in-the-loop/confirmation-rejected-stream.mdx index e1f82c340..2b94060d3 100644 --- a/examples/teams/human-in-the-loop/confirmation-rejected-stream.mdx +++ b/examples/teams/human-in-the-loop/confirmation-rejected-stream.mdx @@ -121,4 +121,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/20_human_in_the_loop/confirmation_rejected_stream.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/20_human_in_the_loop/confirmation_rejected_stream.py) +Full source: [cookbook/03_teams/20_human_in_the_loop/confirmation_rejected_stream.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/20_human_in_the_loop/confirmation_rejected_stream.py) diff --git a/examples/teams/human-in-the-loop/confirmation-rejected.mdx b/examples/teams/human-in-the-loop/confirmation-rejected.mdx index bf8af9abe..98cbe0a01 100644 --- a/examples/teams/human-in-the-loop/confirmation-rejected.mdx +++ b/examples/teams/human-in-the-loop/confirmation-rejected.mdx @@ -105,4 +105,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/20_human_in_the_loop/confirmation_rejected.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/20_human_in_the_loop/confirmation_rejected.py) +Full source: [cookbook/03_teams/20_human_in_the_loop/confirmation_rejected.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/20_human_in_the_loop/confirmation_rejected.py) diff --git a/examples/teams/human-in-the-loop/confirmation-required-async-stream.mdx b/examples/teams/human-in-the-loop/confirmation-required-async-stream.mdx index eb2a984ae..aaa1821a2 100644 --- a/examples/teams/human-in-the-loop/confirmation-required-async-stream.mdx +++ b/examples/teams/human-in-the-loop/confirmation-required-async-stream.mdx @@ -127,4 +127,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/20_human_in_the_loop/confirmation_required_async_stream.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/20_human_in_the_loop/confirmation_required_async_stream.py) +Full source: [cookbook/03_teams/20_human_in_the_loop/confirmation_required_async_stream.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/20_human_in_the_loop/confirmation_required_async_stream.py) diff --git a/examples/teams/human-in-the-loop/confirmation-required-async.mdx b/examples/teams/human-in-the-loop/confirmation-required-async.mdx index cced3e3a5..43a61a67a 100644 --- a/examples/teams/human-in-the-loop/confirmation-required-async.mdx +++ b/examples/teams/human-in-the-loop/confirmation-required-async.mdx @@ -110,4 +110,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/20_human_in_the_loop/confirmation_required_async.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/20_human_in_the_loop/confirmation_required_async.py) +Full source: [cookbook/03_teams/20_human_in_the_loop/confirmation_required_async.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/20_human_in_the_loop/confirmation_required_async.py) diff --git a/examples/teams/human-in-the-loop/confirmation-required-stream.mdx b/examples/teams/human-in-the-loop/confirmation-required-stream.mdx index 73ad3231a..8561b7adc 100644 --- a/examples/teams/human-in-the-loop/confirmation-required-stream.mdx +++ b/examples/teams/human-in-the-loop/confirmation-required-stream.mdx @@ -124,4 +124,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/20_human_in_the_loop/confirmation_required_stream.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/20_human_in_the_loop/confirmation_required_stream.py) +Full source: [cookbook/03_teams/20_human_in_the_loop/confirmation_required_stream.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/20_human_in_the_loop/confirmation_required_stream.py) diff --git a/examples/teams/human-in-the-loop/confirmation-required-with-dependencies.mdx b/examples/teams/human-in-the-loop/confirmation-required-with-dependencies.mdx index eef797f19..c61bcedc2 100644 --- a/examples/teams/human-in-the-loop/confirmation-required-with-dependencies.mdx +++ b/examples/teams/human-in-the-loop/confirmation-required-with-dependencies.mdx @@ -128,4 +128,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/20_human_in_the_loop/confirmation_required_with_dependencies.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/20_human_in_the_loop/confirmation_required_with_dependencies.py) +Full source: [cookbook/03_teams/20_human_in_the_loop/confirmation_required_with_dependencies.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/20_human_in_the_loop/confirmation_required_with_dependencies.py) diff --git a/examples/teams/human-in-the-loop/confirmation-required.mdx b/examples/teams/human-in-the-loop/confirmation-required.mdx index 18cce64ac..718682e33 100644 --- a/examples/teams/human-in-the-loop/confirmation-required.mdx +++ b/examples/teams/human-in-the-loop/confirmation-required.mdx @@ -125,4 +125,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/20_human_in_the_loop/confirmation_required.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/20_human_in_the_loop/confirmation_required.py) +Full source: [cookbook/03_teams/20_human_in_the_loop/confirmation_required.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/20_human_in_the_loop/confirmation_required.py) diff --git a/examples/teams/human-in-the-loop/external-tool-execution-stream.mdx b/examples/teams/human-in-the-loop/external-tool-execution-stream.mdx index 2f7e73fab..6d60e4731 100644 --- a/examples/teams/human-in-the-loop/external-tool-execution-stream.mdx +++ b/examples/teams/human-in-the-loop/external-tool-execution-stream.mdx @@ -127,4 +127,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/20_human_in_the_loop/external_tool_execution_stream.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/20_human_in_the_loop/external_tool_execution_stream.py) +Full source: [cookbook/03_teams/20_human_in_the_loop/external_tool_execution_stream.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/20_human_in_the_loop/external_tool_execution_stream.py) diff --git a/examples/teams/human-in-the-loop/external-tool-execution.mdx b/examples/teams/human-in-the-loop/external-tool-execution.mdx index 83c07ec6b..972fd66e6 100644 --- a/examples/teams/human-in-the-loop/external-tool-execution.mdx +++ b/examples/teams/human-in-the-loop/external-tool-execution.mdx @@ -124,4 +124,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/20_human_in_the_loop/external_tool_execution.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/20_human_in_the_loop/external_tool_execution.py) +Full source: [cookbook/03_teams/20_human_in_the_loop/external_tool_execution.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/20_human_in_the_loop/external_tool_execution.py) diff --git a/examples/teams/human-in-the-loop/multi-round-user-input.mdx b/examples/teams/human-in-the-loop/multi-round-user-input.mdx new file mode 100644 index 000000000..219b8faac --- /dev/null +++ b/examples/teams/human-in-the-loop/multi-round-user-input.mdx @@ -0,0 +1,139 @@ +--- +title: "Multi-Round User Input" +description: "Demonstrates chained HITL where a member pauses multiple times for user input." +source: cookbook/03_teams/20_human_in_the_loop/multi_round_user_input.py +--- + +```python multi_round_user_input.py +""" +Multi-Round User Input +============================= + +Demonstrates chained HITL where a member pauses multiple times for user input. +""" + +from agno.agent import Agent +from agno.db.sqlite import SqliteDb +from agno.models.openai import OpenAIResponses +from agno.team import Team +from agno.tools import tool +from agno.utils import pprint +from rich.console import Console +from rich.prompt import Prompt + +# --------------------------------------------------------------------------- +# Setup +# --------------------------------------------------------------------------- +console = Console() + +db = SqliteDb(session_table="team_multi_round_sessions", db_file="tmp/team_hitl.db") + + +@tool(requires_user_input=True, user_input_fields=["name"]) +def collect_name(name: str = "") -> str: + """Collect the user's name.""" + return f"User's name is: {name}" + + +@tool(requires_user_input=True, user_input_fields=["cuisine", "budget"]) +def collect_preferences(cuisine: str = "", budget: str = "") -> str: + """Collect user's dining preferences.""" + return f"User prefers {cuisine} cuisine with a {budget} budget." + + +# --------------------------------------------------------------------------- +# Create Members +# --------------------------------------------------------------------------- +survey_agent = Agent( + name="SurveyAgent", + model=OpenAIResponses(id="gpt-5.5"), + tools=[collect_name, collect_preferences], + instructions=[ + "You help users find restaurant recommendations.", + "You MUST collect information in this order:", + "1. First, call collect_name to get the user's name", + "2. Then, call collect_preferences to get their cuisine and budget preferences", + "3. Finally, provide a personalized recommendation using both pieces of info", + ], + db=db, + telemetry=False, +) + +# --------------------------------------------------------------------------- +# Create Team +# --------------------------------------------------------------------------- +team = Team( + name="RestaurantTeam", + model=OpenAIResponses(id="gpt-5.5"), + members=[survey_agent], + instructions="Delegate all restaurant requests to the SurveyAgent immediately.", + db=db, + telemetry=False, + add_history_to_context=True, +) + +# --------------------------------------------------------------------------- +# Run Team +# --------------------------------------------------------------------------- +if __name__ == "__main__": + session_id = "team_multi_round_session" + run_response = team.run( + "Help me find a restaurant for dinner tonight", + session_id=session_id, + ) + + # Loop handles multiple pause/resume cycles (chained HITL) + while run_response.is_paused: + console.print("[bold yellow]Team is paused - user input needed[/]") + + for requirement in run_response.active_requirements: + if requirement.needs_user_input: + console.print( + f"Member [bold cyan]{requirement.member_agent_name}[/] needs input for " + f"[bold blue]{requirement.tool_execution.tool_name}[/]" + ) + + values = {} + for field in requirement.user_input_schema or []: + values[field.name] = Prompt.ask( + f" {field.name}", default=field.value or "" + ) + requirement.provide_user_input(values) + + run_response = team.continue_run(run_response) + + pprint.pprint_run_response(run_response) +``` + +## Run the Example + + + + + + ```bash + uv pip install -U agno openai sqlalchemy + ``` + + + + + ```bash Mac/Linux + export OPENAI_API_KEY="your_openai_api_key_here" + ``` + + ```bash Windows + $Env:OPENAI_API_KEY="your_openai_api_key_here" + ``` + + + + + Save the code above as `multi_round_user_input.py`, then run: + ```bash + python multi_round_user_input.py + ``` + + + +Full source: [cookbook/03_teams/20_human_in_the_loop/multi_round_user_input.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/20_human_in_the_loop/multi_round_user_input.py) diff --git a/examples/teams/human-in-the-loop/team-tool-confirmation-stream.mdx b/examples/teams/human-in-the-loop/team-tool-confirmation-stream.mdx index 2d1cfc483..4e05f9520 100644 --- a/examples/teams/human-in-the-loop/team-tool-confirmation-stream.mdx +++ b/examples/teams/human-in-the-loop/team-tool-confirmation-stream.mdx @@ -127,4 +127,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/20_human_in_the_loop/team_tool_confirmation_stream.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/20_human_in_the_loop/team_tool_confirmation_stream.py) +Full source: [cookbook/03_teams/20_human_in_the_loop/team_tool_confirmation_stream.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/20_human_in_the_loop/team_tool_confirmation_stream.py) diff --git a/examples/teams/human-in-the-loop/team-tool-confirmation.mdx b/examples/teams/human-in-the-loop/team-tool-confirmation.mdx index 14bc208ff..86644c628 100644 --- a/examples/teams/human-in-the-loop/team-tool-confirmation.mdx +++ b/examples/teams/human-in-the-loop/team-tool-confirmation.mdx @@ -105,4 +105,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/20_human_in_the_loop/team_tool_confirmation.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/20_human_in_the_loop/team_tool_confirmation.py) +Full source: [cookbook/03_teams/20_human_in_the_loop/team_tool_confirmation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/20_human_in_the_loop/team_tool_confirmation.py) diff --git a/examples/teams/human-in-the-loop/user-input-required-stream.mdx b/examples/teams/human-in-the-loop/user-input-required-stream.mdx index e917b7341..5f2590f38 100644 --- a/examples/teams/human-in-the-loop/user-input-required-stream.mdx +++ b/examples/teams/human-in-the-loop/user-input-required-stream.mdx @@ -126,4 +126,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/20_human_in_the_loop/user_input_required_stream.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/20_human_in_the_loop/user_input_required_stream.py) +Full source: [cookbook/03_teams/20_human_in_the_loop/user_input_required_stream.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/20_human_in_the_loop/user_input_required_stream.py) diff --git a/examples/teams/human-in-the-loop/user-input-required.mdx b/examples/teams/human-in-the-loop/user-input-required.mdx index 5ec00a87f..d4a032267 100644 --- a/examples/teams/human-in-the-loop/user-input-required.mdx +++ b/examples/teams/human-in-the-loop/user-input-required.mdx @@ -121,4 +121,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/20_human_in_the_loop/user_input_required.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/20_human_in_the_loop/user_input_required.py) +Full source: [cookbook/03_teams/20_human_in_the_loop/user_input_required.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/20_human_in_the_loop/user_input_required.py) diff --git a/examples/teams/knowledge/team-update-knowledge.mdx b/examples/teams/knowledge/team-update-knowledge.mdx index 5206016f3..d4f26df25 100644 --- a/examples/teams/knowledge/team-update-knowledge.mdx +++ b/examples/teams/knowledge/team-update-knowledge.mdx @@ -111,4 +111,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/05_knowledge/05_team_update_knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/05_knowledge/05_team_update_knowledge.py) +Full source: [cookbook/03_teams/05_knowledge/05_team_update_knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/05_knowledge/05_team_update_knowledge.py) diff --git a/examples/teams/knowledge/team-with-agentic-knowledge-filters.mdx b/examples/teams/knowledge/team-with-agentic-knowledge-filters.mdx index 1b0ede035..09f11a950 100644 --- a/examples/teams/knowledge/team-with-agentic-knowledge-filters.mdx +++ b/examples/teams/knowledge/team-with-agentic-knowledge-filters.mdx @@ -147,4 +147,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/05_knowledge/03_team_with_agentic_knowledge_filters.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/05_knowledge/03_team_with_agentic_knowledge_filters.py) +Full source: [cookbook/03_teams/05_knowledge/03_team_with_agentic_knowledge_filters.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/05_knowledge/03_team_with_agentic_knowledge_filters.py) diff --git a/examples/teams/knowledge/team-with-custom-retriever.mdx b/examples/teams/knowledge/team-with-custom-retriever.mdx index d5ed3b6df..08b97c755 100644 --- a/examples/teams/knowledge/team-with-custom-retriever.mdx +++ b/examples/teams/knowledge/team-with-custom-retriever.mdx @@ -165,4 +165,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/05_knowledge/04_team_with_custom_retriever.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/05_knowledge/04_team_with_custom_retriever.py) +Full source: [cookbook/03_teams/05_knowledge/04_team_with_custom_retriever.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/05_knowledge/04_team_with_custom_retriever.py) diff --git a/examples/teams/knowledge/team-with-knowledge-filters.mdx b/examples/teams/knowledge/team-with-knowledge-filters.mdx index f1507b18c..c5c15b82f 100644 --- a/examples/teams/knowledge/team-with-knowledge-filters.mdx +++ b/examples/teams/knowledge/team-with-knowledge-filters.mdx @@ -148,4 +148,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/05_knowledge/02_team_with_knowledge_filters.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/05_knowledge/02_team_with_knowledge_filters.py) +Full source: [cookbook/03_teams/05_knowledge/02_team_with_knowledge_filters.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/05_knowledge/02_team_with_knowledge_filters.py) diff --git a/examples/teams/knowledge/team-with-knowledge.mdx b/examples/teams/knowledge/team-with-knowledge.mdx index df9f86a85..14939b509 100644 --- a/examples/teams/knowledge/team-with-knowledge.mdx +++ b/examples/teams/knowledge/team-with-knowledge.mdx @@ -101,4 +101,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/05_knowledge/01_team_with_knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/05_knowledge/01_team_with_knowledge.py) +Full source: [cookbook/03_teams/05_knowledge/01_team_with_knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/05_knowledge/01_team_with_knowledge.py) diff --git a/examples/teams/learning/team-agentic-learning.mdx b/examples/teams/learning/team-agentic-learning.mdx index b18a32194..e7913b09f 100644 --- a/examples/teams/learning/team-agentic-learning.mdx +++ b/examples/teams/learning/team-agentic-learning.mdx @@ -5,7 +5,7 @@ source: cookbook/03_teams/12_learning/10_team_agentic_learning.py --- - This example imports `LearningMode` from a module that does not exist in Agno v2.7.2. Update the import before running. + This example imports `LearningMode` from a module that does not exist in Agno v2.7.4. Update the import before running. ```python team_agentic_learning.py @@ -124,4 +124,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/12_learning/10_team_agentic_learning.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/12_learning/10_team_agentic_learning.py) +Full source: [cookbook/03_teams/12_learning/10_team_agentic_learning.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/12_learning/10_team_agentic_learning.py) diff --git a/examples/teams/learning/team-always-learn.mdx b/examples/teams/learning/team-always-learn.mdx index 0078008ba..9c759a8e7 100644 --- a/examples/teams/learning/team-always-learn.mdx +++ b/examples/teams/learning/team-always-learn.mdx @@ -128,4 +128,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/12_learning/01_team_always_learn.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/12_learning/01_team_always_learn.py) +Full source: [cookbook/03_teams/12_learning/01_team_always_learn.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/12_learning/01_team_always_learn.py) diff --git a/examples/teams/learning/team-async-learning.mdx b/examples/teams/learning/team-async-learning.mdx index 4d90b3335..640ce1c77 100644 --- a/examples/teams/learning/team-async-learning.mdx +++ b/examples/teams/learning/team-async-learning.mdx @@ -112,4 +112,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/12_learning/09_team_async_learning.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/12_learning/09_team_async_learning.py) +Full source: [cookbook/03_teams/12_learning/09_team_async_learning.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/12_learning/09_team_async_learning.py) diff --git a/examples/teams/learning/team-configured-learning.mdx b/examples/teams/learning/team-configured-learning.mdx index 3050dd11e..dfc60f358 100644 --- a/examples/teams/learning/team-configured-learning.mdx +++ b/examples/teams/learning/team-configured-learning.mdx @@ -148,4 +148,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/12_learning/02_team_configured_learning.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/12_learning/02_team_configured_learning.py) +Full source: [cookbook/03_teams/12_learning/02_team_configured_learning.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/12_learning/02_team_configured_learning.py) diff --git a/examples/teams/learning/team-decision-log.mdx b/examples/teams/learning/team-decision-log.mdx index e7a75dfd9..1be35a7c6 100644 --- a/examples/teams/learning/team-decision-log.mdx +++ b/examples/teams/learning/team-decision-log.mdx @@ -152,4 +152,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/12_learning/06_team_decision_log.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/12_learning/06_team_decision_log.py) +Full source: [cookbook/03_teams/12_learning/06_team_decision_log.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/12_learning/06_team_decision_log.py) diff --git a/examples/teams/learning/team-entity-memory.mdx b/examples/teams/learning/team-entity-memory.mdx index 9cc91a0ae..2695aab92 100644 --- a/examples/teams/learning/team-entity-memory.mdx +++ b/examples/teams/learning/team-entity-memory.mdx @@ -156,4 +156,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/12_learning/03_team_entity_memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/12_learning/03_team_entity_memory.py) +Full source: [cookbook/03_teams/12_learning/03_team_entity_memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/12_learning/03_team_entity_memory.py) diff --git a/examples/teams/learning/team-learned-knowledge.mdx b/examples/teams/learning/team-learned-knowledge.mdx index 1f96bc256..b283e8982 100644 --- a/examples/teams/learning/team-learned-knowledge.mdx +++ b/examples/teams/learning/team-learned-knowledge.mdx @@ -169,4 +169,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/12_learning/05_team_learned_knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/12_learning/05_team_learned_knowledge.py) +Full source: [cookbook/03_teams/12_learning/05_team_learned_knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/12_learning/05_team_learned_knowledge.py) diff --git a/examples/teams/learning/team-session-planning.mdx b/examples/teams/learning/team-session-planning.mdx index aab208b04..e5631c140 100644 --- a/examples/teams/learning/team-session-planning.mdx +++ b/examples/teams/learning/team-session-planning.mdx @@ -160,4 +160,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/12_learning/04_team_session_planning.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/12_learning/04_team_session_planning.py) +Full source: [cookbook/03_teams/12_learning/04_team_session_planning.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/12_learning/04_team_session_planning.py) diff --git a/examples/teams/learning/team-user-memory.mdx b/examples/teams/learning/team-user-memory.mdx index a20fff0e3..3f4479ece 100644 --- a/examples/teams/learning/team-user-memory.mdx +++ b/examples/teams/learning/team-user-memory.mdx @@ -108,4 +108,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/12_learning/08_team_user_memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/12_learning/08_team_user_memory.py) +Full source: [cookbook/03_teams/12_learning/08_team_user_memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/12_learning/08_team_user_memory.py) diff --git a/examples/teams/learning/team-user-profile.mdx b/examples/teams/learning/team-user-profile.mdx index c34aa2a76..a827220ee 100644 --- a/examples/teams/learning/team-user-profile.mdx +++ b/examples/teams/learning/team-user-profile.mdx @@ -107,4 +107,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/12_learning/07_team_user_profile.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/12_learning/07_team_user_profile.py) +Full source: [cookbook/03_teams/12_learning/07_team_user_profile.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/12_learning/07_team_user_profile.py) diff --git a/examples/teams/memory/learning-machine.mdx b/examples/teams/memory/learning-machine.mdx index 4aa556487..b273e7a24 100644 --- a/examples/teams/memory/learning-machine.mdx +++ b/examples/teams/memory/learning-machine.mdx @@ -104,4 +104,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/06_memory/learning_machine.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/06_memory/learning_machine.py) +Full source: [cookbook/03_teams/06_memory/learning_machine.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/06_memory/learning_machine.py) diff --git a/examples/teams/memory/memories-in-context.mdx b/examples/teams/memory/memories-in-context.mdx index 14e64c562..f290e1c39 100644 --- a/examples/teams/memory/memories-in-context.mdx +++ b/examples/teams/memory/memories-in-context.mdx @@ -114,4 +114,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/06_memory/03_memories_in_context.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/06_memory/03_memories_in_context.py) +Full source: [cookbook/03_teams/06_memory/03_memories_in_context.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/06_memory/03_memories_in_context.py) diff --git a/examples/teams/memory/team-with-agentic-memory.mdx b/examples/teams/memory/team-with-agentic-memory.mdx index 74256b85d..dc7de3696 100644 --- a/examples/teams/memory/team-with-agentic-memory.mdx +++ b/examples/teams/memory/team-with-agentic-memory.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/06_memory/02_team_with_agentic_memory.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/06_memory/02_team_with_agentic_memory.py) +Full source: [cookbook/03_teams/06_memory/02_team_with_agentic_memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/06_memory/02_team_with_agentic_memory.py) diff --git a/examples/teams/memory/team-with-memory-manager.mdx b/examples/teams/memory/team-with-memory-manager.mdx index 9ea69a344..d6e0093b5 100644 --- a/examples/teams/memory/team-with-memory-manager.mdx +++ b/examples/teams/memory/team-with-memory-manager.mdx @@ -106,4 +106,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/06_memory/01_team_with_memory_manager.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/06_memory/01_team_with_memory_manager.py) +Full source: [cookbook/03_teams/06_memory/01_team_with_memory_manager.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/06_memory/01_team_with_memory_manager.py) diff --git a/examples/teams/metrics/loop-team-and-member-metrics.mdx b/examples/teams/metrics/loop-team-and-member-metrics.mdx index a605404cf..10c5c33a4 100644 --- a/examples/teams/metrics/loop-team-and-member-metrics.mdx +++ b/examples/teams/metrics/loop-team-and-member-metrics.mdx @@ -178,4 +178,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/22_metrics/06_loop_team_and_member_metrics.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/22_metrics/06_loop_team_and_member_metrics.py) +Full source: [cookbook/03_teams/22_metrics/06_loop_team_and_member_metrics.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/22_metrics/06_loop_team_and_member_metrics.py) diff --git a/examples/teams/metrics/team-eval-metrics.mdx b/examples/teams/metrics/team-eval-metrics.mdx index 48a829dcd..81f94c60a 100644 --- a/examples/teams/metrics/team-eval-metrics.mdx +++ b/examples/teams/metrics/team-eval-metrics.mdx @@ -123,4 +123,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/22_metrics/05_team_eval_metrics.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/22_metrics/05_team_eval_metrics.py) +Full source: [cookbook/03_teams/22_metrics/05_team_eval_metrics.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/22_metrics/05_team_eval_metrics.py) diff --git a/examples/teams/metrics/team-metrics.mdx b/examples/teams/metrics/team-metrics.mdx index c06d0087e..9e4665ce2 100644 --- a/examples/teams/metrics/team-metrics.mdx +++ b/examples/teams/metrics/team-metrics.mdx @@ -135,4 +135,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/22_metrics/01_team_metrics.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/22_metrics/01_team_metrics.py) +Full source: [cookbook/03_teams/22_metrics/01_team_metrics.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/22_metrics/01_team_metrics.py) diff --git a/examples/teams/metrics/team-session-metrics.mdx b/examples/teams/metrics/team-session-metrics.mdx index 2a3d0e4be..cbedc96e3 100644 --- a/examples/teams/metrics/team-session-metrics.mdx +++ b/examples/teams/metrics/team-session-metrics.mdx @@ -109,4 +109,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/22_metrics/03_team_session_metrics.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/22_metrics/03_team_session_metrics.py) +Full source: [cookbook/03_teams/22_metrics/03_team_session_metrics.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/22_metrics/03_team_session_metrics.py) diff --git a/examples/teams/metrics/team-streaming-metrics.mdx b/examples/teams/metrics/team-streaming-metrics.mdx index b0370bd16..3439a138f 100644 --- a/examples/teams/metrics/team-streaming-metrics.mdx +++ b/examples/teams/metrics/team-streaming-metrics.mdx @@ -96,4 +96,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/22_metrics/02_team_streaming_metrics.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/22_metrics/02_team_streaming_metrics.py) +Full source: [cookbook/03_teams/22_metrics/02_team_streaming_metrics.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/22_metrics/02_team_streaming_metrics.py) diff --git a/examples/teams/metrics/team-tool-metrics.mdx b/examples/teams/metrics/team-tool-metrics.mdx index 7078016e5..03ba1d268 100644 --- a/examples/teams/metrics/team-tool-metrics.mdx +++ b/examples/teams/metrics/team-tool-metrics.mdx @@ -104,4 +104,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/22_metrics/04_team_tool_metrics.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/22_metrics/04_team_tool_metrics.py) +Full source: [cookbook/03_teams/22_metrics/04_team_tool_metrics.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/22_metrics/04_team_tool_metrics.py) diff --git a/examples/teams/modes/broadcast/basic.mdx b/examples/teams/modes/broadcast/basic.mdx index 12ca37291..e5939812e 100644 --- a/examples/teams/modes/broadcast/basic.mdx +++ b/examples/teams/modes/broadcast/basic.mdx @@ -119,4 +119,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/02_modes/broadcast/01_basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/02_modes/broadcast/01_basic.py) +Full source: [cookbook/03_teams/02_modes/broadcast/01_basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/02_modes/broadcast/01_basic.py) diff --git a/examples/teams/modes/broadcast/debate.mdx b/examples/teams/modes/broadcast/debate.mdx index 0a82c5e0f..1ce14947a 100644 --- a/examples/teams/modes/broadcast/debate.mdx +++ b/examples/teams/modes/broadcast/debate.mdx @@ -112,4 +112,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/02_modes/broadcast/02_debate.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/02_modes/broadcast/02_debate.py) +Full source: [cookbook/03_teams/02_modes/broadcast/02_debate.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/02_modes/broadcast/02_debate.py) diff --git a/examples/teams/modes/broadcast/research-sweep.mdx b/examples/teams/modes/broadcast/research-sweep.mdx index 5109bb035..ec706af98 100644 --- a/examples/teams/modes/broadcast/research-sweep.mdx +++ b/examples/teams/modes/broadcast/research-sweep.mdx @@ -125,4 +125,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/02_modes/broadcast/03_research_sweep.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/02_modes/broadcast/03_research_sweep.py) +Full source: [cookbook/03_teams/02_modes/broadcast/03_research_sweep.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/02_modes/broadcast/03_research_sweep.py) diff --git a/examples/teams/modes/broadcast/structured-debate.mdx b/examples/teams/modes/broadcast/structured-debate.mdx index 100fa4b8d..9f4fae450 100644 --- a/examples/teams/modes/broadcast/structured-debate.mdx +++ b/examples/teams/modes/broadcast/structured-debate.mdx @@ -80,4 +80,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/02_modes/broadcast/04_structured_debate.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/02_modes/broadcast/04_structured_debate.py) +Full source: [cookbook/03_teams/02_modes/broadcast/04_structured_debate.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/02_modes/broadcast/04_structured_debate.py) diff --git a/examples/teams/modes/coordinate/basic.mdx b/examples/teams/modes/coordinate/basic.mdx index d08e59b48..6a9015413 100644 --- a/examples/teams/modes/coordinate/basic.mdx +++ b/examples/teams/modes/coordinate/basic.mdx @@ -109,4 +109,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/02_modes/coordinate/01_basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/02_modes/coordinate/01_basic.py) +Full source: [cookbook/03_teams/02_modes/coordinate/01_basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/02_modes/coordinate/01_basic.py) diff --git a/examples/teams/modes/coordinate/structured-output.mdx b/examples/teams/modes/coordinate/structured-output.mdx index 054fb627b..0c41346ba 100644 --- a/examples/teams/modes/coordinate/structured-output.mdx +++ b/examples/teams/modes/coordinate/structured-output.mdx @@ -126,4 +126,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/02_modes/coordinate/03_structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/02_modes/coordinate/03_structured_output.py) +Full source: [cookbook/03_teams/02_modes/coordinate/03_structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/02_modes/coordinate/03_structured_output.py) diff --git a/examples/teams/modes/coordinate/with-tools.mdx b/examples/teams/modes/coordinate/with-tools.mdx index f3bed055e..cdc4b53ca 100644 --- a/examples/teams/modes/coordinate/with-tools.mdx +++ b/examples/teams/modes/coordinate/with-tools.mdx @@ -111,4 +111,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/02_modes/coordinate/02_with_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/02_modes/coordinate/02_with_tools.py) +Full source: [cookbook/03_teams/02_modes/coordinate/02_with_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/02_modes/coordinate/02_with_tools.py) diff --git a/examples/teams/modes/route/basic.mdx b/examples/teams/modes/route/basic.mdx index 25c9d187e..91bd69ea6 100644 --- a/examples/teams/modes/route/basic.mdx +++ b/examples/teams/modes/route/basic.mdx @@ -114,4 +114,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/02_modes/route/01_basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/02_modes/route/01_basic.py) +Full source: [cookbook/03_teams/02_modes/route/01_basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/02_modes/route/01_basic.py) diff --git a/examples/teams/modes/route/specialist-router.mdx b/examples/teams/modes/route/specialist-router.mdx index c7a461ed2..64fd24e95 100644 --- a/examples/teams/modes/route/specialist-router.mdx +++ b/examples/teams/modes/route/specialist-router.mdx @@ -118,4 +118,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/02_modes/route/02_specialist_router.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/02_modes/route/02_specialist_router.py) +Full source: [cookbook/03_teams/02_modes/route/02_specialist_router.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/02_modes/route/02_specialist_router.py) diff --git a/examples/teams/modes/route/with-fallback.mdx b/examples/teams/modes/route/with-fallback.mdx index 1b697fcc0..44a25ab19 100644 --- a/examples/teams/modes/route/with-fallback.mdx +++ b/examples/teams/modes/route/with-fallback.mdx @@ -127,4 +127,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/02_modes/route/03_with_fallback.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/02_modes/route/03_with_fallback.py) +Full source: [cookbook/03_teams/02_modes/route/03_with_fallback.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/02_modes/route/03_with_fallback.py) diff --git a/examples/teams/modes/tasks-stream.mdx b/examples/teams/modes/tasks-stream.mdx index 75d50dffb..aa5955534 100644 --- a/examples/teams/modes/tasks-stream.mdx +++ b/examples/teams/modes/tasks-stream.mdx @@ -246,4 +246,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/02_modes/tasks_stream.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/02_modes/tasks_stream.py) +Full source: [cookbook/03_teams/02_modes/tasks_stream.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/02_modes/tasks_stream.py) diff --git a/examples/teams/modes/tasks/basic.mdx b/examples/teams/modes/tasks/basic.mdx index 4a1844008..297e130c0 100644 --- a/examples/teams/modes/tasks/basic.mdx +++ b/examples/teams/modes/tasks/basic.mdx @@ -122,4 +122,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/02_modes/tasks/01_basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/02_modes/tasks/01_basic.py) +Full source: [cookbook/03_teams/02_modes/tasks/01_basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/02_modes/tasks/01_basic.py) diff --git a/examples/teams/modes/tasks/dependencies.mdx b/examples/teams/modes/tasks/dependencies.mdx index 5a2a78ddf..93897995f 100644 --- a/examples/teams/modes/tasks/dependencies.mdx +++ b/examples/teams/modes/tasks/dependencies.mdx @@ -122,4 +122,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/02_modes/tasks/03_dependencies.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/02_modes/tasks/03_dependencies.py) +Full source: [cookbook/03_teams/02_modes/tasks/03_dependencies.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/02_modes/tasks/03_dependencies.py) diff --git a/examples/teams/modes/tasks/parallel.mdx b/examples/teams/modes/tasks/parallel.mdx index 565d5771a..fc80ee944 100644 --- a/examples/teams/modes/tasks/parallel.mdx +++ b/examples/teams/modes/tasks/parallel.mdx @@ -121,4 +121,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/02_modes/tasks/02_parallel.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/02_modes/tasks/02_parallel.py) +Full source: [cookbook/03_teams/02_modes/tasks/02_parallel.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/02_modes/tasks/02_parallel.py) diff --git a/examples/teams/modes/tasks/streaming-events.mdx b/examples/teams/modes/tasks/streaming-events.mdx index 346ce2b65..ffe683a53 100644 --- a/examples/teams/modes/tasks/streaming-events.mdx +++ b/examples/teams/modes/tasks/streaming-events.mdx @@ -188,4 +188,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/02_modes/tasks/11_streaming_events.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/02_modes/tasks/11_streaming_events.py) +Full source: [cookbook/03_teams/02_modes/tasks/11_streaming_events.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/02_modes/tasks/11_streaming_events.py) diff --git a/examples/teams/multimodal/audio-sentiment-analysis.mdx b/examples/teams/multimodal/audio-sentiment-analysis.mdx index c326c3b82..38c271777 100644 --- a/examples/teams/multimodal/audio-sentiment-analysis.mdx +++ b/examples/teams/multimodal/audio-sentiment-analysis.mdx @@ -114,4 +114,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/19_multimodal/audio_sentiment_analysis.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/19_multimodal/audio_sentiment_analysis.py) +Full source: [cookbook/03_teams/19_multimodal/audio_sentiment_analysis.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/19_multimodal/audio_sentiment_analysis.py) diff --git a/examples/teams/multimodal/audio-to-text.mdx b/examples/teams/multimodal/audio-to-text.mdx index c4abeda48..8d1e1cca8 100644 --- a/examples/teams/multimodal/audio-to-text.mdx +++ b/examples/teams/multimodal/audio-to-text.mdx @@ -103,4 +103,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/19_multimodal/audio_to_text.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/19_multimodal/audio_to_text.py) +Full source: [cookbook/03_teams/19_multimodal/audio_to_text.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/19_multimodal/audio_to_text.py) diff --git a/examples/teams/multimodal/generate-image-with-team.mdx b/examples/teams/multimodal/generate-image-with-team.mdx index 52d02aeb5..3e06e118f 100644 --- a/examples/teams/multimodal/generate-image-with-team.mdx +++ b/examples/teams/multimodal/generate-image-with-team.mdx @@ -84,4 +84,4 @@ if __name__ == "__main__": Follow [Image Generation Agent](/models/providers/native/openai/responses/usage/image-generation-agent) to generate images with GPT Image 2. -Full source: [cookbook/03_teams/19_multimodal/generate_image_with_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/19_multimodal/generate_image_with_team.py) +Full source: [cookbook/03_teams/19_multimodal/generate_image_with_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/19_multimodal/generate_image_with_team.py) diff --git a/examples/teams/multimodal/image-to-image-transformation.mdx b/examples/teams/multimodal/image-to-image-transformation.mdx index d53b74216..7abc978b0 100644 --- a/examples/teams/multimodal/image-to-image-transformation.mdx +++ b/examples/teams/multimodal/image-to-image-transformation.mdx @@ -101,4 +101,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/19_multimodal/image_to_image_transformation.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/19_multimodal/image_to_image_transformation.py) +Full source: [cookbook/03_teams/19_multimodal/image_to_image_transformation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/19_multimodal/image_to_image_transformation.py) diff --git a/examples/teams/multimodal/image-to-structured-output.mdx b/examples/teams/multimodal/image-to-structured-output.mdx index 56ea938e5..790436419 100644 --- a/examples/teams/multimodal/image-to-structured-output.mdx +++ b/examples/teams/multimodal/image-to-structured-output.mdx @@ -121,4 +121,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/19_multimodal/image_to_structured_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/19_multimodal/image_to_structured_output.py) +Full source: [cookbook/03_teams/19_multimodal/image_to_structured_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/19_multimodal/image_to_structured_output.py) diff --git a/examples/teams/multimodal/image-to-text.mdx b/examples/teams/multimodal/image-to-text.mdx index 60bb1b26b..bcee6b9a7 100644 --- a/examples/teams/multimodal/image-to-text.mdx +++ b/examples/teams/multimodal/image-to-text.mdx @@ -100,4 +100,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/19_multimodal/image_to_text.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/19_multimodal/image_to_text.py) +Full source: [cookbook/03_teams/19_multimodal/image_to_text.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/19_multimodal/image_to_text.py) diff --git a/examples/teams/multimodal/media-input-for-tool.mdx b/examples/teams/multimodal/media-input-for-tool.mdx index c712ef50c..243dab382 100644 --- a/examples/teams/multimodal/media-input-for-tool.mdx +++ b/examples/teams/multimodal/media-input-for-tool.mdx @@ -95,7 +95,6 @@ team = Team( "Analyze the extracted content and provide insights directly in your response.", "Do not delegate tasks to team members - handle everything yourself using the available tools.", ], - debug_mode=True, send_media_to_model=False, store_media=True, ) @@ -151,4 +150,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/19_multimodal/media_input_for_tool.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/19_multimodal/media_input_for_tool.py) +Full source: [cookbook/03_teams/19_multimodal/media_input_for_tool.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/19_multimodal/media_input_for_tool.py) diff --git a/examples/teams/multimodal/video-caption-generation.mdx b/examples/teams/multimodal/video-caption-generation.mdx index 71cb1733a..b40166c5e 100644 --- a/examples/teams/multimodal/video-caption-generation.mdx +++ b/examples/teams/multimodal/video-caption-generation.mdx @@ -106,4 +106,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/19_multimodal/video_caption_generation.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/19_multimodal/video_caption_generation.py) +Full source: [cookbook/03_teams/19_multimodal/video_caption_generation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/19_multimodal/video_caption_generation.py) diff --git a/examples/teams/other/background-execution.mdx b/examples/teams/other/background-execution.mdx index 2ff882019..1ab008612 100644 --- a/examples/teams/other/background-execution.mdx +++ b/examples/teams/other/background-execution.mdx @@ -210,4 +210,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/14_run_control/background_execution.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/14_run_control/background_execution.py) +Full source: [cookbook/03_teams/14_run_control/background_execution.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/14_run_control/background_execution.py) diff --git a/examples/teams/reasoning/reasoning-multi-purpose-team.mdx b/examples/teams/reasoning/reasoning-multi-purpose-team.mdx index e78c1d8cb..2a2dd700e 100644 --- a/examples/teams/reasoning/reasoning-multi-purpose-team.mdx +++ b/examples/teams/reasoning/reasoning-multi-purpose-team.mdx @@ -290,4 +290,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/11_reasoning/reasoning_multi_purpose_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/11_reasoning/reasoning_multi_purpose_team.py) +Full source: [cookbook/03_teams/11_reasoning/reasoning_multi_purpose_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/11_reasoning/reasoning_multi_purpose_team.py) diff --git a/examples/teams/regenerate/regenerate.mdx b/examples/teams/regenerate/regenerate.mdx index 7b0947724..809fd763b 100644 --- a/examples/teams/regenerate/regenerate.mdx +++ b/examples/teams/regenerate/regenerate.mdx @@ -164,4 +164,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/24_regenerate/01_regenerate.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/24_regenerate/01_regenerate.py) +Full source: [cookbook/03_teams/24_regenerate/01_regenerate.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/24_regenerate/01_regenerate.py) diff --git a/examples/teams/remote-agents/basic-remote-member.mdx b/examples/teams/remote-agents/basic-remote-member.mdx index 7b2d3d036..704d904eb 100644 --- a/examples/teams/remote-agents/basic-remote-member.mdx +++ b/examples/teams/remote-agents/basic-remote-member.mdx @@ -109,4 +109,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/23_remote_agents/01_basic_remote_member.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/23_remote_agents/01_basic_remote_member.py) +Full source: [cookbook/03_teams/23_remote_agents/01_basic_remote_member.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/23_remote_agents/01_basic_remote_member.py) diff --git a/examples/teams/run-control/background-execution-metrics.mdx b/examples/teams/run-control/background-execution-metrics.mdx index 15d0b70aa..fa8170b24 100644 --- a/examples/teams/run-control/background-execution-metrics.mdx +++ b/examples/teams/run-control/background-execution-metrics.mdx @@ -155,4 +155,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/14_run_control/background_execution_metrics.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/14_run_control/background_execution_metrics.py) +Full source: [cookbook/03_teams/14_run_control/background_execution_metrics.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/14_run_control/background_execution_metrics.py) diff --git a/examples/teams/run-control/cancel-run-persistence.mdx b/examples/teams/run-control/cancel-run-persistence.mdx index 08c9deeff..e2c815ef5 100644 --- a/examples/teams/run-control/cancel-run-persistence.mdx +++ b/examples/teams/run-control/cancel-run-persistence.mdx @@ -117,4 +117,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/14_run_control/cancel_run_persistence.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/14_run_control/cancel_run_persistence.py) +Full source: [cookbook/03_teams/14_run_control/cancel_run_persistence.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/14_run_control/cancel_run_persistence.py) diff --git a/examples/teams/run-control/cancel-run.mdx b/examples/teams/run-control/cancel-run.mdx index 29589a6f3..b646a5620 100644 --- a/examples/teams/run-control/cancel-run.mdx +++ b/examples/teams/run-control/cancel-run.mdx @@ -239,4 +239,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/14_run_control/cancel_run.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/14_run_control/cancel_run.py) +Full source: [cookbook/03_teams/14_run_control/cancel_run.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/14_run_control/cancel_run.py) diff --git a/examples/teams/run-control/model-inheritance.mdx b/examples/teams/run-control/model-inheritance.mdx index 2d007fe3f..36ed72aeb 100644 --- a/examples/teams/run-control/model-inheritance.mdx +++ b/examples/teams/run-control/model-inheritance.mdx @@ -109,4 +109,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/14_run_control/model_inheritance.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/14_run_control/model_inheritance.py) +Full source: [cookbook/03_teams/14_run_control/model_inheritance.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/14_run_control/model_inheritance.py) diff --git a/examples/teams/run-control/remote-team.mdx b/examples/teams/run-control/remote-team.mdx index ad783e0e4..f9e951470 100644 --- a/examples/teams/run-control/remote-team.mdx +++ b/examples/teams/run-control/remote-team.mdx @@ -98,4 +98,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/14_run_control/remote_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/14_run_control/remote_team.py) +Full source: [cookbook/03_teams/14_run_control/remote_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/14_run_control/remote_team.py) diff --git a/examples/teams/run-control/retries.mdx b/examples/teams/run-control/retries.mdx index cccfd0293..1d853751b 100644 --- a/examples/teams/run-control/retries.mdx +++ b/examples/teams/run-control/retries.mdx @@ -83,4 +83,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/14_run_control/retries.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/14_run_control/retries.py) +Full source: [cookbook/03_teams/14_run_control/retries.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/14_run_control/retries.py) diff --git a/examples/teams/run-control/team-cancel-while-member-runs.mdx b/examples/teams/run-control/team-cancel-while-member-runs.mdx index 42525e7d3..22336d446 100644 --- a/examples/teams/run-control/team-cancel-while-member-runs.mdx +++ b/examples/teams/run-control/team-cancel-while-member-runs.mdx @@ -161,4 +161,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/14_run_control/team_cancel_while_member_runs.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/14_run_control/team_cancel_while_member_runs.py) +Full source: [cookbook/03_teams/14_run_control/team_cancel_while_member_runs.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/14_run_control/team_cancel_while_member_runs.py) diff --git a/examples/teams/search-coordination/coordinated-agentic-rag.mdx b/examples/teams/search-coordination/coordinated-agentic-rag.mdx index 227de762b..7faca2da1 100644 --- a/examples/teams/search-coordination/coordinated-agentic-rag.mdx +++ b/examples/teams/search-coordination/coordinated-agentic-rag.mdx @@ -146,4 +146,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/16_search_coordination/01_coordinated_agentic_rag.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/16_search_coordination/01_coordinated_agentic_rag.py) +Full source: [cookbook/03_teams/16_search_coordination/01_coordinated_agentic_rag.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/16_search_coordination/01_coordinated_agentic_rag.py) diff --git a/examples/teams/search-coordination/coordinated-reasoning-rag.mdx b/examples/teams/search-coordination/coordinated-reasoning-rag.mdx index bd1559d82..c7c0496e3 100644 --- a/examples/teams/search-coordination/coordinated-reasoning-rag.mdx +++ b/examples/teams/search-coordination/coordinated-reasoning-rag.mdx @@ -193,4 +193,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/16_search_coordination/02_coordinated_reasoning_rag.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/16_search_coordination/02_coordinated_reasoning_rag.py) +Full source: [cookbook/03_teams/16_search_coordination/02_coordinated_reasoning_rag.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/16_search_coordination/02_coordinated_reasoning_rag.py) diff --git a/examples/teams/search-coordination/distributed-infinity-search.mdx b/examples/teams/search-coordination/distributed-infinity-search.mdx index 5e281cc7b..38b3f8619 100644 --- a/examples/teams/search-coordination/distributed-infinity-search.mdx +++ b/examples/teams/search-coordination/distributed-infinity-search.mdx @@ -215,4 +215,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/16_search_coordination/03_distributed_infinity_search.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/16_search_coordination/03_distributed_infinity_search.py) +Full source: [cookbook/03_teams/16_search_coordination/03_distributed_infinity_search.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/16_search_coordination/03_distributed_infinity_search.py) diff --git a/examples/teams/session/chat-history.mdx b/examples/teams/session/chat-history.mdx index ca79b3a67..9913a511a 100644 --- a/examples/teams/session/chat-history.mdx +++ b/examples/teams/session/chat-history.mdx @@ -94,4 +94,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/07_session/chat_history.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/07_session/chat_history.py) +Full source: [cookbook/03_teams/07_session/chat_history.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/07_session/chat_history.py) diff --git a/examples/teams/session/custom-session-summary.mdx b/examples/teams/session/custom-session-summary.mdx index c85374ade..80cc249fb 100644 --- a/examples/teams/session/custom-session-summary.mdx +++ b/examples/teams/session/custom-session-summary.mdx @@ -117,4 +117,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/07_session/custom_session_summary.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/07_session/custom_session_summary.py) +Full source: [cookbook/03_teams/07_session/custom_session_summary.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/07_session/custom_session_summary.py) diff --git a/examples/teams/session/persistent-session.mdx b/examples/teams/session/persistent-session.mdx index 90d25521b..fc5830915 100644 --- a/examples/teams/session/persistent-session.mdx +++ b/examples/teams/session/persistent-session.mdx @@ -89,4 +89,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/07_session/persistent_session.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/07_session/persistent_session.py) +Full source: [cookbook/03_teams/07_session/persistent_session.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/07_session/persistent_session.py) diff --git a/examples/teams/session/search-session-history.mdx b/examples/teams/session/search-session-history.mdx index f97f8a2fa..4be9257a4 100644 --- a/examples/teams/session/search-session-history.mdx +++ b/examples/teams/session/search-session-history.mdx @@ -145,4 +145,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/07_session/search_session_history.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/07_session/search_session_history.py) +Full source: [cookbook/03_teams/07_session/search_session_history.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/07_session/search_session_history.py) diff --git a/examples/teams/session/session-options.mdx b/examples/teams/session/session-options.mdx index 0b8f5c67e..ba5d75a1b 100644 --- a/examples/teams/session/session-options.mdx +++ b/examples/teams/session/session-options.mdx @@ -134,4 +134,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/07_session/session_options.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/07_session/session_options.py) +Full source: [cookbook/03_teams/07_session/session_options.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/07_session/session_options.py) diff --git a/examples/teams/session/session-summary.mdx b/examples/teams/session/session-summary.mdx index 2a73cf185..83951b70b 100644 --- a/examples/teams/session/session-summary.mdx +++ b/examples/teams/session/session-summary.mdx @@ -134,4 +134,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/07_session/session_summary.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/07_session/session_summary.py) +Full source: [cookbook/03_teams/07_session/session_summary.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/07_session/session_summary.py) diff --git a/examples/teams/session/share-session-with-agent.mdx b/examples/teams/session/share-session-with-agent.mdx index 03031317b..cc457e009 100644 --- a/examples/teams/session/share-session-with-agent.mdx +++ b/examples/teams/session/share-session-with-agent.mdx @@ -118,4 +118,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/07_session/share_session_with_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/07_session/share_session_with_agent.py) +Full source: [cookbook/03_teams/07_session/share_session_with_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/07_session/share_session_with_agent.py) diff --git a/examples/teams/skills/basic-skills-team.mdx b/examples/teams/skills/basic-skills-team.mdx index ce6580eac..7c30e333a 100644 --- a/examples/teams/skills/basic-skills-team.mdx +++ b/examples/teams/skills/basic-skills-team.mdx @@ -112,4 +112,4 @@ if __name__ == "__main__": -Full source: [cookbook/02_agents/16_skills/basic_skills_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/16_skills/basic_skills_team.py) +Full source: [cookbook/02_agents/16_skills/basic_skills_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/16_skills/basic_skills_team.py) diff --git a/examples/teams/state/agentic-session-state.mdx b/examples/teams/state/agentic-session-state.mdx index 097167c19..51a7e3106 100644 --- a/examples/teams/state/agentic-session-state.mdx +++ b/examples/teams/state/agentic-session-state.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/21_state/agentic_session_state.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/21_state/agentic_session_state.py) +Full source: [cookbook/03_teams/21_state/agentic_session_state.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/21_state/agentic_session_state.py) diff --git a/examples/teams/state/change-state-on-run.mdx b/examples/teams/state/change-state-on-run.mdx index f8d96d314..c59f7f273 100644 --- a/examples/teams/state/change-state-on-run.mdx +++ b/examples/teams/state/change-state-on-run.mdx @@ -88,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/21_state/change_state_on_run.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/21_state/change_state_on_run.py) +Full source: [cookbook/03_teams/21_state/change_state_on_run.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/21_state/change_state_on_run.py) diff --git a/examples/teams/state/nested-shared-state.mdx b/examples/teams/state/nested-shared-state.mdx index 250733b27..827b897be 100644 --- a/examples/teams/state/nested-shared-state.mdx +++ b/examples/teams/state/nested-shared-state.mdx @@ -287,4 +287,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/21_state/nested_shared_state.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/21_state/nested_shared_state.py) +Full source: [cookbook/03_teams/21_state/nested_shared_state.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/21_state/nested_shared_state.py) diff --git a/examples/teams/state/overwrite-stored-session-state.mdx b/examples/teams/state/overwrite-stored-session-state.mdx index ab31a88ac..4ee9f5c6d 100644 --- a/examples/teams/state/overwrite-stored-session-state.mdx +++ b/examples/teams/state/overwrite-stored-session-state.mdx @@ -79,4 +79,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/21_state/overwrite_stored_session_state.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/21_state/overwrite_stored_session_state.py) +Full source: [cookbook/03_teams/21_state/overwrite_stored_session_state.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/21_state/overwrite_stored_session_state.py) diff --git a/examples/teams/state/state-sharing.mdx b/examples/teams/state/state-sharing.mdx index 97632a9b7..39d5f21f8 100644 --- a/examples/teams/state/state-sharing.mdx +++ b/examples/teams/state/state-sharing.mdx @@ -64,7 +64,6 @@ interaction_team = Team( "Then, use your report agent to write a report from the web research.", ], show_members_responses=True, - debug_mode=True, ) # --------------------------------------------------------------------------- @@ -120,4 +119,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/21_state/state_sharing.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/21_state/state_sharing.py) +Full source: [cookbook/03_teams/21_state/state_sharing.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/21_state/state_sharing.py) diff --git a/examples/teams/streaming/team-events.mdx b/examples/teams/streaming/team-events.mdx index 1d537f8fa..aa0fd42bf 100644 --- a/examples/teams/streaming/team-events.mdx +++ b/examples/teams/streaming/team-events.mdx @@ -154,4 +154,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/08_streaming/team_events.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/08_streaming/team_events.py) +Full source: [cookbook/03_teams/08_streaming/team_events.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/08_streaming/team_events.py) diff --git a/examples/teams/streaming/team-streaming.mdx b/examples/teams/streaming/team-streaming.mdx index 5acc43b9d..ffa01a440 100644 --- a/examples/teams/streaming/team-streaming.mdx +++ b/examples/teams/streaming/team-streaming.mdx @@ -122,4 +122,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/08_streaming/team_streaming.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/08_streaming/team_streaming.py) +Full source: [cookbook/03_teams/08_streaming/team_streaming.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/08_streaming/team_streaming.py) diff --git a/examples/teams/structured-input-output/expected-output.mdx b/examples/teams/structured-input-output/expected-output.mdx index a5d269ca5..4f9fc7b3b 100644 --- a/examples/teams/structured-input-output/expected-output.mdx +++ b/examples/teams/structured-input-output/expected-output.mdx @@ -92,4 +92,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/04_structured_input_output/expected_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/04_structured_input_output/expected_output.py) +Full source: [cookbook/03_teams/04_structured_input_output/expected_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/04_structured_input_output/expected_output.py) diff --git a/examples/teams/structured-input-output/input-formats.mdx b/examples/teams/structured-input-output/input-formats.mdx index c158c9a1b..809f49fa0 100644 --- a/examples/teams/structured-input-output/input-formats.mdx +++ b/examples/teams/structured-input-output/input-formats.mdx @@ -88,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/04_structured_input_output/input_formats.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/04_structured_input_output/input_formats.py) +Full source: [cookbook/03_teams/04_structured_input_output/input_formats.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/04_structured_input_output/input_formats.py) diff --git a/examples/teams/structured-input-output/input-schema.mdx b/examples/teams/structured-input-output/input-schema.mdx index 893086e59..b5297a8aa 100644 --- a/examples/teams/structured-input-output/input-schema.mdx +++ b/examples/teams/structured-input-output/input-schema.mdx @@ -146,4 +146,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/04_structured_input_output/input_schema.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/04_structured_input_output/input_schema.py) +Full source: [cookbook/03_teams/04_structured_input_output/input_schema.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/04_structured_input_output/input_schema.py) diff --git a/examples/teams/structured-input-output/json-schema-output.mdx b/examples/teams/structured-input-output/json-schema-output.mdx index 877c0a700..8e0a717aa 100644 --- a/examples/teams/structured-input-output/json-schema-output.mdx +++ b/examples/teams/structured-input-output/json-schema-output.mdx @@ -109,4 +109,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/04_structured_input_output/json_schema_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/04_structured_input_output/json_schema_output.py) +Full source: [cookbook/03_teams/04_structured_input_output/json_schema_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/04_structured_input_output/json_schema_output.py) diff --git a/examples/teams/structured-input-output/output-model.mdx b/examples/teams/structured-input-output/output-model.mdx index 655c5e6ce..2e932bfa6 100644 --- a/examples/teams/structured-input-output/output-model.mdx +++ b/examples/teams/structured-input-output/output-model.mdx @@ -74,4 +74,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/04_structured_input_output/output_model.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/04_structured_input_output/output_model.py) +Full source: [cookbook/03_teams/04_structured_input_output/output_model.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/04_structured_input_output/output_model.py) diff --git a/examples/teams/structured-input-output/output-schema-override.mdx b/examples/teams/structured-input-output/output-schema-override.mdx index 2cfda373c..f4a48683b 100644 --- a/examples/teams/structured-input-output/output-schema-override.mdx +++ b/examples/teams/structured-input-output/output-schema-override.mdx @@ -196,4 +196,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/04_structured_input_output/output_schema_override.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/04_structured_input_output/output_schema_override.py) +Full source: [cookbook/03_teams/04_structured_input_output/output_schema_override.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/04_structured_input_output/output_schema_override.py) diff --git a/examples/teams/structured-input-output/parser-model.mdx b/examples/teams/structured-input-output/parser-model.mdx index d048c565e..1a21687d2 100644 --- a/examples/teams/structured-input-output/parser-model.mdx +++ b/examples/teams/structured-input-output/parser-model.mdx @@ -149,4 +149,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/04_structured_input_output/parser_model.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/04_structured_input_output/parser_model.py) +Full source: [cookbook/03_teams/04_structured_input_output/parser_model.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/04_structured_input_output/parser_model.py) diff --git a/examples/teams/structured-input-output/pydantic-input.mdx b/examples/teams/structured-input-output/pydantic-input.mdx index 8891fa4d3..ee2ce9a49 100644 --- a/examples/teams/structured-input-output/pydantic-input.mdx +++ b/examples/teams/structured-input-output/pydantic-input.mdx @@ -121,4 +121,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/04_structured_input_output/pydantic_input.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/04_structured_input_output/pydantic_input.py) +Full source: [cookbook/03_teams/04_structured_input_output/pydantic_input.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/04_structured_input_output/pydantic_input.py) diff --git a/examples/teams/structured-input-output/pydantic-output.mdx b/examples/teams/structured-input-output/pydantic-output.mdx index 0955e6628..10a7c2720 100644 --- a/examples/teams/structured-input-output/pydantic-output.mdx +++ b/examples/teams/structured-input-output/pydantic-output.mdx @@ -108,4 +108,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/04_structured_input_output/pydantic_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/04_structured_input_output/pydantic_output.py) +Full source: [cookbook/03_teams/04_structured_input_output/pydantic_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/04_structured_input_output/pydantic_output.py) diff --git a/examples/teams/structured-input-output/response-as-variable.mdx b/examples/teams/structured-input-output/response-as-variable.mdx index 17e80463e..ef6a72935 100644 --- a/examples/teams/structured-input-output/response-as-variable.mdx +++ b/examples/teams/structured-input-output/response-as-variable.mdx @@ -162,4 +162,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/04_structured_input_output/response_as_variable.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/04_structured_input_output/response_as_variable.py) +Full source: [cookbook/03_teams/04_structured_input_output/response_as_variable.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/04_structured_input_output/response_as_variable.py) diff --git a/examples/teams/structured-input-output/structured-output-streaming.mdx b/examples/teams/structured-input-output/structured-output-streaming.mdx index a537ed3d4..50046242c 100644 --- a/examples/teams/structured-input-output/structured-output-streaming.mdx +++ b/examples/teams/structured-input-output/structured-output-streaming.mdx @@ -164,4 +164,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/04_structured_input_output/structured_output_streaming.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/04_structured_input_output/structured_output_streaming.py) +Full source: [cookbook/03_teams/04_structured_input_output/structured_output_streaming.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/04_structured_input_output/structured_output_streaming.py) diff --git a/examples/teams/task-mode/async-task-mode.mdx b/examples/teams/task-mode/async-task-mode.mdx index 94214653c..11fe87fbf 100644 --- a/examples/teams/task-mode/async-task-mode.mdx +++ b/examples/teams/task-mode/async-task-mode.mdx @@ -132,4 +132,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/02_modes/tasks/07_async_task_mode.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/02_modes/tasks/07_async_task_mode.py) +Full source: [cookbook/03_teams/02_modes/tasks/07_async_task_mode.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/02_modes/tasks/07_async_task_mode.py) diff --git a/examples/teams/task-mode/basic-task-mode.mdx b/examples/teams/task-mode/basic-task-mode.mdx index c0b20e979..d70564434 100644 --- a/examples/teams/task-mode/basic-task-mode.mdx +++ b/examples/teams/task-mode/basic-task-mode.mdx @@ -77,7 +77,6 @@ content_team = Team( show_members_responses=True, markdown=True, max_iterations=10, - debug_mode=True, ) # --------------------------------------------------------------------------- @@ -122,4 +121,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/02_modes/tasks/04_basic_task_mode.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/02_modes/tasks/04_basic_task_mode.py) +Full source: [cookbook/03_teams/02_modes/tasks/04_basic_task_mode.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/02_modes/tasks/04_basic_task_mode.py) diff --git a/examples/teams/task-mode/custom-tools.mdx b/examples/teams/task-mode/custom-tools.mdx index 789fc74b9..63db9c4bb 100644 --- a/examples/teams/task-mode/custom-tools.mdx +++ b/examples/teams/task-mode/custom-tools.mdx @@ -238,4 +238,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/02_modes/tasks/09_custom_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/02_modes/tasks/09_custom_tools.py) +Full source: [cookbook/03_teams/02_modes/tasks/09_custom_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/02_modes/tasks/09_custom_tools.py) diff --git a/examples/teams/task-mode/dependency-chain.mdx b/examples/teams/task-mode/dependency-chain.mdx index 0db4a0792..f2b61c626 100644 --- a/examples/teams/task-mode/dependency-chain.mdx +++ b/examples/teams/task-mode/dependency-chain.mdx @@ -142,4 +142,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/02_modes/tasks/08_dependency_chain.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/02_modes/tasks/08_dependency_chain.py) +Full source: [cookbook/03_teams/02_modes/tasks/08_dependency_chain.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/02_modes/tasks/08_dependency_chain.py) diff --git a/examples/teams/task-mode/multi-run-session.mdx b/examples/teams/task-mode/multi-run-session.mdx index 9c68bce36..e041ab31c 100644 --- a/examples/teams/task-mode/multi-run-session.mdx +++ b/examples/teams/task-mode/multi-run-session.mdx @@ -115,4 +115,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/02_modes/tasks/10_multi_run_session.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/02_modes/tasks/10_multi_run_session.py) +Full source: [cookbook/03_teams/02_modes/tasks/10_multi_run_session.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/02_modes/tasks/10_multi_run_session.py) diff --git a/examples/teams/task-mode/parallel-tasks.mdx b/examples/teams/task-mode/parallel-tasks.mdx index 74ae30f37..9f87a11de 100644 --- a/examples/teams/task-mode/parallel-tasks.mdx +++ b/examples/teams/task-mode/parallel-tasks.mdx @@ -120,4 +120,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/02_modes/tasks/05_parallel_tasks.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/02_modes/tasks/05_parallel_tasks.py) +Full source: [cookbook/03_teams/02_modes/tasks/05_parallel_tasks.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/02_modes/tasks/05_parallel_tasks.py) diff --git a/examples/teams/task-mode/task-mode-with-tools.mdx b/examples/teams/task-mode/task-mode-with-tools.mdx index 9818c9884..3d89dad7b 100644 --- a/examples/teams/task-mode/task-mode-with-tools.mdx +++ b/examples/teams/task-mode/task-mode-with-tools.mdx @@ -113,4 +113,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/02_modes/tasks/06_task_mode_with_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/02_modes/tasks/06_task_mode_with_tools.py) +Full source: [cookbook/03_teams/02_modes/tasks/06_task_mode_with_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/02_modes/tasks/06_task_mode_with_tools.py) diff --git a/examples/teams/time-travel/continue-from.mdx b/examples/teams/time-travel/continue-from.mdx index a5f5fa079..4bb84df8e 100644 --- a/examples/teams/time-travel/continue-from.mdx +++ b/examples/teams/time-travel/continue-from.mdx @@ -149,4 +149,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/25_time_travel/01_continue_from.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/25_time_travel/01_continue_from.py) +Full source: [cookbook/03_teams/25_time_travel/01_continue_from.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/25_time_travel/01_continue_from.py) diff --git a/examples/teams/time-travel/fork-run.mdx b/examples/teams/time-travel/fork-run.mdx index 928ff654d..31062e899 100644 --- a/examples/teams/time-travel/fork-run.mdx +++ b/examples/teams/time-travel/fork-run.mdx @@ -109,4 +109,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/25_time_travel/02_fork_run.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/25_time_travel/02_fork_run.py) +Full source: [cookbook/03_teams/25_time_travel/02_fork_run.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/25_time_travel/02_fork_run.py) diff --git a/examples/teams/tools/async-toolkit-context.mdx b/examples/teams/tools/async-toolkit-context.mdx index a98b49b11..c73f92e67 100644 --- a/examples/teams/tools/async-toolkit-context.mdx +++ b/examples/teams/tools/async-toolkit-context.mdx @@ -104,4 +104,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/03_tools/async_toolkit_context.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/03_tools/async_toolkit_context.py) +Full source: [cookbook/03_teams/03_tools/async_toolkit_context.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/03_tools/async_toolkit_context.py) diff --git a/examples/teams/tools/async-tools.mdx b/examples/teams/tools/async-tools.mdx index b4f728965..b3cde2a83 100644 --- a/examples/teams/tools/async-tools.mdx +++ b/examples/teams/tools/async-tools.mdx @@ -121,4 +121,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/03_tools/async_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/03_tools/async_tools.py) +Full source: [cookbook/03_teams/03_tools/async_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/03_tools/async_tools.py) diff --git a/examples/teams/tools/custom-tools.mdx b/examples/teams/tools/custom-tools.mdx index 22e32562c..e5a1b438d 100644 --- a/examples/teams/tools/custom-tools.mdx +++ b/examples/teams/tools/custom-tools.mdx @@ -105,4 +105,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/03_tools/custom_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/03_tools/custom_tools.py) +Full source: [cookbook/03_teams/03_tools/custom_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/03_tools/custom_tools.py) diff --git a/examples/teams/tools/member-information.mdx b/examples/teams/tools/member-information.mdx index cfef89ab6..efa06bc64 100644 --- a/examples/teams/tools/member-information.mdx +++ b/examples/teams/tools/member-information.mdx @@ -97,4 +97,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/03_tools/member_information.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/03_tools/member_information.py) +Full source: [cookbook/03_teams/03_tools/member_information.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/03_tools/member_information.py) diff --git a/examples/teams/tools/member-tool-hooks.mdx b/examples/teams/tools/member-tool-hooks.mdx index 699db0a61..7ce4ec737 100644 --- a/examples/teams/tools/member-tool-hooks.mdx +++ b/examples/teams/tools/member-tool-hooks.mdx @@ -200,4 +200,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/03_tools/member_tool_hooks.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/03_tools/member_tool_hooks.py) +Full source: [cookbook/03_teams/03_tools/member_tool_hooks.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/03_tools/member_tool_hooks.py) diff --git a/examples/teams/tools/message-history-in-tool-hooks.mdx b/examples/teams/tools/message-history-in-tool-hooks.mdx index dd91f948b..0906eebbd 100644 --- a/examples/teams/tools/message-history-in-tool-hooks.mdx +++ b/examples/teams/tools/message-history-in-tool-hooks.mdx @@ -108,4 +108,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/03_tools/message_history_in_tool_hooks.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/03_tools/message_history_in_tool_hooks.py) +Full source: [cookbook/03_teams/03_tools/message_history_in_tool_hooks.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/03_tools/message_history_in_tool_hooks.py) diff --git a/examples/teams/tools/tool-call-limit.mdx b/examples/teams/tools/tool-call-limit.mdx index 79f7907e0..bf71afe1b 100644 --- a/examples/teams/tools/tool-call-limit.mdx +++ b/examples/teams/tools/tool-call-limit.mdx @@ -111,4 +111,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/03_tools/tool_call_limit.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/03_tools/tool_call_limit.py) +Full source: [cookbook/03_teams/03_tools/tool_call_limit.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/03_tools/tool_call_limit.py) diff --git a/examples/teams/tools/tool-choice.mdx b/examples/teams/tools/tool-choice.mdx index a2a6977e8..356abc793 100644 --- a/examples/teams/tools/tool-choice.mdx +++ b/examples/teams/tools/tool-choice.mdx @@ -101,4 +101,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/03_tools/tool_choice.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/03_tools/tool_choice.py) +Full source: [cookbook/03_teams/03_tools/tool_choice.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/03_tools/tool_choice.py) diff --git a/examples/teams/tools/tool-hooks.mdx b/examples/teams/tools/tool-hooks.mdx index 69dc76fe6..5c4e2cdf3 100644 --- a/examples/teams/tools/tool-hooks.mdx +++ b/examples/teams/tools/tool-hooks.mdx @@ -126,4 +126,4 @@ if __name__ == "__main__": -Full source: [cookbook/03_teams/03_tools/tool_hooks.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/03_tools/tool_hooks.py) +Full source: [cookbook/03_teams/03_tools/tool_hooks.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/03_teams/03_tools/tool_hooks.py) diff --git a/examples/tools/antigravity/antigravity-agents-crud-tools.mdx b/examples/tools/antigravity/antigravity-agents-crud-tools.mdx index ba59dbcdb..b8b87c303 100644 --- a/examples/tools/antigravity/antigravity-agents-crud-tools.mdx +++ b/examples/tools/antigravity/antigravity-agents-crud-tools.mdx @@ -91,4 +91,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/antigravity/antigravity_agents_crud_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/antigravity/antigravity_agents_crud_tools.py) +Full source: [cookbook/91_tools/antigravity/antigravity_agents_crud_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/antigravity/antigravity_agents_crud_tools.py) diff --git a/examples/tools/antigravity/antigravity-directory-tools.mdx b/examples/tools/antigravity/antigravity-directory-tools.mdx index 46fcf0f70..2e68cfb90 100644 --- a/examples/tools/antigravity/antigravity-directory-tools.mdx +++ b/examples/tools/antigravity/antigravity-directory-tools.mdx @@ -95,4 +95,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/antigravity/antigravity_directory_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/antigravity/antigravity_directory_tools.py) +Full source: [cookbook/91_tools/antigravity/antigravity_directory_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/antigravity/antigravity_directory_tools.py) diff --git a/examples/tools/antigravity/antigravity-snapshot-tools.mdx b/examples/tools/antigravity/antigravity-snapshot-tools.mdx index 0793f9624..85bcba101 100644 --- a/examples/tools/antigravity/antigravity-snapshot-tools.mdx +++ b/examples/tools/antigravity/antigravity-snapshot-tools.mdx @@ -97,4 +97,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/antigravity/antigravity_snapshot_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/antigravity/antigravity_snapshot_tools.py) +Full source: [cookbook/91_tools/antigravity/antigravity_snapshot_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/antigravity/antigravity_snapshot_tools.py) diff --git a/examples/tools/antigravity/antigravity-tools.mdx b/examples/tools/antigravity/antigravity-tools.mdx index ce52b1b52..3f9a83e20 100644 --- a/examples/tools/antigravity/antigravity-tools.mdx +++ b/examples/tools/antigravity/antigravity-tools.mdx @@ -91,4 +91,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/antigravity/antigravity_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/antigravity/antigravity_tools.py) +Full source: [cookbook/91_tools/antigravity/antigravity_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/antigravity/antigravity_tools.py) diff --git a/examples/tools/arxiv-tools.mdx b/examples/tools/arxiv-tools.mdx index 10c298fbc..9750418cf 100644 --- a/examples/tools/arxiv-tools.mdx +++ b/examples/tools/arxiv-tools.mdx @@ -137,4 +137,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/arxiv_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/arxiv_tools.py) +Full source: [cookbook/91_tools/arxiv_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/arxiv_tools.py) diff --git a/examples/tools/async-generator-tool-with-pydantic-args.mdx b/examples/tools/async-generator-tool-with-pydantic-args.mdx index b8b703e43..9ecab48b9 100644 --- a/examples/tools/async-generator-tool-with-pydantic-args.mdx +++ b/examples/tools/async-generator-tool-with-pydantic-args.mdx @@ -223,4 +223,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/async_generator_tool_with_pydantic_args.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/async_generator_tool_with_pydantic_args.py) +Full source: [cookbook/91_tools/async_generator_tool_with_pydantic_args.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/async_generator_tool_with_pydantic_args.py) diff --git a/examples/tools/baidusearch-tools.mdx b/examples/tools/baidusearch-tools.mdx index aca4bcc85..43998f9d1 100644 --- a/examples/tools/baidusearch-tools.mdx +++ b/examples/tools/baidusearch-tools.mdx @@ -68,4 +68,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/baidusearch_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/baidusearch_tools.py) +Full source: [cookbook/91_tools/baidusearch_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/baidusearch_tools.py) diff --git a/examples/tools/bravesearch-tools.mdx b/examples/tools/bravesearch-tools.mdx index 2d180bcda..278583767 100644 --- a/examples/tools/bravesearch-tools.mdx +++ b/examples/tools/bravesearch-tools.mdx @@ -79,4 +79,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/bravesearch_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/bravesearch_tools.py) +Full source: [cookbook/91_tools/bravesearch_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/bravesearch_tools.py) diff --git a/examples/tools/brightdata-tools.mdx b/examples/tools/brightdata-tools.mdx index babf09c4e..961460e53 100644 --- a/examples/tools/brightdata-tools.mdx +++ b/examples/tools/brightdata-tools.mdx @@ -113,4 +113,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/brightdata_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/brightdata_tools.py) +Full source: [cookbook/91_tools/brightdata_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/brightdata_tools.py) diff --git a/examples/tools/browserbase-tools.mdx b/examples/tools/browserbase-tools.mdx index aab07c13d..0de0cb0e3 100644 --- a/examples/tools/browserbase-tools.mdx +++ b/examples/tools/browserbase-tools.mdx @@ -133,4 +133,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/browserbase_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/browserbase_tools.py) +Full source: [cookbook/91_tools/browserbase_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/browserbase_tools.py) diff --git a/examples/tools/calcom-tools.mdx b/examples/tools/calcom-tools.mdx index 5b3be9e23..92f76b91d 100644 --- a/examples/tools/calcom-tools.mdx +++ b/examples/tools/calcom-tools.mdx @@ -129,4 +129,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/calcom_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/calcom_tools.py) +Full source: [cookbook/91_tools/calcom_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/calcom_tools.py) diff --git a/examples/tools/calculator-tools.mdx b/examples/tools/calculator-tools.mdx index c9051a1ce..2c4f77da1 100644 --- a/examples/tools/calculator-tools.mdx +++ b/examples/tools/calculator-tools.mdx @@ -78,4 +78,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/calculator_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/calculator_tools.py) +Full source: [cookbook/91_tools/calculator_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/calculator_tools.py) diff --git a/examples/tools/clickup-tools.mdx b/examples/tools/clickup-tools.mdx index a38b992c8..8a535c8ff 100644 --- a/examples/tools/clickup-tools.mdx +++ b/examples/tools/clickup-tools.mdx @@ -112,4 +112,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/clickup_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/clickup_tools.py) +Full source: [cookbook/91_tools/clickup_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/clickup_tools.py) diff --git a/examples/tools/coding-tools/all-tools.mdx b/examples/tools/coding-tools/all-tools.mdx index 4e9fb39ee..99c00b464 100644 --- a/examples/tools/coding-tools/all-tools.mdx +++ b/examples/tools/coding-tools/all-tools.mdx @@ -67,4 +67,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/coding_tools/02_all_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/coding_tools/02_all_tools.py) +Full source: [cookbook/91_tools/coding_tools/02_all_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/coding_tools/02_all_tools.py) diff --git a/examples/tools/coding-tools/basic-usage.mdx b/examples/tools/coding-tools/basic-usage.mdx index fc218c5e0..7758e7265 100644 --- a/examples/tools/coding-tools/basic-usage.mdx +++ b/examples/tools/coding-tools/basic-usage.mdx @@ -82,4 +82,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/coding_tools/01_basic_usage.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/coding_tools/01_basic_usage.py) +Full source: [cookbook/91_tools/coding_tools/01_basic_usage.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/coding_tools/01_basic_usage.py) diff --git a/examples/tools/composio-tools.mdx b/examples/tools/composio-tools.mdx index f04308c6d..7081d00d8 100644 --- a/examples/tools/composio-tools.mdx +++ b/examples/tools/composio-tools.mdx @@ -64,4 +64,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/composio_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/composio_tools.py) +Full source: [cookbook/91_tools/composio_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/composio_tools.py) diff --git a/examples/tools/confluence-tools.mdx b/examples/tools/confluence-tools.mdx index 2d999f7f4..70b9c869f 100644 --- a/examples/tools/confluence-tools.mdx +++ b/examples/tools/confluence-tools.mdx @@ -81,4 +81,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/confluence_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/confluence_tools.py) +Full source: [cookbook/91_tools/confluence_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/confluence_tools.py) diff --git a/examples/tools/crawl4ai-tools.mdx b/examples/tools/crawl4ai-tools.mdx index 0531b7907..a0bf2bd1b 100644 --- a/examples/tools/crawl4ai-tools.mdx +++ b/examples/tools/crawl4ai-tools.mdx @@ -135,4 +135,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/crawl4ai_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/crawl4ai_tools.py) +Full source: [cookbook/91_tools/crawl4ai_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/crawl4ai_tools.py) diff --git a/examples/tools/csv-tools.mdx b/examples/tools/csv-tools.mdx index 952c5b53f..837dcc4fc 100644 --- a/examples/tools/csv-tools.mdx +++ b/examples/tools/csv-tools.mdx @@ -162,4 +162,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/csv_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/csv_tools.py) +Full source: [cookbook/91_tools/csv_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/csv_tools.py) diff --git a/examples/tools/custom-tool-events.mdx b/examples/tools/custom-tool-events.mdx index e5a462793..4df1c557b 100644 --- a/examples/tools/custom-tool-events.mdx +++ b/examples/tools/custom-tool-events.mdx @@ -101,4 +101,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/custom_tool_events.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/custom_tool_events.py) +Full source: [cookbook/91_tools/custom_tool_events.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/custom_tool_events.py) diff --git a/examples/tools/custom-tools.mdx b/examples/tools/custom-tools.mdx index a9b7942fd..504c1d2da 100644 --- a/examples/tools/custom-tools.mdx +++ b/examples/tools/custom-tools.mdx @@ -223,4 +223,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/custom_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/custom_tools.py) +Full source: [cookbook/91_tools/custom_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/custom_tools.py) diff --git a/examples/tools/dalle-tools.mdx b/examples/tools/dalle-tools.mdx index ae515d3c0..60caebcd7 100644 --- a/examples/tools/dalle-tools.mdx +++ b/examples/tools/dalle-tools.mdx @@ -3,7 +3,7 @@ title: "Dalle" description: "Legacy DalleTools reference for configuring deprecated DALL-E models." --- -This page preserves the v2.7.2 `DalleTools` example as a legacy reference. +This page preserves the v2.7.4 `DalleTools` example as a legacy reference. DALL-E models are deprecated. This `DalleTools` example is retained as a legacy reference and no longer runs against the current OpenAI API. Use `OpenAITools` with GPT Image 2 in [Image Generation Agent](/models/providers/native/openai/responses/usage/image-generation-agent). diff --git a/examples/tools/discord-tools.mdx b/examples/tools/discord-tools.mdx index 0d837c33c..04276a3c4 100644 --- a/examples/tools/discord-tools.mdx +++ b/examples/tools/discord-tools.mdx @@ -168,4 +168,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/discord_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/discord_tools.py) +Full source: [cookbook/91_tools/discord_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/discord_tools.py) diff --git a/examples/tools/docker-tools.mdx b/examples/tools/docker-tools.mdx index ee7f34a71..550ec7ca7 100644 --- a/examples/tools/docker-tools.mdx +++ b/examples/tools/docker-tools.mdx @@ -184,4 +184,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/docker_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/docker_tools.py) +Full source: [cookbook/91_tools/docker_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/docker_tools.py) diff --git a/examples/tools/docling-tools/basic-examples.mdx b/examples/tools/docling-tools/basic-examples.mdx index 712e13b86..15c138e98 100644 --- a/examples/tools/docling-tools/basic-examples.mdx +++ b/examples/tools/docling-tools/basic-examples.mdx @@ -172,4 +172,4 @@ audio_video_path = get_test_resource_path("agno_description.mp4") -Full source: [cookbook/91_tools/docling_tools/basic_examples.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/docling_tools/basic_examples.py) +Full source: [cookbook/91_tools/docling_tools/basic_examples.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/docling_tools/basic_examples.py) diff --git a/examples/tools/docling-tools/ocr-example.mdx b/examples/tools/docling-tools/ocr-example.mdx index 6accb19be..4db408c6a 100644 --- a/examples/tools/docling-tools/ocr-example.mdx +++ b/examples/tools/docling-tools/ocr-example.mdx @@ -105,4 +105,4 @@ audio_video_path = get_test_resource_path("agno_description.mp4") -Full source: [cookbook/91_tools/docling_tools/ocr_example.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/docling_tools/ocr_example.py) +Full source: [cookbook/91_tools/docling_tools/ocr_example.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/docling_tools/ocr_example.py) diff --git a/examples/tools/docling-tools/paths.mdx b/examples/tools/docling-tools/paths.mdx index d7cca3397..4aaa8a53c 100644 --- a/examples/tools/docling-tools/paths.mdx +++ b/examples/tools/docling-tools/paths.mdx @@ -44,4 +44,4 @@ audio_video_path = get_test_resource_path("agno_description.mp4") -Full source: [cookbook/91_tools/docling_tools/paths.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/docling_tools/paths.py) +Full source: [cookbook/91_tools/docling_tools/paths.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/docling_tools/paths.py) diff --git a/examples/tools/docling-tools/run.mdx b/examples/tools/docling-tools/run.mdx index c1aef4140..adb26321b 100644 --- a/examples/tools/docling-tools/run.mdx +++ b/examples/tools/docling-tools/run.mdx @@ -210,4 +210,4 @@ audio_video_path = get_test_resource_path("agno_description.mp4") -Full source: [cookbook/91_tools/docling_tools/run.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/docling_tools/run.py) +Full source: [cookbook/91_tools/docling_tools/run.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/docling_tools/run.py) diff --git a/examples/tools/duckdb-tools.mdx b/examples/tools/duckdb-tools.mdx index 9bcb5f9b1..ab260d322 100644 --- a/examples/tools/duckdb-tools.mdx +++ b/examples/tools/duckdb-tools.mdx @@ -65,4 +65,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/duckdb_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/duckdb_tools.py) +Full source: [cookbook/91_tools/duckdb_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/duckdb_tools.py) diff --git a/examples/tools/duckduckgo-tools-advanced.mdx b/examples/tools/duckduckgo-tools-advanced.mdx index a33957000..d66878f03 100644 --- a/examples/tools/duckduckgo-tools-advanced.mdx +++ b/examples/tools/duckduckgo-tools-advanced.mdx @@ -240,4 +240,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/duckduckgo_tools_advanced.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/duckduckgo_tools_advanced.py) +Full source: [cookbook/91_tools/duckduckgo_tools_advanced.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/duckduckgo_tools_advanced.py) diff --git a/examples/tools/duckduckgo-tools.mdx b/examples/tools/duckduckgo-tools.mdx index 0f77313ee..693fa9d2a 100644 --- a/examples/tools/duckduckgo-tools.mdx +++ b/examples/tools/duckduckgo-tools.mdx @@ -93,4 +93,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/duckduckgo_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/duckduckgo_tools.py) +Full source: [cookbook/91_tools/duckduckgo_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/duckduckgo_tools.py) diff --git a/examples/tools/e2b-tools.mdx b/examples/tools/e2b-tools.mdx index 318796b23..8b914e6ed 100644 --- a/examples/tools/e2b-tools.mdx +++ b/examples/tools/e2b-tools.mdx @@ -174,4 +174,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/e2b_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/e2b_tools.py) +Full source: [cookbook/91_tools/e2b_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/e2b_tools.py) diff --git a/examples/tools/email-tools.mdx b/examples/tools/email-tools.mdx index 8bfdc1f3a..574338998 100644 --- a/examples/tools/email-tools.mdx +++ b/examples/tools/email-tools.mdx @@ -94,4 +94,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/email_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/email_tools.py) +Full source: [cookbook/91_tools/email_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/email_tools.py) diff --git a/examples/tools/exa-tools.mdx b/examples/tools/exa-tools.mdx index dc32c33f0..9812e353f 100644 --- a/examples/tools/exa-tools.mdx +++ b/examples/tools/exa-tools.mdx @@ -125,4 +125,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/exa_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/exa_tools.py) +Full source: [cookbook/91_tools/exa_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/exa_tools.py) diff --git a/examples/tools/exceptions/retry-tool-call-from-post-hook.mdx b/examples/tools/exceptions/retry-tool-call-from-post-hook.mdx index ee2aa33ce..7f94ed894 100644 --- a/examples/tools/exceptions/retry-tool-call-from-post-hook.mdx +++ b/examples/tools/exceptions/retry-tool-call-from-post-hook.mdx @@ -113,4 +113,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/exceptions/retry_tool_call_from_post_hook.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/exceptions/retry_tool_call_from_post_hook.py) +Full source: [cookbook/91_tools/exceptions/retry_tool_call_from_post_hook.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/exceptions/retry_tool_call_from_post_hook.py) diff --git a/examples/tools/exceptions/retry-tool-call.mdx b/examples/tools/exceptions/retry-tool-call.mdx index 7a0fce88f..767364070 100644 --- a/examples/tools/exceptions/retry-tool-call.mdx +++ b/examples/tools/exceptions/retry-tool-call.mdx @@ -104,4 +104,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/exceptions/retry_tool_call.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/exceptions/retry_tool_call.py) +Full source: [cookbook/91_tools/exceptions/retry_tool_call.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/exceptions/retry_tool_call.py) diff --git a/examples/tools/exceptions/stop-agent-exception.mdx b/examples/tools/exceptions/stop-agent-exception.mdx index 1d393164f..919f00dc2 100644 --- a/examples/tools/exceptions/stop-agent-exception.mdx +++ b/examples/tools/exceptions/stop-agent-exception.mdx @@ -100,4 +100,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/exceptions/stop_agent_exception.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/exceptions/stop_agent_exception.py) +Full source: [cookbook/91_tools/exceptions/stop_agent_exception.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/exceptions/stop_agent_exception.py) diff --git a/examples/tools/fal-tools.mdx b/examples/tools/fal-tools.mdx index 6e8a66d50..2b6f0d642 100644 --- a/examples/tools/fal-tools.mdx +++ b/examples/tools/fal-tools.mdx @@ -81,4 +81,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/fal_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/fal_tools.py) +Full source: [cookbook/91_tools/fal_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/fal_tools.py) diff --git a/examples/tools/file-generation-tools.mdx b/examples/tools/file-generation-tools.mdx index 23fa6a2d7..150120910 100644 --- a/examples/tools/file-generation-tools.mdx +++ b/examples/tools/file-generation-tools.mdx @@ -172,4 +172,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/file_generation_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/file_generation_tools.py) +Full source: [cookbook/91_tools/file_generation_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/file_generation_tools.py) diff --git a/examples/tools/file-tools.mdx b/examples/tools/file-tools.mdx index 7e54d3742..4fe9fc3a1 100644 --- a/examples/tools/file-tools.mdx +++ b/examples/tools/file-tools.mdx @@ -296,4 +296,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/file_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/file_tools.py) +Full source: [cookbook/91_tools/file_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/file_tools.py) diff --git a/examples/tools/financial-datasets-tools.mdx b/examples/tools/financial-datasets-tools.mdx index 548617aa3..9c3532c7b 100644 --- a/examples/tools/financial-datasets-tools.mdx +++ b/examples/tools/financial-datasets-tools.mdx @@ -6,7 +6,7 @@ description: "Query income statements and balance sheets through the current Fin Query company financial statements with `FinancialDatasetsTools`. - Several additional methods in Agno v2.7.2 target older Financial Datasets endpoint or parameter contracts. This example registers only `get_income_statements` and `get_balance_sheets`, which match the [current Financial Datasets OpenAPI](https://financialdatasets.ai/openapi.json). + Several additional methods in Agno v2.7.4 target older Financial Datasets endpoint or parameter contracts. This example registers only `get_income_statements` and `get_balance_sheets`, which match the [current Financial Datasets OpenAPI](https://financialdatasets.ai/openapi.json). ```python diff --git a/examples/tools/firecrawl-tools.mdx b/examples/tools/firecrawl-tools.mdx index 3ade82bc7..3c9f7004c 100644 --- a/examples/tools/firecrawl-tools.mdx +++ b/examples/tools/firecrawl-tools.mdx @@ -79,4 +79,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/firecrawl_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/firecrawl_tools.py) +Full source: [cookbook/91_tools/firecrawl_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/firecrawl_tools.py) diff --git a/examples/tools/giphy-tools.mdx b/examples/tools/giphy-tools.mdx index 384538df5..d7dbd026a 100644 --- a/examples/tools/giphy-tools.mdx +++ b/examples/tools/giphy-tools.mdx @@ -86,4 +86,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/giphy_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/giphy_tools.py) +Full source: [cookbook/91_tools/giphy_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/giphy_tools.py) diff --git a/examples/tools/gitlab-tools.mdx b/examples/tools/gitlab-tools.mdx index b86ce4924..fd1b5e101 100644 --- a/examples/tools/gitlab-tools.mdx +++ b/examples/tools/gitlab-tools.mdx @@ -93,4 +93,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/gitlab_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/gitlab_tools.py) +Full source: [cookbook/91_tools/gitlab_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/gitlab_tools.py) diff --git a/examples/tools/google-bigquery-tools.mdx b/examples/tools/google-bigquery-tools.mdx index b24d643b8..ee999fef6 100644 --- a/examples/tools/google-bigquery-tools.mdx +++ b/examples/tools/google-bigquery-tools.mdx @@ -91,4 +91,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/google_bigquery_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google_bigquery_tools.py) +Full source: [cookbook/91_tools/google_bigquery_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google_bigquery_tools.py) diff --git a/examples/tools/google/calendar/daily-briefing.mdx b/examples/tools/google/calendar/daily-briefing.mdx index 330510f18..2f44bab4c 100644 --- a/examples/tools/google/calendar/daily-briefing.mdx +++ b/examples/tools/google/calendar/daily-briefing.mdx @@ -137,4 +137,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/google/calendar/daily_briefing.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google/calendar/daily_briefing.py) +Full source: [cookbook/91_tools/google/calendar/daily_briefing.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/calendar/daily_briefing.py) diff --git a/examples/tools/google/calendar/event-creator.mdx b/examples/tools/google/calendar/event-creator.mdx index b590176b7..7375c370a 100644 --- a/examples/tools/google/calendar/event-creator.mdx +++ b/examples/tools/google/calendar/event-creator.mdx @@ -91,4 +91,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/google/calendar/event_creator.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google/calendar/event_creator.py) +Full source: [cookbook/91_tools/google/calendar/event_creator.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/calendar/event_creator.py) diff --git a/examples/tools/google/calendar/meeting-scheduler.mdx b/examples/tools/google/calendar/meeting-scheduler.mdx index a8590917e..2740f3259 100644 --- a/examples/tools/google/calendar/meeting-scheduler.mdx +++ b/examples/tools/google/calendar/meeting-scheduler.mdx @@ -135,4 +135,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/google/calendar/meeting_scheduler.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google/calendar/meeting_scheduler.py) +Full source: [cookbook/91_tools/google/calendar/meeting_scheduler.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/calendar/meeting_scheduler.py) diff --git a/examples/tools/google/drive/basic.mdx b/examples/tools/google/drive/basic.mdx index 051bd204e..20abbbc8b 100644 --- a/examples/tools/google/drive/basic.mdx +++ b/examples/tools/google/drive/basic.mdx @@ -127,4 +127,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/google/drive/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google/drive/basic.py) +Full source: [cookbook/91_tools/google/drive/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/drive/basic.py) diff --git a/examples/tools/google/drive/document-reader.mdx b/examples/tools/google/drive/document-reader.mdx index 691e45a07..e1c1303f2 100644 --- a/examples/tools/google/drive/document-reader.mdx +++ b/examples/tools/google/drive/document-reader.mdx @@ -105,4 +105,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/google/drive/document_reader.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google/drive/document_reader.py) +Full source: [cookbook/91_tools/google/drive/document_reader.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/drive/document_reader.py) diff --git a/examples/tools/google/drive/file-search.mdx b/examples/tools/google/drive/file-search.mdx index 831a1e1e6..3b8a0804f 100644 --- a/examples/tools/google/drive/file-search.mdx +++ b/examples/tools/google/drive/file-search.mdx @@ -113,4 +113,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/google/drive/file_search.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google/drive/file_search.py) +Full source: [cookbook/91_tools/google/drive/file_search.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/drive/file_search.py) diff --git a/examples/tools/google/drive/folder-organizer.mdx b/examples/tools/google/drive/folder-organizer.mdx index 14d99ae47..a17ff75ed 100644 --- a/examples/tools/google/drive/folder-organizer.mdx +++ b/examples/tools/google/drive/folder-organizer.mdx @@ -111,4 +111,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/google/drive/folder_organizer.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google/drive/folder_organizer.py) +Full source: [cookbook/91_tools/google/drive/folder_organizer.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/drive/folder_organizer.py) diff --git a/examples/tools/google/drive/shared-drive-search.mdx b/examples/tools/google/drive/shared-drive-search.mdx index 93376a40c..7209dd8cf 100644 --- a/examples/tools/google/drive/shared-drive-search.mdx +++ b/examples/tools/google/drive/shared-drive-search.mdx @@ -132,4 +132,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/google/drive/shared_drive_search.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google/drive/shared_drive_search.py) +Full source: [cookbook/91_tools/google/drive/shared_drive_search.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/drive/shared_drive_search.py) diff --git a/examples/tools/google/gmail/action-items.mdx b/examples/tools/google/gmail/action-items.mdx index f68e4cf4b..b574840ec 100644 --- a/examples/tools/google/gmail/action-items.mdx +++ b/examples/tools/google/gmail/action-items.mdx @@ -119,4 +119,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/google/gmail/action_items.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google/gmail/action_items.py) +Full source: [cookbook/91_tools/google/gmail/action_items.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/gmail/action_items.py) diff --git a/examples/tools/google/gmail/basic.mdx b/examples/tools/google/gmail/basic.mdx index 26941c0f1..49baa1a8f 100644 --- a/examples/tools/google/gmail/basic.mdx +++ b/examples/tools/google/gmail/basic.mdx @@ -231,4 +231,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/google/gmail/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google/gmail/basic.py) +Full source: [cookbook/91_tools/google/gmail/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/gmail/basic.py) diff --git a/examples/tools/google/gmail/daily-digest.mdx b/examples/tools/google/gmail/daily-digest.mdx index 4cad16cc1..07465aeae 100644 --- a/examples/tools/google/gmail/daily-digest.mdx +++ b/examples/tools/google/gmail/daily-digest.mdx @@ -135,4 +135,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/google/gmail/daily_digest.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google/gmail/daily_digest.py) +Full source: [cookbook/91_tools/google/gmail/daily_digest.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/gmail/daily_digest.py) diff --git a/examples/tools/google/gmail/draft-reply.mdx b/examples/tools/google/gmail/draft-reply.mdx index 64eca57b1..72c17529e 100644 --- a/examples/tools/google/gmail/draft-reply.mdx +++ b/examples/tools/google/gmail/draft-reply.mdx @@ -99,4 +99,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/google/gmail/draft_reply.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google/gmail/draft_reply.py) +Full source: [cookbook/91_tools/google/gmail/draft_reply.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/gmail/draft_reply.py) diff --git a/examples/tools/google/gmail/followup-tracker.mdx b/examples/tools/google/gmail/followup-tracker.mdx index 817f47083..a4e9f6ec3 100644 --- a/examples/tools/google/gmail/followup-tracker.mdx +++ b/examples/tools/google/gmail/followup-tracker.mdx @@ -129,4 +129,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/google/gmail/followup_tracker.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google/gmail/followup_tracker.py) +Full source: [cookbook/91_tools/google/gmail/followup_tracker.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/gmail/followup_tracker.py) diff --git a/examples/tools/google/gmail/inbox-triage.mdx b/examples/tools/google/gmail/inbox-triage.mdx index 380cc0823..fd150c512 100644 --- a/examples/tools/google/gmail/inbox-triage.mdx +++ b/examples/tools/google/gmail/inbox-triage.mdx @@ -130,4 +130,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/google/gmail/inbox_triage.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google/gmail/inbox_triage.py) +Full source: [cookbook/91_tools/google/gmail/inbox_triage.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/gmail/inbox_triage.py) diff --git a/examples/tools/google/sheets/action-tracker.mdx b/examples/tools/google/sheets/action-tracker.mdx index 63fac92f6..30e504cb6 100644 --- a/examples/tools/google/sheets/action-tracker.mdx +++ b/examples/tools/google/sheets/action-tracker.mdx @@ -122,4 +122,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/google/sheets/action_tracker.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google/sheets/action_tracker.py) +Full source: [cookbook/91_tools/google/sheets/action_tracker.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/sheets/action_tracker.py) diff --git a/examples/tools/google/sheets/sales-pipeline.mdx b/examples/tools/google/sheets/sales-pipeline.mdx index a89dd62b7..f92dfe2b7 100644 --- a/examples/tools/google/sheets/sales-pipeline.mdx +++ b/examples/tools/google/sheets/sales-pipeline.mdx @@ -107,4 +107,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/google/sheets/sales_pipeline.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google/sheets/sales_pipeline.py) +Full source: [cookbook/91_tools/google/sheets/sales_pipeline.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/sheets/sales_pipeline.py) diff --git a/examples/tools/google/slides/basic.mdx b/examples/tools/google/slides/basic.mdx index 643953ecd..d4ef2f6f1 100644 --- a/examples/tools/google/slides/basic.mdx +++ b/examples/tools/google/slides/basic.mdx @@ -129,4 +129,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/google/slides/basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google/slides/basic.py) +Full source: [cookbook/91_tools/google/slides/basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/slides/basic.py) diff --git a/examples/tools/google/slides/content-reader.mdx b/examples/tools/google/slides/content-reader.mdx index 94db5328a..87a40cb98 100644 --- a/examples/tools/google/slides/content-reader.mdx +++ b/examples/tools/google/slides/content-reader.mdx @@ -126,4 +126,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/google/slides/content_reader.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google/slides/content_reader.py) +Full source: [cookbook/91_tools/google/slides/content_reader.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/slides/content_reader.py) diff --git a/examples/tools/google/slides/media-slides.mdx b/examples/tools/google/slides/media-slides.mdx index 0784d2e43..0739c5cc4 100644 --- a/examples/tools/google/slides/media-slides.mdx +++ b/examples/tools/google/slides/media-slides.mdx @@ -111,4 +111,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/google/slides/media_slides.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google/slides/media_slides.py) +Full source: [cookbook/91_tools/google/slides/media_slides.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/slides/media_slides.py) diff --git a/examples/tools/google/slides/presentation-builder.mdx b/examples/tools/google/slides/presentation-builder.mdx index 033aeb582..52689513e 100644 --- a/examples/tools/google/slides/presentation-builder.mdx +++ b/examples/tools/google/slides/presentation-builder.mdx @@ -126,4 +126,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/google/slides/presentation_builder.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google/slides/presentation_builder.py) +Full source: [cookbook/91_tools/google/slides/presentation_builder.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/slides/presentation_builder.py) diff --git a/examples/tools/google/workspace/document-workflow.mdx b/examples/tools/google/workspace/document-workflow.mdx index 2271e3045..b2634385c 100644 --- a/examples/tools/google/workspace/document-workflow.mdx +++ b/examples/tools/google/workspace/document-workflow.mdx @@ -110,4 +110,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/google/workspace/document_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google/workspace/document_workflow.py) +Full source: [cookbook/91_tools/google/workspace/document_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/workspace/document_workflow.py) diff --git a/examples/tools/google/workspace/meeting-prep.mdx b/examples/tools/google/workspace/meeting-prep.mdx index b31a0ba10..946b6fd74 100644 --- a/examples/tools/google/workspace/meeting-prep.mdx +++ b/examples/tools/google/workspace/meeting-prep.mdx @@ -186,4 +186,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/google/workspace/meeting_prep.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google/workspace/meeting_prep.py) +Full source: [cookbook/91_tools/google/workspace/meeting_prep.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/workspace/meeting_prep.py) diff --git a/examples/tools/google/workspace/multi-toolkit.mdx b/examples/tools/google/workspace/multi-toolkit.mdx index 26f43e7fb..667bcc6b9 100644 --- a/examples/tools/google/workspace/multi-toolkit.mdx +++ b/examples/tools/google/workspace/multi-toolkit.mdx @@ -100,4 +100,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/google/workspace/multi_toolkit.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google/workspace/multi_toolkit.py) +Full source: [cookbook/91_tools/google/workspace/multi_toolkit.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/workspace/multi_toolkit.py) diff --git a/examples/tools/google/workspace/service-account.mdx b/examples/tools/google/workspace/service-account.mdx index 8f7cba6f1..ca0e40a1b 100644 --- a/examples/tools/google/workspace/service-account.mdx +++ b/examples/tools/google/workspace/service-account.mdx @@ -125,4 +125,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/google/workspace/service_account.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google/workspace/service_account.py) +Full source: [cookbook/91_tools/google/workspace/service_account.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/workspace/service_account.py) diff --git a/examples/tools/googlesheets-tools.mdx b/examples/tools/googlesheets-tools.mdx index d6668ab82..7aae386a1 100644 --- a/examples/tools/googlesheets-tools.mdx +++ b/examples/tools/googlesheets-tools.mdx @@ -95,4 +95,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/googlesheets_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/googlesheets_tools.py) +Full source: [cookbook/91_tools/googlesheets_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/googlesheets_tools.py) diff --git a/examples/tools/hackernews-tools.mdx b/examples/tools/hackernews-tools.mdx index c2d560b21..a33bd0be5 100644 --- a/examples/tools/hackernews-tools.mdx +++ b/examples/tools/hackernews-tools.mdx @@ -67,4 +67,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/hackernews_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/hackernews_tools.py) +Full source: [cookbook/91_tools/hackernews_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/hackernews_tools.py) diff --git a/examples/tools/jinareader-tools.mdx b/examples/tools/jinareader-tools.mdx index 2300dda66..6e15d0550 100644 --- a/examples/tools/jinareader-tools.mdx +++ b/examples/tools/jinareader-tools.mdx @@ -62,4 +62,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/jinareader_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/jinareader_tools.py) +Full source: [cookbook/91_tools/jinareader_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/jinareader_tools.py) diff --git a/examples/tools/jira-tools.mdx b/examples/tools/jira-tools.mdx index ffefadee4..8bf2c099e 100644 --- a/examples/tools/jira-tools.mdx +++ b/examples/tools/jira-tools.mdx @@ -140,4 +140,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/jira_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/jira_tools.py) +Full source: [cookbook/91_tools/jira_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/jira_tools.py) diff --git a/examples/tools/knowledge-tool.mdx b/examples/tools/knowledge-tool.mdx index d406c8527..21a956102 100644 --- a/examples/tools/knowledge-tool.mdx +++ b/examples/tools/knowledge-tool.mdx @@ -88,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/knowledge_tool.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/knowledge_tool.py) +Full source: [cookbook/91_tools/knowledge_tool.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/knowledge_tool.py) diff --git a/examples/tools/linkup-tools.mdx b/examples/tools/linkup-tools.mdx index 34d7aec08..ceff0cfc4 100644 --- a/examples/tools/linkup-tools.mdx +++ b/examples/tools/linkup-tools.mdx @@ -62,4 +62,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/linkup_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/linkup_tools.py) +Full source: [cookbook/91_tools/linkup_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/linkup_tools.py) diff --git a/examples/tools/llms-txt-tools-knowledge.mdx b/examples/tools/llms-txt-tools-knowledge.mdx index 65a19dc03..757455668 100644 --- a/examples/tools/llms-txt-tools-knowledge.mdx +++ b/examples/tools/llms-txt-tools-knowledge.mdx @@ -98,4 +98,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/llms_txt_tools_knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/llms_txt_tools_knowledge.py) +Full source: [cookbook/91_tools/llms_txt_tools_knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/llms_txt_tools_knowledge.py) diff --git a/examples/tools/llms-txt-tools.mdx b/examples/tools/llms-txt-tools.mdx index 497987304..145a8fdc2 100644 --- a/examples/tools/llms-txt-tools.mdx +++ b/examples/tools/llms-txt-tools.mdx @@ -82,4 +82,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/llms_txt_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/llms_txt_tools.py) +Full source: [cookbook/91_tools/llms_txt_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/llms_txt_tools.py) diff --git a/examples/tools/local-file-system-tools.mdx b/examples/tools/local-file-system-tools.mdx index 721217c46..ddcca3bde 100644 --- a/examples/tools/local-file-system-tools.mdx +++ b/examples/tools/local-file-system-tools.mdx @@ -89,4 +89,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/local_file_system_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/local_file_system_tools.py) +Full source: [cookbook/91_tools/local_file_system_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/local_file_system_tools.py) diff --git a/examples/tools/lumalabs-tools.mdx b/examples/tools/lumalabs-tools.mdx index dad45cb02..781373072 100644 --- a/examples/tools/lumalabs-tools.mdx +++ b/examples/tools/lumalabs-tools.mdx @@ -99,4 +99,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/lumalabs_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/lumalabs_tools.py) +Full source: [cookbook/91_tools/lumalabs_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/lumalabs_tools.py) diff --git a/examples/tools/mcp-tools.mdx b/examples/tools/mcp-tools.mdx index bce161d70..ca5d814cb 100644 --- a/examples/tools/mcp-tools.mdx +++ b/examples/tools/mcp-tools.mdx @@ -108,4 +108,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp_tools.py) +Full source: [cookbook/91_tools/mcp_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp_tools.py) diff --git a/examples/tools/mcp/agno-mcp.mdx b/examples/tools/mcp/agno-mcp.mdx index e731fb3d6..3473d3642 100644 --- a/examples/tools/mcp/agno-mcp.mdx +++ b/examples/tools/mcp/agno-mcp.mdx @@ -74,4 +74,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/agno_mcp.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/agno_mcp.py) +Full source: [cookbook/91_tools/mcp/agno_mcp.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/agno_mcp.py) diff --git a/examples/tools/mcp/airbnb.mdx b/examples/tools/mcp/airbnb.mdx index d7179e5c5..a39d85838 100644 --- a/examples/tools/mcp/airbnb.mdx +++ b/examples/tools/mcp/airbnb.mdx @@ -91,4 +91,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/airbnb.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/airbnb.py) +Full source: [cookbook/91_tools/mcp/airbnb.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/airbnb.py) diff --git a/examples/tools/mcp/bgpt.mdx b/examples/tools/mcp/bgpt.mdx index 49a495cd3..2374108e2 100644 --- a/examples/tools/mcp/bgpt.mdx +++ b/examples/tools/mcp/bgpt.mdx @@ -128,4 +128,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/bgpt.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/bgpt.py) +Full source: [cookbook/91_tools/mcp/bgpt.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/bgpt.py) diff --git a/examples/tools/mcp/brave.mdx b/examples/tools/mcp/brave.mdx index ff6f94906..6ec5bc0ed 100644 --- a/examples/tools/mcp/brave.mdx +++ b/examples/tools/mcp/brave.mdx @@ -105,4 +105,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/brave.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/brave.py) +Full source: [cookbook/91_tools/mcp/brave.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/brave.py) diff --git a/examples/tools/mcp/cli.mdx b/examples/tools/mcp/cli.mdx index ca1450bf7..07211f769 100644 --- a/examples/tools/mcp/cli.mdx +++ b/examples/tools/mcp/cli.mdx @@ -7,7 +7,7 @@ source: cookbook/91_tools/mcp/cli.py Show how to run an interactive CLI to interact with an agent equipped with MCP tools. - This example starts the retired npm GitHub MCP server. The fence remains byte-matched to v2.7.2. Replace that command in the saved file with [GitHub's maintained MCP server](https://github.com/github/github-mcp-server) before running it. + This example starts the retired npm GitHub MCP server. The fence remains byte-matched to v2.7.4. Replace that command in the saved file with [GitHub's maintained MCP server](https://github.com/github/github-mcp-server) before running it. ```python cli.py @@ -107,4 +107,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/cli.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/cli.py) +Full source: [cookbook/91_tools/mcp/cli.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/cli.py) diff --git a/examples/tools/mcp/dynamic-headers/client.mdx b/examples/tools/mcp/dynamic-headers/client.mdx index fcc7fb29b..40e68e8bc 100644 --- a/examples/tools/mcp/dynamic-headers/client.mdx +++ b/examples/tools/mcp/dynamic-headers/client.mdx @@ -173,4 +173,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/dynamic_headers/client.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/dynamic_headers/client.py) +Full source: [cookbook/91_tools/mcp/dynamic_headers/client.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/dynamic_headers/client.py) diff --git a/examples/tools/mcp/dynamic-headers/server.mdx b/examples/tools/mcp/dynamic-headers/server.mdx index 17d3c0742..44a9319a0 100644 --- a/examples/tools/mcp/dynamic-headers/server.mdx +++ b/examples/tools/mcp/dynamic-headers/server.mdx @@ -69,4 +69,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/dynamic_headers/server.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/dynamic_headers/server.py) +Full source: [cookbook/91_tools/mcp/dynamic_headers/server.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/dynamic_headers/server.py) diff --git a/examples/tools/mcp/filesystem.mdx b/examples/tools/mcp/filesystem.mdx index e2d63d5dc..a7b029752 100644 --- a/examples/tools/mcp/filesystem.mdx +++ b/examples/tools/mcp/filesystem.mdx @@ -152,4 +152,4 @@ Documentation queries: -Full source: [cookbook/91_tools/mcp/filesystem.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/filesystem.py) +Full source: [cookbook/91_tools/mcp/filesystem.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/filesystem.py) diff --git a/examples/tools/mcp/gibsonai.mdx b/examples/tools/mcp/gibsonai.mdx index c266ea753..790422cba 100644 --- a/examples/tools/mcp/gibsonai.mdx +++ b/examples/tools/mcp/gibsonai.mdx @@ -152,4 +152,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/gibsonai.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/gibsonai.py) +Full source: [cookbook/91_tools/mcp/gibsonai.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/gibsonai.py) diff --git a/examples/tools/mcp/github.mdx b/examples/tools/mcp/github.mdx index 3fb87e71b..c79899629 100644 --- a/examples/tools/mcp/github.mdx +++ b/examples/tools/mcp/github.mdx @@ -146,4 +146,4 @@ Repository queries: -Full source: [cookbook/91_tools/mcp/github.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/github.py) +Full source: [cookbook/91_tools/mcp/github.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/github.py) diff --git a/examples/tools/mcp/graphiti.mdx b/examples/tools/mcp/graphiti.mdx index 712d5f346..b332c2299 100644 --- a/examples/tools/mcp/graphiti.mdx +++ b/examples/tools/mcp/graphiti.mdx @@ -100,4 +100,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/graphiti.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/graphiti.py) +Full source: [cookbook/91_tools/mcp/graphiti.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/graphiti.py) diff --git a/examples/tools/mcp/groq-mcp.mdx b/examples/tools/mcp/groq-mcp.mdx index 53e714918..753c1178d 100644 --- a/examples/tools/mcp/groq-mcp.mdx +++ b/examples/tools/mcp/groq-mcp.mdx @@ -182,4 +182,4 @@ Code analysis queries: -Full source: [cookbook/91_tools/mcp/groq_mcp.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/groq_mcp.py) +Full source: [cookbook/91_tools/mcp/groq_mcp.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/groq_mcp.py) diff --git a/examples/tools/mcp/include-exclude-tools.mdx b/examples/tools/mcp/include-exclude-tools.mdx index ebaac552a..7bc761ec5 100644 --- a/examples/tools/mcp/include-exclude-tools.mdx +++ b/examples/tools/mcp/include-exclude-tools.mdx @@ -115,4 +115,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/include_exclude_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/include_exclude_tools.py) +Full source: [cookbook/91_tools/mcp/include_exclude_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/include_exclude_tools.py) diff --git a/examples/tools/mcp/include-tools.mdx b/examples/tools/mcp/include-tools.mdx index 8c97df5e4..fa0f6c160 100644 --- a/examples/tools/mcp/include-tools.mdx +++ b/examples/tools/mcp/include-tools.mdx @@ -117,4 +117,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/include_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/include_tools.py) +Full source: [cookbook/91_tools/mcp/include_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/include_tools.py) diff --git a/examples/tools/mcp/local-server/client.mdx b/examples/tools/mcp/local-server/client.mdx index 58febe54b..f622bf9ea 100644 --- a/examples/tools/mcp/local-server/client.mdx +++ b/examples/tools/mcp/local-server/client.mdx @@ -86,4 +86,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/local_server/client.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/local_server/client.py) +Full source: [cookbook/91_tools/mcp/local_server/client.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/local_server/client.py) diff --git a/examples/tools/mcp/local-server/server.mdx b/examples/tools/mcp/local-server/server.mdx index 75a95e4bf..718fd91dc 100644 --- a/examples/tools/mcp/local-server/server.mdx +++ b/examples/tools/mcp/local-server/server.mdx @@ -62,4 +62,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/local_server/server.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/local_server/server.py) +Full source: [cookbook/91_tools/mcp/local_server/server.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/local_server/server.py) diff --git a/examples/tools/mcp/mcp-toolbox-demo/agent-os.mdx b/examples/tools/mcp/mcp-toolbox-demo/agent-os.mdx index a5fc6d06c..d735cde2d 100644 --- a/examples/tools/mcp/mcp-toolbox-demo/agent-os.mdx +++ b/examples/tools/mcp/mcp-toolbox-demo/agent-os.mdx @@ -110,4 +110,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/mcp_toolbox_demo/agent_os.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/mcp_toolbox_demo/agent_os.py) +Full source: [cookbook/91_tools/mcp/mcp_toolbox_demo/agent_os.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/mcp_toolbox_demo/agent_os.py) diff --git a/examples/tools/mcp/mcp-toolbox-demo/agent.mdx b/examples/tools/mcp/mcp-toolbox-demo/agent.mdx index 2efe7bbbb..57b6e4eca 100644 --- a/examples/tools/mcp/mcp-toolbox-demo/agent.mdx +++ b/examples/tools/mcp/mcp-toolbox-demo/agent.mdx @@ -93,7 +93,6 @@ async def run_agent_manual_loading(message: str) -> None: ), markdown=True, add_history_to_context=True, - debug_mode=True, ) await agent.acli_app(input=message, stream=True) @@ -159,4 +158,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/mcp_toolbox_demo/agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/mcp_toolbox_demo/agent.py) +Full source: [cookbook/91_tools/mcp/mcp_toolbox_demo/agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/mcp_toolbox_demo/agent.py) diff --git a/examples/tools/mcp/mcp-toolbox-demo/hotel-management-typesafe.mdx b/examples/tools/mcp/mcp-toolbox-demo/hotel-management-typesafe.mdx index f9ef293c7..f225d9a64 100644 --- a/examples/tools/mcp/mcp-toolbox-demo/hotel-management-typesafe.mdx +++ b/examples/tools/mcp/mcp-toolbox-demo/hotel-management-typesafe.mdx @@ -82,7 +82,6 @@ agent = Agent( input_schema=HotelSearch, output_schema=HotelSearchResult, parser_model=OpenAIChat("gpt-5.2"), - debug_mode=True, debug_level=2, ) @@ -154,4 +153,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/mcp_toolbox_demo/hotel_management_typesafe.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/mcp_toolbox_demo/hotel_management_typesafe.py) +Full source: [cookbook/91_tools/mcp/mcp_toolbox_demo/hotel_management_typesafe.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/mcp_toolbox_demo/hotel_management_typesafe.py) diff --git a/examples/tools/mcp/mcp-toolbox-demo/hotel-management-workflows.mdx b/examples/tools/mcp/mcp-toolbox-demo/hotel-management-workflows.mdx index ae802b8e3..9de20266d 100644 --- a/examples/tools/mcp/mcp-toolbox-demo/hotel-management-workflows.mdx +++ b/examples/tools/mcp/mcp-toolbox-demo/hotel-management-workflows.mdx @@ -154,4 +154,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/mcp_toolbox_demo/hotel_management_workflows.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/mcp_toolbox_demo/hotel_management_workflows.py) +Full source: [cookbook/91_tools/mcp/mcp_toolbox_demo/hotel_management_workflows.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/mcp_toolbox_demo/hotel_management_workflows.py) diff --git a/examples/tools/mcp/mcp-toolbox-for-db.mdx b/examples/tools/mcp/mcp-toolbox-for-db.mdx index 5e17dec39..87d5f679d 100644 --- a/examples/tools/mcp/mcp-toolbox-for-db.mdx +++ b/examples/tools/mcp/mcp-toolbox-for-db.mdx @@ -46,9 +46,7 @@ async def run_agent(message: str = None) -> None: """ ), markdown=True, - show_tool_calls=True, add_history_to_messages=True, - debug_mode=True, ) # Run an interactive command-line interface to interact with the agent. @@ -92,9 +90,7 @@ async def run_agent_manual_loading(message: str) -> None: """ ), markdown=True, - show_tool_calls=True, add_history_to_messages=True, - debug_mode=True, ) await agent.acli_app(message=message, stream=True) @@ -122,9 +118,7 @@ async def run_agent_no_ctx_manager(message: str = None) -> None: """ ), markdown=True, - show_tool_calls=True, add_history_to_messages=True, - debug_mode=True, ) await agent.acli_app(message=message, stream=True) @@ -192,4 +186,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/mcp_toolbox_for_db.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/mcp_toolbox_for_db.py) +Full source: [cookbook/91_tools/mcp/mcp_toolbox_for_db.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/mcp_toolbox_for_db.py) diff --git a/examples/tools/mcp/mem0.mdx b/examples/tools/mcp/mem0.mdx index 7df7162af..bdc186665 100644 --- a/examples/tools/mcp/mem0.mdx +++ b/examples/tools/mcp/mem0.mdx @@ -112,4 +112,4 @@ result = process_data(items) -Full source: [cookbook/91_tools/mcp/mem0.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/mem0.py) +Full source: [cookbook/91_tools/mcp/mem0.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/mem0.py) diff --git a/examples/tools/mcp/multiple-servers-allow-partial-failure.mdx b/examples/tools/mcp/multiple-servers-allow-partial-failure.mdx index 5b4f5e7e9..300aab802 100644 --- a/examples/tools/mcp/multiple-servers-allow-partial-failure.mdx +++ b/examples/tools/mcp/multiple-servers-allow-partial-failure.mdx @@ -107,4 +107,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/multiple_servers_allow_partial_failure.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/multiple_servers_allow_partial_failure.py) +Full source: [cookbook/91_tools/mcp/multiple_servers_allow_partial_failure.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/multiple_servers_allow_partial_failure.py) diff --git a/examples/tools/mcp/multiple-servers.mdx b/examples/tools/mcp/multiple-servers.mdx index 9206df15c..1ca564ee5 100644 --- a/examples/tools/mcp/multiple-servers.mdx +++ b/examples/tools/mcp/multiple-servers.mdx @@ -102,4 +102,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/multiple_servers.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/multiple_servers.py) +Full source: [cookbook/91_tools/mcp/multiple_servers.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/multiple_servers.py) diff --git a/examples/tools/mcp/notion-mcp-agent.mdx b/examples/tools/mcp/notion-mcp-agent.mdx index 6c3e2c0df..27c56aa8a 100644 --- a/examples/tools/mcp/notion-mcp-agent.mdx +++ b/examples/tools/mcp/notion-mcp-agent.mdx @@ -121,4 +121,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/notion_mcp_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/notion_mcp_agent.py) +Full source: [cookbook/91_tools/mcp/notion_mcp_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/notion_mcp_agent.py) diff --git a/examples/tools/mcp/oxylabs.mdx b/examples/tools/mcp/oxylabs.mdx index 209123bd7..a623a7ce1 100644 --- a/examples/tools/mcp/oxylabs.mdx +++ b/examples/tools/mcp/oxylabs.mdx @@ -95,4 +95,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/oxylabs.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/oxylabs.py) +Full source: [cookbook/91_tools/mcp/oxylabs.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/oxylabs.py) diff --git a/examples/tools/mcp/pipedream-auth.mdx b/examples/tools/mcp/pipedream-auth.mdx index d9e6dbb5f..a1339f837 100644 --- a/examples/tools/mcp/pipedream-auth.mdx +++ b/examples/tools/mcp/pipedream-auth.mdx @@ -113,4 +113,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/pipedream_auth.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/pipedream_auth.py) +Full source: [cookbook/91_tools/mcp/pipedream_auth.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/pipedream_auth.py) diff --git a/examples/tools/mcp/pipedream-google-calendar.mdx b/examples/tools/mcp/pipedream-google-calendar.mdx index b5113c631..83d1e613b 100644 --- a/examples/tools/mcp/pipedream-google-calendar.mdx +++ b/examples/tools/mcp/pipedream-google-calendar.mdx @@ -90,4 +90,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/pipedream_google_calendar.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/pipedream_google_calendar.py) +Full source: [cookbook/91_tools/mcp/pipedream_google_calendar.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/pipedream_google_calendar.py) diff --git a/examples/tools/mcp/pipedream-linkedin.mdx b/examples/tools/mcp/pipedream-linkedin.mdx index 57c6031c0..114c2a9eb 100644 --- a/examples/tools/mcp/pipedream-linkedin.mdx +++ b/examples/tools/mcp/pipedream-linkedin.mdx @@ -62,7 +62,7 @@ if __name__ == "__main__": ## Current Status - This v2.7.2 example uses Pipedream's retired per-app SSE URL. It cannot connect to the current Pipedream MCP service without code and authentication changes. See [Pipedream MCP](https://pipedream.com/docs/connect/mcp) for the current end-user and developer flows. + This v2.7.4 example uses Pipedream's retired per-app SSE URL. It cannot connect to the current Pipedream MCP service without code and authentication changes. See [Pipedream MCP](https://pipedream.com/docs/connect/mcp) for the current end-user and developer flows. -Full source: [cookbook/91_tools/mcp/pipedream_linkedin.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/pipedream_linkedin.py) +Full source: [cookbook/91_tools/mcp/pipedream_linkedin.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/pipedream_linkedin.py) diff --git a/examples/tools/mcp/pipedream-slack.mdx b/examples/tools/mcp/pipedream-slack.mdx index 88591dae2..65519dbab 100644 --- a/examples/tools/mcp/pipedream-slack.mdx +++ b/examples/tools/mcp/pipedream-slack.mdx @@ -67,7 +67,7 @@ if __name__ == "__main__": ## Current Status - This v2.7.2 example cannot connect to the current Pipedream MCP service as written. End users should use Pipedream's OAuth-authenticated v2 setup. Application developers should use the authenticated v3 endpoint. See [Pipedream MCP for end users](https://pipedream.com/docs/connect/mcp/users) and [Develop with Pipedream MCP](https://pipedream.com/docs/connect/mcp/developers). + This v2.7.4 example cannot connect to the current Pipedream MCP service as written. End users should use Pipedream's OAuth-authenticated v2 setup. Application developers should use the authenticated v3 endpoint. See [Pipedream MCP for end users](https://pipedream.com/docs/connect/mcp/users) and [Develop with Pipedream MCP](https://pipedream.com/docs/connect/mcp/developers). -Full source: [cookbook/91_tools/mcp/pipedream_slack.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/pipedream_slack.py) +Full source: [cookbook/91_tools/mcp/pipedream_slack.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/pipedream_slack.py) diff --git a/examples/tools/mcp/qdrant.mdx b/examples/tools/mcp/qdrant.mdx index f08cfd4ac..f55810020 100644 --- a/examples/tools/mcp/qdrant.mdx +++ b/examples/tools/mcp/qdrant.mdx @@ -111,4 +111,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/qdrant.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/qdrant.py) +Full source: [cookbook/91_tools/mcp/qdrant.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/qdrant.py) diff --git a/examples/tools/mcp/sequential-thinking.mdx b/examples/tools/mcp/sequential-thinking.mdx index 35e98e42a..c74d38f92 100644 --- a/examples/tools/mcp/sequential-thinking.mdx +++ b/examples/tools/mcp/sequential-thinking.mdx @@ -110,4 +110,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/sequential_thinking.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/sequential_thinking.py) +Full source: [cookbook/91_tools/mcp/sequential_thinking.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/sequential_thinking.py) diff --git a/examples/tools/mcp/sse-transport/client.mdx b/examples/tools/mcp/sse-transport/client.mdx index 16c77e623..fc32fdb08 100644 --- a/examples/tools/mcp/sse-transport/client.mdx +++ b/examples/tools/mcp/sse-transport/client.mdx @@ -130,4 +130,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/sse_transport/client.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/sse_transport/client.py) +Full source: [cookbook/91_tools/mcp/sse_transport/client.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/sse_transport/client.py) diff --git a/examples/tools/mcp/sse-transport/server.mdx b/examples/tools/mcp/sse-transport/server.mdx index 9014599c3..e449f10bb 100644 --- a/examples/tools/mcp/sse-transport/server.mdx +++ b/examples/tools/mcp/sse-transport/server.mdx @@ -54,4 +54,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/sse_transport/server.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/sse_transport/server.py) +Full source: [cookbook/91_tools/mcp/sse_transport/server.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/sse_transport/server.py) diff --git a/examples/tools/mcp/stagehand.mdx b/examples/tools/mcp/stagehand.mdx index 4175215bf..3e0ca2fee 100644 --- a/examples/tools/mcp/stagehand.mdx +++ b/examples/tools/mcp/stagehand.mdx @@ -141,4 +141,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/stagehand.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/stagehand.py) +Full source: [cookbook/91_tools/mcp/stagehand.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/stagehand.py) diff --git a/examples/tools/mcp/streamable-http-transport/client.mdx b/examples/tools/mcp/streamable-http-transport/client.mdx index 99234ce9a..81801bb04 100644 --- a/examples/tools/mcp/streamable-http-transport/client.mdx +++ b/examples/tools/mcp/streamable-http-transport/client.mdx @@ -112,4 +112,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/streamable_http_transport/client.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/streamable_http_transport/client.py) +Full source: [cookbook/91_tools/mcp/streamable_http_transport/client.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/streamable_http_transport/client.py) diff --git a/examples/tools/mcp/streamable-http-transport/server.mdx b/examples/tools/mcp/streamable-http-transport/server.mdx index d92faac75..d911f67b1 100644 --- a/examples/tools/mcp/streamable-http-transport/server.mdx +++ b/examples/tools/mcp/streamable-http-transport/server.mdx @@ -54,4 +54,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/streamable_http_transport/server.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/streamable_http_transport/server.py) +Full source: [cookbook/91_tools/mcp/streamable_http_transport/server.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/streamable_http_transport/server.py) diff --git a/examples/tools/mcp/structured-content.mdx b/examples/tools/mcp/structured-content.mdx new file mode 100644 index 000000000..67b199f7e --- /dev/null +++ b/examples/tools/mcp/structured-content.mdx @@ -0,0 +1,144 @@ +--- +title: "Structured Content Agent" +description: "Some MCP servers declare an output schema and return their answer as `structuredContent`." +source: cookbook/91_tools/mcp/structured_content.py +--- + +Some MCP servers declare an output schema and return their answer as `structuredContent`. Agno surfaces that payload as the tool output so the agent can answer from it, and preserves the original typed object on `ToolResult.metadata["structured_content"]` for hooks and observability. + +```python structured_content.py +""" +Structured Content Agent +============================= + +Some MCP servers declare an output schema and return their answer as +`structuredContent`. Agno surfaces that payload as the tool output so the agent +can answer from it, and preserves the original typed object on +`ToolResult.metadata["structured_content"]` for hooks and observability. + +If a server returns an empty (null) `content` array with only `structuredContent`, +Agno serializes that structured payload into `ToolResult.content` so the model +still sees the result instead of an empty tool message. When `content` already +has text (as DeepWiki returns), that text stays the tool output and the structured +object is kept only in metadata. + +This example connects to the hosted DeepWiki MCP server (public, no auth) via +Streamable HTTP. DeepWiki answers questions about any public GitHub repository +and returns its answer as structuredContent. The `structured_content_hook` reads +that typed payload straight from metadata, even though the model only ever sees +`ToolResult.content`. + +Example prompts to try: +- "What is the top-level architecture of facebook/react?" +- "How does agno-agi/agno structure its MCP integration?" +- "Summarize the modules in modelcontextprotocol/python-sdk" + +Run: `uv pip install agno mcp anthropic` to install the dependencies + +Environment variables: +- ANTHROPIC_API_KEY: Required for the default Claude model + +Links: +- MCP endpoint: https://mcp.deepwiki.com/mcp +- Docs: https://docs.devin.ai/work-with-devin/deepwiki-mcp +""" + +import asyncio +from textwrap import dedent + +from agno.agent import Agent +from agno.models.anthropic import Claude +from agno.tools.mcp import MCPTools + +DEEPWIKI_MCP_URL = "https://mcp.deepwiki.com/mcp" + + +# --------------------------------------------------------------------------- +# Tool Hook +# --------------------------------------------------------------------------- + + +async def structured_content_hook(function_name: str, func: callable, args: dict): + """Access the tool's structuredContent through ToolResult.metadata. + + DeepWiki returns its answer as structuredContent. Agno preserves that object on + metadata["structured_content"], so this hook can read the typed payload even + though the model only ever sees ToolResult.content. + """ + result = await func(**args) + structured = (getattr(result, "metadata", None) or {}).get("structured_content") + if structured is not None: + print( + f"[structured_content_hook] {function_name} structured_content: {structured}" + ) + return result + + +# --------------------------------------------------------------------------- +# Create Agent +# --------------------------------------------------------------------------- + + +async def run_agent(message: str) -> None: + # DeepWiki's ask_question does deep analysis, so raise the default 10s read timeout. + async with MCPTools( + transport="streamable-http", url=DEEPWIKI_MCP_URL, timeout_seconds=60 + ) as deepwiki_tools: + agent = Agent( + model=Claude(id="claude-sonnet-4-5"), + tools=[deepwiki_tools], + tool_hooks=[structured_content_hook], + instructions=dedent("""\ + You answer questions about public GitHub repositories using DeepWiki. + + - Use read_wiki_structure to see what a repo's wiki covers + - Use ask_question for specific questions about a repo + - Ground your answer in what the tools return; do not invent details + """), + markdown=True, + ) + await agent.aprint_response(input=message, stream=True) + + +# --------------------------------------------------------------------------- +# Run Agent +# --------------------------------------------------------------------------- + +if __name__ == "__main__": + asyncio.run( + run_agent("In one sentence, what does the facebook/react repository do?") + ) +``` + +## Run the Example + + + + + + ```bash + uv pip install -U "agno[mcp]" anthropic + ``` + + + + + ```bash Mac/Linux + export ANTHROPIC_API_KEY="your_anthropic_api_key_here" + ``` + + ```bash Windows + $Env:ANTHROPIC_API_KEY="your_anthropic_api_key_here" + ``` + + + + + Save the code above as `structured_content.py`, then run: + ```bash + python structured_content.py + ``` + + + +Full source: [cookbook/91_tools/mcp/structured_content.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/structured_content.py) diff --git a/examples/tools/mcp/supabase.mdx b/examples/tools/mcp/supabase.mdx index 5806d74b5..dd3caaaa3 100644 --- a/examples/tools/mcp/supabase.mdx +++ b/examples/tools/mcp/supabase.mdx @@ -144,4 +144,4 @@ An internal SaaS tool for HR departments to monitor employee wellbeing. Combines -Full source: [cookbook/91_tools/mcp/supabase.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/supabase.py) +Full source: [cookbook/91_tools/mcp/supabase.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/supabase.py) diff --git a/examples/tools/mcp/tool-name-prefix.mdx b/examples/tools/mcp/tool-name-prefix.mdx index ec047b41b..b0289933b 100644 --- a/examples/tools/mcp/tool-name-prefix.mdx +++ b/examples/tools/mcp/tool-name-prefix.mdx @@ -75,4 +75,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mcp/tool_name_prefix.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/tool_name_prefix.py) +Full source: [cookbook/91_tools/mcp/tool_name_prefix.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/tool_name_prefix.py) diff --git a/examples/tools/mlx-transcribe-tools.mdx b/examples/tools/mlx-transcribe-tools.mdx index 4d620ed01..1f9f32d9b 100644 --- a/examples/tools/mlx-transcribe-tools.mdx +++ b/examples/tools/mlx-transcribe-tools.mdx @@ -109,4 +109,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/mlx_transcribe_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mlx_transcribe_tools.py) +Full source: [cookbook/91_tools/mlx_transcribe_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mlx_transcribe_tools.py) diff --git a/examples/tools/models-lab-tools.mdx b/examples/tools/models-lab-tools.mdx index b7a2c4e76..fd8836193 100644 --- a/examples/tools/models-lab-tools.mdx +++ b/examples/tools/models-lab-tools.mdx @@ -89,4 +89,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/models_lab_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/models_lab_tools.py) +Full source: [cookbook/91_tools/models_lab_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/models_lab_tools.py) diff --git a/examples/tools/models/azure-openai-tools.mdx b/examples/tools/models/azure-openai-tools.mdx index 80016fc23..56d2588ec 100644 --- a/examples/tools/models/azure-openai-tools.mdx +++ b/examples/tools/models/azure-openai-tools.mdx @@ -7,7 +7,7 @@ source: cookbook/91_tools/models/azure_openai_tools.py This source-fidelity example uses `AzureOpenAITools`, whose supported DALL-E models are retired. It is preserved as a legacy reference. - Azure DALL-E 2 and DALL-E 3 deployments are retired, and the v2.7.2 toolkit supports no current image model. Do not run this source as written. + Azure DALL-E 2 and DALL-E 3 deployments are retired, and the v2.7.4 toolkit supports no current image model. Do not run this source as written. ```python azure_openai_tools.py @@ -73,7 +73,6 @@ if __name__ == "__main__": "Use the generate_image tool to create detailed visualizations of user requests.", "Provide creative suggestions to enhance the images if needed.", ], - debug_mode=True, ) # Generate an image with the standard OpenAI model and Azure tools @@ -124,4 +123,4 @@ if __name__ == "__main__": Use a current Azure image-generation client by following [Microsoft's migration guidance](https://learn.microsoft.com/en-us/azure/foundry/openai/how-to/dall-e), or use [Image Generation Agent](/models/providers/native/openai/responses/usage/image-generation-agent) with OpenAI GPT Image 2. -Full source: [cookbook/91_tools/models/azure_openai_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/models/azure_openai_tools.py) +Full source: [cookbook/91_tools/models/azure_openai_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/models/azure_openai_tools.py) diff --git a/examples/tools/models/gemini-image-generation.mdx b/examples/tools/models/gemini-image-generation.mdx index ae3320155..76d6fc6a4 100644 --- a/examples/tools/models/gemini-image-generation.mdx +++ b/examples/tools/models/gemini-image-generation.mdx @@ -33,7 +33,6 @@ from agno.utils.media import save_base64_data agent = Agent( model=OpenAIChat(id="gpt-4o"), tools=[GeminiTools()], - debug_mode=True, ) # --------------------------------------------------------------------------- @@ -88,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/models/gemini_image_generation.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/models/gemini_image_generation.py) +Full source: [cookbook/91_tools/models/gemini_image_generation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/models/gemini_image_generation.py) diff --git a/examples/tools/models/gemini-video-generation.mdx b/examples/tools/models/gemini-video-generation.mdx index 58db9f590..f90ecb5ed 100644 --- a/examples/tools/models/gemini-video-generation.mdx +++ b/examples/tools/models/gemini-video-generation.mdx @@ -38,7 +38,6 @@ from agno.utils.media import save_base64_data agent = Agent( model=OpenAIChat(id="gpt-4o"), tools=[GeminiTools(vertexai=True)], # Video Generation only works on VertexAI mode - debug_mode=True, ) # --------------------------------------------------------------------------- @@ -108,4 +107,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/models/gemini_video_generation.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/models/gemini_video_generation.py) +Full source: [cookbook/91_tools/models/gemini_video_generation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/models/gemini_video_generation.py) diff --git a/examples/tools/models/morph.mdx b/examples/tools/models/morph.mdx index 1f78b98d1..10138c89f 100644 --- a/examples/tools/models/morph.mdx +++ b/examples/tools/models/morph.mdx @@ -63,7 +63,6 @@ def main(): code_editor = Agent( model=OpenAIChat(id="gpt-4o"), tools=[MorphTools(model="morph-v3-large")], - debug_mode=True, markdown=True, ) @@ -120,4 +119,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/models/morph.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/models/morph.py) +Full source: [cookbook/91_tools/models/morph.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/models/morph.py) diff --git a/examples/tools/models/nebius-tools.mdx b/examples/tools/models/nebius-tools.mdx index 2b2506ce5..380c957b0 100644 --- a/examples/tools/models/nebius-tools.mdx +++ b/examples/tools/models/nebius-tools.mdx @@ -150,4 +150,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/models/nebius_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/models/nebius_tools.py) +Full source: [cookbook/91_tools/models/nebius_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/models/nebius_tools.py) diff --git a/examples/tools/models/openai-tools.mdx b/examples/tools/models/openai-tools.mdx index 07967e69e..b1d5af525 100644 --- a/examples/tools/models/openai-tools.mdx +++ b/examples/tools/models/openai-tools.mdx @@ -50,9 +50,7 @@ if __name__ == "__main__": markdown=True, ) - response = agent.run( - "Generate an image of a sports car and tell me its color.", debug_mode=True - ) + response = agent.run("Generate an image of a sports car and tell me its color.") if isinstance(response, RunOutput): print("Agent response:", response.content) @@ -96,4 +94,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/models/openai_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/models/openai_tools.py) +Full source: [cookbook/91_tools/models/openai_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/models/openai_tools.py) diff --git a/examples/tools/moviepy-video-tools.mdx b/examples/tools/moviepy-video-tools.mdx index b26158c63..2c6bd34ac 100644 --- a/examples/tools/moviepy-video-tools.mdx +++ b/examples/tools/moviepy-video-tools.mdx @@ -90,4 +90,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/moviepy_video_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/moviepy_video_tools.py) +Full source: [cookbook/91_tools/moviepy_video_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/moviepy_video_tools.py) diff --git a/examples/tools/newspaper-tools.mdx b/examples/tools/newspaper-tools.mdx index f93f6f5f5..358eb220c 100644 --- a/examples/tools/newspaper-tools.mdx +++ b/examples/tools/newspaper-tools.mdx @@ -62,4 +62,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/newspaper_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/newspaper_tools.py) +Full source: [cookbook/91_tools/newspaper_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/newspaper_tools.py) diff --git a/examples/tools/newspaper4k-tools.mdx b/examples/tools/newspaper4k-tools.mdx index b0c3624ad..4ff35089d 100644 --- a/examples/tools/newspaper4k-tools.mdx +++ b/examples/tools/newspaper4k-tools.mdx @@ -62,4 +62,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/newspaper4k_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/newspaper4k_tools.py) +Full source: [cookbook/91_tools/newspaper4k_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/newspaper4k_tools.py) diff --git a/examples/tools/openbb-tools.mdx b/examples/tools/openbb-tools.mdx index b5915b1b6..70233608a 100644 --- a/examples/tools/openbb-tools.mdx +++ b/examples/tools/openbb-tools.mdx @@ -121,4 +121,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/openbb_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/openbb_tools.py) +Full source: [cookbook/91_tools/openbb_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/openbb_tools.py) diff --git a/examples/tools/other/add-tool-after-initialization.mdx b/examples/tools/other/add-tool-after-initialization.mdx index a1d0f8ad5..40f590fc2 100644 --- a/examples/tools/other/add-tool-after-initialization.mdx +++ b/examples/tools/other/add-tool-after-initialization.mdx @@ -80,4 +80,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/other/add_tool_after_initialization.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/other/add_tool_after_initialization.py) +Full source: [cookbook/91_tools/other/add_tool_after_initialization.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/other/add_tool_after_initialization.py) diff --git a/examples/tools/other/cache-tool-calls.mdx b/examples/tools/other/cache-tool-calls.mdx index 75f0e7241..e845f74de 100644 --- a/examples/tools/other/cache-tool-calls.mdx +++ b/examples/tools/other/cache-tool-calls.mdx @@ -72,4 +72,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/other/cache_tool_calls.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/other/cache_tool_calls.py) +Full source: [cookbook/91_tools/other/cache_tool_calls.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/other/cache_tool_calls.py) diff --git a/examples/tools/other/complex-input-types.mdx b/examples/tools/other/complex-input-types.mdx index 0be7adfcf..b076dab52 100644 --- a/examples/tools/other/complex-input-types.mdx +++ b/examples/tools/other/complex-input-types.mdx @@ -136,4 +136,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/other/complex_input_types.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/other/complex_input_types.py) +Full source: [cookbook/91_tools/other/complex_input_types.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/other/complex_input_types.py) diff --git a/examples/tools/other/human-in-the-loop.mdx b/examples/tools/other/human-in-the-loop.mdx index 91fc2b023..a1e4afbfc 100644 --- a/examples/tools/other/human-in-the-loop.mdx +++ b/examples/tools/other/human-in-the-loop.mdx @@ -128,4 +128,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/other/human_in_the_loop.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/other/human_in_the_loop.py) +Full source: [cookbook/91_tools/other/human_in_the_loop.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/other/human_in_the_loop.py) diff --git a/examples/tools/other/include-exclude-tools-custom-toolkit.mdx b/examples/tools/other/include-exclude-tools-custom-toolkit.mdx index 21f60e6c4..eda08ad22 100644 --- a/examples/tools/other/include-exclude-tools-custom-toolkit.mdx +++ b/examples/tools/other/include-exclude-tools-custom-toolkit.mdx @@ -112,4 +112,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/other/include_exclude_tools_custom_toolkit.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/other/include_exclude_tools_custom_toolkit.py) +Full source: [cookbook/91_tools/other/include_exclude_tools_custom_toolkit.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/other/include_exclude_tools_custom_toolkit.py) diff --git a/examples/tools/other/include-exclude-tools.mdx b/examples/tools/other/include-exclude-tools.mdx index aed3e27de..9ed645a8d 100644 --- a/examples/tools/other/include-exclude-tools.mdx +++ b/examples/tools/other/include-exclude-tools.mdx @@ -77,4 +77,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/other/include_exclude_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/other/include_exclude_tools.py) +Full source: [cookbook/91_tools/other/include_exclude_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/other/include_exclude_tools.py) diff --git a/examples/tools/other/session-state-tool.mdx b/examples/tools/other/session-state-tool.mdx index f55917b98..ebecafa6b 100644 --- a/examples/tools/other/session-state-tool.mdx +++ b/examples/tools/other/session-state-tool.mdx @@ -122,4 +122,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/other/session_state_tool.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/other/session_state_tool.py) +Full source: [cookbook/91_tools/other/session_state_tool.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/other/session_state_tool.py) diff --git a/examples/tools/other/stop-after-tool-call-dual-inheritance.mdx b/examples/tools/other/stop-after-tool-call-dual-inheritance.mdx index 0ca68abeb..9e859cb56 100644 --- a/examples/tools/other/stop-after-tool-call-dual-inheritance.mdx +++ b/examples/tools/other/stop-after-tool-call-dual-inheritance.mdx @@ -124,4 +124,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/other/stop_after_tool_call_dual_inheritance.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/other/stop_after_tool_call_dual_inheritance.py) +Full source: [cookbook/91_tools/other/stop_after_tool_call_dual_inheritance.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/other/stop_after_tool_call_dual_inheritance.py) diff --git a/examples/tools/other/stop-after-tool-call-in-toolkit.mdx b/examples/tools/other/stop-after-tool-call-in-toolkit.mdx index 5c5c95d7b..925c0c5bc 100644 --- a/examples/tools/other/stop-after-tool-call-in-toolkit.mdx +++ b/examples/tools/other/stop-after-tool-call-in-toolkit.mdx @@ -128,4 +128,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/other/stop_after_tool_call_in_toolkit.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/other/stop_after_tool_call_in_toolkit.py) +Full source: [cookbook/91_tools/other/stop_after_tool_call_in_toolkit.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/other/stop_after_tool_call_in_toolkit.py) diff --git a/examples/tools/other/stop-after-tool-call.mdx b/examples/tools/other/stop-after-tool-call.mdx index 6aafdadd0..62b1df71d 100644 --- a/examples/tools/other/stop-after-tool-call.mdx +++ b/examples/tools/other/stop-after-tool-call.mdx @@ -69,4 +69,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/other/stop_after_tool_call.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/other/stop_after_tool_call.py) +Full source: [cookbook/91_tools/other/stop_after_tool_call.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/other/stop_after_tool_call.py) diff --git a/examples/tools/oxylabs-tools.mdx b/examples/tools/oxylabs-tools.mdx index dd852475c..f1976118f 100644 --- a/examples/tools/oxylabs-tools.mdx +++ b/examples/tools/oxylabs-tools.mdx @@ -4,12 +4,21 @@ description: "Search Google through Oxylabs and summarize the top results with O source: cookbook/91_tools/oxylabs_tools.py --- +Web scraping toolkit for Google search, Amazon products, and website scraping. + ```python oxylabs_tools.py """ Oxylabs Tools ============================= -Demonstrates oxylabs tools. +Web scraping toolkit for Google search, Amazon products, and website scraping. + +Requirements: + pip install oxylabs + +Environment variables: + OXYLABS_USERNAME: Your Oxylabs username + OXYLABS_PASSWORD: Your Oxylabs password """ from agno.agent import Agent @@ -19,25 +28,23 @@ from agno.tools.oxylabs import OxylabsTools # Create Agent # --------------------------------------------------------------------------- - agent = Agent( tools=[OxylabsTools()], markdown=True, ) -# Example 1: Google Search - # --------------------------------------------------------------------------- # Run Agent # --------------------------------------------------------------------------- if __name__ == "__main__": + # Example 1: Google Search agent.print_response( - "Let's search for 'latest iPhone reviews' and provide a summary of the top 3 results. ", + "Search for 'latest iPhone reviews' and summarize the top 3 results.", ) # Example 2: Amazon Product Search # agent.print_response( - # "Let's search for an Amazon product with ASIN 'B07FZ8S74R' (Echo Dot). ", + # "Get details for Amazon product with ASIN 'B07FZ8S74R' (Echo Dot).", # ) # Example 3: Multi-Domain Amazon Search @@ -47,6 +54,16 @@ if __name__ == "__main__": # "2. Amazon UK (domain='co.uk')\n" # "Compare the top 3 results from each region including pricing and availability." # ) + + # Example 4: Website Scraping with Markdown Output + # Use markdown=True on OxylabsTools to get full Markdown content instead of parsed HTML + # agent_markdown = Agent( + # tools=[OxylabsTools(markdown=True)], + # markdown=True, + # ) + # agent_markdown.print_response( + # "Scrape the content from https://example.com and summarize it.", + # ) ``` ## Run the Example @@ -84,4 +101,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/oxylabs_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/oxylabs_tools.py) +Full source: [cookbook/91_tools/oxylabs_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/oxylabs_tools.py) diff --git a/examples/tools/pandas-tools.mdx b/examples/tools/pandas-tools.mdx index fe2b9f478..faa0953eb 100644 --- a/examples/tools/pandas-tools.mdx +++ b/examples/tools/pandas-tools.mdx @@ -85,4 +85,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/pandas_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/pandas_tools.py) +Full source: [cookbook/91_tools/pandas_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/pandas_tools.py) diff --git a/examples/tools/parallel/company-enrichment.mdx b/examples/tools/parallel/company-enrichment.mdx index 630f47306..55979b425 100644 --- a/examples/tools/parallel/company-enrichment.mdx +++ b/examples/tools/parallel/company-enrichment.mdx @@ -137,4 +137,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/parallel/company_enrichment.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/parallel/company_enrichment.py) +Full source: [cookbook/91_tools/parallel/company_enrichment.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/parallel/company_enrichment.py) diff --git a/examples/tools/parallel/competitor-tracker.mdx b/examples/tools/parallel/competitor-tracker.mdx index e17eb6725..dbf9f09c5 100644 --- a/examples/tools/parallel/competitor-tracker.mdx +++ b/examples/tools/parallel/competitor-tracker.mdx @@ -142,4 +142,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/parallel/competitor_tracker.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/parallel/competitor_tracker.py) +Full source: [cookbook/91_tools/parallel/competitor_tracker.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/parallel/competitor_tracker.py) diff --git a/examples/tools/parallel/investment-monitor.mdx b/examples/tools/parallel/investment-monitor.mdx index 451bf82d9..820ded2b6 100644 --- a/examples/tools/parallel/investment-monitor.mdx +++ b/examples/tools/parallel/investment-monitor.mdx @@ -117,4 +117,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/parallel/investment_monitor.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/parallel/investment_monitor.py) +Full source: [cookbook/91_tools/parallel/investment_monitor.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/parallel/investment_monitor.py) diff --git a/examples/tools/parallel/market-research.mdx b/examples/tools/parallel/market-research.mdx index 15f22fd4c..ca15b5b46 100644 --- a/examples/tools/parallel/market-research.mdx +++ b/examples/tools/parallel/market-research.mdx @@ -156,4 +156,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/parallel/market_research.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/parallel/market_research.py) +Full source: [cookbook/91_tools/parallel/market_research.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/parallel/market_research.py) diff --git a/examples/tools/parallel/news-search.mdx b/examples/tools/parallel/news-search.mdx index 6d56e0bba..7be75edc0 100644 --- a/examples/tools/parallel/news-search.mdx +++ b/examples/tools/parallel/news-search.mdx @@ -131,4 +131,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/parallel/news_search.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/parallel/news_search.py) +Full source: [cookbook/91_tools/parallel/news_search.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/parallel/news_search.py) diff --git a/examples/tools/parallel/output-schemas.mdx b/examples/tools/parallel/output-schemas.mdx index 74fcb17d1..d4475e642 100644 --- a/examples/tools/parallel/output-schemas.mdx +++ b/examples/tools/parallel/output-schemas.mdx @@ -167,4 +167,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/parallel/output_schemas.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/parallel/output_schemas.py) +Full source: [cookbook/91_tools/parallel/output_schemas.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/parallel/output_schemas.py) diff --git a/examples/tools/parallel/parallel-tools.mdx b/examples/tools/parallel/parallel-tools.mdx index a03164e24..95e4fc5f8 100644 --- a/examples/tools/parallel/parallel-tools.mdx +++ b/examples/tools/parallel/parallel-tools.mdx @@ -72,4 +72,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/parallel/parallel_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/parallel/parallel_tools.py) +Full source: [cookbook/91_tools/parallel/parallel_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/parallel/parallel_tools.py) diff --git a/examples/tools/perplexity-tools.mdx b/examples/tools/perplexity-tools.mdx index 8e2fa9e83..ec6612c1e 100644 --- a/examples/tools/perplexity-tools.mdx +++ b/examples/tools/perplexity-tools.mdx @@ -26,7 +26,6 @@ from agno.tools.perplexity import PerplexitySearch agent = Agent( model=OpenAIChat(id="gpt-4o"), tools=[PerplexitySearch()], - show_tool_calls=True, markdown=True, ) @@ -41,7 +40,6 @@ agent_filtered = Agent( show_results=True, ) ], - show_tool_calls=True, markdown=True, ) @@ -85,4 +83,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/perplexity_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/perplexity_tools.py) +Full source: [cookbook/91_tools/perplexity_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/perplexity_tools.py) diff --git a/examples/tools/postgres-tools.mdx b/examples/tools/postgres-tools.mdx index 037f7c1fb..f93344e44 100644 --- a/examples/tools/postgres-tools.mdx +++ b/examples/tools/postgres-tools.mdx @@ -113,4 +113,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/postgres_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/postgres_tools.py) +Full source: [cookbook/91_tools/postgres_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/postgres_tools.py) diff --git a/examples/tools/pubmed-tools.mdx b/examples/tools/pubmed-tools.mdx index 5ca56586f..339d1f73a 100644 --- a/examples/tools/pubmed-tools.mdx +++ b/examples/tools/pubmed-tools.mdx @@ -103,4 +103,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/pubmed_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/pubmed_tools.py) +Full source: [cookbook/91_tools/pubmed_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/pubmed_tools.py) diff --git a/examples/tools/python-function-as-tool.mdx b/examples/tools/python-function-as-tool.mdx index eafe709b9..0eb8ccd48 100644 --- a/examples/tools/python-function-as-tool.mdx +++ b/examples/tools/python-function-as-tool.mdx @@ -89,4 +89,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/python_function_as_tool.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/python_function_as_tool.py) +Full source: [cookbook/91_tools/python_function_as_tool.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/python_function_as_tool.py) diff --git a/examples/tools/redmine-tools.mdx b/examples/tools/redmine-tools.mdx new file mode 100644 index 000000000..9dd2a9b62 --- /dev/null +++ b/examples/tools/redmine-tools.mdx @@ -0,0 +1,95 @@ +--- +title: "Redmine Tools" +description: "Demonstrates the Redmine tools for searching, reading, creating, updating, and commenting on issues." +source: cookbook/91_tools/redmine_tools.py +--- + +```python redmine_tools.py +""" +Redmine Tools +============================= + +Demonstrates the Redmine tools for searching, reading, creating, updating, and commenting on issues. + +Set the following environment variables before running: +- REDMINE_SERVER_URL +- REDMINE_TOKEN (or REDMINE_USERNAME and REDMINE_PASSWORD if you don't have a token) +""" + +import os + +from agno.agent import Agent +from agno.tools.redmine import RedmineTools + +# --------------------------------------------------------------------------- +# Create Agent +# --------------------------------------------------------------------------- + +# Get Redmine connection details from environment +server_url = os.getenv("REDMINE_SERVER_URL") +token = os.getenv("REDMINE_TOKEN") + +agent = Agent( + name="Redmine agent", + tools=[RedmineTools(server_url=server_url, token=token)], + markdown=True, +) + +# --------------------------------------------------------------------------- +# Run Agent +# --------------------------------------------------------------------------- +if __name__ == "__main__": + # searching issues by subject + agent.print_response("Find all issues whose subject contains 'search'") + + # getting issue details + agent.print_response("Show me the details of issue 1") + + # creating a new issue + agent.print_response( + "Create a Bug in project 'website' titled 'Login button unresponsive' " + "described 'The login button does nothing on click'" + ) + + # adding a comment + agent.print_response("Add the comment 'Reviewed and confirmed' to issue 1") +``` + +## Run the Example + + + + + + ```bash + uv pip install -U agno openai python-redmine redminelib + ``` + + + + + ```bash Mac/Linux + export OPENAI_API_KEY="your_openai_api_key_here" + export REDMINE_PASSWORD="your_redmine_password_here" + export REDMINE_SERVER_URL="your_redmine_server_url_here" + export REDMINE_TOKEN="your_redmine_token_here" + ``` + + ```bash Windows + $Env:OPENAI_API_KEY="your_openai_api_key_here" + $Env:REDMINE_PASSWORD="your_redmine_password_here" + $Env:REDMINE_SERVER_URL="your_redmine_server_url_here" + $Env:REDMINE_TOKEN="your_redmine_token_here" + ``` + + + + + Save the code above as `redmine_tools.py`, then run: + ```bash + python redmine_tools.py + ``` + + + +Full source: [cookbook/91_tools/redmine_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/redmine_tools.py) diff --git a/examples/tools/redshift-tools.mdx b/examples/tools/redshift-tools.mdx index 9a695521a..72321202a 100644 --- a/examples/tools/redshift-tools.mdx +++ b/examples/tools/redshift-tools.mdx @@ -93,4 +93,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/redshift_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/redshift_tools.py) +Full source: [cookbook/91_tools/redshift_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/redshift_tools.py) diff --git a/examples/tools/replicate-tools.mdx b/examples/tools/replicate-tools.mdx index e623189ed..772762446 100644 --- a/examples/tools/replicate-tools.mdx +++ b/examples/tools/replicate-tools.mdx @@ -90,4 +90,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/replicate_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/replicate_tools.py) +Full source: [cookbook/91_tools/replicate_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/replicate_tools.py) diff --git a/examples/tools/resend-tools.mdx b/examples/tools/resend-tools.mdx index 78e6255b7..082636b20 100644 --- a/examples/tools/resend-tools.mdx +++ b/examples/tools/resend-tools.mdx @@ -65,4 +65,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/resend_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/resend_tools.py) +Full source: [cookbook/91_tools/resend_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/resend_tools.py) diff --git a/examples/tools/scavio-tools.mdx b/examples/tools/scavio-tools.mdx index c5e3e715b..28bc5e3f4 100644 --- a/examples/tools/scavio-tools.mdx +++ b/examples/tools/scavio-tools.mdx @@ -118,4 +118,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/scavio_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/scavio_tools.py) +Full source: [cookbook/91_tools/scavio_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/scavio_tools.py) diff --git a/examples/tools/scheduler-tools.mdx b/examples/tools/scheduler-tools.mdx index 01eef9a01..d716aed8d 100644 --- a/examples/tools/scheduler-tools.mdx +++ b/examples/tools/scheduler-tools.mdx @@ -101,4 +101,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/scheduler_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/scheduler_tools.py) +Full source: [cookbook/91_tools/scheduler_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/scheduler_tools.py) diff --git a/examples/tools/scrapegraph-tools.mdx b/examples/tools/scrapegraph-tools.mdx index f0ed8a334..c46375225 100644 --- a/examples/tools/scrapegraph-tools.mdx +++ b/examples/tools/scrapegraph-tools.mdx @@ -92,4 +92,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/scrapegraph_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/scrapegraph_tools.py) +Full source: [cookbook/91_tools/scrapegraph_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/scrapegraph_tools.py) diff --git a/examples/tools/searchapi-tools.mdx b/examples/tools/searchapi-tools.mdx index f66dab473..be00d91c7 100644 --- a/examples/tools/searchapi-tools.mdx +++ b/examples/tools/searchapi-tools.mdx @@ -116,4 +116,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/searchapi_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/searchapi_tools.py) +Full source: [cookbook/91_tools/searchapi_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/searchapi_tools.py) diff --git a/examples/tools/searxng-tools.mdx b/examples/tools/searxng-tools.mdx index 8edaffb60..3a2e61a73 100644 --- a/examples/tools/searxng-tools.mdx +++ b/examples/tools/searxng-tools.mdx @@ -79,4 +79,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/searxng_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/searxng_tools.py) +Full source: [cookbook/91_tools/searxng_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/searxng_tools.py) diff --git a/examples/tools/serpapi-tools.mdx b/examples/tools/serpapi-tools.mdx index 84a391c47..39716ef6b 100644 --- a/examples/tools/serpapi-tools.mdx +++ b/examples/tools/serpapi-tools.mdx @@ -76,4 +76,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/serpapi_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/serpapi_tools.py) +Full source: [cookbook/91_tools/serpapi_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/serpapi_tools.py) diff --git a/examples/tools/shell-tools.mdx b/examples/tools/shell-tools.mdx index a869b26d5..f6c775d7a 100644 --- a/examples/tools/shell-tools.mdx +++ b/examples/tools/shell-tools.mdx @@ -4,29 +4,60 @@ description: "Let an agent run shell commands to list directory contents with Sh source: cookbook/91_tools/shell_tools.py --- +``run_shell_command`` executes an arbitrary command on the host OS. Under prompt injection that makes the agent an RCE sink, so this example gates the tool behind human-in-the-loop confirmation using the toolkit's ``requires_confirmation_tools``. + ```python shell_tools.py """ Shell Tools ============================= Demonstrates shell tools. + +``run_shell_command`` executes an arbitrary command on the host OS. Under prompt +injection that makes the agent an RCE sink, so this example gates the tool behind +human-in-the-loop confirmation using the toolkit's ``requires_confirmation_tools``. """ from agno.agent import Agent +from agno.models.openai import OpenAIResponses from agno.tools.shell import ShellTools # --------------------------------------------------------------------------- # Create Agent +# +# requires_confirmation_tools marks run_shell_command as needing human approval, +# so the run pauses before any command reaches the host. # --------------------------------------------------------------------------- - - -agent = Agent(tools=[ShellTools()]) +agent = Agent( + model=OpenAIResponses(id="gpt-5.5"), + tools=[ShellTools(requires_confirmation_tools=["run_shell_command"])], +) # --------------------------------------------------------------------------- # Run Agent # --------------------------------------------------------------------------- if __name__ == "__main__": - agent.print_response("Show me the contents of the current directory", markdown=True) + run_response = agent.run("List the files in the current directory") + + # run_shell_command is gated, so the run pauses for confirmation. + if run_response.active_requirements: + for requirement in run_response.active_requirements: + if requirement.needs_confirmation: + tool = requirement.tool_execution + print( + f"Confirmation required for '{tool.tool_name}' with args: {tool.tool_args}" + ) + answer = input("Approve? [y/N]: ").strip().lower() + if answer == "y": + requirement.confirm() + else: + requirement.reject() + + run_response = agent.continue_run( + run_response, requirements=run_response.requirements + ) + + print(run_response.content) ``` ## Run the Example @@ -60,4 +91,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/shell_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/shell_tools.py) +Full source: [cookbook/91_tools/shell_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/shell_tools.py) diff --git a/examples/tools/slack-tools.mdx b/examples/tools/slack-tools.mdx index 1572db1ce..205e9c899 100644 --- a/examples/tools/slack-tools.mdx +++ b/examples/tools/slack-tools.mdx @@ -119,4 +119,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/slack_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/slack_tools.py) +Full source: [cookbook/91_tools/slack_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/slack_tools.py) diff --git a/examples/tools/sleep-tools.mdx b/examples/tools/sleep-tools.mdx index 68f2c77b3..afcfbe5cf 100644 --- a/examples/tools/sleep-tools.mdx +++ b/examples/tools/sleep-tools.mdx @@ -67,4 +67,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/sleep_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/sleep_tools.py) +Full source: [cookbook/91_tools/sleep_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/sleep_tools.py) diff --git a/examples/tools/sofya-tools.mdx b/examples/tools/sofya-tools.mdx index 778b902db..5097754c0 100644 --- a/examples/tools/sofya-tools.mdx +++ b/examples/tools/sofya-tools.mdx @@ -105,4 +105,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/sofya_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/sofya_tools.py) +Full source: [cookbook/91_tools/sofya_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/sofya_tools.py) diff --git a/examples/tools/spider-tools.mdx b/examples/tools/spider-tools.mdx index 60b2b0ec9..92c881f04 100644 --- a/examples/tools/spider-tools.mdx +++ b/examples/tools/spider-tools.mdx @@ -82,4 +82,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/spider_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/spider_tools.py) +Full source: [cookbook/91_tools/spider_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/spider_tools.py) diff --git a/examples/tools/spotify-tools.mdx b/examples/tools/spotify-tools.mdx index a1710d7eb..7b0e33480 100644 --- a/examples/tools/spotify-tools.mdx +++ b/examples/tools/spotify-tools.mdx @@ -109,4 +109,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/spotify_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/spotify_tools.py) +Full source: [cookbook/91_tools/spotify_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/spotify_tools.py) diff --git a/examples/tools/sql-tools.mdx b/examples/tools/sql-tools.mdx index bef7c0ae0..23b1353a5 100644 --- a/examples/tools/sql-tools.mdx +++ b/examples/tools/sql-tools.mdx @@ -67,4 +67,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/sql_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/sql_tools.py) +Full source: [cookbook/91_tools/sql_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/sql_tools.py) diff --git a/examples/tools/tavily-tools-advanced.mdx b/examples/tools/tavily-tools-advanced.mdx index db4efe137..0305f763b 100644 --- a/examples/tools/tavily-tools-advanced.mdx +++ b/examples/tools/tavily-tools-advanced.mdx @@ -1,6 +1,6 @@ --- title: "Tavily Tools - Advanced Search Parameters" -description: "Scope Tavily web search by domain, recency, topic, and country." +description: "Demonstrates scoping Tavily web search with the advanced parameters: domain restriction, recency, topic, and country localization." source: cookbook/91_tools/tavily_tools_advanced.py --- @@ -92,4 +92,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/tavily_tools_advanced.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/tavily_tools_advanced.py) +Full source: [cookbook/91_tools/tavily_tools_advanced.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/tavily_tools_advanced.py) diff --git a/examples/tools/tavily-tools.mdx b/examples/tools/tavily-tools.mdx index 073f29201..a53d9350d 100644 --- a/examples/tools/tavily-tools.mdx +++ b/examples/tools/tavily-tools.mdx @@ -164,4 +164,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/tavily_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/tavily_tools.py) +Full source: [cookbook/91_tools/tavily_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/tavily_tools.py) diff --git a/examples/tools/todoist-tools.mdx b/examples/tools/todoist-tools.mdx index 7402c5d97..78c1a2756 100644 --- a/examples/tools/todoist-tools.mdx +++ b/examples/tools/todoist-tools.mdx @@ -109,4 +109,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/todoist_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/todoist_tools.py) +Full source: [cookbook/91_tools/todoist_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/todoist_tools.py) diff --git a/examples/tools/tool-calls-accesing-agent.mdx b/examples/tools/tool-calls-accesing-agent.mdx index 7e189e440..65fc8422b 100644 --- a/examples/tools/tool-calls-accesing-agent.mdx +++ b/examples/tools/tool-calls-accesing-agent.mdx @@ -88,4 +88,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/tool_calls_accesing_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/tool_calls_accesing_agent.py) +Full source: [cookbook/91_tools/tool_calls_accesing_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/tool_calls_accesing_agent.py) diff --git a/examples/tools/tool-decorator/async-tool-decorator.mdx b/examples/tools/tool-decorator/async-tool-decorator.mdx index b1667537b..e121a7ae7 100644 --- a/examples/tools/tool-decorator/async-tool-decorator.mdx +++ b/examples/tools/tool-decorator/async-tool-decorator.mdx @@ -95,4 +95,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/tool_decorator/async_tool_decorator.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/tool_decorator/async_tool_decorator.py) +Full source: [cookbook/91_tools/tool_decorator/async_tool_decorator.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/tool_decorator/async_tool_decorator.py) diff --git a/examples/tools/tool-decorator/cache-tool-calls.mdx b/examples/tools/tool-decorator/cache-tool-calls.mdx index 0e80ddf42..ddbe1b6aa 100644 --- a/examples/tools/tool-decorator/cache-tool-calls.mdx +++ b/examples/tools/tool-decorator/cache-tool-calls.mdx @@ -86,4 +86,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/tool_decorator/cache_tool_calls.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/tool_decorator/cache_tool_calls.py) +Full source: [cookbook/91_tools/tool_decorator/cache_tool_calls.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/tool_decorator/cache_tool_calls.py) diff --git a/examples/tools/tool-decorator/stop-after-tool-call.mdx b/examples/tools/tool-decorator/stop-after-tool-call.mdx index aa0a385f6..9317149a6 100644 --- a/examples/tools/tool-decorator/stop-after-tool-call.mdx +++ b/examples/tools/tool-decorator/stop-after-tool-call.mdx @@ -71,4 +71,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/tool_decorator/stop_after_tool_call.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/tool_decorator/stop_after_tool_call.py) +Full source: [cookbook/91_tools/tool_decorator/stop_after_tool_call.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/tool_decorator/stop_after_tool_call.py) diff --git a/examples/tools/tool-decorator/tool-decorator-on-class-method.mdx b/examples/tools/tool-decorator/tool-decorator-on-class-method.mdx index 2a7ae9645..fc8a67d66 100644 --- a/examples/tools/tool-decorator/tool-decorator-on-class-method.mdx +++ b/examples/tools/tool-decorator/tool-decorator-on-class-method.mdx @@ -143,4 +143,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/tool_decorator/tool_decorator_on_class_method.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/tool_decorator/tool_decorator_on_class_method.py) +Full source: [cookbook/91_tools/tool_decorator/tool_decorator_on_class_method.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/tool_decorator/tool_decorator_on_class_method.py) diff --git a/examples/tools/tool-decorator/tool-decorator-with-hook.mdx b/examples/tools/tool-decorator/tool-decorator-with-hook.mdx index d87b413b3..be01e2429 100644 --- a/examples/tools/tool-decorator/tool-decorator-with-hook.mdx +++ b/examples/tools/tool-decorator/tool-decorator-with-hook.mdx @@ -104,4 +104,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/tool_decorator/tool_decorator_with_hook.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/tool_decorator/tool_decorator_with_hook.py) +Full source: [cookbook/91_tools/tool_decorator/tool_decorator_with_hook.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/tool_decorator/tool_decorator_with_hook.py) diff --git a/examples/tools/tool-decorator/tool-decorator-with-instructions.mdx b/examples/tools/tool-decorator/tool-decorator-with-instructions.mdx index c3e7cc701..9f2ac2acc 100644 --- a/examples/tools/tool-decorator/tool-decorator-with-instructions.mdx +++ b/examples/tools/tool-decorator/tool-decorator-with-instructions.mdx @@ -98,4 +98,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/tool_decorator/tool_decorator_with_instructions.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/tool_decorator/tool_decorator_with_instructions.py) +Full source: [cookbook/91_tools/tool_decorator/tool_decorator_with_instructions.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/tool_decorator/tool_decorator_with_instructions.py) diff --git a/examples/tools/tool-decorator/tool-decorator.mdx b/examples/tools/tool-decorator/tool-decorator.mdx index eae32c9f9..02059c96e 100644 --- a/examples/tools/tool-decorator/tool-decorator.mdx +++ b/examples/tools/tool-decorator/tool-decorator.mdx @@ -195,4 +195,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/tool_decorator/tool_decorator.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/tool_decorator/tool_decorator.py) +Full source: [cookbook/91_tools/tool_decorator/tool_decorator.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/tool_decorator/tool_decorator.py) diff --git a/examples/tools/tool-decorator/toolkit-per-tool-instructions.mdx b/examples/tools/tool-decorator/toolkit-per-tool-instructions.mdx index 16eba1d81..fc54e8332 100644 --- a/examples/tools/tool-decorator/toolkit-per-tool-instructions.mdx +++ b/examples/tools/tool-decorator/toolkit-per-tool-instructions.mdx @@ -99,4 +99,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/tool_decorator/toolkit_per_tool_instructions.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/tool_decorator/toolkit_per_tool_instructions.py) +Full source: [cookbook/91_tools/tool_decorator/toolkit_per_tool_instructions.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/tool_decorator/toolkit_per_tool_instructions.py) diff --git a/examples/tools/tool-hooks/message-history-in-hooks.mdx b/examples/tools/tool-hooks/message-history-in-hooks.mdx index 1c8a706d4..0aa6ba38c 100644 --- a/examples/tools/tool-hooks/message-history-in-hooks.mdx +++ b/examples/tools/tool-hooks/message-history-in-hooks.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/tool_hooks/message_history_in_hooks.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/tool_hooks/message_history_in_hooks.py) +Full source: [cookbook/91_tools/tool_hooks/message_history_in_hooks.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/tool_hooks/message_history_in_hooks.py) diff --git a/examples/tools/tool-hooks/pre-and-post-hooks.mdx b/examples/tools/tool-hooks/pre-and-post-hooks.mdx index 0a65b5d4e..0393274af 100644 --- a/examples/tools/tool-hooks/pre-and-post-hooks.mdx +++ b/examples/tools/tool-hooks/pre-and-post-hooks.mdx @@ -147,4 +147,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/tool_hooks/pre_and_post_hooks.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/tool_hooks/pre_and_post_hooks.py) +Full source: [cookbook/91_tools/tool_hooks/pre_and_post_hooks.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/tool_hooks/pre_and_post_hooks.py) diff --git a/examples/tools/tool-hooks/tool-hook-in-toolkit-with-state-nested.mdx b/examples/tools/tool-hooks/tool-hook-in-toolkit-with-state-nested.mdx index 15eec666c..5896adcc9 100644 --- a/examples/tools/tool-hooks/tool-hook-in-toolkit-with-state-nested.mdx +++ b/examples/tools/tool-hooks/tool-hook-in-toolkit-with-state-nested.mdx @@ -126,4 +126,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/tool_hooks/tool_hook_in_toolkit_with_state_nested.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/tool_hooks/tool_hook_in_toolkit_with_state_nested.py) +Full source: [cookbook/91_tools/tool_hooks/tool_hook_in_toolkit_with_state_nested.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/tool_hooks/tool_hook_in_toolkit_with_state_nested.py) diff --git a/examples/tools/tool-hooks/tool-hook-in-toolkit-with-state.mdx b/examples/tools/tool-hooks/tool-hook-in-toolkit-with-state.mdx index 38286a92d..ca5458f51 100644 --- a/examples/tools/tool-hooks/tool-hook-in-toolkit-with-state.mdx +++ b/examples/tools/tool-hooks/tool-hook-in-toolkit-with-state.mdx @@ -113,4 +113,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/tool_hooks/tool_hook_in_toolkit_with_state.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/tool_hooks/tool_hook_in_toolkit_with_state.py) +Full source: [cookbook/91_tools/tool_hooks/tool_hook_in_toolkit_with_state.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/tool_hooks/tool_hook_in_toolkit_with_state.py) diff --git a/examples/tools/tool-hooks/tool-hook-in-toolkit.mdx b/examples/tools/tool-hooks/tool-hook-in-toolkit.mdx index 01a013f03..f2a51139e 100644 --- a/examples/tools/tool-hooks/tool-hook-in-toolkit.mdx +++ b/examples/tools/tool-hooks/tool-hook-in-toolkit.mdx @@ -205,4 +205,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/tool_hooks/tool_hook_in_toolkit.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/tool_hooks/tool_hook_in_toolkit.py) +Full source: [cookbook/91_tools/tool_hooks/tool_hook_in_toolkit.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/tool_hooks/tool_hook_in_toolkit.py) diff --git a/examples/tools/tool-hooks/tool-hook.mdx b/examples/tools/tool-hooks/tool-hook.mdx index 6606fad96..faae86852 100644 --- a/examples/tools/tool-hooks/tool-hook.mdx +++ b/examples/tools/tool-hooks/tool-hook.mdx @@ -107,4 +107,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/tool_hooks/tool_hook.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/tool_hooks/tool_hook.py) +Full source: [cookbook/91_tools/tool_hooks/tool_hook.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/tool_hooks/tool_hook.py) diff --git a/examples/tools/tool-hooks/tool-hooks-in-toolkit-nested.mdx b/examples/tools/tool-hooks/tool-hooks-in-toolkit-nested.mdx index a4562309b..7dd806c61 100644 --- a/examples/tools/tool-hooks/tool-hooks-in-toolkit-nested.mdx +++ b/examples/tools/tool-hooks/tool-hooks-in-toolkit-nested.mdx @@ -227,4 +227,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/tool_hooks/tool_hooks_in_toolkit_nested.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/tool_hooks/tool_hooks_in_toolkit_nested.py) +Full source: [cookbook/91_tools/tool_hooks/tool_hooks_in_toolkit_nested.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/tool_hooks/tool_hooks_in_toolkit_nested.py) diff --git a/examples/tools/trafilatura-tools.mdx b/examples/tools/trafilatura-tools.mdx index 605e6b06c..ab412ad60 100644 --- a/examples/tools/trafilatura-tools.mdx +++ b/examples/tools/trafilatura-tools.mdx @@ -613,4 +613,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/trafilatura_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/trafilatura_tools.py) +Full source: [cookbook/91_tools/trafilatura_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/trafilatura_tools.py) diff --git a/examples/tools/twelvelabs-tools.mdx b/examples/tools/twelvelabs-tools.mdx index c1974a612..da8557256 100644 --- a/examples/tools/twelvelabs-tools.mdx +++ b/examples/tools/twelvelabs-tools.mdx @@ -86,4 +86,4 @@ embedding_agent.print_response( -Full source: [cookbook/91_tools/twelvelabs_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/twelvelabs_tools.py) +Full source: [cookbook/91_tools/twelvelabs_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/twelvelabs_tools.py) diff --git a/examples/tools/web-tools.mdx b/examples/tools/web-tools.mdx index cc8462de9..978f91751 100644 --- a/examples/tools/web-tools.mdx +++ b/examples/tools/web-tools.mdx @@ -60,4 +60,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/web_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/web_tools.py) +Full source: [cookbook/91_tools/web_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/web_tools.py) diff --git a/examples/tools/webbrowser-tools.mdx b/examples/tools/webbrowser-tools.mdx index bbbfc1594..6debc9792 100644 --- a/examples/tools/webbrowser-tools.mdx +++ b/examples/tools/webbrowser-tools.mdx @@ -84,4 +84,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/webbrowser_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/webbrowser_tools.py) +Full source: [cookbook/91_tools/webbrowser_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/webbrowser_tools.py) diff --git a/examples/tools/websearch-tools-advanced.mdx b/examples/tools/websearch-tools-advanced.mdx index a726536a5..57fe570aa 100644 --- a/examples/tools/websearch-tools-advanced.mdx +++ b/examples/tools/websearch-tools-advanced.mdx @@ -377,4 +377,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/websearch_tools_advanced.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/websearch_tools_advanced.py) +Full source: [cookbook/91_tools/websearch_tools_advanced.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/websearch_tools_advanced.py) diff --git a/examples/tools/websearch-tools.mdx b/examples/tools/websearch-tools.mdx index 78805302e..9a2e3057f 100644 --- a/examples/tools/websearch-tools.mdx +++ b/examples/tools/websearch-tools.mdx @@ -144,4 +144,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/websearch_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/websearch_tools.py) +Full source: [cookbook/91_tools/websearch_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/websearch_tools.py) diff --git a/examples/tools/website-tools.mdx b/examples/tools/website-tools.mdx index 7df0e65ac..d05017f2c 100644 --- a/examples/tools/website-tools.mdx +++ b/examples/tools/website-tools.mdx @@ -79,4 +79,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/website_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/website_tools.py) +Full source: [cookbook/91_tools/website_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/website_tools.py) diff --git a/examples/tools/whatsapp-tools.mdx b/examples/tools/whatsapp-tools.mdx index 988b9dd9c..1f2cb3563 100644 --- a/examples/tools/whatsapp-tools.mdx +++ b/examples/tools/whatsapp-tools.mdx @@ -101,4 +101,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/whatsapp_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/whatsapp_tools.py) +Full source: [cookbook/91_tools/whatsapp_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/whatsapp_tools.py) diff --git a/examples/tools/wikipedia-tools.mdx b/examples/tools/wikipedia-tools.mdx index 06e4e398b..0462db7de 100644 --- a/examples/tools/wikipedia-tools.mdx +++ b/examples/tools/wikipedia-tools.mdx @@ -74,4 +74,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/wikipedia_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/wikipedia_tools.py) +Full source: [cookbook/91_tools/wikipedia_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/wikipedia_tools.py) diff --git a/examples/tools/workspace-tools/basic-usage.mdx b/examples/tools/workspace-tools/basic-usage.mdx index dea8da777..2a2c7d408 100644 --- a/examples/tools/workspace-tools/basic-usage.mdx +++ b/examples/tools/workspace-tools/basic-usage.mdx @@ -86,4 +86,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/workspace_tools/basic_usage.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/workspace_tools/basic_usage.py) +Full source: [cookbook/91_tools/workspace_tools/basic_usage.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/workspace_tools/basic_usage.py) diff --git a/examples/tools/workspace-tools/workspace-tools-with-confirmation.mdx b/examples/tools/workspace-tools/workspace-tools-with-confirmation.mdx index 963e4aba5..47b431bdf 100644 --- a/examples/tools/workspace-tools/workspace-tools-with-confirmation.mdx +++ b/examples/tools/workspace-tools/workspace-tools-with-confirmation.mdx @@ -108,4 +108,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/workspace_tools/workspace_tools_with_confirmation.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/workspace_tools/workspace_tools_with_confirmation.py) +Full source: [cookbook/91_tools/workspace_tools/workspace_tools_with_confirmation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/workspace_tools/workspace_tools_with_confirmation.py) diff --git a/examples/tools/x402scan-mcp-tools.mdx b/examples/tools/x402scan-mcp-tools.mdx index 56624a5e4..c32f00149 100644 --- a/examples/tools/x402scan-mcp-tools.mdx +++ b/examples/tools/x402scan-mcp-tools.mdx @@ -136,4 +136,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/x402scan_mcp_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/x402scan_mcp_tools.py) +Full source: [cookbook/91_tools/x402scan_mcp_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/x402scan_mcp_tools.py) diff --git a/examples/tools/yfinance-tools.mdx b/examples/tools/yfinance-tools.mdx index 6d18aa7e3..0598b8960 100644 --- a/examples/tools/yfinance-tools.mdx +++ b/examples/tools/yfinance-tools.mdx @@ -181,4 +181,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/yfinance_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/yfinance_tools.py) +Full source: [cookbook/91_tools/yfinance_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/yfinance_tools.py) diff --git a/examples/tools/youcom-tools.mdx b/examples/tools/youcom-tools.mdx index af789e76c..7151e681f 100644 --- a/examples/tools/youcom-tools.mdx +++ b/examples/tools/youcom-tools.mdx @@ -94,4 +94,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/youcom_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/youcom_tools.py) +Full source: [cookbook/91_tools/youcom_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/youcom_tools.py) diff --git a/examples/tools/youtube-tools.mdx b/examples/tools/youtube-tools.mdx index 107b80c73..8402ade61 100644 --- a/examples/tools/youtube-tools.mdx +++ b/examples/tools/youtube-tools.mdx @@ -66,4 +66,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/youtube_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/youtube_tools.py) +Full source: [cookbook/91_tools/youtube_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/youtube_tools.py) diff --git a/examples/tools/zendesk-tools.mdx b/examples/tools/zendesk-tools.mdx index 770c3f4b1..0d064d5ac 100644 --- a/examples/tools/zendesk-tools.mdx +++ b/examples/tools/zendesk-tools.mdx @@ -66,4 +66,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/zendesk_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/zendesk_tools.py) +Full source: [cookbook/91_tools/zendesk_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/zendesk_tools.py) diff --git a/examples/workflows/advanced-concepts/background-execution/background-poll.mdx b/examples/workflows/advanced-concepts/background-execution/background-poll.mdx index 0708247e5..84606326a 100644 --- a/examples/workflows/advanced-concepts/background-execution/background-poll.mdx +++ b/examples/workflows/advanced-concepts/background-execution/background-poll.mdx @@ -168,4 +168,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/background_execution/background_poll.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/background_execution/background_poll.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/background_execution/background_poll.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/background_execution/background_poll.py) diff --git a/examples/workflows/advanced-concepts/background-execution/websocket-client.mdx b/examples/workflows/advanced-concepts/background-execution/websocket-client.mdx index 89301752c..b1f9bd60c 100644 --- a/examples/workflows/advanced-concepts/background-execution/websocket-client.mdx +++ b/examples/workflows/advanced-concepts/background-execution/websocket-client.mdx @@ -544,4 +544,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/background_execution/websocket_client.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/background_execution/websocket_client.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/background_execution/websocket_client.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/background_execution/websocket_client.py) diff --git a/examples/workflows/advanced-concepts/background-execution/websocket-server.mdx b/examples/workflows/advanced-concepts/background-execution/websocket-server.mdx index 58ef0ea39..3aa1b2ca5 100644 --- a/examples/workflows/advanced-concepts/background-execution/websocket-server.mdx +++ b/examples/workflows/advanced-concepts/background-execution/websocket-server.mdx @@ -303,4 +303,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/background_execution/websocket_server.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/background_execution/websocket_server.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/background_execution/websocket_server.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/background_execution/websocket_server.py) diff --git a/examples/workflows/advanced-concepts/early-stopping/early-stop-basic.mdx b/examples/workflows/advanced-concepts/early-stopping/early-stop-basic.mdx index 145426c03..464b6c6d6 100644 --- a/examples/workflows/advanced-concepts/early-stopping/early-stop-basic.mdx +++ b/examples/workflows/advanced-concepts/early-stopping/early-stop-basic.mdx @@ -286,4 +286,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/early_stopping/early_stop_basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/early_stopping/early_stop_basic.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/early_stopping/early_stop_basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/early_stopping/early_stop_basic.py) diff --git a/examples/workflows/advanced-concepts/early-stopping/early-stop-condition.mdx b/examples/workflows/advanced-concepts/early-stopping/early-stop-condition.mdx index 7bb16d6e0..31f138a10 100644 --- a/examples/workflows/advanced-concepts/early-stopping/early-stop-condition.mdx +++ b/examples/workflows/advanced-concepts/early-stopping/early-stop-condition.mdx @@ -155,4 +155,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/early_stopping/early_stop_condition.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/early_stopping/early_stop_condition.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/early_stopping/early_stop_condition.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/early_stopping/early_stop_condition.py) diff --git a/examples/workflows/advanced-concepts/early-stopping/early-stop-loop.mdx b/examples/workflows/advanced-concepts/early-stopping/early-stop-loop.mdx index 5611e48b7..0b63e725d 100644 --- a/examples/workflows/advanced-concepts/early-stopping/early-stop-loop.mdx +++ b/examples/workflows/advanced-concepts/early-stopping/early-stop-loop.mdx @@ -163,4 +163,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/early_stopping/early_stop_loop.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/early_stopping/early_stop_loop.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/early_stopping/early_stop_loop.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/early_stopping/early_stop_loop.py) diff --git a/examples/workflows/advanced-concepts/early-stopping/early-stop-parallel.mdx b/examples/workflows/advanced-concepts/early-stopping/early-stop-parallel.mdx index f085bef84..8f6cea93e 100644 --- a/examples/workflows/advanced-concepts/early-stopping/early-stop-parallel.mdx +++ b/examples/workflows/advanced-concepts/early-stopping/early-stop-parallel.mdx @@ -140,4 +140,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/early_stopping/early_stop_parallel.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/early_stopping/early_stop_parallel.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/early_stopping/early_stop_parallel.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/early_stopping/early_stop_parallel.py) diff --git a/examples/workflows/advanced-concepts/file-propagation/file-generation-workflow.mdx b/examples/workflows/advanced-concepts/file-propagation/file-generation-workflow.mdx index 175d5a01f..453ddf3b6 100644 --- a/examples/workflows/advanced-concepts/file-propagation/file-generation-workflow.mdx +++ b/examples/workflows/advanced-concepts/file-propagation/file-generation-workflow.mdx @@ -132,4 +132,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/file_propagation/file_generation_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/file_propagation/file_generation_workflow.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/file_propagation/file_generation_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/file_propagation/file_generation_workflow.py) diff --git a/examples/workflows/advanced-concepts/guardrails/prompt-injection.mdx b/examples/workflows/advanced-concepts/guardrails/prompt-injection.mdx index 313d9b8a8..97326c8a3 100644 --- a/examples/workflows/advanced-concepts/guardrails/prompt-injection.mdx +++ b/examples/workflows/advanced-concepts/guardrails/prompt-injection.mdx @@ -186,4 +186,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/guardrails/prompt_injection.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/guardrails/prompt_injection.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/guardrails/prompt_injection.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/guardrails/prompt_injection.py) diff --git a/examples/workflows/advanced-concepts/history/continuous-execution.mdx b/examples/workflows/advanced-concepts/history/continuous-execution.mdx index a2b67c479..44f9b54c0 100644 --- a/examples/workflows/advanced-concepts/history/continuous-execution.mdx +++ b/examples/workflows/advanced-concepts/history/continuous-execution.mdx @@ -108,4 +108,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/history/continuous_execution.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/history/continuous_execution.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/history/continuous_execution.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/history/continuous_execution.py) diff --git a/examples/workflows/advanced-concepts/history/history-in-function.mdx b/examples/workflows/advanced-concepts/history/history-in-function.mdx index 0a4c22d9e..36a4a8173 100644 --- a/examples/workflows/advanced-concepts/history/history-in-function.mdx +++ b/examples/workflows/advanced-concepts/history/history-in-function.mdx @@ -275,4 +275,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/history/history_in_function.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/history/history_in_function.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/history/history_in_function.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/history/history_in_function.py) diff --git a/examples/workflows/advanced-concepts/history/intent-routing-with-history.mdx b/examples/workflows/advanced-concepts/history/intent-routing-with-history.mdx index edf56f3d2..751bf1823 100644 --- a/examples/workflows/advanced-concepts/history/intent-routing-with-history.mdx +++ b/examples/workflows/advanced-concepts/history/intent-routing-with-history.mdx @@ -221,4 +221,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/history/intent_routing_with_history.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/history/intent_routing_with_history.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/history/intent_routing_with_history.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/history/intent_routing_with_history.py) diff --git a/examples/workflows/advanced-concepts/history/step-history.mdx b/examples/workflows/advanced-concepts/history/step-history.mdx index 03da7639e..ad908ded4 100644 --- a/examples/workflows/advanced-concepts/history/step-history.mdx +++ b/examples/workflows/advanced-concepts/history/step-history.mdx @@ -283,4 +283,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/history/step_history.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/history/step_history.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/history/step_history.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/history/step_history.py) diff --git a/examples/workflows/advanced-concepts/long-running/disruption-catchup.mdx b/examples/workflows/advanced-concepts/long-running/disruption-catchup.mdx index 3bb96e0bb..1dbc548a1 100644 --- a/examples/workflows/advanced-concepts/long-running/disruption-catchup.mdx +++ b/examples/workflows/advanced-concepts/long-running/disruption-catchup.mdx @@ -297,4 +297,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/long_running/disruption_catchup.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/long_running/disruption_catchup.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/long_running/disruption_catchup.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/long_running/disruption_catchup.py) diff --git a/examples/workflows/advanced-concepts/long-running/events-replay.mdx b/examples/workflows/advanced-concepts/long-running/events-replay.mdx index 1c2f1481b..28cd59aa5 100644 --- a/examples/workflows/advanced-concepts/long-running/events-replay.mdx +++ b/examples/workflows/advanced-concepts/long-running/events-replay.mdx @@ -271,4 +271,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/long_running/events_replay.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/long_running/events_replay.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/long_running/events_replay.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/long_running/events_replay.py) diff --git a/examples/workflows/advanced-concepts/long-running/websocket-reconnect.mdx b/examples/workflows/advanced-concepts/long-running/websocket-reconnect.mdx index a1e38a3a8..695990dc0 100644 --- a/examples/workflows/advanced-concepts/long-running/websocket-reconnect.mdx +++ b/examples/workflows/advanced-concepts/long-running/websocket-reconnect.mdx @@ -327,4 +327,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/long_running/websocket_reconnect.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/long_running/websocket_reconnect.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/long_running/websocket_reconnect.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/long_running/websocket_reconnect.py) diff --git a/examples/workflows/advanced-concepts/nested-workflows/deeply-nested-workflow.mdx b/examples/workflows/advanced-concepts/nested-workflows/deeply-nested-workflow.mdx index befe06e9c..3e9af2a11 100644 --- a/examples/workflows/advanced-concepts/nested-workflows/deeply-nested-workflow.mdx +++ b/examples/workflows/advanced-concepts/nested-workflows/deeply-nested-workflow.mdx @@ -152,4 +152,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/deeply_nested_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/deeply_nested_workflow.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/deeply_nested_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/deeply_nested_workflow.py) diff --git a/examples/workflows/advanced-concepts/nested-workflows/nested-workflow-auto-wrap.mdx b/examples/workflows/advanced-concepts/nested-workflows/nested-workflow-auto-wrap.mdx index 9964e28bb..e2aa91c3b 100644 --- a/examples/workflows/advanced-concepts/nested-workflows/nested-workflow-auto-wrap.mdx +++ b/examples/workflows/advanced-concepts/nested-workflows/nested-workflow-auto-wrap.mdx @@ -105,4 +105,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/nested_workflow_pass_direct_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/nested_workflow_pass_direct_workflow.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/nested_workflow_pass_direct_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/nested_workflow_pass_direct_workflow.py) diff --git a/examples/workflows/advanced-concepts/nested-workflows/nested-workflow-events.mdx b/examples/workflows/advanced-concepts/nested-workflows/nested-workflow-events.mdx index 51e3ca409..5f9d30053 100644 --- a/examples/workflows/advanced-concepts/nested-workflows/nested-workflow-events.mdx +++ b/examples/workflows/advanced-concepts/nested-workflows/nested-workflow-events.mdx @@ -188,4 +188,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/nested_workflow_events.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/nested_workflow_events.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/nested_workflow_events.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/nested_workflow_events.py) diff --git a/examples/workflows/advanced-concepts/nested-workflows/nested-workflow-with-condition.mdx b/examples/workflows/advanced-concepts/nested-workflows/nested-workflow-with-condition.mdx index a26ab2bdb..6a63e6054 100644 --- a/examples/workflows/advanced-concepts/nested-workflows/nested-workflow-with-condition.mdx +++ b/examples/workflows/advanced-concepts/nested-workflows/nested-workflow-with-condition.mdx @@ -118,4 +118,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/nested_workflow_with_condition.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/nested_workflow_with_condition.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/nested_workflow_with_condition.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/nested_workflow_with_condition.py) diff --git a/examples/workflows/advanced-concepts/nested-workflows/nested-workflow-with-loop.mdx b/examples/workflows/advanced-concepts/nested-workflows/nested-workflow-with-loop.mdx index 9b41dc865..2832c4dfe 100644 --- a/examples/workflows/advanced-concepts/nested-workflows/nested-workflow-with-loop.mdx +++ b/examples/workflows/advanced-concepts/nested-workflows/nested-workflow-with-loop.mdx @@ -111,4 +111,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/nested_workflow_with_loop.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/nested_workflow_with_loop.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/nested_workflow_with_loop.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/nested_workflow_with_loop.py) diff --git a/examples/workflows/advanced-concepts/nested-workflows/nested-workflow-with-router.mdx b/examples/workflows/advanced-concepts/nested-workflows/nested-workflow-with-router.mdx index 334e4fcbf..3369d2fe3 100644 --- a/examples/workflows/advanced-concepts/nested-workflows/nested-workflow-with-router.mdx +++ b/examples/workflows/advanced-concepts/nested-workflows/nested-workflow-with-router.mdx @@ -128,4 +128,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/nested_workflow_with_router.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/nested_workflow_with_router.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/nested_workflow_with_router.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/nested_workflow_with_router.py) diff --git a/examples/workflows/advanced-concepts/nested-workflows/nested-workflow.mdx b/examples/workflows/advanced-concepts/nested-workflows/nested-workflow.mdx index 071caddc8..dfcdf295f 100644 --- a/examples/workflows/advanced-concepts/nested-workflows/nested-workflow.mdx +++ b/examples/workflows/advanced-concepts/nested-workflows/nested-workflow.mdx @@ -119,4 +119,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/nested_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/nested_workflow.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/nested_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/nested_workflow.py) diff --git a/examples/workflows/advanced-concepts/previous-step-outputs/access-previous-outputs.mdx b/examples/workflows/advanced-concepts/previous-step-outputs/access-previous-outputs.mdx index 772c9f97d..fa31eaeaf 100644 --- a/examples/workflows/advanced-concepts/previous-step-outputs/access-previous-outputs.mdx +++ b/examples/workflows/advanced-concepts/previous-step-outputs/access-previous-outputs.mdx @@ -225,4 +225,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/previous_step_outputs/access_previous_outputs.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/previous_step_outputs/access_previous_outputs.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/previous_step_outputs/access_previous_outputs.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/previous_step_outputs/access_previous_outputs.py) diff --git a/examples/workflows/advanced-concepts/run-control/cancel-run.mdx b/examples/workflows/advanced-concepts/run-control/cancel-run.mdx index 5d587550e..4a1b85af5 100644 --- a/examples/workflows/advanced-concepts/run-control/cancel-run.mdx +++ b/examples/workflows/advanced-concepts/run-control/cancel-run.mdx @@ -157,7 +157,6 @@ def main() -> None: article_workflow = Workflow( description="Automated article creation from research to writing", steps=[research_step, writing_step], - debug_mode=True, ) print("[START] Starting workflow run cancellation example...") @@ -251,4 +250,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/run_control/cancel_run.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/run_control/cancel_run.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/run_control/cancel_run.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/run_control/cancel_run.py) diff --git a/examples/workflows/advanced-concepts/run-control/deep-copy.mdx b/examples/workflows/advanced-concepts/run-control/deep-copy.mdx index 635724bd2..4e5405816 100644 --- a/examples/workflows/advanced-concepts/run-control/deep-copy.mdx +++ b/examples/workflows/advanced-concepts/run-control/deep-copy.mdx @@ -111,4 +111,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/run_control/deep_copy.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/run_control/deep_copy.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/run_control/deep_copy.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/run_control/deep_copy.py) diff --git a/examples/workflows/advanced-concepts/run-control/event-storage.mdx b/examples/workflows/advanced-concepts/run-control/event-storage.mdx index 6c686eb64..09a15f428 100644 --- a/examples/workflows/advanced-concepts/run-control/event-storage.mdx +++ b/examples/workflows/advanced-concepts/run-control/event-storage.mdx @@ -187,4 +187,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/run_control/event_storage.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/run_control/event_storage.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/run_control/event_storage.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/run_control/event_storage.py) diff --git a/examples/workflows/advanced-concepts/run-control/executor-events.mdx b/examples/workflows/advanced-concepts/run-control/executor-events.mdx index 577272046..80cba4053 100644 --- a/examples/workflows/advanced-concepts/run-control/executor-events.mdx +++ b/examples/workflows/advanced-concepts/run-control/executor-events.mdx @@ -95,4 +95,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/run_control/executor_events.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/run_control/executor_events.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/run_control/executor_events.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/run_control/executor_events.py) diff --git a/examples/workflows/advanced-concepts/run-control/metrics.mdx b/examples/workflows/advanced-concepts/run-control/metrics.mdx index 8d35180f0..a7f931410 100644 --- a/examples/workflows/advanced-concepts/run-control/metrics.mdx +++ b/examples/workflows/advanced-concepts/run-control/metrics.mdx @@ -135,4 +135,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/run_control/metrics.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/run_control/metrics.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/run_control/metrics.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/run_control/metrics.py) diff --git a/examples/workflows/advanced-concepts/run-control/remote-workflow.mdx b/examples/workflows/advanced-concepts/run-control/remote-workflow.mdx index a6677aaf9..b2bff392d 100644 --- a/examples/workflows/advanced-concepts/run-control/remote-workflow.mdx +++ b/examples/workflows/advanced-concepts/run-control/remote-workflow.mdx @@ -128,4 +128,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/run_control/remote_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/run_control/remote_workflow.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/run_control/remote_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/run_control/remote_workflow.py) diff --git a/examples/workflows/advanced-concepts/run-control/workflow-cli.mdx b/examples/workflows/advanced-concepts/run-control/workflow-cli.mdx index 84f701d0f..7004bdfb0 100644 --- a/examples/workflows/advanced-concepts/run-control/workflow-cli.mdx +++ b/examples/workflows/advanced-concepts/run-control/workflow-cli.mdx @@ -99,4 +99,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/run_control/workflow_cli.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/run_control/workflow_cli.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/run_control/workflow_cli.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/run_control/workflow_cli.py) diff --git a/examples/workflows/advanced-concepts/run-control/workflow-serialization.mdx b/examples/workflows/advanced-concepts/run-control/workflow-serialization.mdx index f69c4aa9b..9c060dd8b 100644 --- a/examples/workflows/advanced-concepts/run-control/workflow-serialization.mdx +++ b/examples/workflows/advanced-concepts/run-control/workflow-serialization.mdx @@ -122,4 +122,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/run_control/workflow_serialization.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/run_control/workflow_serialization.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/run_control/workflow_serialization.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/run_control/workflow_serialization.py) diff --git a/examples/workflows/advanced-concepts/run-params/workflow-all-params.mdx b/examples/workflows/advanced-concepts/run-params/workflow-all-params.mdx index ff4adf837..92c74d931 100644 --- a/examples/workflows/advanced-concepts/run-params/workflow-all-params.mdx +++ b/examples/workflows/advanced-concepts/run-params/workflow-all-params.mdx @@ -153,4 +153,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/run_params/workflow_all_params.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/run_params/workflow_all_params.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/run_params/workflow_all_params.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/run_params/workflow_all_params.py) diff --git a/examples/workflows/advanced-concepts/run-params/workflow-dependencies.mdx b/examples/workflows/advanced-concepts/run-params/workflow-dependencies.mdx index 19814240b..76c26b4b6 100644 --- a/examples/workflows/advanced-concepts/run-params/workflow-dependencies.mdx +++ b/examples/workflows/advanced-concepts/run-params/workflow-dependencies.mdx @@ -116,4 +116,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/run_params/workflow_dependencies.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/run_params/workflow_dependencies.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/run_params/workflow_dependencies.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/run_params/workflow_dependencies.py) diff --git a/examples/workflows/advanced-concepts/session-state/job-application-tracker.mdx b/examples/workflows/advanced-concepts/session-state/job-application-tracker.mdx index 201aff95b..72c102bf5 100644 --- a/examples/workflows/advanced-concepts/session-state/job-application-tracker.mdx +++ b/examples/workflows/advanced-concepts/session-state/job-application-tracker.mdx @@ -204,4 +204,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/session_state/job_application_tracker.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/session_state/job_application_tracker.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/session_state/job_application_tracker.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/session_state/job_application_tracker.py) diff --git a/examples/workflows/advanced-concepts/session-state/rename-session.mdx b/examples/workflows/advanced-concepts/session-state/rename-session.mdx index 78081a3f6..43922266f 100644 --- a/examples/workflows/advanced-concepts/session-state/rename-session.mdx +++ b/examples/workflows/advanced-concepts/session-state/rename-session.mdx @@ -67,7 +67,6 @@ if __name__ == "__main__": description="Automated article creation from research to writing", steps=[article_creation_sequence], db=SqliteDb(db_file="tmp/workflows.db"), - debug_mode=True, ) article_workflow.print_response( @@ -110,4 +109,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/session_state/rename_session.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/session_state/rename_session.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/session_state/rename_session.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/session_state/rename_session.py) diff --git a/examples/workflows/advanced-concepts/session-state/state-in-condition.mdx b/examples/workflows/advanced-concepts/session-state/state-in-condition.mdx index 4ae273928..9da713c47 100644 --- a/examples/workflows/advanced-concepts/session-state/state-in-condition.mdx +++ b/examples/workflows/advanced-concepts/session-state/state-in-condition.mdx @@ -29,7 +29,9 @@ def check_user_has_context(step_input: StepInput, run_context: RunContext) -> bo print("\n=== Evaluating Condition ===") print(f"User ID: {run_context.session_state.get('current_user_id')}") print(f"Session ID: {run_context.session_state.get('current_session_id')}") - print(f"Has been greeted: {run_context.session_state.get('has_been_greeted', False)}") + print( + f"Has been greeted: {run_context.session_state.get('has_been_greeted', False)}" + ) return run_context.session_state.get("has_been_greeted", False) @@ -37,7 +39,9 @@ def check_user_has_context(step_input: StepInput, run_context: RunContext) -> bo def mark_user_as_greeted(step_input: StepInput, run_context: RunContext) -> StepOutput: print("\n=== Marking User as Greeted ===") run_context.session_state["has_been_greeted"] = True - run_context.session_state["greeting_count"] = run_context.session_state.get("greeting_count", 0) + 1 + run_context.session_state["greeting_count"] = ( + run_context.session_state.get("greeting_count", 0) + 1 + ) return StepOutput( content=f"User has been greeted. Total greetings: {run_context.session_state['greeting_count']}" @@ -164,4 +168,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/session_state/state_in_condition.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/session_state/state_in_condition.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/session_state/state_in_condition.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/session_state/state_in_condition.py) diff --git a/examples/workflows/advanced-concepts/session-state/state-in-function.mdx b/examples/workflows/advanced-concepts/session-state/state-in-function.mdx index ada6bf875..3ec019eae 100644 --- a/examples/workflows/advanced-concepts/session-state/state-in-function.mdx +++ b/examples/workflows/advanced-concepts/session-state/state-in-function.mdx @@ -154,7 +154,9 @@ def custom_content_planning_function( ) -def content_summary_function(step_input: StepInput, run_context: RunContext) -> StepOutput: +def content_summary_function( + step_input: StepInput, run_context: RunContext +) -> StepOutput: session_state = run_context.session_state if "content_plans" not in session_state or not session_state["content_plans"]: return StepOutput( @@ -273,9 +275,8 @@ def custom_content_planning_function_stream( def content_summary_function_stream( step_input: StepInput, - run_context: RunContext, + session_state: dict, ) -> Iterator[StepOutput]: - session_state = run_context.session_state plans = session_state["content_plans"] summary = f""" @@ -430,4 +431,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/session_state/state_in_function.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/session_state/state_in_function.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/session_state/state_in_function.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/session_state/state_in_function.py) diff --git a/examples/workflows/advanced-concepts/session-state/state-in-router.mdx b/examples/workflows/advanced-concepts/session-state/state-in-router.mdx index ec1478289..4240fb2a6 100644 --- a/examples/workflows/advanced-concepts/session-state/state-in-router.mdx +++ b/examples/workflows/advanced-concepts/session-state/state-in-router.mdx @@ -29,7 +29,9 @@ from agno.workflow.workflow import Workflow # --------------------------------------------------------------------------- # Define Router Functions (Preference-Based Routing) # --------------------------------------------------------------------------- -def route_based_on_user_preference(step_input: StepInput, run_context: RunContext) -> Step: +def route_based_on_user_preference( + step_input: StepInput, run_context: RunContext +) -> Step: print("\n=== Routing Decision ===") print(f"User ID: {run_context.session_state.get('current_user_id')}") print(f"Session ID: {run_context.session_state.get('current_session_id')}") @@ -508,4 +510,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/session_state/state_in_router.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/session_state/state_in_router.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/session_state/state_in_router.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/session_state/state_in_router.py) diff --git a/examples/workflows/advanced-concepts/session-state/state-with-agent.mdx b/examples/workflows/advanced-concepts/session-state/state-with-agent.mdx index fa5dadabd..e2146b1e3 100644 --- a/examples/workflows/advanced-concepts/session-state/state-with-agent.mdx +++ b/examples/workflows/advanced-concepts/session-state/state-with-agent.mdx @@ -192,4 +192,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/session_state/state_with_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/session_state/state_with_agent.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/session_state/state_with_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/session_state/state_with_agent.py) diff --git a/examples/workflows/advanced-concepts/session-state/state-with-team.mdx b/examples/workflows/advanced-concepts/session-state/state-with-team.mdx index 237ba14ef..5618d04ae 100644 --- a/examples/workflows/advanced-concepts/session-state/state-with-team.mdx +++ b/examples/workflows/advanced-concepts/session-state/state-with-team.mdx @@ -320,4 +320,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/session_state/state_with_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/session_state/state_with_team.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/session_state/state_with_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/session_state/state_with_team.py) diff --git a/examples/workflows/advanced-concepts/structured-io/image-input.mdx b/examples/workflows/advanced-concepts/structured-io/image-input.mdx index bfd61313b..42e4bc1ee 100644 --- a/examples/workflows/advanced-concepts/structured-io/image-input.mdx +++ b/examples/workflows/advanced-concepts/structured-io/image-input.mdx @@ -107,4 +107,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/structured_io/image_input.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/structured_io/image_input.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/structured_io/image_input.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/structured_io/image_input.py) diff --git a/examples/workflows/advanced-concepts/structured-io/input-schema.mdx b/examples/workflows/advanced-concepts/structured-io/input-schema.mdx index e0eb8cf61..dca095a6f 100644 --- a/examples/workflows/advanced-concepts/structured-io/input-schema.mdx +++ b/examples/workflows/advanced-concepts/structured-io/input-schema.mdx @@ -195,4 +195,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/structured_io/input_schema.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/structured_io/input_schema.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/structured_io/input_schema.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/structured_io/input_schema.py) diff --git a/examples/workflows/advanced-concepts/structured-io/pydantic-input.mdx b/examples/workflows/advanced-concepts/structured-io/pydantic-input.mdx index 0871507b2..311470c90 100644 --- a/examples/workflows/advanced-concepts/structured-io/pydantic-input.mdx +++ b/examples/workflows/advanced-concepts/structured-io/pydantic-input.mdx @@ -151,4 +151,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/structured_io/pydantic_input.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/structured_io/pydantic_input.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/structured_io/pydantic_input.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/structured_io/pydantic_input.py) diff --git a/examples/workflows/advanced-concepts/structured-io/structured-io-agent.mdx b/examples/workflows/advanced-concepts/structured-io/structured-io-agent.mdx index 5b7193d2d..b432708e6 100644 --- a/examples/workflows/advanced-concepts/structured-io/structured-io-agent.mdx +++ b/examples/workflows/advanced-concepts/structured-io/structured-io-agent.mdx @@ -195,4 +195,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/structured_io/structured_io_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/structured_io/structured_io_agent.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/structured_io/structured_io_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/structured_io/structured_io_agent.py) diff --git a/examples/workflows/advanced-concepts/structured-io/structured-io-function.mdx b/examples/workflows/advanced-concepts/structured-io/structured-io-function.mdx index 5dc3d32fc..deb741a67 100644 --- a/examples/workflows/advanced-concepts/structured-io/structured-io-function.mdx +++ b/examples/workflows/advanced-concepts/structured-io/structured-io-function.mdx @@ -421,4 +421,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/structured_io/structured_io_function.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/structured_io/structured_io_function.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/structured_io/structured_io_function.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/structured_io/structured_io_function.py) diff --git a/examples/workflows/advanced-concepts/structured-io/structured-io-team.mdx b/examples/workflows/advanced-concepts/structured-io/structured-io-team.mdx index ef09056e4..7dfdbe61c 100644 --- a/examples/workflows/advanced-concepts/structured-io/structured-io-team.mdx +++ b/examples/workflows/advanced-concepts/structured-io/structured-io-team.mdx @@ -268,4 +268,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/structured_io/structured_io_team.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/structured_io/structured_io_team.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/structured_io/structured_io_team.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/structured_io/structured_io_team.py) diff --git a/examples/workflows/advanced-concepts/tools/workflow-tools.mdx b/examples/workflows/advanced-concepts/tools/workflow-tools.mdx index 00e64324f..3d5a5f291 100644 --- a/examples/workflows/advanced-concepts/tools/workflow-tools.mdx +++ b/examples/workflows/advanced-concepts/tools/workflow-tools.mdx @@ -159,7 +159,6 @@ if __name__ == "__main__": instructions="When you run the workflow using the `run_workflow` tool, remember to pass `additional_data` as a dictionary of key-value pairs.", markdown=True, stream=True, - debug_mode=True, ) ) ``` @@ -195,4 +194,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/tools/workflow_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/tools/workflow_tools.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/tools/workflow_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/tools/workflow_tools.py) diff --git a/examples/workflows/advanced-concepts/workflow-agent/basic-workflow-agent.mdx b/examples/workflows/advanced-concepts/workflow-agent/basic-workflow-agent.mdx index 538d207eb..0488868c5 100644 --- a/examples/workflows/advanced-concepts/workflow-agent/basic-workflow-agent.mdx +++ b/examples/workflows/advanced-concepts/workflow-agent/basic-workflow-agent.mdx @@ -198,4 +198,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/workflow_agent/basic_workflow_agent.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/workflow_agent/basic_workflow_agent.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/workflow_agent/basic_workflow_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/workflow_agent/basic_workflow_agent.py) diff --git a/examples/workflows/advanced-concepts/workflow-agent/workflow-agent-with-condition.mdx b/examples/workflows/advanced-concepts/workflow-agent/workflow-agent-with-condition.mdx index 4c1c942ae..a90b0859b 100644 --- a/examples/workflows/advanced-concepts/workflow-agent/workflow-agent-with-condition.mdx +++ b/examples/workflows/advanced-concepts/workflow-agent/workflow-agent-with-condition.mdx @@ -179,4 +179,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/06_advanced_concepts/workflow_agent/workflow_agent_with_condition.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/workflow_agent/workflow_agent_with_condition.py) +Full source: [cookbook/04_workflows/06_advanced_concepts/workflow_agent/workflow_agent_with_condition.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/workflow_agent/workflow_agent_with_condition.py) diff --git a/examples/workflows/basic-workflows/function-workflows/function-workflow.mdx b/examples/workflows/basic-workflows/function-workflows/function-workflow.mdx index c63673c52..7bde8105b 100644 --- a/examples/workflows/basic-workflows/function-workflows/function-workflow.mdx +++ b/examples/workflows/basic-workflows/function-workflows/function-workflow.mdx @@ -305,4 +305,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/01_basic_workflows/03_function_workflows/function_workflow.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/01_basic_workflows/03_function_workflows/function_workflow.py) +Full source: [cookbook/04_workflows/01_basic_workflows/03_function_workflows/function_workflow.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/01_basic_workflows/03_function_workflows/function_workflow.py) diff --git a/examples/workflows/basic-workflows/sequence-of-steps/sequence-of-steps.mdx b/examples/workflows/basic-workflows/sequence-of-steps/sequence-of-steps.mdx index 33691c600..0a763b3ab 100644 --- a/examples/workflows/basic-workflows/sequence-of-steps/sequence-of-steps.mdx +++ b/examples/workflows/basic-workflows/sequence-of-steps/sequence-of-steps.mdx @@ -244,4 +244,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/01_basic_workflows/01_sequence_of_steps/sequence_of_steps.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/01_basic_workflows/01_sequence_of_steps/sequence_of_steps.py) +Full source: [cookbook/04_workflows/01_basic_workflows/01_sequence_of_steps/sequence_of_steps.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/01_basic_workflows/01_sequence_of_steps/sequence_of_steps.py) diff --git a/examples/workflows/basic-workflows/sequence-of-steps/sequence-with-functions.mdx b/examples/workflows/basic-workflows/sequence-of-steps/sequence-with-functions.mdx index c11d4e9b2..49de0b06d 100644 --- a/examples/workflows/basic-workflows/sequence-of-steps/sequence-with-functions.mdx +++ b/examples/workflows/basic-workflows/sequence-of-steps/sequence-with-functions.mdx @@ -336,4 +336,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/01_basic_workflows/01_sequence_of_steps/sequence_with_functions.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/01_basic_workflows/01_sequence_of_steps/sequence_with_functions.py) +Full source: [cookbook/04_workflows/01_basic_workflows/01_sequence_of_steps/sequence_with_functions.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/01_basic_workflows/01_sequence_of_steps/sequence_with_functions.py) diff --git a/examples/workflows/basic-workflows/sequence-of-steps/workflow-using-steps-nested.mdx b/examples/workflows/basic-workflows/sequence-of-steps/workflow-using-steps-nested.mdx index 1eb445008..2b7e981ee 100644 --- a/examples/workflows/basic-workflows/sequence-of-steps/workflow-using-steps-nested.mdx +++ b/examples/workflows/basic-workflows/sequence-of-steps/workflow-using-steps-nested.mdx @@ -200,4 +200,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/01_basic_workflows/01_sequence_of_steps/workflow_using_steps_nested.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/01_basic_workflows/01_sequence_of_steps/workflow_using_steps_nested.py) +Full source: [cookbook/04_workflows/01_basic_workflows/01_sequence_of_steps/workflow_using_steps_nested.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/01_basic_workflows/01_sequence_of_steps/workflow_using_steps_nested.py) diff --git a/examples/workflows/basic-workflows/sequence-of-steps/workflow-using-steps.mdx b/examples/workflows/basic-workflows/sequence-of-steps/workflow-using-steps.mdx index 3042299f2..a94b5eb7e 100644 --- a/examples/workflows/basic-workflows/sequence-of-steps/workflow-using-steps.mdx +++ b/examples/workflows/basic-workflows/sequence-of-steps/workflow-using-steps.mdx @@ -129,4 +129,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/01_basic_workflows/01_sequence_of_steps/workflow_using_steps.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/01_basic_workflows/01_sequence_of_steps/workflow_using_steps.py) +Full source: [cookbook/04_workflows/01_basic_workflows/01_sequence_of_steps/workflow_using_steps.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/01_basic_workflows/01_sequence_of_steps/workflow_using_steps.py) diff --git a/examples/workflows/basic-workflows/sequence-of-steps/workflow-with-file-input.mdx b/examples/workflows/basic-workflows/sequence-of-steps/workflow-with-file-input.mdx index fe0eabedf..390120199 100644 --- a/examples/workflows/basic-workflows/sequence-of-steps/workflow-with-file-input.mdx +++ b/examples/workflows/basic-workflows/sequence-of-steps/workflow-with-file-input.mdx @@ -109,4 +109,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/01_basic_workflows/01_sequence_of_steps/workflow_with_file_input.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/01_basic_workflows/01_sequence_of_steps/workflow_with_file_input.py) +Full source: [cookbook/04_workflows/01_basic_workflows/01_sequence_of_steps/workflow_with_file_input.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/01_basic_workflows/01_sequence_of_steps/workflow_with_file_input.py) diff --git a/examples/workflows/basic-workflows/sequence-of-steps/workflow-with-session-metrics.mdx b/examples/workflows/basic-workflows/sequence-of-steps/workflow-with-session-metrics.mdx index 394f95c0b..4fd668e7f 100644 --- a/examples/workflows/basic-workflows/sequence-of-steps/workflow-with-session-metrics.mdx +++ b/examples/workflows/basic-workflows/sequence-of-steps/workflow-with-session-metrics.mdx @@ -136,4 +136,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/01_basic_workflows/01_sequence_of_steps/workflow_with_session_metrics.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/01_basic_workflows/01_sequence_of_steps/workflow_with_session_metrics.py) +Full source: [cookbook/04_workflows/01_basic_workflows/01_sequence_of_steps/workflow_with_session_metrics.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/01_basic_workflows/01_sequence_of_steps/workflow_with_session_metrics.py) diff --git a/examples/workflows/basic-workflows/step-with-function/step-with-additional-data.mdx b/examples/workflows/basic-workflows/step-with-function/step-with-additional-data.mdx index 15a28f53b..4850f10f4 100644 --- a/examples/workflows/basic-workflows/step-with-function/step-with-additional-data.mdx +++ b/examples/workflows/basic-workflows/step-with-function/step-with-additional-data.mdx @@ -305,4 +305,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/01_basic_workflows/02_step_with_function/step_with_additional_data.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/01_basic_workflows/02_step_with_function/step_with_additional_data.py) +Full source: [cookbook/04_workflows/01_basic_workflows/02_step_with_function/step_with_additional_data.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/01_basic_workflows/02_step_with_function/step_with_additional_data.py) diff --git a/examples/workflows/basic-workflows/step-with-function/step-with-class.mdx b/examples/workflows/basic-workflows/step-with-function/step-with-class.mdx index acde77d77..f20df78a8 100644 --- a/examples/workflows/basic-workflows/step-with-function/step-with-class.mdx +++ b/examples/workflows/basic-workflows/step-with-function/step-with-class.mdx @@ -272,4 +272,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/01_basic_workflows/02_step_with_function/step_with_class.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/01_basic_workflows/02_step_with_function/step_with_class.py) +Full source: [cookbook/04_workflows/01_basic_workflows/02_step_with_function/step_with_class.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/01_basic_workflows/02_step_with_function/step_with_class.py) diff --git a/examples/workflows/basic-workflows/step-with-function/step-with-function.mdx b/examples/workflows/basic-workflows/step-with-function/step-with-function.mdx index a6b010bd3..03ecf18f0 100644 --- a/examples/workflows/basic-workflows/step-with-function/step-with-function.mdx +++ b/examples/workflows/basic-workflows/step-with-function/step-with-function.mdx @@ -346,4 +346,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/01_basic_workflows/02_step_with_function/step_with_function.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/01_basic_workflows/02_step_with_function/step_with_function.py) +Full source: [cookbook/04_workflows/01_basic_workflows/02_step_with_function/step_with_function.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/01_basic_workflows/02_step_with_function/step_with_function.py) diff --git a/examples/workflows/cel-expressions/condition/cel-additional-data.mdx b/examples/workflows/cel-expressions/condition/cel-additional-data.mdx index be4f6dbc0..2ba74a5c5 100644 --- a/examples/workflows/cel-expressions/condition/cel-additional-data.mdx +++ b/examples/workflows/cel-expressions/condition/cel-additional-data.mdx @@ -111,4 +111,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/07_cel_expressions/condition/cel_additional_data.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/07_cel_expressions/condition/cel_additional_data.py) +Full source: [cookbook/04_workflows/07_cel_expressions/condition/cel_additional_data.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/07_cel_expressions/condition/cel_additional_data.py) diff --git a/examples/workflows/cel-expressions/condition/cel-basic.mdx b/examples/workflows/cel-expressions/condition/cel-basic.mdx index bd14cc705..0cc2e8e6a 100644 --- a/examples/workflows/cel-expressions/condition/cel-basic.mdx +++ b/examples/workflows/cel-expressions/condition/cel-basic.mdx @@ -107,4 +107,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/07_cel_expressions/condition/cel_basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/07_cel_expressions/condition/cel_basic.py) +Full source: [cookbook/04_workflows/07_cel_expressions/condition/cel_basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/07_cel_expressions/condition/cel_basic.py) diff --git a/examples/workflows/cel-expressions/condition/cel-previous-step-outputs.mdx b/examples/workflows/cel-expressions/condition/cel-previous-step-outputs.mdx index 8c5aad2af..0a6c81a24 100644 --- a/examples/workflows/cel-expressions/condition/cel-previous-step-outputs.mdx +++ b/examples/workflows/cel-expressions/condition/cel-previous-step-outputs.mdx @@ -114,4 +114,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/07_cel_expressions/condition/cel_previous_step_outputs.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/07_cel_expressions/condition/cel_previous_step_outputs.py) +Full source: [cookbook/04_workflows/07_cel_expressions/condition/cel_previous_step_outputs.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/07_cel_expressions/condition/cel_previous_step_outputs.py) diff --git a/examples/workflows/cel-expressions/condition/cel-previous-step.mdx b/examples/workflows/cel-expressions/condition/cel-previous-step.mdx index 292841450..613ec96ea 100644 --- a/examples/workflows/cel-expressions/condition/cel-previous-step.mdx +++ b/examples/workflows/cel-expressions/condition/cel-previous-step.mdx @@ -118,4 +118,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/07_cel_expressions/condition/cel_previous_step.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/07_cel_expressions/condition/cel_previous_step.py) +Full source: [cookbook/04_workflows/07_cel_expressions/condition/cel_previous_step.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/07_cel_expressions/condition/cel_previous_step.py) diff --git a/examples/workflows/cel-expressions/condition/cel-session-state.mdx b/examples/workflows/cel-expressions/condition/cel-session-state.mdx index 21808c2a6..a9140d423 100644 --- a/examples/workflows/cel-expressions/condition/cel-session-state.mdx +++ b/examples/workflows/cel-expressions/condition/cel-session-state.mdx @@ -140,4 +140,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/07_cel_expressions/condition/cel_session_state.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/07_cel_expressions/condition/cel_session_state.py) +Full source: [cookbook/04_workflows/07_cel_expressions/condition/cel_session_state.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/07_cel_expressions/condition/cel_session_state.py) diff --git a/examples/workflows/cel-expressions/loop/cel-compound-exit.mdx b/examples/workflows/cel-expressions/loop/cel-compound-exit.mdx index 0081cc460..64db3d37b 100644 --- a/examples/workflows/cel-expressions/loop/cel-compound-exit.mdx +++ b/examples/workflows/cel-expressions/loop/cel-compound-exit.mdx @@ -104,4 +104,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/07_cel_expressions/loop/cel_compound_exit.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/07_cel_expressions/loop/cel_compound_exit.py) +Full source: [cookbook/04_workflows/07_cel_expressions/loop/cel_compound_exit.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/07_cel_expressions/loop/cel_compound_exit.py) diff --git a/examples/workflows/cel-expressions/loop/cel-content-keyword.mdx b/examples/workflows/cel-expressions/loop/cel-content-keyword.mdx index 5bfa4c2d5..8e04509bf 100644 --- a/examples/workflows/cel-expressions/loop/cel-content-keyword.mdx +++ b/examples/workflows/cel-expressions/loop/cel-content-keyword.mdx @@ -99,4 +99,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/07_cel_expressions/loop/cel_content_keyword.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/07_cel_expressions/loop/cel_content_keyword.py) +Full source: [cookbook/04_workflows/07_cel_expressions/loop/cel_content_keyword.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/07_cel_expressions/loop/cel_content_keyword.py) diff --git a/examples/workflows/cel-expressions/loop/cel-iteration-limit.mdx b/examples/workflows/cel-expressions/loop/cel-iteration-limit.mdx index 68bf13eb4..7733ab45f 100644 --- a/examples/workflows/cel-expressions/loop/cel-iteration-limit.mdx +++ b/examples/workflows/cel-expressions/loop/cel-iteration-limit.mdx @@ -97,4 +97,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/07_cel_expressions/loop/cel_iteration_limit.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/07_cel_expressions/loop/cel_iteration_limit.py) +Full source: [cookbook/04_workflows/07_cel_expressions/loop/cel_iteration_limit.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/07_cel_expressions/loop/cel_iteration_limit.py) diff --git a/examples/workflows/cel-expressions/loop/cel-step-outputs-check.mdx b/examples/workflows/cel-expressions/loop/cel-step-outputs-check.mdx index ff5e6e79d..47dccffd7 100644 --- a/examples/workflows/cel-expressions/loop/cel-step-outputs-check.mdx +++ b/examples/workflows/cel-expressions/loop/cel-step-outputs-check.mdx @@ -108,4 +108,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/07_cel_expressions/loop/cel_step_outputs_check.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/07_cel_expressions/loop/cel_step_outputs_check.py) +Full source: [cookbook/04_workflows/07_cel_expressions/loop/cel_step_outputs_check.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/07_cel_expressions/loop/cel_step_outputs_check.py) diff --git a/examples/workflows/cel-expressions/router/cel-additional-data-route.mdx b/examples/workflows/cel-expressions/router/cel-additional-data-route.mdx index 11bbdcbaa..a0f5337b6 100644 --- a/examples/workflows/cel-expressions/router/cel-additional-data-route.mdx +++ b/examples/workflows/cel-expressions/router/cel-additional-data-route.mdx @@ -118,4 +118,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/07_cel_expressions/router/cel_additional_data_route.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/07_cel_expressions/router/cel_additional_data_route.py) +Full source: [cookbook/04_workflows/07_cel_expressions/router/cel_additional_data_route.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/07_cel_expressions/router/cel_additional_data_route.py) diff --git a/examples/workflows/cel-expressions/router/cel-previous-step-route.mdx b/examples/workflows/cel-expressions/router/cel-previous-step-route.mdx index b492d2c40..897aa76a9 100644 --- a/examples/workflows/cel-expressions/router/cel-previous-step-route.mdx +++ b/examples/workflows/cel-expressions/router/cel-previous-step-route.mdx @@ -128,4 +128,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/07_cel_expressions/router/cel_previous_step_route.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/07_cel_expressions/router/cel_previous_step_route.py) +Full source: [cookbook/04_workflows/07_cel_expressions/router/cel_previous_step_route.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/07_cel_expressions/router/cel_previous_step_route.py) diff --git a/examples/workflows/cel-expressions/router/cel-session-state-route.mdx b/examples/workflows/cel-expressions/router/cel-session-state-route.mdx index 8e05ec43f..72e8a4b4f 100644 --- a/examples/workflows/cel-expressions/router/cel-session-state-route.mdx +++ b/examples/workflows/cel-expressions/router/cel-session-state-route.mdx @@ -107,4 +107,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/07_cel_expressions/router/cel_session_state_route.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/07_cel_expressions/router/cel_session_state_route.py) +Full source: [cookbook/04_workflows/07_cel_expressions/router/cel_session_state_route.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/07_cel_expressions/router/cel_session_state_route.py) diff --git a/examples/workflows/cel-expressions/router/cel-ternary.mdx b/examples/workflows/cel-expressions/router/cel-ternary.mdx index da3134e0e..7de7a0db0 100644 --- a/examples/workflows/cel-expressions/router/cel-ternary.mdx +++ b/examples/workflows/cel-expressions/router/cel-ternary.mdx @@ -104,4 +104,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/07_cel_expressions/router/cel_ternary.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/07_cel_expressions/router/cel_ternary.py) +Full source: [cookbook/04_workflows/07_cel_expressions/router/cel_ternary.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/07_cel_expressions/router/cel_ternary.py) diff --git a/examples/workflows/cel-expressions/router/cel-using-step-choices.mdx b/examples/workflows/cel-expressions/router/cel-using-step-choices.mdx index 435a99247..66b884a93 100644 --- a/examples/workflows/cel-expressions/router/cel-using-step-choices.mdx +++ b/examples/workflows/cel-expressions/router/cel-using-step-choices.mdx @@ -116,4 +116,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/07_cel_expressions/router/cel_using_step_choices.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/07_cel_expressions/router/cel_using_step_choices.py) +Full source: [cookbook/04_workflows/07_cel_expressions/router/cel_using_step_choices.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/07_cel_expressions/router/cel_using_step_choices.py) diff --git a/examples/workflows/conditional-branching/loop-in-choices.mdx b/examples/workflows/conditional-branching/loop-in-choices.mdx index ec123d81c..07dc62d17 100644 --- a/examples/workflows/conditional-branching/loop-in-choices.mdx +++ b/examples/workflows/conditional-branching/loop-in-choices.mdx @@ -123,4 +123,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/05_conditional_branching/loop_in_choices.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/05_conditional_branching/loop_in_choices.py) +Full source: [cookbook/04_workflows/05_conditional_branching/loop_in_choices.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/05_conditional_branching/loop_in_choices.py) diff --git a/examples/workflows/conditional-branching/nested-choices.mdx b/examples/workflows/conditional-branching/nested-choices.mdx index 8b938cc00..e740a3238 100644 --- a/examples/workflows/conditional-branching/nested-choices.mdx +++ b/examples/workflows/conditional-branching/nested-choices.mdx @@ -97,4 +97,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/05_conditional_branching/nested_choices.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/05_conditional_branching/nested_choices.py) +Full source: [cookbook/04_workflows/05_conditional_branching/nested_choices.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/05_conditional_branching/nested_choices.py) diff --git a/examples/workflows/conditional-branching/router-basic.mdx b/examples/workflows/conditional-branching/router-basic.mdx index c9aaa0f63..430bb9593 100644 --- a/examples/workflows/conditional-branching/router-basic.mdx +++ b/examples/workflows/conditional-branching/router-basic.mdx @@ -178,4 +178,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/05_conditional_branching/router_basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/05_conditional_branching/router_basic.py) +Full source: [cookbook/04_workflows/05_conditional_branching/router_basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/05_conditional_branching/router_basic.py) diff --git a/examples/workflows/conditional-branching/router-with-loop.mdx b/examples/workflows/conditional-branching/router-with-loop.mdx index ebb8840c2..792fb3fbd 100644 --- a/examples/workflows/conditional-branching/router-with-loop.mdx +++ b/examples/workflows/conditional-branching/router-with-loop.mdx @@ -192,4 +192,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/05_conditional_branching/router_with_loop.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/05_conditional_branching/router_with_loop.py) +Full source: [cookbook/04_workflows/05_conditional_branching/router_with_loop.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/05_conditional_branching/router_with_loop.py) diff --git a/examples/workflows/conditional-branching/selector-media-pipeline.mdx b/examples/workflows/conditional-branching/selector-media-pipeline.mdx index a27a0f695..8959dd2bc 100644 --- a/examples/workflows/conditional-branching/selector-media-pipeline.mdx +++ b/examples/workflows/conditional-branching/selector-media-pipeline.mdx @@ -239,4 +239,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/05_conditional_branching/selector_media_pipeline.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/05_conditional_branching/selector_media_pipeline.py) +Full source: [cookbook/04_workflows/05_conditional_branching/selector_media_pipeline.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/05_conditional_branching/selector_media_pipeline.py) diff --git a/examples/workflows/conditional-branching/selector-types.mdx b/examples/workflows/conditional-branching/selector-types.mdx index c9c6830ab..d3a2aa5de 100644 --- a/examples/workflows/conditional-branching/selector-types.mdx +++ b/examples/workflows/conditional-branching/selector-types.mdx @@ -214,4 +214,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/05_conditional_branching/selector_types.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/05_conditional_branching/selector_types.py) +Full source: [cookbook/04_workflows/05_conditional_branching/selector_types.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/05_conditional_branching/selector_types.py) diff --git a/examples/workflows/conditional-branching/step-choices-parameter.mdx b/examples/workflows/conditional-branching/step-choices-parameter.mdx index 383c8b4e4..f7da2de26 100644 --- a/examples/workflows/conditional-branching/step-choices-parameter.mdx +++ b/examples/workflows/conditional-branching/step-choices-parameter.mdx @@ -118,4 +118,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/05_conditional_branching/step_choices_parameter.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/05_conditional_branching/step_choices_parameter.py) +Full source: [cookbook/04_workflows/05_conditional_branching/step_choices_parameter.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/05_conditional_branching/step_choices_parameter.py) diff --git a/examples/workflows/conditional-branching/string-selector.mdx b/examples/workflows/conditional-branching/string-selector.mdx index d1b809857..4c04187a5 100644 --- a/examples/workflows/conditional-branching/string-selector.mdx +++ b/examples/workflows/conditional-branching/string-selector.mdx @@ -117,4 +117,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/05_conditional_branching/string_selector.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/05_conditional_branching/string_selector.py) +Full source: [cookbook/04_workflows/05_conditional_branching/string_selector.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/05_conditional_branching/string_selector.py) diff --git a/examples/workflows/conditional-execution/condition-basic.mdx b/examples/workflows/conditional-execution/condition-basic.mdx index 2c569c49d..1ad0f1d94 100644 --- a/examples/workflows/conditional-execution/condition-basic.mdx +++ b/examples/workflows/conditional-execution/condition-basic.mdx @@ -175,4 +175,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/02_conditional_execution/condition_basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/02_conditional_execution/condition_basic.py) +Full source: [cookbook/04_workflows/02_conditional_execution/condition_basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/02_conditional_execution/condition_basic.py) diff --git a/examples/workflows/conditional-execution/condition-with-else.mdx b/examples/workflows/conditional-execution/condition-with-else.mdx index 030de9c5e..3b88d9c9c 100644 --- a/examples/workflows/conditional-execution/condition-with-else.mdx +++ b/examples/workflows/conditional-execution/condition-with-else.mdx @@ -207,4 +207,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/02_conditional_execution/condition_with_else.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/02_conditional_execution/condition_with_else.py) +Full source: [cookbook/04_workflows/02_conditional_execution/condition_with_else.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/02_conditional_execution/condition_with_else.py) diff --git a/examples/workflows/conditional-execution/condition-with-list.mdx b/examples/workflows/conditional-execution/condition-with-list.mdx index d1b0b12cf..d257cf761 100644 --- a/examples/workflows/conditional-execution/condition-with-list.mdx +++ b/examples/workflows/conditional-execution/condition-with-list.mdx @@ -209,4 +209,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/02_conditional_execution/condition_with_list.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/02_conditional_execution/condition_with_list.py) +Full source: [cookbook/04_workflows/02_conditional_execution/condition_with_list.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/02_conditional_execution/condition_with_list.py) diff --git a/examples/workflows/conditional-execution/condition-with-parallel.mdx b/examples/workflows/conditional-execution/condition-with-parallel.mdx index e268ff3ce..b3f89c50b 100644 --- a/examples/workflows/conditional-execution/condition-with-parallel.mdx +++ b/examples/workflows/conditional-execution/condition-with-parallel.mdx @@ -232,4 +232,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/02_conditional_execution/condition_with_parallel.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/02_conditional_execution/condition_with_parallel.py) +Full source: [cookbook/04_workflows/02_conditional_execution/condition_with_parallel.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/02_conditional_execution/condition_with_parallel.py) diff --git a/examples/workflows/human-in-the-loop/condition/condition-on-error.mdx b/examples/workflows/human-in-the-loop/condition/condition-on-error.mdx index d507f9d69..de6087f22 100644 --- a/examples/workflows/human-in-the-loop/condition/condition-on-error.mdx +++ b/examples/workflows/human-in-the-loop/condition/condition-on-error.mdx @@ -196,4 +196,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/condition/02_condition_on_error.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/condition/02_condition_on_error.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/condition/02_condition_on_error.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/condition/02_condition_on_error.py) diff --git a/examples/workflows/human-in-the-loop/condition/condition-user-decision.mdx b/examples/workflows/human-in-the-loop/condition/condition-user-decision.mdx index 02699a1e7..4fce70ca7 100644 --- a/examples/workflows/human-in-the-loop/condition/condition-user-decision.mdx +++ b/examples/workflows/human-in-the-loop/condition/condition-user-decision.mdx @@ -235,4 +235,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/condition/01_condition_user_decision.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/condition/01_condition_user_decision.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/condition/01_condition_user_decision.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/condition/01_condition_user_decision.py) diff --git a/examples/workflows/human-in-the-loop/confirmation/async-step-confirmation.mdx b/examples/workflows/human-in-the-loop/confirmation/async-step-confirmation.mdx index 6f1a94280..ab10bd75b 100644 --- a/examples/workflows/human-in-the-loop/confirmation/async-step-confirmation.mdx +++ b/examples/workflows/human-in-the-loop/confirmation/async-step-confirmation.mdx @@ -158,4 +158,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/confirmation/04_async_step_confirmation.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/confirmation/04_async_step_confirmation.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/confirmation/04_async_step_confirmation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/confirmation/04_async_step_confirmation.py) diff --git a/examples/workflows/human-in-the-loop/confirmation/basic-step-confirmation.mdx b/examples/workflows/human-in-the-loop/confirmation/basic-step-confirmation.mdx index 9c1647cde..96e194bcf 100644 --- a/examples/workflows/human-in-the-loop/confirmation/basic-step-confirmation.mdx +++ b/examples/workflows/human-in-the-loop/confirmation/basic-step-confirmation.mdx @@ -123,4 +123,4 @@ print(f"\nFinal output: {run_output.content}") -Full source: [cookbook/04_workflows/08_human_in_the_loop/confirmation/01_basic_step_confirmation.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/confirmation/01_basic_step_confirmation.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/confirmation/01_basic_step_confirmation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/confirmation/01_basic_step_confirmation.py) diff --git a/examples/workflows/human-in-the-loop/confirmation/custom-function-step-confirmation.mdx b/examples/workflows/human-in-the-loop/confirmation/custom-function-step-confirmation.mdx index a7e72618c..d60e856f8 100644 --- a/examples/workflows/human-in-the-loop/confirmation/custom-function-step-confirmation.mdx +++ b/examples/workflows/human-in-the-loop/confirmation/custom-function-step-confirmation.mdx @@ -150,4 +150,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/confirmation/02_custom_function_step_confirmation.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/confirmation/02_custom_function_step_confirmation.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/confirmation/02_custom_function_step_confirmation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/confirmation/02_custom_function_step_confirmation.py) diff --git a/examples/workflows/human-in-the-loop/confirmation/step-confirmation-streaming.mdx b/examples/workflows/human-in-the-loop/confirmation/step-confirmation-streaming.mdx index ccf2ade60..6befe23c2 100644 --- a/examples/workflows/human-in-the-loop/confirmation/step-confirmation-streaming.mdx +++ b/examples/workflows/human-in-the-loop/confirmation/step-confirmation-streaming.mdx @@ -225,4 +225,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/confirmation/03_step_confirmation_streaming.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/confirmation/03_step_confirmation_streaming.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/confirmation/03_step_confirmation_streaming.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/confirmation/03_step_confirmation_streaming.py) diff --git a/examples/workflows/human-in-the-loop/confirmation/step-continued-event.mdx b/examples/workflows/human-in-the-loop/confirmation/step-continued-event.mdx index 89324163c..300dbfb69 100644 --- a/examples/workflows/human-in-the-loop/confirmation/step-continued-event.mdx +++ b/examples/workflows/human-in-the-loop/confirmation/step-continued-event.mdx @@ -161,4 +161,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/confirmation/04_step_continued_event.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/confirmation/04_step_continued_event.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/confirmation/04_step_continued_event.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/confirmation/04_step_continued_event.py) diff --git a/examples/workflows/human-in-the-loop/decision-tree/decision-tree.mdx b/examples/workflows/human-in-the-loop/decision-tree/decision-tree.mdx index bb954c21a..4435325b7 100644 --- a/examples/workflows/human-in-the-loop/decision-tree/decision-tree.mdx +++ b/examples/workflows/human-in-the-loop/decision-tree/decision-tree.mdx @@ -154,4 +154,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/decision_tree/01_decision_tree.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/decision_tree/01_decision_tree.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/decision_tree/01_decision_tree.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/decision_tree/01_decision_tree.py) diff --git a/examples/workflows/human-in-the-loop/decision-tree/multi-component-decision-tree.mdx b/examples/workflows/human-in-the-loop/decision-tree/multi-component-decision-tree.mdx index f626ec1cc..67ca791e6 100644 --- a/examples/workflows/human-in-the-loop/decision-tree/multi-component-decision-tree.mdx +++ b/examples/workflows/human-in-the-loop/decision-tree/multi-component-decision-tree.mdx @@ -143,4 +143,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/decision_tree/02_multi_component_decision_tree.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/decision_tree/02_multi_component_decision_tree.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/decision_tree/02_multi_component_decision_tree.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/decision_tree/02_multi_component_decision_tree.py) diff --git a/examples/workflows/human-in-the-loop/dual-level-hitl/condition-and-tool-confirmation.mdx b/examples/workflows/human-in-the-loop/dual-level-hitl/condition-and-tool-confirmation.mdx index 7d2055c28..1295432ce 100644 --- a/examples/workflows/human-in-the-loop/dual-level-hitl/condition-and-tool-confirmation.mdx +++ b/examples/workflows/human-in-the-loop/dual-level-hitl/condition-and-tool-confirmation.mdx @@ -252,4 +252,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/03_condition_and_tool_confirmation.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/03_condition_and_tool_confirmation.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/03_condition_and_tool_confirmation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/03_condition_and_tool_confirmation.py) diff --git a/examples/workflows/human-in-the-loop/dual-level-hitl/loop-confirmation-and-tool-confirmation.mdx b/examples/workflows/human-in-the-loop/dual-level-hitl/loop-confirmation-and-tool-confirmation.mdx index c1d54db3b..b63a1f0d5 100644 --- a/examples/workflows/human-in-the-loop/dual-level-hitl/loop-confirmation-and-tool-confirmation.mdx +++ b/examples/workflows/human-in-the-loop/dual-level-hitl/loop-confirmation-and-tool-confirmation.mdx @@ -233,4 +233,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/06_loop_confirmation_and_tool_confirmation.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/06_loop_confirmation_and_tool_confirmation.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/06_loop_confirmation_and_tool_confirmation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/06_loop_confirmation_and_tool_confirmation.py) diff --git a/examples/workflows/human-in-the-loop/dual-level-hitl/multi-step-mixed-hitl.mdx b/examples/workflows/human-in-the-loop/dual-level-hitl/multi-step-mixed-hitl.mdx index a57e7db83..480e93969 100644 --- a/examples/workflows/human-in-the-loop/dual-level-hitl/multi-step-mixed-hitl.mdx +++ b/examples/workflows/human-in-the-loop/dual-level-hitl/multi-step-mixed-hitl.mdx @@ -381,4 +381,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/09_multi_step_mixed_hitl.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/09_multi_step_mixed_hitl.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/09_multi_step_mixed_hitl.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/09_multi_step_mixed_hitl.py) diff --git a/examples/workflows/human-in-the-loop/dual-level-hitl/output-review-and-tool-confirmation.mdx b/examples/workflows/human-in-the-loop/dual-level-hitl/output-review-and-tool-confirmation.mdx index a98f5c6d9..fa4816d46 100644 --- a/examples/workflows/human-in-the-loop/dual-level-hitl/output-review-and-tool-confirmation.mdx +++ b/examples/workflows/human-in-the-loop/dual-level-hitl/output-review-and-tool-confirmation.mdx @@ -251,4 +251,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/05_output_review_and_tool_confirmation.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/05_output_review_and_tool_confirmation.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/05_output_review_and_tool_confirmation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/05_output_review_and_tool_confirmation.py) diff --git a/examples/workflows/human-in-the-loop/dual-level-hitl/router-confirmation-and-tool-confirmation.mdx b/examples/workflows/human-in-the-loop/dual-level-hitl/router-confirmation-and-tool-confirmation.mdx index f0c122f45..a2a52219e 100644 --- a/examples/workflows/human-in-the-loop/dual-level-hitl/router-confirmation-and-tool-confirmation.mdx +++ b/examples/workflows/human-in-the-loop/dual-level-hitl/router-confirmation-and-tool-confirmation.mdx @@ -246,4 +246,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/07_router_confirmation_and_tool_confirmation.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/07_router_confirmation_and_tool_confirmation.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/07_router_confirmation_and_tool_confirmation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/07_router_confirmation_and_tool_confirmation.py) diff --git a/examples/workflows/human-in-the-loop/dual-level-hitl/router-selection-and-tool-confirmation.mdx b/examples/workflows/human-in-the-loop/dual-level-hitl/router-selection-and-tool-confirmation.mdx index 4c6c3f494..6187206bf 100644 --- a/examples/workflows/human-in-the-loop/dual-level-hitl/router-selection-and-tool-confirmation.mdx +++ b/examples/workflows/human-in-the-loop/dual-level-hitl/router-selection-and-tool-confirmation.mdx @@ -259,4 +259,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/04_router_selection_and_tool_confirmation.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/04_router_selection_and_tool_confirmation.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/04_router_selection_and_tool_confirmation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/04_router_selection_and_tool_confirmation.py) diff --git a/examples/workflows/human-in-the-loop/dual-level-hitl/step-confirmation-and-tool-confirmation.mdx b/examples/workflows/human-in-the-loop/dual-level-hitl/step-confirmation-and-tool-confirmation.mdx index 084cece1a..7846d406a 100644 --- a/examples/workflows/human-in-the-loop/dual-level-hitl/step-confirmation-and-tool-confirmation.mdx +++ b/examples/workflows/human-in-the-loop/dual-level-hitl/step-confirmation-and-tool-confirmation.mdx @@ -222,4 +222,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/01_step_confirmation_and_tool_confirmation.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/01_step_confirmation_and_tool_confirmation.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/01_step_confirmation_and_tool_confirmation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/01_step_confirmation_and_tool_confirmation.py) diff --git a/examples/workflows/human-in-the-loop/dual-level-hitl/step-user-input-and-tool-confirmation.mdx b/examples/workflows/human-in-the-loop/dual-level-hitl/step-user-input-and-tool-confirmation.mdx index 4ad9ca86f..a4a7382aa 100644 --- a/examples/workflows/human-in-the-loop/dual-level-hitl/step-user-input-and-tool-confirmation.mdx +++ b/examples/workflows/human-in-the-loop/dual-level-hitl/step-user-input-and-tool-confirmation.mdx @@ -230,4 +230,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/02_step_user_input_and_tool_confirmation.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/02_step_user_input_and_tool_confirmation.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/02_step_user_input_and_tool_confirmation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/02_step_user_input_and_tool_confirmation.py) diff --git a/examples/workflows/human-in-the-loop/error/error-retry-skip-streaming.mdx b/examples/workflows/human-in-the-loop/error/error-retry-skip-streaming.mdx index da18a1cc0..e3834166b 100644 --- a/examples/workflows/human-in-the-loop/error/error-retry-skip-streaming.mdx +++ b/examples/workflows/human-in-the-loop/error/error-retry-skip-streaming.mdx @@ -226,4 +226,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/error/02_error_retry_skip_streaming.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/error/02_error_retry_skip_streaming.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/error/02_error_retry_skip_streaming.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/error/02_error_retry_skip_streaming.py) diff --git a/examples/workflows/human-in-the-loop/error/error-retry-skip.mdx b/examples/workflows/human-in-the-loop/error/error-retry-skip.mdx index ddcde2352..bd896e9d6 100644 --- a/examples/workflows/human-in-the-loop/error/error-retry-skip.mdx +++ b/examples/workflows/human-in-the-loop/error/error-retry-skip.mdx @@ -159,4 +159,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/error/01_error_retry_skip.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/error/01_error_retry_skip.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/error/01_error_retry_skip.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/error/01_error_retry_skip.py) diff --git a/examples/workflows/human-in-the-loop/executor-hitl/agent-confirmation-in-condition-step.mdx b/examples/workflows/human-in-the-loop/executor-hitl/agent-confirmation-in-condition-step.mdx index 7685b35e7..0cb29314a 100644 --- a/examples/workflows/human-in-the-loop/executor-hitl/agent-confirmation-in-condition-step.mdx +++ b/examples/workflows/human-in-the-loop/executor-hitl/agent-confirmation-in-condition-step.mdx @@ -238,4 +238,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/executor_hitl/04_agent_confirmation_in_condition_step.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/executor_hitl/04_agent_confirmation_in_condition_step.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/executor_hitl/04_agent_confirmation_in_condition_step.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/executor_hitl/04_agent_confirmation_in_condition_step.py) diff --git a/examples/workflows/human-in-the-loop/executor-hitl/agent-confirmation-in-loop-step.mdx b/examples/workflows/human-in-the-loop/executor-hitl/agent-confirmation-in-loop-step.mdx index 0d28af73e..6ed7436ea 100644 --- a/examples/workflows/human-in-the-loop/executor-hitl/agent-confirmation-in-loop-step.mdx +++ b/examples/workflows/human-in-the-loop/executor-hitl/agent-confirmation-in-loop-step.mdx @@ -233,4 +233,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/executor_hitl/05_agent_confirmation_in_loop_step.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/executor_hitl/05_agent_confirmation_in_loop_step.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/executor_hitl/05_agent_confirmation_in_loop_step.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/executor_hitl/05_agent_confirmation_in_loop_step.py) diff --git a/examples/workflows/human-in-the-loop/executor-hitl/agent-confirmation-in-router-step.mdx b/examples/workflows/human-in-the-loop/executor-hitl/agent-confirmation-in-router-step.mdx index 0caa383ea..c0b20f13f 100644 --- a/examples/workflows/human-in-the-loop/executor-hitl/agent-confirmation-in-router-step.mdx +++ b/examples/workflows/human-in-the-loop/executor-hitl/agent-confirmation-in-router-step.mdx @@ -250,4 +250,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/executor_hitl/07_agent_confirmation_in_router_step.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/executor_hitl/07_agent_confirmation_in_router_step.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/executor_hitl/07_agent_confirmation_in_router_step.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/executor_hitl/07_agent_confirmation_in_router_step.py) diff --git a/examples/workflows/human-in-the-loop/executor-hitl/agent-confirmation-in-steps-container.mdx b/examples/workflows/human-in-the-loop/executor-hitl/agent-confirmation-in-steps-container.mdx index 3747a9fd8..80039986d 100644 --- a/examples/workflows/human-in-the-loop/executor-hitl/agent-confirmation-in-steps-container.mdx +++ b/examples/workflows/human-in-the-loop/executor-hitl/agent-confirmation-in-steps-container.mdx @@ -243,4 +243,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/executor_hitl/06_agent_confirmation_in_steps_container.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/executor_hitl/06_agent_confirmation_in_steps_container.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/executor_hitl/06_agent_confirmation_in_steps_container.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/executor_hitl/06_agent_confirmation_in_steps_container.py) diff --git a/examples/workflows/human-in-the-loop/executor-hitl/agent-confirmation-stream.mdx b/examples/workflows/human-in-the-loop/executor-hitl/agent-confirmation-stream.mdx index 3a6c21c0a..a6d3c8285 100644 --- a/examples/workflows/human-in-the-loop/executor-hitl/agent-confirmation-stream.mdx +++ b/examples/workflows/human-in-the-loop/executor-hitl/agent-confirmation-stream.mdx @@ -170,4 +170,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/executor_hitl/02_agent_confirmation_stream.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/executor_hitl/02_agent_confirmation_stream.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/executor_hitl/02_agent_confirmation_stream.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/executor_hitl/02_agent_confirmation_stream.py) diff --git a/examples/workflows/human-in-the-loop/executor-hitl/agent-confirmation.mdx b/examples/workflows/human-in-the-loop/executor-hitl/agent-confirmation.mdx index 972de2a97..d22504ca8 100644 --- a/examples/workflows/human-in-the-loop/executor-hitl/agent-confirmation.mdx +++ b/examples/workflows/human-in-the-loop/executor-hitl/agent-confirmation.mdx @@ -171,4 +171,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/executor_hitl/01_agent_confirmation.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/executor_hitl/01_agent_confirmation.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/executor_hitl/01_agent_confirmation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/executor_hitl/01_agent_confirmation.py) diff --git a/examples/workflows/human-in-the-loop/executor-hitl/agent-user-input-step.mdx b/examples/workflows/human-in-the-loop/executor-hitl/agent-user-input-step.mdx index 19ba9ecb0..ca162f23e 100644 --- a/examples/workflows/human-in-the-loop/executor-hitl/agent-user-input-step.mdx +++ b/examples/workflows/human-in-the-loop/executor-hitl/agent-user-input-step.mdx @@ -253,4 +253,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/executor_hitl/08_agent_user_input_step.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/executor_hitl/08_agent_user_input_step.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/executor_hitl/08_agent_user_input_step.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/executor_hitl/08_agent_user_input_step.py) diff --git a/examples/workflows/human-in-the-loop/executor-hitl/executor-continued-event.mdx b/examples/workflows/human-in-the-loop/executor-hitl/executor-continued-event.mdx index 9bb4397ba..8c16ef7ee 100644 --- a/examples/workflows/human-in-the-loop/executor-hitl/executor-continued-event.mdx +++ b/examples/workflows/human-in-the-loop/executor-hitl/executor-continued-event.mdx @@ -192,4 +192,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/executor_hitl/09_executor_continued_event.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/executor_hitl/09_executor_continued_event.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/executor_hitl/09_executor_continued_event.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/executor_hitl/09_executor_continued_event.py) diff --git a/examples/workflows/human-in-the-loop/executor-hitl/team-in-step.mdx b/examples/workflows/human-in-the-loop/executor-hitl/team-in-step.mdx index c1caedad7..c6b9e294f 100644 --- a/examples/workflows/human-in-the-loop/executor-hitl/team-in-step.mdx +++ b/examples/workflows/human-in-the-loop/executor-hitl/team-in-step.mdx @@ -173,4 +173,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/executor_hitl/03_team_in_step.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/executor_hitl/03_team_in_step.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/executor_hitl/03_team_in_step.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/executor_hitl/03_team_in_step.py) diff --git a/examples/workflows/human-in-the-loop/loop/loop-confirmation-streaming.mdx b/examples/workflows/human-in-the-loop/loop/loop-confirmation-streaming.mdx index 75a91457f..a68852610 100644 --- a/examples/workflows/human-in-the-loop/loop/loop-confirmation-streaming.mdx +++ b/examples/workflows/human-in-the-loop/loop/loop-confirmation-streaming.mdx @@ -196,4 +196,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/loop/02_loop_confirmation_streaming.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/loop/02_loop_confirmation_streaming.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/loop/02_loop_confirmation_streaming.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/loop/02_loop_confirmation_streaming.py) diff --git a/examples/workflows/human-in-the-loop/loop/loop-confirmation.mdx b/examples/workflows/human-in-the-loop/loop/loop-confirmation.mdx index c3318bfaf..5102deffe 100644 --- a/examples/workflows/human-in-the-loop/loop/loop-confirmation.mdx +++ b/examples/workflows/human-in-the-loop/loop/loop-confirmation.mdx @@ -129,4 +129,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/loop/01_loop_confirmation.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/loop/01_loop_confirmation.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/loop/01_loop_confirmation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/loop/01_loop_confirmation.py) diff --git a/examples/workflows/human-in-the-loop/loop/loop-iteration-review.mdx b/examples/workflows/human-in-the-loop/loop/loop-iteration-review.mdx index 02102bb0a..92d3b531f 100644 --- a/examples/workflows/human-in-the-loop/loop/loop-iteration-review.mdx +++ b/examples/workflows/human-in-the-loop/loop/loop-iteration-review.mdx @@ -125,4 +125,4 @@ print(f"Final output: {run_output.content}") -Full source: [cookbook/04_workflows/08_human_in_the_loop/loop/03_loop_iteration_review.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/loop/03_loop_iteration_review.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/loop/03_loop_iteration_review.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/loop/03_loop_iteration_review.py) diff --git a/examples/workflows/human-in-the-loop/output-review/basic-output-review.mdx b/examples/workflows/human-in-the-loop/output-review/basic-output-review.mdx index b0c46e405..5a8801d4a 100644 --- a/examples/workflows/human-in-the-loop/output-review/basic-output-review.mdx +++ b/examples/workflows/human-in-the-loop/output-review/basic-output-review.mdx @@ -122,4 +122,4 @@ print(f"Final output: {run_output.content}") -Full source: [cookbook/04_workflows/08_human_in_the_loop/output_review/01_basic_output_review.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/output_review/01_basic_output_review.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/output_review/01_basic_output_review.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/output_review/01_basic_output_review.py) diff --git a/examples/workflows/human-in-the-loop/output-review/conditional-output-review.mdx b/examples/workflows/human-in-the-loop/output-review/conditional-output-review.mdx index 3c522c859..e42948f0f 100644 --- a/examples/workflows/human-in-the-loop/output-review/conditional-output-review.mdx +++ b/examples/workflows/human-in-the-loop/output-review/conditional-output-review.mdx @@ -124,4 +124,4 @@ print(f"Final output: {run_output.content}") -Full source: [cookbook/04_workflows/08_human_in_the_loop/output_review/04_conditional_output_review.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/output_review/04_conditional_output_review.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/output_review/04_conditional_output_review.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/output_review/04_conditional_output_review.py) diff --git a/examples/workflows/human-in-the-loop/output-review/edit-output.mdx b/examples/workflows/human-in-the-loop/output-review/edit-output.mdx index 0af107362..d2a9cadd1 100644 --- a/examples/workflows/human-in-the-loop/output-review/edit-output.mdx +++ b/examples/workflows/human-in-the-loop/output-review/edit-output.mdx @@ -119,4 +119,4 @@ print(f"Final output: {run_output.content}") -Full source: [cookbook/04_workflows/08_human_in_the_loop/output_review/03_edit_output.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/output_review/03_edit_output.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/output_review/03_edit_output.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/output_review/03_edit_output.py) diff --git a/examples/workflows/human-in-the-loop/output-review/full-review-cycle.mdx b/examples/workflows/human-in-the-loop/output-review/full-review-cycle.mdx index 074bbab19..62c844c18 100644 --- a/examples/workflows/human-in-the-loop/output-review/full-review-cycle.mdx +++ b/examples/workflows/human-in-the-loop/output-review/full-review-cycle.mdx @@ -230,4 +230,4 @@ print(f" Status: {run_output.status}") -Full source: [cookbook/04_workflows/08_human_in_the_loop/output_review/05_full_review_cycle.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/output_review/05_full_review_cycle.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/output_review/05_full_review_cycle.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/output_review/05_full_review_cycle.py) diff --git a/examples/workflows/human-in-the-loop/output-review/output-review-with-retry.mdx b/examples/workflows/human-in-the-loop/output-review/output-review-with-retry.mdx index 35652aa7f..67b7d7613 100644 --- a/examples/workflows/human-in-the-loop/output-review/output-review-with-retry.mdx +++ b/examples/workflows/human-in-the-loop/output-review/output-review-with-retry.mdx @@ -119,4 +119,4 @@ print(f"Final output: {run_output.content}") -Full source: [cookbook/04_workflows/08_human_in_the_loop/output_review/02_output_review_with_retry.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/output_review/02_output_review_with_retry.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/output_review/02_output_review_with_retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/output_review/02_output_review_with_retry.py) diff --git a/examples/workflows/human-in-the-loop/router/router-confirmation.mdx b/examples/workflows/human-in-the-loop/router/router-confirmation.mdx index 943a6ca01..bb619433e 100644 --- a/examples/workflows/human-in-the-loop/router/router-confirmation.mdx +++ b/examples/workflows/human-in-the-loop/router/router-confirmation.mdx @@ -195,4 +195,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/router/04_router_confirmation.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/router/04_router_confirmation.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/router/04_router_confirmation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/router/04_router_confirmation.py) diff --git a/examples/workflows/human-in-the-loop/router/router-multi-selection.mdx b/examples/workflows/human-in-the-loop/router/router-multi-selection.mdx index 35cd009a8..41f1f5bc8 100644 --- a/examples/workflows/human-in-the-loop/router/router-multi-selection.mdx +++ b/examples/workflows/human-in-the-loop/router/router-multi-selection.mdx @@ -254,4 +254,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/router/02_router_multi_selection.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/router/02_router_multi_selection.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/router/02_router_multi_selection.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/router/02_router_multi_selection.py) diff --git a/examples/workflows/human-in-the-loop/router/router-nested-choices.mdx b/examples/workflows/human-in-the-loop/router/router-nested-choices.mdx index 2a4a1eb6b..3ad057f8c 100644 --- a/examples/workflows/human-in-the-loop/router/router-nested-choices.mdx +++ b/examples/workflows/human-in-the-loop/router/router-nested-choices.mdx @@ -276,4 +276,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/router/03_router_nested_choices.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/router/03_router_nested_choices.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/router/03_router_nested_choices.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/router/03_router_nested_choices.py) diff --git a/examples/workflows/human-in-the-loop/router/router-output-review.mdx b/examples/workflows/human-in-the-loop/router/router-output-review.mdx index 4d942247d..2c3b41b29 100644 --- a/examples/workflows/human-in-the-loop/router/router-output-review.mdx +++ b/examples/workflows/human-in-the-loop/router/router-output-review.mdx @@ -185,4 +185,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/router/07_router_output_review.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/router/07_router_output_review.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/router/07_router_output_review.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/router/07_router_output_review.py) diff --git a/examples/workflows/human-in-the-loop/router/router-user-selection.mdx b/examples/workflows/human-in-the-loop/router/router-user-selection.mdx index 2e092f1e3..7653e4b94 100644 --- a/examples/workflows/human-in-the-loop/router/router-user-selection.mdx +++ b/examples/workflows/human-in-the-loop/router/router-user-selection.mdx @@ -220,4 +220,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/router/01_router_user_selection.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/router/01_router_user_selection.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/router/01_router_user_selection.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/router/01_router_user_selection.py) diff --git a/examples/workflows/human-in-the-loop/steps/steps-pipeline-confirmation.mdx b/examples/workflows/human-in-the-loop/steps/steps-pipeline-confirmation.mdx index b7225afe8..9e2bacf8b 100644 --- a/examples/workflows/human-in-the-loop/steps/steps-pipeline-confirmation.mdx +++ b/examples/workflows/human-in-the-loop/steps/steps-pipeline-confirmation.mdx @@ -149,4 +149,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/steps/01_steps_pipeline_confirmation.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/steps/01_steps_pipeline_confirmation.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/steps/01_steps_pipeline_confirmation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/steps/01_steps_pipeline_confirmation.py) diff --git a/examples/workflows/human-in-the-loop/timeout/confirmation-timeout.mdx b/examples/workflows/human-in-the-loop/timeout/confirmation-timeout.mdx index e33e7603f..738aff340 100644 --- a/examples/workflows/human-in-the-loop/timeout/confirmation-timeout.mdx +++ b/examples/workflows/human-in-the-loop/timeout/confirmation-timeout.mdx @@ -130,4 +130,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/timeout/02_confirmation_timeout.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/timeout/02_confirmation_timeout.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/timeout/02_confirmation_timeout.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/timeout/02_confirmation_timeout.py) diff --git a/examples/workflows/human-in-the-loop/timeout/hitl-timeout.mdx b/examples/workflows/human-in-the-loop/timeout/hitl-timeout.mdx index 1428b908f..135e4b2cf 100644 --- a/examples/workflows/human-in-the-loop/timeout/hitl-timeout.mdx +++ b/examples/workflows/human-in-the-loop/timeout/hitl-timeout.mdx @@ -119,4 +119,4 @@ print(f"Final output: {run_output.content}") -Full source: [cookbook/04_workflows/08_human_in_the_loop/timeout/01_hitl_timeout.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/timeout/01_hitl_timeout.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/timeout/01_hitl_timeout.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/timeout/01_hitl_timeout.py) diff --git a/examples/workflows/human-in-the-loop/user-input/basic-user-input.mdx b/examples/workflows/human-in-the-loop/user-input/basic-user-input.mdx index 1d957f5e8..8b6f1abd8 100644 --- a/examples/workflows/human-in-the-loop/user-input/basic-user-input.mdx +++ b/examples/workflows/human-in-the-loop/user-input/basic-user-input.mdx @@ -218,4 +218,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/user_input/01_basic_user_input.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/user_input/01_basic_user_input.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/user_input/01_basic_user_input.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/user_input/01_basic_user_input.py) diff --git a/examples/workflows/human-in-the-loop/user-input/step-user-input-streaming.mdx b/examples/workflows/human-in-the-loop/user-input/step-user-input-streaming.mdx index b85dd4ca2..d46a2f73e 100644 --- a/examples/workflows/human-in-the-loop/user-input/step-user-input-streaming.mdx +++ b/examples/workflows/human-in-the-loop/user-input/step-user-input-streaming.mdx @@ -317,4 +317,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/user_input/03_step_user_input_streaming.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/user_input/03_step_user_input_streaming.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/user_input/03_step_user_input_streaming.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/user_input/03_step_user_input_streaming.py) diff --git a/examples/workflows/human-in-the-loop/user-input/step-user-input.mdx b/examples/workflows/human-in-the-loop/user-input/step-user-input.mdx index 130e500a8..6c8d49d80 100644 --- a/examples/workflows/human-in-the-loop/user-input/step-user-input.mdx +++ b/examples/workflows/human-in-the-loop/user-input/step-user-input.mdx @@ -243,4 +243,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/08_human_in_the_loop/user_input/02_step_user_input.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/08_human_in_the_loop/user_input/02_step_user_input.py) +Full source: [cookbook/04_workflows/08_human_in_the_loop/user_input/02_step_user_input.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/user_input/02_step_user_input.py) diff --git a/examples/workflows/loop-execution/loop-basic.mdx b/examples/workflows/loop-execution/loop-basic.mdx index 7a602c44f..283bd753d 100644 --- a/examples/workflows/loop-execution/loop-basic.mdx +++ b/examples/workflows/loop-execution/loop-basic.mdx @@ -162,4 +162,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/03_loop_execution/loop_basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/03_loop_execution/loop_basic.py) +Full source: [cookbook/04_workflows/03_loop_execution/loop_basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/03_loop_execution/loop_basic.py) diff --git a/examples/workflows/loop-execution/loop-iterative-accumulation.mdx b/examples/workflows/loop-execution/loop-iterative-accumulation.mdx index 772886286..e7f6f67eb 100644 --- a/examples/workflows/loop-execution/loop-iterative-accumulation.mdx +++ b/examples/workflows/loop-execution/loop-iterative-accumulation.mdx @@ -83,4 +83,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/03_loop_execution/loop_iterative_accumulation.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/03_loop_execution/loop_iterative_accumulation.py) +Full source: [cookbook/04_workflows/03_loop_execution/loop_iterative_accumulation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/03_loop_execution/loop_iterative_accumulation.py) diff --git a/examples/workflows/loop-execution/loop-with-parallel.mdx b/examples/workflows/loop-execution/loop-with-parallel.mdx index f72f5d187..f3a19e829 100644 --- a/examples/workflows/loop-execution/loop-with-parallel.mdx +++ b/examples/workflows/loop-execution/loop-with-parallel.mdx @@ -185,4 +185,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/03_loop_execution/loop_with_parallel.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/03_loop_execution/loop_with_parallel.py) +Full source: [cookbook/04_workflows/03_loop_execution/loop_with_parallel.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/03_loop_execution/loop_with_parallel.py) diff --git a/examples/workflows/parallel-execution/parallel-basic.mdx b/examples/workflows/parallel-execution/parallel-basic.mdx index 212c51a9f..ffb59d1b3 100644 --- a/examples/workflows/parallel-execution/parallel-basic.mdx +++ b/examples/workflows/parallel-execution/parallel-basic.mdx @@ -105,4 +105,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/04_parallel_execution/parallel_basic.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/04_parallel_execution/parallel_basic.py) +Full source: [cookbook/04_workflows/04_parallel_execution/parallel_basic.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/04_parallel_execution/parallel_basic.py) diff --git a/examples/workflows/parallel-execution/parallel-with-condition.mdx b/examples/workflows/parallel-execution/parallel-with-condition.mdx index 976afd24e..4f205813f 100644 --- a/examples/workflows/parallel-execution/parallel-with-condition.mdx +++ b/examples/workflows/parallel-execution/parallel-with-condition.mdx @@ -222,4 +222,4 @@ if __name__ == "__main__": -Full source: [cookbook/04_workflows/04_parallel_execution/parallel_with_condition.py](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/04_parallel_execution/parallel_with_condition.py) +Full source: [cookbook/04_workflows/04_parallel_execution/parallel_with_condition.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/04_parallel_execution/parallel_with_condition.py) diff --git a/scripts/examples_sync/apply_oneoffs.py b/scripts/examples_sync/apply_oneoffs.py index dc3e82d0e..f0b5acb72 100644 --- a/scripts/examples_sync/apply_oneoffs.py +++ b/scripts/examples_sync/apply_oneoffs.py @@ -2027,7 +2027,7 @@ def main() -> None: python cookbook/91_tools/mem0_tools.py""", ) - # 6. Post-tag static pages that are outside the pinned cookbook generator. + # 6. Curated fixes outside the cookbook generator. root_sub( "database/providers/valkey/usage/valkey-for-agent.mdx", """## Usage @@ -2163,7 +2163,7 @@ def main() -> None: """**Returns:** `List[Span]` - In Agno v2.7.2, synchronous `SqliteDb.get_spans()` does not accept `limit`. Omit `limit` when using SQLite. The other filters and the SQLite example below work as shown. + In Agno v2.7.4, synchronous `SqliteDb.get_spans()` does not accept `limit`. Omit `limit` when using SQLite. The other filters and the SQLite example below work as shown. """, @@ -2265,154 +2265,6 @@ def main() -> None: """tools=[WebSearchTools()], role="Search the web for the latest news and trends",""", ) - sub( - "storage/valkey/valkey-for-team.mdx", - "Run `uv pip install ddgs valkey-glide-sync` to install dependencies.", - "Run `uv pip install ddgs openai valkey-glide-sync` to install dependencies.", - ) - valkey_descriptions = { - "agent": "Use Valkey as the storage backend for an agent.", - "team": "Use Valkey as the storage backend for a team.", - "workflow": "Use ValkeyDb as the session storage backend for a workflow.", - } - for example_type, description in valkey_descriptions.items(): - sub( - f"storage/valkey/valkey-for-{example_type}.mdx", - f'description: "{description}"\n---', - f'description: "{description}"\nsource: cookbook/06_storage/valkey/valkey_for_{example_type}.py\n---', - ) - for example_type in ("agent", "team", "workflow"): - filename = f"valkey_for_{example_type}.py" - root_sub( - f"examples/storage/valkey/valkey-for-{example_type}.mdx", - f"""## Run the Example -```bash -# Clone and setup repo -git clone https://github.com/agno-agi/agno.git -cd agno/cookbook/06_storage/valkey - -# Create and activate virtual environment -./scripts/demo_setup.sh -source .venvs/demo/bin/activate - -python {filename} -```""", - f"""## Run the Example - - - - Clone the repository and run the remaining commands from its root: - ```bash - git clone https://github.com/agno-agi/agno.git - cd agno - ``` - - - - ```bash - ./scripts/demo_setup.sh - source .venvs/demo/bin/activate - uv pip install -U ddgs openai valkey-glide-sync - ``` - - - - - ```bash Mac/Linux - export OPENAI_API_KEY="your_openai_api_key_here" - ``` - - ```bash Windows - $Env:OPENAI_API_KEY="your_openai_api_key_here" - ``` - - - - - ```bash - docker run -d --name my-valkey -p 6379:6379 valkey/valkey-bundle - ``` - - - - ```bash - python cookbook/06_storage/valkey/{filename} - ``` - -""", - ) - sub( - "agent-os/dbs/valkey-db.mdx", - "```python\n", - "```python valkey_db.py\n", - ) - sub( - "agent-os/dbs/valkey-db.mdx", - 'description: "Setup the Valkey database."\n---', - 'description: "Setup the Valkey database."\nsource: cookbook/05_agent_os/dbs/valkey_db.py\n---', - ) - sub( - "agent-os/dbs/valkey-db.mdx", - """## Run the Example -```bash -# Clone and setup repo -git clone https://github.com/agno-agi/agno.git -cd agno/cookbook/05_agent_os/dbs - -# Create and activate virtual environment -./scripts/demo_setup.sh -source .venvs/demo/bin/activate - -python valkey_db.py -```""", - """## Run the Example - - - - Clone the repository and run the remaining commands from its root: - ```bash - git clone https://github.com/agno-agi/agno.git - cd agno - ``` - - - - ```bash - ./scripts/demo_setup.sh - source .venvs/demo/bin/activate - uv pip install -U valkey-glide-sync - ``` - - - - - ```bash Mac/Linux - export OPENAI_API_KEY="your_openai_api_key_here" - ``` - - ```bash Windows - $Env:OPENAI_API_KEY="your_openai_api_key_here" - ``` - - - - - ```bash - docker run -d --name my-valkey -p 6379:6379 valkey/valkey-bundle - ``` - - - - Run the example from the repository root: - ```bash - python cookbook/05_agent_os/dbs/valkey_db.py - ``` - - - -Full source: [cookbook/05_agent_os/dbs/valkey_db.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/dbs/valkey_db.py)""", - ) - root_sub( "knowledge/vector-stores/mongodb/usage/mongo-db-hybrid-search.mdx", """ @@ -2544,7 +2396,7 @@ def main() -> None: """## Current Status - This v2.7.2 example uses Pipedream's retired per-app SSE URL. It cannot connect to the current Pipedream MCP service without code and authentication changes. See [Pipedream MCP](https://pipedream.com/docs/connect/mcp) for the current end-user and developer flows. + This v2.7.4 example uses Pipedream's retired per-app SSE URL. It cannot connect to the current Pipedream MCP service without code and authentication changes. See [Pipedream MCP](https://pipedream.com/docs/connect/mcp) for the current end-user and developer flows. """, ) @@ -2634,7 +2486,7 @@ def main() -> None: """~~~ - The v2.7.2 cookbook uses the deprecated `gpt-4o` model. The source-fidelity fence above preserves those three model IDs. Replace all three with `gpt-5.4-mini` before running. See [GPT-4o](https://developers.openai.com/api/docs/models/gpt-4o) and [GPT-5.4 mini](https://developers.openai.com/api/docs/models/gpt-5.4-mini). + The v2.7.4 cookbook uses the deprecated `gpt-4o` model. The source-fidelity fence above preserves those three model IDs. Replace all three with `gpt-5.4-mini` before running. See [GPT-4o](https://developers.openai.com/api/docs/models/gpt-4o) and [GPT-5.4 mini](https://developers.openai.com/api/docs/models/gpt-5.4-mini). ## Run the Example""", @@ -2710,7 +2562,7 @@ def main() -> None: """| **MCP** | Registered in `scout/contexts.py` | One `query_mcp_` per server. | - Scout intends Slack access to be read-only, but the pinned template does not pass `write=False` when it creates `SlackContextProvider`. Configuring Slack currently exposes `update_slack`. Leave write scopes ungranted until the template enforces its intended boundary. + Scout intends Slack context access to be read-only, but the pinned template does not pass `write=False` when it creates `SlackContextProvider`. Configuring `SLACK_BOT_TOKEN` currently exposes `update_slack`. To enforce a read-only context provider, set `write=False` in `scout/contexts.py` before deployment. The linked Slack manifest grants write scopes because the separate Slack interface uses the same bot token to reply. Setup for each provider""", @@ -2733,7 +2585,7 @@ def main() -> None: """--- - This v2.7.2 source cannot run as written. It references an input file that is not provided, uses Groq's retired `playai-tts` default, asks for music even though the tool generates speech, and saves WAV bytes with an `.mp3` extension. Provide a real input file, select a current TTS model and voice, change the prompt to request speech, and save the output as `.wav`. See [Groq model deprecations](https://console.groq.com/docs/deprecations) and [Groq text to speech](https://console.groq.com/docs/text-to-speech/). + This v2.7.4 source cannot run as written. It references an input file that is not provided, uses Groq's retired `playai-tts` default, asks for music even though the tool generates speech, and saves WAV bytes with an `.mp3` extension. Provide a real input file, select a current TTS model and voice, change the prompt to request speech, and save the output as `.wav`. See [Groq model deprecations](https://console.groq.com/docs/deprecations) and [Groq text to speech](https://console.groq.com/docs/text-to-speech/). ## Code""", @@ -2767,7 +2619,7 @@ def main() -> None: """, """## Prepare a corrected copy -The source fence is preserved for v2.7.2 fidelity. These packages and API keys cover its imports. Apply every change in the warning above before running it. +The source fence is preserved for v2.7.4 fidelity. These packages and API keys cover its imports. Apply every change in the warning above before running it. @@ -3262,7 +3114,7 @@ async def handle_stripe(event: dict): root_sub( "models/providers/native/google/usage/interactions-antigravity.mdx", "Unlike Deep Research, Antigravity runs in the foreground. The model still forces `store=True` so the interaction is retrievable.", - "`GeminiInteractions` in Agno 2.7.2 sends Antigravity requests in the foreground and forces `store=True` so each interaction is retrievable. The Google API also supports background Antigravity execution. Use the Google Gen AI SDK directly when you need background execution.", + "`GeminiInteractions` in Agno 2.7.4 sends Antigravity requests in the foreground and forces `store=True` so each interaction is retrievable. The Google API also supports background Antigravity execution. Use the Google Gen AI SDK directly when you need background execution.", ) root_sub( @@ -3561,7 +3413,7 @@ async def handle_stripe(event: dict): ) # Sample 29: require an explicit current Nebius model because both the - # retired cookbook ID and the pinned Agno 2.7.2 default are unavailable. + # retired cookbook ID and the pinned Agno 2.7.4 default are unavailable. root_sub( "models/providers/gateways/nebius/overview.mdx", """Nebius Token Factory is a platform from Nebius that simplifies the process of building applications using AI models. It provides a suite of tools and services for developers to easily test, integrate and fine-tune various AI models, including those for text and image generation. @@ -3655,12 +3507,12 @@ async def handle_stripe(event: dict): """See the [Nebius usage examples](/models/providers/gateways/nebius/usage/basic-stream). - The pinned Agno 2.7.2 default, `openai/gpt-oss-20b`, is retired from serverless inference. Set `id` to an explicit current model ID from the [Nebius model-list API](https://docs.tokenfactory.nebius.com/api-reference/examples/list-of-models). + The pinned Agno 2.7.4 default, `openai/gpt-oss-20b`, is retired from serverless inference. Set `id` to an explicit current model ID from the [Nebius model-list API](https://docs.tokenfactory.nebius.com/api-reference/examples/list-of-models). """, """See the [Nebius usage examples](/models/providers/gateways/nebius/usage/basic-stream). - The pinned Agno 2.7.2 default, `openai/gpt-oss-20b`, is retired from serverless inference. Set `id` to an explicit current text-generation model ID from the [Nebius model-list API](https://docs.tokenfactory.nebius.com/api-reference/examples/list-of-models). + The pinned Agno 2.7.4 default, `openai/gpt-oss-20b`, is retired from serverless inference. Set `id` to an explicit current text-generation model ID from the [Nebius model-list API](https://docs.tokenfactory.nebius.com/api-reference/examples/list-of-models). """, required=False, ) @@ -3669,12 +3521,12 @@ async def handle_stripe(event: dict): """See the [Nebius usage examples](/models/providers/gateways/nebius/usage/basic-stream). - The pinned Agno 2.7.2 default, `openai/gpt-oss-20b`, is retired. Set `id` to an explicit current model ID from the [Nebius model-list API](https://docs.tokenfactory.nebius.com/api-reference/examples/list-of-models). + The pinned Agno 2.7.4 default, `openai/gpt-oss-20b`, is retired. Set `id` to an explicit current model ID from the [Nebius model-list API](https://docs.tokenfactory.nebius.com/api-reference/examples/list-of-models). """, """See the [Nebius usage examples](/models/providers/gateways/nebius/usage/basic-stream). - The pinned Agno 2.7.2 default, `openai/gpt-oss-20b`, is retired from serverless inference. Set `id` to an explicit current text-generation model ID from the [Nebius model-list API](https://docs.tokenfactory.nebius.com/api-reference/examples/list-of-models). + The pinned Agno 2.7.4 default, `openai/gpt-oss-20b`, is retired from serverless inference. Set `id` to an explicit current text-generation model ID from the [Nebius model-list API](https://docs.tokenfactory.nebius.com/api-reference/examples/list-of-models). """, required=False, ) @@ -3684,7 +3536,7 @@ async def handle_stripe(event: dict): """See the [Nebius usage examples](/models/providers/gateways/nebius/usage/basic-stream). - The pinned Agno 2.7.2 default, `openai/gpt-oss-20b`, is retired from serverless inference. Set `id` to an explicit current text-generation model ID from the [Nebius model-list API](https://docs.tokenfactory.nebius.com/api-reference/examples/list-of-models). + The pinned Agno 2.7.4 default, `openai/gpt-oss-20b`, is retired from serverless inference. Set `id` to an explicit current text-generation model ID from the [Nebius model-list API](https://docs.tokenfactory.nebius.com/api-reference/examples/list-of-models). """, ) @@ -3963,7 +3815,7 @@ async def handle_stripe(event: dict): """--- -Together retires serverless model IDs on a rolling schedule. The Agno 2.7.2 cookbook examples may reference retired IDs. Before running an example, choose a current model from the [serverless catalog](https://docs.together.ai/docs/serverless/models) and verify the capabilities required by that example. +Together retires serverless model IDs on a rolling schedule. The Agno 2.7.4 cookbook examples may reference retired IDs. Before running an example, choose a current model from the [serverless catalog](https://docs.together.ai/docs/serverless/models) and verify the capabilities required by that example. | Example | Description |""", @@ -4155,7 +4007,7 @@ async def handle_stripe(event: dict): root_sub( spotify_page, "| `get_user_playlists` | Get playlists for a specific user |", - "| `get_user_playlists` | Unavailable to Development Mode apps in Agno 2.7.2 because it expects the earlier response fields |", + "| `get_user_playlists` | Unavailable to Development Mode apps in Agno 2.7.4 because it expects the earlier response fields |", ) root_sub( spotify_page, @@ -4192,7 +4044,7 @@ async def handle_stripe(event: dict): ``` -Spotify changed several endpoints and response fields for Development Mode apps in February 2026. Extended Quota Mode apps are unaffected. Agno 2.7.2 still uses the earlier paths and fields, so the affected methods below are unavailable to Development Mode apps. Use the read-only example until `SpotifyTools` is updated. See Spotify's [February 2026 migration guide](https://developer.spotify.com/documentation/web-api/tutorials/february-2026-migration-guide). +Spotify changed several endpoints and response fields for Development Mode apps in February 2026. Extended Quota Mode apps are unaffected. Agno 2.7.4 still uses the earlier paths and fields, so the affected methods below are unavailable to Development Mode apps. Use the read-only example until `SpotifyTools` is updated. See Spotify's [February 2026 migration guide](https://developer.spotify.com/documentation/web-api/tutorials/february-2026-migration-guide). ## Example""", @@ -4238,7 +4090,7 @@ async def handle_stripe(event: dict): root_sub( spotify_page, "| `search_playlists` | Search for playlists on Spotify |", - "| `search_playlists` | Unavailable to Development Mode apps in Agno 2.7.2 because it expects the earlier playlist response fields |", + "| `search_playlists` | Unavailable to Development Mode apps in Agno 2.7.4 because it expects the earlier playlist response fields |", ) root_sub( spotify_page, @@ -4248,12 +4100,12 @@ async def handle_stripe(event: dict): root_sub( spotify_page, "| `create_playlist` | Create a new playlist for the user |", - "| `create_playlist` | Unavailable to Development Mode apps in Agno 2.7.2 because it calls the removed user-specific endpoint |", + "| `create_playlist` | Unavailable to Development Mode apps in Agno 2.7.4 because it calls the removed user-specific endpoint |", ) root_sub( spotify_page, "| `add_tracks_to_playlist` | Add tracks to an existing playlist |", - "| `add_tracks_to_playlist` | Unavailable to Development Mode apps in Agno 2.7.2 because it calls the removed `/tracks` endpoint |", + "| `add_tracks_to_playlist` | Unavailable to Development Mode apps in Agno 2.7.4 because it calls the removed `/tracks` endpoint |", ) root_sub( spotify_page, @@ -4263,7 +4115,7 @@ async def handle_stripe(event: dict): root_sub( spotify_page, "| `remove_tracks_from_playlist` | Remove tracks from an existing playlist |", - "| `remove_tracks_from_playlist` | Unavailable to Development Mode apps in Agno 2.7.2 because it calls the removed `/tracks` endpoint |", + "| `remove_tracks_from_playlist` | Unavailable to Development Mode apps in Agno 2.7.4 because it calls the removed `/tracks` endpoint |", ) root_sub( diff --git a/scripts/examples_sync/description-overrides.json b/scripts/examples_sync/description-overrides.json index 5a2953b25..25b228644 100644 --- a/scripts/examples_sync/description-overrides.json +++ b/scripts/examples_sync/description-overrides.json @@ -166,7 +166,7 @@ "examples/models/azure/ai-foundry/image-agent": "Migrate an Azure AI Foundry image-URL agent from retired Llama 3.2 Vision to Llama 4 Scout.", "examples/models/azure/ai-foundry/image-agent-bytes": "Migrate an Azure AI Foundry image-bytes agent from retired Llama 3.2 Vision to Llama 4 Scout.", "examples/models/azure/ai-foundry/knowledge": "Query a PgVector knowledge base from an Azure AI Foundry model with Azure OpenAI embeddings.", - "examples/models/azure/ai-foundry/structured-output": "Use Azure OpenAI for supported Pydantic structured output because the v2.7.2 Azure AI Foundry source fails before sending a request.", + "examples/models/azure/ai-foundry/structured-output": "Use Azure OpenAI for supported Pydantic structured output because the v2.7.4 Azure AI Foundry source fails before sending a request.", "examples/models/azure/ai-foundry/tool-use": "Call WebSearchTools from a Cohere Command R agent on Azure AI Foundry.", "examples/models/azure/claude/basic": "Run Claude Sonnet on Azure AI Foundry with sync, async, and streaming responses.", "examples/models/azure/claude/thinking": "Enable extended thinking with a token budget on Claude via Azure AI Foundry.", @@ -412,6 +412,7 @@ "examples/models/openai/responses/verbosity-control": "Raise GPT-5 verbosity to high and generate a detailed stock comparison with YFinance tools.", "examples/models/openai/responses/websearch-builtin-tool": "Combine the built-in web_search_preview tool with FileTools to search and save results to disk.", "examples/models/openrouter/chat/basic": "Run a minimal OpenRouter agent with sync, streaming, and async response variants.", + "examples/models/openrouter/chat/image-generation": "Generate an image with Gemini 2.5 Flash Image through OpenRouter and display the returned bytes.", "examples/models/perplexity/basic": "Run a basic Perplexity sonar-pro agent and print sync, streaming, and async responses.", "examples/models/perplexity/knowledge": "Answer questions from a PDF knowledge base in PgVector using a Perplexity sonar-pro agent.", "examples/models/perplexity/structured-output": "Return a typed MovieScript from Perplexity sonar-pro with a Pydantic output schema.", @@ -433,6 +434,7 @@ "examples/models/together/reasoning-agent": "Select a current Together reasoning model and print its reasoning steps.", "examples/models/together/structured-output": "Return a Pydantic MovieScript through Together with a model that supports structured outputs.", "examples/models/together/tool-use": "Give a function-calling Together model web search tools and run it sync, streaming, and async.", + "examples/models/tokenlab/basic": "Run synchronous, streaming, and asynchronous agent responses through TokenLab with GPT-5.4 Mini.", "examples/models/vercel/basic": "Run a minimal agent on Vercel's v0 model with sync, streaming, and async calls.", "examples/models/vercel/image-agent": "Pass an image URL to Vercel's v0 model and search the web for related news.", "examples/models/vercel/knowledge": "Query a PgVector knowledge base built from a PDF with an agent on Vercel's v0 model.", diff --git a/scripts/examples_sync/generate.py b/scripts/examples_sync/generate.py index 6b3aa7d64..35f670d68 100644 --- a/scripts/examples_sync/generate.py +++ b/scripts/examples_sync/generate.py @@ -768,7 +768,7 @@ "post_run_steps": [ ( "Test task streaming", - "In a second terminal, send form fields to the v2.7.2 team run endpoint:", + "In a second terminal, send form fields to the v2.7.4 team run endpoint:", "curl -N -X POST http://localhost:7777/teams/research-team/runs \\\n -H \"Accept: text/event-stream\" \\\n -F \"message=What are the key benefits of microservices architecture?\" \\\n -F \"stream=true\"", ) ], @@ -1489,7 +1489,7 @@ "intro_override": "The source-fidelity example uses Pipedream's retired per-app SSE URL and cannot connect to the current service without code and authentication changes.", "replacement_only": True, "replacement_heading": "Current Status", - "run_replacement": "\n This v2.7.2 example cannot connect to the current Pipedream MCP service as written. End users should use Pipedream's OAuth-authenticated v2 setup. Application developers should use the authenticated v3 endpoint. See [Pipedream MCP for end users](https://pipedream.com/docs/connect/mcp/users) and [Develop with Pipedream MCP](https://pipedream.com/docs/connect/mcp/developers).\n", + "run_replacement": "\n This v2.7.4 example cannot connect to the current Pipedream MCP service as written. End users should use Pipedream's OAuth-authenticated v2 setup. Application developers should use the authenticated v3 endpoint. See [Pipedream MCP for end users](https://pipedream.com/docs/connect/mcp/users) and [Develop with Pipedream MCP](https://pipedream.com/docs/connect/mcp/developers).\n", }, "91_tools/async_generator_tool_with_pydantic_args.py": { "pre_code_warning": "The pinned source omits `stream_events=True`, so Agno discards the yielded custom progress events and both final assertions fail. Add the option before running.", @@ -1936,7 +1936,7 @@ }, "91_tools/models/azure_openai_tools.py": { "intro_override": "This source-fidelity example uses `AzureOpenAITools`, whose supported DALL-E models are retired. It is preserved as a legacy reference.", - "pre_code_warning": "Azure DALL-E 2 and DALL-E 3 deployments are retired, and the v2.7.2 toolkit supports no current image model. Do not run this source as written.", + "pre_code_warning": "Azure DALL-E 2 and DALL-E 3 deployments are retired, and the v2.7.4 toolkit supports no current image model. Do not run this source as written.", "replacement_only": True, "replacement_heading": "Current Alternatives", "run_replacement": "Use a current Azure image-generation client by following [Microsoft's migration guidance](https://learn.microsoft.com/en-us/azure/foundry/openai/how-to/dall-e), or use [Image Generation Agent](/models/providers/native/openai/responses/usage/image-generation-agent) with OpenAI GPT Image 2.", @@ -2193,7 +2193,7 @@ ], }, "03_teams/12_learning/10_team_agentic_learning.py": { - "pre_code_warning": "The pinned source imports `LearningMode` from a module that does not exist in Agno v2.7.2. Update the import before running.", + "pre_code_warning": "The pinned source imports `LearningMode` from a module that does not exist in Agno v2.7.4. Update the import before running.", "pre_run_steps": [ ( "Fix the LearningMode import", @@ -2337,7 +2337,7 @@ }, "02_agents/08_guardrails/pii_detection.py": { "intro_override": "Use `PIIDetectionGuardrail` to reject requests containing PII or replace detected values with masked placeholders.", - "pre_code_warning": "The pinned source catches `InputCheckError` around `print_response()`, but Agno v2.7.2 converts that guardrail exception into a run with `RunStatus.error`. The source therefore prints false success messages for blocked inputs. Use the status-checking pattern in the [PII Detection guide](/guardrails/usage/agent/pii-detection) instead.", + "pre_code_warning": "The pinned source catches `InputCheckError` around `print_response()`, but Agno v2.7.4 converts that guardrail exception into a run with `RunStatus.error`. The source therefore prints false success messages for blocked inputs. Use the status-checking pattern in the [PII Detection guide](/guardrails/usage/agent/pii-detection) instead.", "pre_run_steps": [ ( "Use run status checks", @@ -2353,7 +2353,7 @@ "intro_override": "Run two failure scenarios, then retry the failed team run in place with `Team.acontinue_run()`.", }, "03_teams/15_distributed_rag/03_distributed_rag_with_reranking.py": { - "pre_code_warning": "This example passes `url=` to `insert_many()` and `ainsert_many()`. Agno v2.7.2 reads the `urls` argument, so these calls insert no documents. The code fence remains source-exact. Apply the replacement below before running.", + "pre_code_warning": "This example passes `url=` to `insert_many()` and `ainsert_many()`. Agno v2.7.4 reads the `urls` argument, so these calls insert no documents. The code fence remains source-exact. Apply the replacement below before running.", "pre_run_steps": [ ( "Fix the batch insert arguments", @@ -2395,7 +2395,7 @@ ], }, "90_models/google/gemini/url_context.py": { - "pre_code_warning": "This example's source docstring names the legacy `google-generativeai` package. Agno v2.7.2 uses the Google Gen AI SDK from `google-genai`. Use the generated install step below.", + "pre_code_warning": "This example's source docstring names the legacy `google-generativeai` package. Agno v2.7.4 uses the Google Gen AI SDK from `google-genai`. Use the generated install step below.", }, "10_reasoning/models/gemini/basic_reasoning.py": { "intro_override": "Compare Gemini 2.5 Flash with thinking disabled against a fixed 1,024-token reasoning model, then inspect the captured reasoning content.", @@ -2818,7 +2818,7 @@ "91_tools/mcp/cli.py": { "env_add": {"GITHUB_PERSONAL_ACCESS_TOKEN"}, "needs_npx": False, - "pre_code_warning": "The pinned source starts the retired npm GitHub MCP server. The fence remains byte-matched to v2.7.2. Replace that command in the saved file with [GitHub's maintained MCP server](https://github.com/github/github-mcp-server) before running it.", + "pre_code_warning": "The pinned source starts the retired npm GitHub MCP server. The fence remains byte-matched to v2.7.4. Replace that command in the saved file with [GitHub's maintained MCP server](https://github.com/github/github-mcp-server) before running it.", "pre_run_steps": [ ( "Use GitHub's maintained MCP server", @@ -2873,7 +2873,7 @@ "91_tools/docling_tools/paths.py": { "run_note": "This module defines shared paths for the Docling examples and is not run directly.", }, - # Randomized convergence sample 24. Preserve the v2.7.2 source fences and + # Randomized convergence sample 24. Preserve the v2.7.4 source fences and # put current migrations plus runnable prerequisites around them. "90_models/google/gemini/parallel_grounding.py": { "intro_override": "Ground Gemini 3.5 Flash responses with Parallel web search on Vertex AI after configuring a Marketplace subscription or Parallel API key.", @@ -3008,8 +3008,8 @@ ], }, "90_models/azure/ai_foundry/structured_output.py": { - "intro_override": "Use Azure OpenAI for the supported Pydantic structured-output pattern. The v2.7.2 Azure AI Foundry source below fails before sending a request.", - "pre_code_warning": "Agno v2.7.2's `AzureAIFoundry.get_request_params()` constructs `response_format` as a tuple, so both agents fail before sending a request. The adapter also depends on Microsoft's retired `azure-ai-inference` SDK. Do not run this source as written.", + "intro_override": "Use Azure OpenAI for the supported Pydantic structured-output pattern. The v2.7.4 Azure AI Foundry source below fails before sending a request.", + "pre_code_warning": "Agno v2.7.4's `AzureAIFoundry.get_request_params()` constructs `response_format` as a tuple, so both agents fail before sending a request. The adapter also depends on Microsoft's retired `azure-ai-inference` SDK. Do not run this source as written.", "replacement_only": True, "replacement_heading": "Current Alternative", "run_replacement": "Use [Azure OpenAI Structured Output](/models/providers/cloud/azure-openai/usage/structured-output) for a supported Pydantic output-schema example.", @@ -3021,7 +3021,7 @@ # correcting metadata, runtime semantics, and setup around them. "02_agents/09_hooks/pre_hook_input.py": { "intro_override": "A pre-hook checks relevance, detail, and safety before model execution. Blocked calls return a run output with `RunStatus.error`.", - "pre_code_warning": "The source catches `InputCheckError` around blocked `Agent.run()` calls. Agno v2.7.2 converts the pre-hook exception into a run output with `RunStatus.error`, so those `except` blocks are bypassed. Check each blocked response's status instead.", + "pre_code_warning": "The source catches `InputCheckError` around blocked `Agent.run()` calls. Agno v2.7.4 converts the pre-hook exception into a run output with `RunStatus.error`, so those `except` blocks are bypassed. Check each blocked response's status instead.", "pre_run_steps": [ ( "Check blocked run statuses", @@ -3057,7 +3057,7 @@ "90_models/langdb/agent.py": { "env_add": {"LANGDB_API_BASE_URL"}, "env_values": {"LANGDB_API_BASE_URL": "https://api.langdb.ai"}, - "pre_code_warning": "Agno v2.7.2 defaults LangDB requests to the legacy regional host `https://api.us-east-1.langdb.ai`. Export `LANGDB_API_BASE_URL=https://api.langdb.ai` to use LangDB's current API host.", + "pre_code_warning": "Agno v2.7.4 defaults LangDB requests to the legacy regional host `https://api.us-east-1.langdb.ai`. Export `LANGDB_API_BASE_URL=https://api.langdb.ai` to use LangDB's current API host.", }, "91_tools/tool_hooks/tool_hook_in_toolkit_with_state.py": { "intro_override": "Resolve a customer profile from `session_state`, rewrite the tool argument, and then invoke the toolkit function.", @@ -3078,7 +3078,7 @@ ), ], }, - # Randomized convergence sample 28. Preserve the v2.7.2 source fences and + # Randomized convergence sample 28. Preserve the v2.7.4 source fences and # put current migrations plus runnable prerequisites around them. "09_evals/performance/response_with_storage.py": { "description_override": "PerformanceEval invokes the benchmark function separately for runtime and memory measurement, producing four model requests total.", From 689c5ceea3bac7ec13ce6c495ff6845d8ac71ab5 Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 02:38:43 +0100 Subject: [PATCH 03/47] docs: align SDK references with Agno v2.7.4 --- agent-os/using-the-api.mdx | 2 +- background-execution/overview.mdx | 2 +- knowledge/concepts/chunking/code-chunking.mdx | 4 +- .../concepts/chunking/markdown-chunking.mdx | 2 +- .../embedder/langdb/langdb-embedder.mdx | 2 +- .../embedder/mistral/mistral-embedder.mdx | 2 +- .../embedder/together/together-embedder.mdx | 2 +- knowledge/concepts/readers/docling-reader.mdx | 2 +- knowledge/concepts/readers/json-reader.mdx | 2 +- knowledge/concepts/readers/website-reader.mdx | 2 +- knowledge/concepts/readers/youtube-reader.mdx | 2 +- knowledge/vector-stores/lancedb/overview.mdx | 2 +- .../lancedb/usage/async-lance-db.mdx | 4 +- learning/overview.mdx | 2 +- learning/stores/user-memory.mdx | 2 +- models/model-as-string.mdx | 2 +- .../gateways/cerebras-openai/overview.mdx | 2 +- .../providers/gateways/cerebras/overview.mdx | 2 +- .../gateways/groq/usage/translation-agent.mdx | 4 +- models/providers/gateways/nebius/overview.mdx | 2 +- models/providers/model-index.mdx | 6 +- .../providers/native/anthropic/overview.mdx | 12 +-- .../native/anthropic/usage/skills.mdx | 4 +- .../usage/structured-output-stream.mdx | 2 +- .../usage/structured-output-strict-tools.mdx | 2 +- .../anthropic/usage/structured-output.mdx | 2 +- .../native/anthropic/usage/tool-use.mdx | 2 +- .../google/usage/interactions-antigravity.mdx | 2 +- multimodal/agent/usage/video-caption.mdx | 2 +- other/install.mdx | 2 +- reference-api/openapi.json | 2 +- reference-api/openapi.yaml | 4 +- .../hooks/prompt-injection-guardrail.mdx | 4 +- reference/models/cohere.mdx | 10 +- reference/models/mistral.mdx | 3 + reference/storage/gcs.mdx | 2 +- reference/storage/json.mdx | 2 +- scripts/README.md | 11 +-- scripts/make_openapi.py | 21 +++- scripts/reference_drift.py | 79 +++++++++++++-- telemetry.mdx | 2 +- tools/toolkits/models/azure-openai.mdx | 2 +- tools/toolkits/models/openai.mdx | 2 +- tools/toolkits/others/spotify.mdx | 12 +-- tools/toolkits/search/youcom.mdx | 98 +++++++++---------- tracing/db-functions.mdx | 2 +- .../batch-and-durability.mdx | 6 +- workflows/hitl/loop.mdx | 2 +- 48 files changed, 212 insertions(+), 134 deletions(-) diff --git a/agent-os/using-the-api.mdx b/agent-os/using-the-api.mdx index 6420322f3..cb213fedd 100644 --- a/agent-os/using-the-api.mdx +++ b/agent-os/using-the-api.mdx @@ -18,7 +18,7 @@ curl http://localhost:7777/info { "os_id": "my-agent-os", "name": null, - "agno_version": "2.7.2", + "agno_version": "2.7.4", "agent_count": 1, "team_count": 0, "workflow_count": 0, diff --git a/background-execution/overview.mdx b/background-execution/overview.mdx index b6933f576..1740aced7 100644 --- a/background-execution/overview.mdx +++ b/background-execution/overview.mdx @@ -314,7 +314,7 @@ The `/resume` stream can include these meta events: |-------|---------| | `catch_up` | Run still active. Retained buffered events follow, then live events. | | `replay` | Run is no longer live in this process. Retained buffer events or persisted database events follow. | -| `subscribed` | Agent and team catch-up is complete. The client is now receiving live events. Workflow resumes do not emit this event in Agno v2.7.2. | +| `subscribed` | Agent and team catch-up is complete. The client is now receiving live events. Workflow resumes do not emit this event in Agno v2.7.4. | | `error` | Run not found or other issue. | ## Multi-Container Deployments diff --git a/knowledge/concepts/chunking/code-chunking.mdx b/knowledge/concepts/chunking/code-chunking.mdx index a234de98e..41e631adc 100644 --- a/knowledge/concepts/chunking/code-chunking.mdx +++ b/knowledge/concepts/chunking/code-chunking.mdx @@ -25,7 +25,7 @@ Code chunking supports several built-in tokenizers or a custom `Tokenizer` insta ) knowledge.insert( - url="https://raw.githubusercontent.com/agno-agi/agno/v2.7.2/libs/agno/agno/workflow/workflow.py", + url="https://raw.githubusercontent.com/agno-agi/agno/v2.7.4/libs/agno/agno/workflow/workflow.py", reader=TextReader( chunking_strategy=CodeChunking( tokenizer="character", @@ -95,7 +95,7 @@ Code chunking supports several built-in tokenizers or a custom `Tokenizer` insta ) knowledge.insert( - url="https://raw.githubusercontent.com/agno-agi/agno/v2.7.2/libs/agno/agno/workflow/workflow.py", + url="https://raw.githubusercontent.com/agno-agi/agno/v2.7.4/libs/agno/agno/workflow/workflow.py", reader=TextReader( chunking_strategy=CodeChunking( tokenizer=LineTokenizer(), diff --git a/knowledge/concepts/chunking/markdown-chunking.mdx b/knowledge/concepts/chunking/markdown-chunking.mdx index 2b7100740..114535be6 100644 --- a/knowledge/concepts/chunking/markdown-chunking.mdx +++ b/knowledge/concepts/chunking/markdown-chunking.mdx @@ -22,7 +22,7 @@ description: "Split Markdown documents by heading structure or an approximate ch ) knowledge.insert( - url="https://raw.githubusercontent.com/agno-agi/agno/v2.7.2/README.md", + url="https://raw.githubusercontent.com/agno-agi/agno/v2.7.4/README.md", reader=MarkdownReader( name="Markdown Chunking Reader", chunking_strategy=MarkdownChunking(chunk_size=1000), diff --git a/knowledge/concepts/embedder/langdb/langdb-embedder.mdx b/knowledge/concepts/embedder/langdb/langdb-embedder.mdx index 4767fb23b..7fb934b38 100644 --- a/knowledge/concepts/embedder/langdb/langdb-embedder.mdx +++ b/knowledge/concepts/embedder/langdb/langdb-embedder.mdx @@ -25,7 +25,7 @@ print(f"Dimensions: {len(embedding)}") The default model is `text-embedding-ada-002` with 1536 dimensions. Pass `id` and `dimensions` together when selecting another model. -Agno v2.7.2 constructs the legacy `api.us-east-1.langdb.ai` host when `base_url` is omitted. LangDB's current API guide uses `api.langdb.ai`. Pass `base_url` as shown above. +Agno v2.7.4 constructs the legacy `api.us-east-1.langdb.ai` host when `base_url` is omitted. LangDB's current API guide uses `api.langdb.ai`. Pass `base_url` as shown above. ## Run the Example diff --git a/knowledge/concepts/embedder/mistral/mistral-embedder.mdx b/knowledge/concepts/embedder/mistral/mistral-embedder.mdx index d6d605528..169d61f39 100644 --- a/knowledge/concepts/embedder/mistral/mistral-embedder.mdx +++ b/knowledge/concepts/embedder/mistral/mistral-embedder.mdx @@ -16,7 +16,7 @@ print(len(embedding)) ``` -In v2.7.2, `endpoint` and `max_retries` use parameter names rejected by the current `mistralai` client. Pass a preconfigured client through `mistral_client` when you need either setting. +In v2.7.4, `endpoint` and `max_retries` use parameter names rejected by the current `mistralai` client. Pass a preconfigured client through `mistral_client` when you need either setting. ## Run the Example diff --git a/knowledge/concepts/embedder/together/together-embedder.mdx b/knowledge/concepts/embedder/together/together-embedder.mdx index 2950ff7d9..735c4b7c9 100644 --- a/knowledge/concepts/embedder/together/together-embedder.mdx +++ b/knowledge/concepts/embedder/together/together-embedder.mdx @@ -6,7 +6,7 @@ description: "Generate 1024-dimensional embeddings with Together's current multi Pass a current Together model and its matching dimensions explicitly. `TogetherEmbedder` reads `TOGETHER_API_KEY` and calls Together through the OpenAI SDK. - The Agno v2.7.2 default, `togethercomputer/m2-bert-80M-32k-retrieval`, was removed on February 6, 2026. Together's current serverless catalog lists `intfloat/multilingual-e5-large-instruct` with 1024 dimensions. See [Together deprecations](https://docs.together.ai/docs/deprecations) and [serverless models](https://docs.together.ai/docs/serverless/models). + The Agno v2.7.4 default, `togethercomputer/m2-bert-80M-32k-retrieval`, was removed on February 6, 2026. Together's current serverless catalog lists `intfloat/multilingual-e5-large-instruct` with 1024 dimensions. See [Together deprecations](https://docs.together.ai/docs/deprecations) and [serverless models](https://docs.together.ai/docs/serverless/models). ```python together_embedder.py diff --git a/knowledge/concepts/readers/docling-reader.mdx b/knowledge/concepts/readers/docling-reader.mdx index 32dec6520..bfaad4eac 100644 --- a/knowledge/concepts/readers/docling-reader.mdx +++ b/knowledge/concepts/readers/docling-reader.mdx @@ -88,7 +88,7 @@ if __name__ == "__main__": -In v2.7.2, `Knowledge.insert(url=..., reader=DoclingReader(allowed_hosts=...))` downloads extension-bearing URLs before calling the reader. Validate the URL before ingestion because the reader's allowlist does not guard this path. +In v2.7.4, `Knowledge.insert(url=..., reader=DoclingReader(allowed_hosts=...))` downloads extension-bearing URLs before calling the reader. Validate the URL before ingestion because the reader's allowlist does not guard this path. `DoclingReader.async_read()` runs the synchronous conversion in a worker thread. diff --git a/knowledge/concepts/readers/json-reader.mdx b/knowledge/concepts/readers/json-reader.mdx index 4d3ae9126..dc2407810 100644 --- a/knowledge/concepts/readers/json-reader.mdx +++ b/knowledge/concepts/readers/json-reader.mdx @@ -48,7 +48,7 @@ for document in documents: -Use a top-level object or array. In v2.7.2, number, boolean, and null roots raise a `TypeError`, and a string root splits into one document per character. +Use a top-level object or array. In v2.7.4, number, boolean, and null roots raise a `TypeError`, and a string root splits into one document per character. `JSONReader.async_read()` runs the synchronous reader in a worker thread. diff --git a/knowledge/concepts/readers/website-reader.mdx b/knowledge/concepts/readers/website-reader.mdx index fe8a44120..b157e90e1 100644 --- a/knowledge/concepts/readers/website-reader.mdx +++ b/knowledge/concepts/readers/website-reader.mdx @@ -42,7 +42,7 @@ for document in documents: -Set `allowed_hosts` for every crawl in v2.7.2. The fallback primary-domain check uses a hostname suffix and can admit unrelated hosts whose names end with the same text. +Set `allowed_hosts` for every crawl in v2.7.4. The fallback primary-domain check uses a hostname suffix and can admit unrelated hosts whose names end with the same text. `WebsiteReader.async_read()` performs the crawl with asynchronous HTTP requests. diff --git a/knowledge/concepts/readers/youtube-reader.mdx b/knowledge/concepts/readers/youtube-reader.mdx index dff79e916..a0be20486 100644 --- a/knowledge/concepts/readers/youtube-reader.mdx +++ b/knowledge/concepts/readers/youtube-reader.mdx @@ -72,7 +72,7 @@ if __name__ == "__main__": -Use `Knowledge.insert()` with `YouTubeReader` in v2.7.2. `Knowledge.ainsert()` passes a document name to `YouTubeReader.async_read()`, which accepts only the URL, so asynchronous knowledge ingestion fails. +Use `Knowledge.insert()` with `YouTubeReader` in v2.7.4. `Knowledge.ainsert()` passes a document name to `YouTubeReader.async_read()`, which accepts only the URL, so asynchronous knowledge ingestion fails. ## Next Steps diff --git a/knowledge/vector-stores/lancedb/overview.mdx b/knowledge/vector-stores/lancedb/overview.mdx index c2b59b5aa..adb2c9525 100644 --- a/knowledge/vector-stores/lancedb/overview.mdx +++ b/knowledge/vector-stores/lancedb/overview.mdx @@ -7,7 +7,7 @@ description: "Store and search Knowledge embeddings in a local or remote LanceDB `LanceDb` supports vector, full-text, and hybrid search. A filesystem path creates a local database. A `db://` URI connects to LanceDB Cloud and requires `api_key=` or `LANCEDB_API_KEY`. -In Agno v2.7.2, dictionary filters are applied after LanceDB returns the limited candidates, and filter-expression lists are ignored. Filtered searches can return fewer documents than requested. Search results also omit the stored LanceDB row ID. +In Agno v2.7.4, dictionary filters are applied after LanceDB returns the limited candidates, and filter-expression lists are ignored. Filtered searches can return fewer documents than requested. Search results also omit the stored LanceDB row ID. ```python agent_with_knowledge.py diff --git a/knowledge/vector-stores/lancedb/usage/async-lance-db.mdx b/knowledge/vector-stores/lancedb/usage/async-lance-db.mdx index 6afa81af6..52a414e83 100644 --- a/knowledge/vector-stores/lancedb/usage/async-lance-db.mdx +++ b/knowledge/vector-stores/lancedb/usage/async-lance-db.mdx @@ -35,10 +35,10 @@ if __name__ == "__main__": asyncio.run(main()) ``` -`Knowledge.ainsert()` awaits reader and embedding work. In Agno v2.7.2, `LanceDb.async_upsert()` calls the synchronous upsert and table methods, and `LanceDb.async_search()` calls the synchronous search directly. +`Knowledge.ainsert()` awaits reader and embedding work. In Agno v2.7.4, `LanceDb.async_upsert()` calls the synchronous upsert and table methods, and `LanceDb.async_search()` calls the synchronous search directly. -For LanceDB Cloud async calls, set `LANCEDB_API_KEY` in the environment. Passing only `api_key=` authenticates the synchronous connection, while the v2.7.2 adapter does not forward that value to `lancedb.connect_async()`. +For LanceDB Cloud async calls, set `LANCEDB_API_KEY` in the environment. Passing only `api_key=` authenticates the synchronous connection, while the v2.7.4 adapter does not forward that value to `lancedb.connect_async()`. ## Run the Example diff --git a/learning/overview.mdx b/learning/overview.mdx index 2d58bef58..141ad7b88 100644 --- a/learning/overview.mdx +++ b/learning/overview.mdx @@ -70,7 +70,7 @@ lm.curator.deduplicate(user_id="alice") ``` -In v2.7.2, the Curator reads a `memories` field from the User Profile store, but the default `UserProfile` schema doesn't define one. `prune()` and `deduplicate()` return `0` unless you add a `memories` field to a custom profile schema and populate it yourself. See [User Memory](/learning/stores/user-memory#curation) for the current workaround. +In v2.7.4, the Curator reads a `memories` field from the User Profile store, but the default `UserProfile` schema doesn't define one. `prune()` and `deduplicate()` return `0` unless you add a `memories` field to a custom profile schema and populate it yourself. See [User Memory](/learning/stores/user-memory#curation) for the current workaround. ## Guides diff --git a/learning/stores/user-memory.mdx b/learning/stores/user-memory.mdx index 757232fcf..3e182cdf1 100644 --- a/learning/stores/user-memory.mdx +++ b/learning/stores/user-memory.mdx @@ -134,7 +134,7 @@ Relevant memories are injected into the system prompt: ## Curation -The Curator does not work with the User Memory Store in v2.7.2. `lm.curator.prune()` and `lm.curator.deduplicate()` read the User Profile store, which has no `memories` field, so both calls return 0 without removing any user memories. To remove memories, use the agentic `update_user_memory` tool, which supports delete operations. +The Curator does not work with the User Memory Store in v2.7.4. `lm.curator.prune()` and `lm.curator.deduplicate()` read the User Profile store, which has no `memories` field, so both calls return 0 without removing any user memories. To remove memories, use the agentic `update_user_memory` tool, which supports delete operations. ## Combining with User Profile diff --git a/models/model-as-string.mdx b/models/model-as-string.mdx index 2fd0c763e..13ef54b90 100644 --- a/models/model-as-string.mdx +++ b/models/model-as-string.mdx @@ -70,7 +70,7 @@ This table covers common providers and API variants. Use the exact provider key Use canonical keys when a provider has multiple implementations. For example, `azure:model_id` resolves to `AzureOpenAI`; `azure-ai-foundry:model_id` selects `AzureAIFoundry`. -Agno v2.7.2 also accepts these compatibility aliases. Prefer the canonical keys in new configuration: +Agno v2.7.4 also accepts these compatibility aliases. Prefer the canonical keys in new configuration: | Compatibility alias | Canonical key | |---|---| diff --git a/models/providers/gateways/cerebras-openai/overview.mdx b/models/providers/gateways/cerebras-openai/overview.mdx index 9690092bf..8074e1908 100644 --- a/models/providers/gateways/cerebras-openai/overview.mdx +++ b/models/providers/gateways/cerebras-openai/overview.mdx @@ -9,7 +9,7 @@ description: Use Cerebras with Agno through an OpenAI-compatible interface. Cerebras also exposes an OpenAI-compatible interface, so you can use it with tools and libraries built for the OpenAI API. -Agno v2.7.2 defaults `CerebrasOpenAI.id` to the retired `llama-4-scout-17b-16e-instruct` model. Set `id="gpt-oss-120b"` or another current [Cerebras model](https://inference-docs.cerebras.ai/models/overview) explicitly. +Agno v2.7.4 defaults `CerebrasOpenAI.id` to the retired `llama-4-scout-17b-16e-instruct` model. Set `id="gpt-oss-120b"` or another current [Cerebras model](https://inference-docs.cerebras.ai/models/overview) explicitly. ### Basic Usage diff --git a/models/providers/gateways/cerebras/overview.mdx b/models/providers/gateways/cerebras/overview.mdx index 637f59150..63693df14 100644 --- a/models/providers/gateways/cerebras/overview.mdx +++ b/models/providers/gateways/cerebras/overview.mdx @@ -7,7 +7,7 @@ description: Use Cerebras high-speed inference with Agno agents. [Cerebras Inference](https://inference-docs.cerebras.ai/introduction) provides high-speed, low-latency AI model inference powered by Cerebras Wafer-Scale Engines and CS-3 systems. Agno integrates directly with the Cerebras Python SDK. -Agno v2.7.2 defaults `Cerebras.id` to the retired `llama-4-scout-17b-16e-instruct` model. Set `id="gpt-oss-120b"` or another current [Cerebras model](https://inference-docs.cerebras.ai/models/overview) explicitly. +Agno v2.7.4 defaults `Cerebras.id` to the retired `llama-4-scout-17b-16e-instruct` model. Set `id="gpt-oss-120b"` or another current [Cerebras model](https://inference-docs.cerebras.ai/models/overview) explicitly. ## Prerequisites diff --git a/models/providers/gateways/groq/usage/translation-agent.mdx b/models/providers/gateways/groq/usage/translation-agent.mdx index f2e862600..bbd4591b9 100644 --- a/models/providers/gateways/groq/usage/translation-agent.mdx +++ b/models/providers/gateways/groq/usage/translation-agent.mdx @@ -4,7 +4,7 @@ description: Transcribe, translate, and regenerate audio with GroqTools. --- - This v2.7.2 source cannot run as written. It references an input file that is not provided, uses Groq's retired `playai-tts` default, asks for music even though the tool generates speech, and saves WAV bytes with an `.mp3` extension. Provide a real input file, select a current TTS model and voice, change the prompt to request speech, and save the output as `.wav`. See [Groq model deprecations](https://console.groq.com/docs/deprecations) and [Groq text to speech](https://console.groq.com/docs/text-to-speech/). + This v2.7.4 source cannot run as written. It references an input file that is not provided, uses Groq's retired `playai-tts` default, asks for music even though the tool generates speech, and saves WAV bytes with an `.mp3` extension. Provide a real input file, select a current TTS model and voice, change the prompt to request speech, and save the output as `.wav`. See [Groq model deprecations](https://console.groq.com/docs/deprecations) and [Groq text to speech](https://console.groq.com/docs/text-to-speech/). ## Code @@ -38,7 +38,7 @@ if response and response.audio: ## Prepare a corrected copy -The source fence is preserved for v2.7.2 fidelity. These packages and API keys cover its imports. Apply every change in the warning above before running it. +The source fence is preserved for v2.7.4 fidelity. These packages and API keys cover its imports. Apply every change in the warning above before running it. diff --git a/models/providers/gateways/nebius/overview.mdx b/models/providers/gateways/nebius/overview.mdx index 91e1f51fe..c99f92597 100644 --- a/models/providers/gateways/nebius/overview.mdx +++ b/models/providers/gateways/nebius/overview.mdx @@ -52,7 +52,7 @@ agent.print_response("Share a 2 sentence horror story.") See the [Nebius usage examples](/models/providers/gateways/nebius/usage/basic-stream). - The pinned Agno 2.7.2 default, `openai/gpt-oss-20b`, is retired from serverless inference. Set `id` to an explicit current text-generation model ID from the [Nebius model-list API](https://docs.tokenfactory.nebius.com/api-reference/examples/list-of-models). + The pinned Agno 2.7.4 default, `openai/gpt-oss-20b`, is retired from serverless inference. Set `id` to an explicit current text-generation model ID from the [Nebius model-list API](https://docs.tokenfactory.nebius.com/api-reference/examples/list-of-models). ## Params diff --git a/models/providers/model-index.mdx b/models/providers/model-index.mdx index ddab95ead..ed496a06e 100644 --- a/models/providers/model-index.mdx +++ b/models/providers/model-index.mdx @@ -429,14 +429,14 @@ Browse the provider guides available in this documentation. Capabilities vary by ## Model String Key Catalog -These are the canonical provider keys registered by the v2.7.2 model-string resolver. Similar keys can select different API adapters. +These are the canonical provider keys registered by the v2.7.4 model-string resolver. Similar keys can select different API adapters. | Category | Canonical keys | | -------- | -------------- | | Provider APIs | `anthropic`, `cohere`, `dashscope`, `deepseek`, `google`, `google-interactions`, `inception`, `internlm`, `llama-openai`, `meta`, `minimax`, `mistral`, `moonshot`, `open-responses`, `openai`, `openai-chat`, `openai-responses`, `perplexity`, `vercel`, `xai`, `xiaomi` | | Local runtimes | `llama-cpp`, `lmstudio`, `ollama`, `ollama-responses`, `vllm` | | Cloud platforms | `aws-bedrock`, `aws-claude`, `azure-ai-foundry`, `azure-foundry-claude`, `azure-openai`, `ibm`, `vertexai-claude` | -| Hosted inference and gateways | `aimlapi`, `cerebras`, `cerebras-openai`, `cloudflare`, `cometapi`, `deepinfra`, `fireworks`, `groq`, `huggingface`, `langdb`, `litellm`, `litellm-openai`, `n1n`, `nebius`, `neosantara`, `nexus`, `nvidia`, `openrouter`, `openrouter-responses`, `portkey`, `requesty`, `sambanova`, `siliconflow`, `together`, `tuning-engines` | +| Hosted inference and gateways | `aimlapi`, `cerebras`, `cerebras-openai`, `cloudflare`, `cometapi`, `deepinfra`, `fireworks`, `groq`, `huggingface`, `langdb`, `litellm`, `litellm-openai`, `n1n`, `nebius`, `neosantara`, `nexus`, `nvidia`, `openrouter`, `openrouter-responses`, `portkey`, `requesty`, `sambanova`, `siliconflow`, `together`, `tokenlab`, `tuning-engines` | Use canonical keys in new configuration. See [Model as String](/models/model-as-string) for parsing rules and API-variant examples. @@ -451,7 +451,7 @@ The SDK also exports these provider adapters, but this documentation does not ye | N1N | `from agno.models.n1n import N1N` | [N1N reference](/reference/models/n1n) | - In v2.7.2, the `InternLM` default `base_url` already ends in `/chat/completions`, and the inherited OpenAI client appends that route again. The `internlm:model_id` string therefore sends requests to a duplicated path. Until the adapter is fixed, instantiate the class with `base_url="https://internlm-chat.intern-ai.org.cn/puyu/api/v1"` instead of using the string form. + In v2.7.4, the `InternLM` default `base_url` already ends in `/chat/completions`, and the inherited OpenAI client appends that route again. The `internlm:model_id` string therefore sends requests to a duplicated path. Until the adapter is fixed, instantiate the class with `base_url="https://internlm-chat.intern-ai.org.cn/puyu/api/v1"` instead of using the string form. Feature support still depends on the selected model ID and endpoint. Verify both before deployment. diff --git a/models/providers/native/anthropic/overview.mdx b/models/providers/native/anthropic/overview.mdx index ce65bb48c..20cbf583a 100644 --- a/models/providers/native/anthropic/overview.mdx +++ b/models/providers/native/anthropic/overview.mdx @@ -53,7 +53,7 @@ See the [basic usage guide](/models/providers/native/anthropic/usage/basic) for ## Model Selection -`Claude` defaults to `claude-sonnet-4-5-20250929` in Agno v2.7.2. Pass another model ID with `Claude(id=...)` when a different capability or latency profile fits the use case. +`Claude` defaults to `claude-sonnet-4-5-20250929` in Agno v2.7.4. Pass another model ID with `Claude(id=...)` when a different capability or latency profile fits the use case. | Model | Use Case | | --- | --- | @@ -72,7 +72,7 @@ See Anthropic's [current model comparison](https://platform.claude.com/docs/en/a ## Supported Input -| Input | Agno v2.7.2 Support | +| Input | Agno v2.7.4 Support | | --- | --- | | Text | Text input and text output | | Images | JPEG, PNG, GIF, and WebP from a URL, local path, or bytes. Anthropic analyzes only the first frame of an animated GIF. | @@ -84,7 +84,7 @@ Agno sends image URLs to Anthropic as base64 data after downloading them. Anthro ## Request Limits -The Messages API requires `max_tokens`. Agno sends `8192` unless `max_tokens` is set on `Claude`. Anthropic also accepts `0` for prompt-cache pre-warming, but Agno v2.7.2 omits that falsy value; use a positive value with this adapter. See the [Messages API reference](https://platform.claude.com/docs/en/api/messages/create). +The Messages API requires `max_tokens`. Agno sends `8192` unless `max_tokens` is set on `Claude`. Anthropic also accepts `0` for prompt-cache pre-warming, but Agno v2.7.4 omits that falsy value; use a positive value with this adapter. See the [Messages API reference](https://platform.claude.com/docs/en/api/messages/create). Anthropic also applies organization and workspace rate limits. See the [rate-limit documentation](https://platform.claude.com/docs/en/api/rate-limits). @@ -132,7 +132,7 @@ See [prompt caching with Claude](/models/providers/native/anthropic/usage/prompt Pass a Pydantic model as `output_schema` to use Claude's native structured outputs. Anthropic supports structured outputs on Claude Opus 4.1, the Claude 4.5 families, and later models. Claude 3.x, Claude Sonnet 4, and Claude Opus 4 do not support the feature. - Agno v2.7.2 uses Anthropic's legacy `output_format` beta request for this + Agno v2.7.4 uses Anthropic's legacy `output_format` beta request for this feature. Anthropic's generally available request shape is `output_config.format`. The legacy shape remains available during the transition period. @@ -170,7 +170,7 @@ See Anthropic's [structured-output compatibility](https://platform.claude.com/do | `id` | `str` | `"claude-sonnet-4-5-20250929"` | Anthropic Claude model ID | | `name` | `str` | `"Claude"` | Model name | | `provider` | `str` | `"Anthropic"` | Model provider | -| `max_tokens` | `Optional[int]` | `8192` | Maximum output tokens. Agno v2.7.2 sends only truthy values, so Anthropic's `0`-token cache pre-warming is unavailable through this adapter. | +| `max_tokens` | `Optional[int]` | `8192` | Maximum output tokens. Agno v2.7.4 sends only truthy values, so Anthropic's `0`-token cache pre-warming is unavailable through this adapter. | | `thinking` | `Optional[Dict[str, Any]]` | `None` | Model-specific [thinking configuration](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) | | `output_config` | `Optional[Dict[str, Any]]` | `None` | Anthropic output configuration forwarded unchanged, such as `{"effort": "medium"}` | | `temperature` | `Optional[float]` | `None` | Sampling temperature when supported by the selected model | @@ -186,7 +186,7 @@ See Anthropic's [structured-output compatibility](https://platform.claude.com/do | `context_management` | `Optional[Dict[str, Any]]` | `None` | Anthropic context-management request body. Add the beta required by the selected strategy to `betas`. | | `mcp_servers` | `Optional[List[MCPServerConfiguration]]` | `None` | Remote MCP server connections. The current connector also requires `mcp-client-2025-04-04` in `betas`. | | `skills` | `Optional[List[Dict[str, str]]]` | `None` | Agent Skills to load, such as `[{"type": "anthropic", "skill_id": "pptx", "version": "latest"}]`. Agno adds the Skills beta, the legacy code-execution beta, and the `code_execution_20250825` tool. | -| `citations` | `bool` | `True` | Attach citations to URL, local, and bytes document blocks. Agno v2.7.2 omits citations from Anthropic file-ID blocks and suppresses them when structured output is active. | +| `citations` | `bool` | `True` | Attach citations to URL, local, and bytes document blocks. Agno v2.7.4 omits citations from Anthropic file-ID blocks and suppresses them when structured output is active. | | `append_trailing_user_message` | `Optional[bool]` | `None` | Append a user turn when a conversation ends with an assistant message. Agno enables this by default for Claude 4.6 and later models, which do not support assistant prefill. | | `trailing_user_message_content` | `str` | `"continue"` | Content of the appended user message | | `api_key` | `Optional[str]` | `None` | Anthropic API key. Falls back to `ANTHROPIC_API_KEY`. | diff --git a/models/providers/native/anthropic/usage/skills.mdx b/models/providers/native/anthropic/usage/skills.mdx index 00fe0e1ad..d7fba721c 100644 --- a/models/providers/native/anthropic/usage/skills.mdx +++ b/models/providers/native/anthropic/usage/skills.mdx @@ -73,7 +73,7 @@ if __name__ == "__main__": download_generated_files(file_ids) ``` -Agno 2.7.2 adds the Skills container, the `code_execution_20250825` server tool, and the `code-execution-2025-08-25` and `skills-2025-10-02` beta values when `skills` is set. Anthropic now treats that code execution version as generally available, but still accepts its legacy beta value. Agno copies IDs from Bash execution results to `model_provider_data["file_ids"]` and preserves Python execution results in `model_provider_data["server_tool_blocks"]`. `extract_generated_file_ids()` handles both result shapes. Anthropic's Python SDK adds the Files API beta header when you call `client.beta.files`. +Agno 2.7.4 adds the Skills container, the `code_execution_20250825` server tool, and the `code-execution-2025-08-25` and `skills-2025-10-02` beta values when `skills` is set. Anthropic now treats that code execution version as generally available, but still accepts its legacy beta value. Agno copies IDs from Bash execution results to `model_provider_data["file_ids"]` and preserves Python execution results in `model_provider_data["server_tool_blocks"]`. `extract_generated_file_ids()` handles both result shapes. Anthropic's Python SDK adds the Files API beta header when you call `client.beta.files`. ## Pre-Built Skills @@ -122,7 +122,7 @@ Use up to eight Skills in one Messages API request. Each configuration takes `ty - Skills run in an isolated Anthropic container without network access or runtime package installation. - Generated files remain in Anthropic's environment until you download them. The Files API permits downloads only for files generated by Skills or code execution. -- Anthropic can return `pause_turn` for a long-running Skill. Agno 2.7.2 drops that stop reason. Keep this one-shot example to short generation tasks, and use Anthropic's native SDK when the operation requires pause continuation. +- Anthropic can return `pause_turn` for a long-running Skill. Agno 2.7.4 drops that stop reason. Keep this one-shot example to short generation tasks, and use Anthropic's native SDK when the operation requires pause continuation. - The Files API is beta. Skills and the Files API are available through the Claude API, Claude Platform on AWS, and Microsoft Foundry deployments hosted by Anthropic. They are unavailable through Amazon Bedrock and Google Cloud Vertex AI. - Skill-generated `.pptx`, `.xlsx`, `.docx`, and `.pdf` files are outputs. Office binary inputs require a code-execution container upload or conversion to text or PDF instead of a Messages API `document` block. diff --git a/models/providers/native/anthropic/usage/structured-output-stream.mdx b/models/providers/native/anthropic/usage/structured-output-stream.mdx index 8dcbc07bf..cb03dd354 100644 --- a/models/providers/native/anthropic/usage/structured-output-stream.mdx +++ b/models/providers/native/anthropic/usage/structured-output-stream.mdx @@ -32,7 +32,7 @@ if __name__ == "__main__": ) ``` -Agno 2.7.2 sets `stream_model_response=False` when an Agent has `output_schema`, `parse_response=True`, and no parser model. Claude completes one non-streaming request. Agno validates it and then emits one `TravelPlan` result through the Agent streaming interface. Use a standard `run()` for direct access to the validated object. +Agno 2.7.4 sets `stream_model_response=False` when an Agent has `output_schema`, `parse_response=True`, and no parser model. Claude completes one non-streaming request. Agno validates it and then emits one `TravelPlan` result through the Agent streaming interface. Use a standard `run()` for direct access to the validated object. This buffered path has the same model, schema, refusal, `max_tokens`, citation, and message-prefill constraints as [non-streaming structured output](/models/providers/native/anthropic/usage/structured-output). diff --git a/models/providers/native/anthropic/usage/structured-output-strict-tools.mdx b/models/providers/native/anthropic/usage/structured-output-strict-tools.mdx index 93c70deaa..6c074b068 100644 --- a/models/providers/native/anthropic/usage/structured-output-strict-tools.mdx +++ b/models/providers/native/anthropic/usage/structured-output-strict-tools.mdx @@ -66,7 +66,7 @@ if __name__ == "__main__": | Tool name and arguments | `Function(strict=True)` | Top-level `strict: true` beside `name`, `description`, and `input_schema` | | Final response | `Agent(output_schema=WeatherInfo)` | JSON output schema | -Both schemas must use Anthropic's supported JSON Schema subset. Agno adds `additionalProperties: false` and makes every strict function parameter required when it formats the tool schema. In Agno 2.7.2, defaulted and `Optional` function parameters remain required when `strict=True` because `Function` rewrites the schema's `required` list. This example therefore requires `unit` in both the function signature and the explicit schema. +Both schemas must use Anthropic's supported JSON Schema subset. Agno adds `additionalProperties: false` and makes every strict function parameter required when it formats the tool schema. In Agno 2.7.4, defaulted and `Optional` function parameters remain required when `strict=True` because `Function` rewrites the schema's `required` list. This example therefore requires `unit` in both the function signature and the explicit schema. ## Usage diff --git a/models/providers/native/anthropic/usage/structured-output.mdx b/models/providers/native/anthropic/usage/structured-output.mdx index f1fe2c29c..b7018498d 100644 --- a/models/providers/native/anthropic/usage/structured-output.mdx +++ b/models/providers/native/anthropic/usage/structured-output.mdx @@ -37,7 +37,7 @@ if __name__ == "__main__": `run.content` is a `MovieScript` instance after Claude returns valid JSON and Agno validates it against the schema. -Agno 2.7.2 translates `output_schema` to Anthropic's legacy-compatible `output_format` request and adds the `structured-outputs-2025-11-13` beta automatically. Anthropic's current direct API uses `output_config.format`; the legacy request remains available during Anthropic's migration period. Let Agno populate the request field when you use `output_schema`. +Agno 2.7.4 translates `output_schema` to Anthropic's legacy-compatible `output_format` request and adds the `structured-outputs-2025-11-13` beta automatically. Anthropic's current direct API uses `output_config.format`; the legacy request remains available during Anthropic's migration period. Let Agno populate the request field when you use `output_schema`. Anthropic lists Claude Sonnet 4.6 as supporting structured outputs. Refusals and responses stopped at `max_tokens` can end without a schema-valid result. Anthropic JSON outputs are also incompatible with citations and message prefilling; Agno disables document citations for these requests. diff --git a/models/providers/native/anthropic/usage/tool-use.mdx b/models/providers/native/anthropic/usage/tool-use.mdx index 16d1ba031..086e50c6b 100644 --- a/models/providers/native/anthropic/usage/tool-use.mdx +++ b/models/providers/native/anthropic/usage/tool-use.mdx @@ -25,7 +25,7 @@ if __name__ == "__main__": Agno converts each function into Anthropic's `name`, `description`, and `input_schema` tool shape. It executes returned `tool_use` blocks and sends the matching `tool_result` blocks back to Claude. -Agno 2.7.2 leaves Anthropic tool selection automatic because the adapter omits `Agent.tool_choice` from the request. +Agno 2.7.4 leaves Anthropic tool selection automatic because the adapter omits `Agent.tool_choice` from the request. ## Usage diff --git a/models/providers/native/google/usage/interactions-antigravity.mdx b/models/providers/native/google/usage/interactions-antigravity.mdx index 6d21970d6..e9ac86753 100644 --- a/models/providers/native/google/usage/interactions-antigravity.mdx +++ b/models/providers/native/google/usage/interactions-antigravity.mdx @@ -13,7 +13,7 @@ The `environment` parameter selects the sandbox: | `"env_"` | Reuse a previously provisioned sandbox. | | `dict` | Full `EnvironmentConfig` (sources, network rules). | -`GeminiInteractions` in Agno 2.7.2 sends Antigravity requests in the foreground and forces `store=True` so each interaction is retrievable. The Google API also supports background Antigravity execution. Use the Google Gen AI SDK directly when you need background execution. +`GeminiInteractions` in Agno 2.7.4 sends Antigravity requests in the foreground and forces `store=True` so each interaction is retrievable. The Google API also supports background Antigravity execution. Use the Google Gen AI SDK directly when you need background execution. ## Code diff --git a/multimodal/agent/usage/video-caption.mdx b/multimodal/agent/usage/video-caption.mdx index b7370e6b6..69707a326 100644 --- a/multimodal/agent/usage/video-caption.mdx +++ b/multimodal/agent/usage/video-caption.mdx @@ -68,7 +68,7 @@ Captioned video: {output_path}""" ``` - Agno v2.7.2 uses Arial for embedded caption text. Install Arial before running this example on a system that does not include it. + Agno v2.7.4 uses Arial for embedded caption text. Install Arial before running this example on a system that does not include it. ## Run the Example diff --git a/other/install.mdx b/other/install.mdx index 0f16c389a..3cf9fdc32 100644 --- a/other/install.mdx +++ b/other/install.mdx @@ -5,7 +5,7 @@ description: "Install the Agno SDK with uv or pip in a supported Python virtual ## Install the Agno SDK -Agno v2.7.2 supports Python 3.9 or later in the Python 3 series (`>=3.9,<4`). The commands below select Python 3.12. +Agno v2.7.4 supports Python 3.9 or later in the Python 3 series (`>=3.9,<4`). The commands below select Python 3.12. Use [uv](https://docs.astral.sh/uv/getting-started/installation/) for environment and package management, or use Python's built-in `venv` and pip. diff --git a/reference-api/openapi.json b/reference-api/openapi.json index 8a085cd1a..b1e9ce12b 100644 --- a/reference-api/openapi.json +++ b/reference-api/openapi.json @@ -1 +1 @@ -{"openapi":"3.1.0","info":{"title":"Agno API Reference","description":"The all-in-one, private, secure agent platform that runs in your cloud.","version":"2.7.2"},"paths":{"/":{"get":{"tags":["Home"],"summary":"API Information","description":"Get basic information about this AgentOS API instance, including:\n\n- API metadata and version\n- Available capabilities overview\n- Links to key endpoints and documentation","operationId":"get_api_info","responses":{"200":{"description":"API information retrieved successfully","content":{"application/json":{"schema":{},"examples":{"home":{"summary":"Example home response","value":{"name":"AgentOS API","id":"demo-os","version":"1.0.0"}}}}}}}}},"/health":{"get":{"tags":["Health"],"summary":"Health Check","description":"Check the health status of the AgentOS API. Returns a simple status indicator.","operationId":"health_check","responses":{"200":{"description":"API is healthy and operational","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"},"example":{"status":"ok","instantiated_at":"2025-06-10T12:00:00Z"}}}}}}},"/info":{"get":{"tags":["Core"],"summary":"Get OS Info","description":"Return lightweight, unauthenticated metadata about this AgentOS instance.","operationId":"get_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoResponse"}}}}}}},"/config":{"get":{"tags":["Core"],"summary":"Get OS Configuration","description":"Retrieve the complete configuration of the AgentOS instance, including:\n\n- Available models and databases\n- Registered agents, teams, and workflows\n- Chat, session, memory, knowledge, and evaluation configurations\n- Available interfaces and their routes","operationId":"get_config","responses":{"200":{"description":"OS configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"},"example":{"id":"demo","description":"Example AgentOS configuration","available_models":[],"databases":["9c884dc4-9066-448c-9074-ef49ec7eb73c"],"session":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Sessions"}}]},"metrics":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Metrics"}}]},"memory":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Memory"}}]},"knowledge":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Knowledge"}}]},"evals":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Evals"}}]},"agents":[{"id":"main-agent","name":"Main Agent","db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c"}],"teams":[],"workflows":[],"interfaces":[]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/models":{"get":{"tags":["Core"],"summary":"Get Available Models","description":"Retrieve a list of all unique models currently used by agents and teams in this OS instance. This includes the model ID and provider information for each model.","operationId":"get_models","responses":{"200":{"description":"List of models retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Response Get Models"},"example":[{"id":"gpt-4","provider":"openai"},{"id":"claude-3-sonnet","provider":"anthropic"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}/runs":{"post":{"tags":["Agents"],"summary":"Create Agent Run","description":"Execute an agent with a message and optional media files. Supports both streaming and non-streaming responses.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_agent_run"}}}},"responses":{"200":{"description":"Agent run executed successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"examples":{"event_stream":{"summary":"Example event stream response","value":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Agents"],"summary":"List Agent Runs","description":"List runs for an agent within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_agent_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/cancel":{"post":{"tags":["Agents"],"summary":"Cancel Agent Run","description":"Cancel a currently executing agent run. This will attempt to stop the agent's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/continue":{"post":{"tags":["Agents"],"summary":"Continue Agent Run","description":"Advance a persisted agent run from its current state. Dispatches on the body shape and the persisted run state (see ADR-003 in specs/agno/features/checkpointing/decisions.md).\n\n**Variants:**\n- PAUSED + tools provided → apply HITL tool results, resume\n- PAUSED + resolved admin approval (empty tools) → apply resolution, resume\n- RUNNING / ERROR (no unresolved HITL requirements) → resume from last persisted state\n- COMPLETED + new tools → continue with appended messages\n\n**Tools Parameter:**\nJSON string containing array of tool execution objects with results. Optional — only required when the persisted run has unresolved HITL requirements.","operationId":"continue_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_agent_run"}}}},"responses":{"200":{"description":"Agent run continued successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n"}}},"400":{"description":"Invalid JSON in tools field or invalid tool structure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"403":{"description":"Run has a pending admin approval and cannot be continued by the user yet."}}}},"/agents/{agent_id}/sessions/{session_id}/fork":{"post":{"tags":["Agents"],"summary":"Fork Agent Session","description":"Deep-copy a session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_agent_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents":{"get":{"tags":["Agents"],"summary":"List All Agents","description":"Retrieve a comprehensive list of all agents configured in this OS instance.\n\n**Returns:**\n- Agent metadata (ID, name, description)\n- Model configuration and capabilities\n- Available tools and their configurations\n- Session, knowledge, memory, and reasoning settings\n- Only meaningful (non-default) configurations are included","operationId":"get_agents","responses":{"200":{"description":"List of agents retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentResponse"},"type":"array","title":"Response Get Agents"},"example":[{"id":"main-agent","name":"Main Agent","db_id":"c6bf0644-feb8-4930-a305-380dae5ad6aa","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Details","description":"Retrieve detailed configuration and capabilities of a specific agent.\n\n**Returns comprehensive agent information including:**\n- Model configuration and provider details\n- Complete tool inventory and configurations\n- Session management settings\n- Knowledge base and memory configurations\n- Reasoning capabilities and settings\n- System prompts and response formatting options","operationId":"get_agent","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Agent details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"},"example":{"id":"main-agent","name":"Main Agent","db_id":"9e064c70-6821-4840-a333-ce6230908a70","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Run","description":"Retrieve the status and output of an agent run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Agents"],"summary":"List Agent Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_agent_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Agents"],"summary":"Get Agent Run Checkpoint Snapshot","description":"Return a derived run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_agent_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/resume":{"post":{"tags":["Agents"],"summary":"Resume Agent Run Stream","description":"Resume an SSE stream for an agent run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_agent_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_agent_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"application/json":{"schema":{}},"text/event-stream":{}}},"400":{"description":"Not supported for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs":{"post":{"tags":["Teams"],"summary":"Create Team Run","description":"Execute a team collaboration with multiple agents working together on a task.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_team_run"}}}},"responses":{"200":{"description":"Team run executed successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Teams"],"summary":"List Team Runs","description":"List runs for a team within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_team_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/cancel":{"post":{"tags":["Teams"],"summary":"Cancel Team Run","description":"Cancel a currently executing team run. This will attempt to stop the team's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel team run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/resume":{"post":{"tags":["Teams"],"summary":"Resume Team Run Stream","description":"Resume an SSE stream for a team run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_team_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_team_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"application/json":{"schema":{}},"text/event-stream":{}}},"400":{"description":"Not supported for remote teams","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/continue":{"post":{"tags":["Teams"],"summary":"Continue Team Run","description":"Continue a paused or incomplete team run with updated requirements.\n\n**Use Cases:**\n- Resume execution after tool approval/rejection\n- Provide manual tool execution results\n- Resume after admin approval (requirements can be empty; resolution fetched from DB)\n\n**Requirements Parameter:**\nJSON string containing array of requirement objects with tool execution results.\nCan be empty when an admin-required approval has been resolved.","operationId":"continue_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_team_run"}}}},"responses":{"200":{"description":"Team run continued successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n"}}},"400":{"description":"Invalid JSON in requirements field or invalid requirement structure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"403":{"description":"Run has a pending admin approval and cannot be continued by the user yet."},"409":{"description":"Run is not paused (e.g. run is already running, continued, or errored). Only PAUSED runs can be continued."}}}},"/teams/{team_id}/sessions/{session_id}/fork":{"post":{"tags":["Teams"],"summary":"Fork Team Session","description":"Deep-copy a team session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_team_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams":{"get":{"tags":["Teams"],"summary":"List All Teams","description":"Retrieve a comprehensive list of all teams configured in this OS instance.\n\n**Returns team information including:**\n- Team metadata (ID, name, description, execution mode)\n- Model configuration for team coordination\n- Team member roster with roles and capabilities\n- Knowledge sharing and memory configurations","operationId":"get_teams","responses":{"200":{"description":"List of teams retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamResponse"},"type":"array","title":"Response Get Teams"},"example":[{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"agno_memories","app_url":"/memory/1","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/teams/{team_id}":{"get":{"tags":["Teams"],"summary":"Get Team Details","description":"Retrieve detailed configuration and member information for a specific team.","operationId":"get_team","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"},"example":{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}":{"get":{"tags":["Teams"],"summary":"Get Team Run","description":"Retrieve the status and output of a team run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Teams"],"summary":"List Team Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored team run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_team_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Teams"],"summary":"Get Team Run Checkpoint Snapshot","description":"Return a derived team run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_team_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows":{"get":{"tags":["Workflows"],"summary":"List All Workflows","description":"Retrieve a comprehensive list of all workflows configured in this OS instance.\n\n**Return Information:**\n- Workflow metadata (ID, name, description)\n- Input schema requirements\n- Step sequence and execution flow\n- Associated agents and teams","operationId":"get_workflows","responses":{"200":{"description":"List of workflows retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Response Get Workflows"},"example":[{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/workflows/{workflow_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Details","description":"Retrieve detailed configuration and step information for a specific workflow.","operationId":"get_workflow","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Workflow version to retrieve","title":"Version"},"description":"Workflow version to retrieve"}],"responses":{"200":{"description":"Workflow details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"},"example":{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs":{"post":{"tags":["Workflows"],"summary":"Execute Workflow","description":"Execute a workflow with the provided input data. Workflows can run in streaming or batch mode.\n\n**Execution Modes:**\n- **Streaming (`stream=true`)**: Real-time step-by-step execution updates via SSE\n- **Non-Streaming (`stream=false`)**: Complete workflow execution with final result\n\n**Workflow Execution Process:**\n1. Input validation against workflow schema\n2. Sequential or parallel step execution based on workflow design\n3. Data flow between steps with transformation\n4. Error handling and automatic retries where configured\n5. Final result compilation and response\n\n**Session Management:**\nWorkflows support session continuity for stateful execution across multiple runs.","operationId":"create_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_run"}}}},"responses":{"200":{"description":"Workflow executed successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"400":{"description":"Invalid input data or workflow configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Workflow execution error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"List Workflow Runs","description":"List runs for a workflow within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_workflow_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/continue":{"post":{"tags":["Workflows"],"summary":"Continue Workflow Run","description":"Continue a paused workflow run with resolved requirements.\n\n**Use Cases:**\n- Resume after step-level HITL (confirmation, user input, router selection)\n- Resume after executor-level HITL (agent/team tool confirmation within a step)\n\n**Requirements Parameter:**\nJSON string containing the resolved step requirements.","operationId":"continue_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_workflow_run"}}}},"responses":{"200":{"description":"Workflow run continued successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: StepCompleted\ndata: {\"step_name\": \"step1\"}\n\n"}}},"400":{"description":"Invalid JSON in requirements field","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"409":{"description":"Run is not paused. Only PAUSED runs can be continued."}}}},"/workflows/{workflow_id}/runs/{run_id}/cancel":{"post":{"tags":["Workflows"],"summary":"Cancel Workflow Run","description":"Cancel a currently executing workflow run, stopping all active steps and cleanup.\n**Note:** Complex workflows with multiple parallel steps may take time to fully cancel.","operationId":"cancel_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel workflow run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/resume":{"post":{"tags":["Workflows"],"summary":"Resume Workflow Run Stream","description":"Resume an SSE stream for a workflow run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_workflow_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_workflow_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"application/json":{"schema":{}},"text/event-stream":{}}},"400":{"description":"Stream resumption is unavailable for remote and factory workflows. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Run","description":"Retrieve the status and output of a workflow run. Use this to poll for run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/slack/events":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Receives incoming Slack events (messages, mentions, thread starts).\n\n**URL Verification:** On first setup, Slack sends a `url_verification` challenge. The endpoint echoes back the challenge string.\n\n**Event Processing:** Normal events are acknowledged immediately with `{\"status\": \"ok\"}` and processed in the background. This prevents Slack's 3-second retry timeout.\n\n**Retry Handling:** Events with `X-Slack-Retry-Num` header are duplicates and return 200 without reprocessing.\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Event Subscriptions > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for creating a Slack App or use the [manifest](/agent-os/interfaces/slack/setup#2-create-the-slack-app) for quick setup.\n","operationId":"slack_events_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SlackChallengeResponse"},{"$ref":"#/components/schemas/SlackEventResponse"}],"title":"Response Slack Events Simple Agent"}}}},"400":{"description":"Missing Slack headers"},"403":{"description":"Invalid Slack signature"}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number (present on retried events)"}]}},"/slack/interactions":{"post":{"tags":["Slack"],"summary":"Slack Interactions","description":"Handles Slack interactive components for Human-in-the-Loop (HITL) workflows.\n\n**Supported Actions:**\n- `row_approve` - Approve a pending tool call\n- `row_reject` - Reject a pending tool call\n- `submit_pause` - Submit form data for a paused workflow\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Interactivity & Shortcuts > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for step-by-step instructions or the [HITL guide](/agent-os/interfaces/slack/hitl) for approval workflows.\n","operationId":"slack_interactions_simple_agent","responses":{"200":{"description":"Interaction accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackEventResponse"}}}},"400":{"description":"Malformed interaction payload"},"403":{"description":"Invalid Slack signature"}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"URL-encoded JSON interaction payload (Slack sends interactive component data as a single form field)"}}}}}}}},"/whatsapp/status":{"get":{"tags":["Whatsapp"],"summary":"Status","operationId":"whatsapp_status_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/whatsapp/webhook":{"get":{"tags":["Whatsapp"],"summary":"Whatsapp Verify","description":"Handle WhatsApp webhook verification","operationId":"whatsapp_verify_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["Whatsapp"],"summary":"Whatsapp Webhook","description":"Process incoming WhatsApp messages","operationId":"whatsapp_webhook_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppWebhookResponse"}}}},"403":{"description":"Invalid webhook signature"}}}},"/telegram/status":{"get":{"tags":["Telegram"],"summary":"Telegram Status","operationId":"telegram_status_simple-agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramStatusResponse"}}}}}}},"/telegram/webhook":{"post":{"tags":["Telegram"],"summary":"Telegram Webhook","operationId":"telegram_webhook_simple-agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramWebhookResponse"}}}},"403":{"description":"Invalid webhook secret token"}}}},"/agui":{"post":{"tags":["AGUI"],"summary":"Run Agent","operationId":"run_agent_agui_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/status":{"get":{"tags":["AGUI"],"summary":"Get Status","operationId":"get_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/a2a/agents/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Agent Card","operationId":"get_agent_card_a2a_agents__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Agent","description":"Send a message to an Agno Agent (non-streaming). The Agent is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"run_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request"},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Agent Task","description":"Get the status and result of an agent task by ID.","operationId":"get_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Agent Task","description":"Cancel a running agent task.","operationId":"cancel_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Agent","description":"Stream a message to an Agno Agent (streaming). The Agent is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Streaming response with task updates","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n"}}},"400":{"description":"Invalid request"},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Team Card","operationId":"get_team_card_a2a_teams__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Team","description":"Send a message to an Agno Team (non-streaming). The Team is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"run_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request"},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Team Task","description":"Get the status and result of a team task by ID.","operationId":"get_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Team Task","description":"Cancel a running team task.","operationId":"cancel_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Team","description":"Stream a message to an Agno Team (streaming). The Team is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Streaming response with task updates","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n"}}},"400":{"description":"Invalid request"},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/workflows/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Workflow Card","operationId":"get_workflow_card_a2a_workflows__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/workflows/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Workflow","description":"Send a message to an Agno Workflow (non-streaming). The Workflow is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"run_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request"},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/workflows/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Workflow","description":"Stream a message to an Agno Workflow (streaming). The Workflow is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Streaming response with task updates","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n"}}},"400":{"description":"Invalid request"},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/message/send":{"post":{"tags":["A2A"],"summary":"Send Message","description":"[DEPRECATED] Send a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"send_message","responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/a2a/message/stream":{"post":{"tags":["A2A"],"summary":"Stream Message","description":"[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message","responses":{"200":{"description":"Streaming response with task updates","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n"}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/sessions":{"get":{"tags":["Sessions"],"summary":"List Sessions","description":"Retrieve paginated list of sessions with filtering and sorting options. Supports filtering by session type (agent, team, workflow), component, user, and name. Sessions represent conversation histories and execution contexts.","operationId":"get_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types.","title":"Type"},"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types."},{"name":"component_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by component ID (agent/team/workflow ID)","title":"Component Id"},"description":"Filter sessions by component ID (agent/team/workflow ID)"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by user ID","title":"User Id"},"description":"Filter sessions by user ID"},{"name":"session_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by name (partial match)","title":"Session Name"},"description":"Filter sessions by name (partial match)"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of sessions to return per page","default":20,"title":"Limit"},"description":"Number of sessions to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort sessions by","default":"created_at","title":"Sort By"},"description":"Field to sort sessions by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query sessions from","title":"Db Id"},"description":"Database ID to query sessions from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Sessions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_SessionSchema_"},"example":{"session_example":{"summary":"Example session response","value":{"data":[{"session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_state":{},"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}]}}}}}},"400":{"description":"Invalid session type or filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in query parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Sessions"],"summary":"Create New Session","description":"Create a new empty session with optional configuration. Useful for pre-creating sessions with specific session_state, metadata, or other properties before running any agent/team/workflow interactions. The session can later be used by providing its session_id in run requests.","operationId":"create_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SessionType","description":"Type of session to create (agent, team, or workflow)","default":"agent"},"description":"Type of session to create (agent, team, or workflow)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to create session in","title":"Db Id"},"description":"Database ID to create session in"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest","description":"Session configuration data","default":{}}}}},"responses":{"201":{"description":"Session created successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Create Session"},"examples":{"agent_session_example":{"summary":"Example created agent session","value":{"user_id":"user-123","agent_session_id":"new-session-id","session_id":"new-session-id","session_name":"New Session","session_state":{"key":"value"},"metadata":{"key":"value"},"agent_id":"agent-1","created_at":"2025-10-21T12:00:00Z","updated_at":"2025-10-21T12:00:00Z"}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Multiple Sessions","description":"Delete multiple sessions by their IDs in a single operation. This action cannot be undone and will permanently remove all specified sessions and their runs.","operationId":"delete_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSessionRequest"}}}},"responses":{"204":{"description":"Sessions deleted successfully"},"400":{"description":"Invalid request - session IDs and types length mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["Sessions"],"summary":"Get Session by ID","description":"Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow).","operationId":"get_session_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to retrieve","title":"Session Id"},"description":"Session ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query session from","title":"User Id"},"description":"User ID to query session from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query session from","title":"Db Id"},"description":"Database ID to query session from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query session from","title":"Table"},"description":"Table to query session from"}],"responses":{"200":{"description":"Session details retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Get Session By Id"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Session","description":"Permanently delete a specific session and all its associated runs. This action cannot be undone and will remove all conversation history.","operationId":"delete_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to delete","title":"Session Id"},"description":"Session ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Sessions"],"summary":"Update Session","description":"Update session properties such as session_name, session_state, metadata, or summary. Use this endpoint to modify the session name, update state, add metadata, or update the session summary.","operationId":"update_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to update","title":"Session Id"},"description":"Session ID to update"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID","title":"User Id"},"description":"User ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update operation","title":"Db Id"},"description":"Database ID to use for update operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update operation","title":"Table"},"description":"Table to use for update operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest","description":"Session update data"}}}},"responses":{"200":{"description":"Session updated successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Update Session"},"examples":{"update_summary":{"summary":"Update session summary","value":{"summary":{"summary":"The user discussed project planning with the agent.","updated_at":"2025-10-21T14:30:00Z"}}},"update_metadata":{"summary":"Update session metadata","value":{"metadata":{"tags":["planning","project"],"priority":"high"}}},"update_session_name":{"summary":"Update session name","value":{"session_name":"Updated Session Name"}},"update_session_state":{"summary":"Update session state","value":{"session_state":{"step":"completed","context":"Project planning finished","progress":100}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs":{"get":{"tags":["Sessions"],"summary":"Get Session Runs","description":"Retrieve all runs (executions) for a specific session with optional timestamp filtering. Runs represent individual interactions or executions within a session. Response schema varies based on session type.","operationId":"get_session_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get runs from","title":"Session Id"},"description":"Session ID to get runs from"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query runs from","title":"User Id"},"description":"User ID to query runs from"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created after this Unix timestamp (epoch time in seconds)","title":"Created After"},"description":"Filter runs created after this Unix timestamp (epoch time in seconds)"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created before this Unix timestamp (epoch time in seconds)","title":"Created Before"},"description":"Filter runs created before this Unix timestamp (epoch time in seconds)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query runs from","title":"Db Id"},"description":"Database ID to query runs from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query runs from","title":"Table"},"description":"Table to query runs from"}],"responses":{"200":{"description":"Session runs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}]},"title":"Response Get Session Runs"},"examples":{"completed_run":{"summary":"Example completed run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"","run_input":"Which tools do you have access to?","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","run_response_format":"text","reasoning_content":"","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069},"messages":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-08 17:52:10.101003.\n\n\nYou have the capability to retain memories from previous interactions with the user, but have not had any interactions with the user yet.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757346730},{"content":"Which tools do you have access to?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757346730},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138},"created_at":1757346730}],"events":[{"created_at":1757346730,"event":"RunStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","model":"gpt-4o","model_provider":"OpenAI"},{"created_at":1757346733,"event":"MemoryUpdateStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"MemoryUpdateCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"RunCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","content_type":"str","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069}}],"created_at":"2025-09-08T15:52:10Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Session not found or has no runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs/{run_id}":{"get":{"tags":["Sessions"],"summary":"Get Run by ID","description":"Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run).","operationId":"get_session_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get run from","title":"Session Id"},"description":"Session ID to get run from"},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","description":"Run ID to retrieve","title":"Run Id"},"description":"Run ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query run from","title":"User Id"},"description":"User ID to query run from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query run from","title":"Db Id"},"description":"Database ID to query run from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query run from","title":"Table"},"description":"Table to query run from"}],"responses":{"200":{"description":"Run retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}],"title":"Response Get Session Run"},"examples":{"agent_run":{"summary":"Example agent run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"user_123","run_input":"Which tools do you have access to?","content":"I don't have access to external tools.","created_at":1728499200}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Session or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/rename":{"post":{"tags":["Sessions"],"summary":"Rename Session","description":"Update the name of an existing session. Useful for organizing and categorizing sessions with meaningful names for better identification and management.","operationId":"rename_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to rename","title":"Session Id"},"description":"Session ID to rename"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope rename to","title":"User Id"},"description":"User ID to scope rename to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for rename operation","title":"Db Id"},"description":"Database ID to use for rename operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_rename_session"}}}},"responses":{"200":{"description":"Session renamed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Rename Session"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Invalid session name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type or validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories":{"post":{"tags":["Memory"],"summary":"Create Memory","description":"Create a new user memory with content and associated topics. Memories are used to store contextual information for users across conversations.","operationId":"create_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for memory storage","title":"Db Id"},"description":"Database ID to use for memory storage"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for memory storage","title":"Table"},"description":"Table to use for memory storage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"mem-123","memory":"User prefers technical explanations with code examples","topics":["preferences","communication_style","technical"],"user_id":"user-456","created_at":"2024-01-15T10:30:00Z","updated_at":"2024-01-15T10:30:00Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Memory"],"summary":"Delete Multiple Memories","description":"Delete multiple user memories by their IDs in a single operation. This action cannot be undone and all specified memories will be permanently removed.","operationId":"delete_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMemoriesRequest"}}}},"responses":{"204":{"description":"Memories deleted successfully"},"400":{"description":"Invalid request - empty memory_ids list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"List Memories","description":"Retrieve paginated list of user memories with filtering and search capabilities. Filter by user, agent, team, topics, or search within memory content.","operationId":"get_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by user ID","title":"User Id"},"description":"Filter memories by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by agent ID","title":"Agent Id"},"description":"Filter memories by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by team ID","title":"Team Id"},"description":"Filter memories by team ID"},{"name":"search_content","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fuzzy search within memory content","title":"Search Content"},"description":"Fuzzy search within memory content"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of memories to return per page","default":20,"title":"Limit"},"description":"Number of memories to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort memories by","default":"updated_at","title":"Sort By"},"description":"Field to sort memories by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memories from","title":"Db Id"},"description":"Database ID to query memories from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Comma-separated list of topics to filter by","examples":["preferences,technical,communication_style"],"title":"Topics"},"description":"Comma-separated list of topics to filter by"}],"responses":{"200":{"description":"Memories retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserMemorySchema_"},"example":{"data":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories/{memory_id}":{"delete":{"tags":["Memory"],"summary":"Delete Memory","description":"Permanently delete a specific user memory. This action cannot be undone.","operationId":"delete_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to delete","title":"Memory Id"},"description":"Memory ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to delete memory for","title":"User Id"},"description":"User ID to delete memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Memory deleted successfully"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"Get Memory by ID","description":"Retrieve detailed information about a specific user memory by its ID.","operationId":"get_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to retrieve","title":"Memory Id"},"description":"Memory ID to retrieve"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query memory for","title":"User Id"},"description":"User ID to query memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memory from","title":"Db Id"},"description":"Database ID to query memory from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query memory from","title":"Table"},"description":"Table to query memory from"}],"responses":{"200":{"description":"Memory retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Memory"],"summary":"Update Memory","description":"Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values.","operationId":"update_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to update","title":"Memory Id"},"description":"Memory ID to update"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update","title":"Db Id"},"description":"Database ID to use for update"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update","title":"Table"},"description":"Table to use for update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memory_topics":{"get":{"tags":["Memory"],"summary":"Get Memory Topics","description":"Retrieve all unique topics associated with memories in the system. Useful for filtering and categorizing memories by topic.","operationId":"get_memory_topics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter topics for","title":"User Id"},"description":"User ID to filter topics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query topics from","title":"Db Id"},"description":"Database ID to query topics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query topics from","title":"Table"},"description":"Table to query topics from"}],"responses":{"200":{"description":"Memory topics retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Get Memory Topics"},"example":["preferences","communication_style","technical","industry","compliance","code_examples","requirements","healthcare","finance"]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/user_memory_stats":{"get":{"tags":["Memory"],"summary":"Get User Memory Statistics","description":"Retrieve paginated statistics about memory usage by user. Provides insights into user engagement and memory distribution across users.","operationId":"get_user_memory_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of user statistics to return per page","default":20,"title":"Limit"},"description":"Number of user statistics to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter statistics for","title":"User Id"},"description":"User ID to filter statistics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query statistics from","title":"Table"},"description":"Table to query statistics from"}],"responses":{"200":{"description":"User memory statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserStatsSchema_"},"example":{"data":[{"user_id":"123","total_memories":3,"last_memory_updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve user statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/optimize-memories":{"post":{"tags":["Memory"],"summary":"Optimize User Memories","description":"Optimize all memories for a given user using the default summarize strategy. This operation combines all memories into a single comprehensive summary, achieving maximum token reduction while preserving all key information. To use a custom model, specify the model parameter in 'provider:model_id' format (e.g., 'openai:gpt-4o-mini', 'anthropic:claude-3-5-sonnet-20241022'). If not specified, uses MemoryManager's default model (gpt-4o). Set apply=false to preview optimization results without saving to database.","operationId":"optimize_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for optimization","title":"Db Id"},"description":"Database ID to use for optimization"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for optimization","title":"Table"},"description":"Table to use for optimization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesRequest"}}}},"responses":{"200":{"description":"Memories optimized successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesResponse"},"example":{"memories":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User has a 3-year-old golden retriever named Max who loves fetch and walks. Lives in San Francisco's Mission district, works as a product manager in tech. Enjoys hiking Bay Area trails, trying new restaurants (especially Japanese, Thai, Mexican), and learning piano for 1.5 years.","topics":["pets","location","work","hobbies","food_preferences"],"user_id":"user2","updated_at":"2025-11-18T10:30:00Z"}],"memories_before":4,"memories_after":1,"tokens_before":450,"tokens_after":180,"tokens_saved":270,"reduction_percentage":60.0}}}},"400":{"description":"Bad request - User ID is required or invalid model string format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"No memories found for user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to optimize memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings":{"get":{"tags":["Learnings"],"summary":"List Learnings","description":"List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) — this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`).","operationId":"list_learnings","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by learning type","title":"Learning Type"},"description":"Filter by learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"namespace","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by namespace","title":"Namespace"},"description":"Filter by namespace"},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity ID","title":"Entity Id"},"description":"Filter by entity ID"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity type","title":"Entity Type"},"description":"Filter by entity type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":100,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used).","title":"Sort By"},"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used)."},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Learnings"],"summary":"Create Learning","description":"Create a new learning record. For the identity-keyed learning types (`user_profile`, `user_memory`, `session_context`, `entity_memory`) the record id is derived deterministically from the identity fields so it reconciles with what the agent reads/writes — provide those fields (else 422), and if a record already exists the request is rejected with 409 (use PATCH to update it). Other types get a generated id. For a scoped (non-admin) caller, the body's `user_id` must be omitted/null or match the caller (mismatch → 403); admins and unscoped callers may set any `user_id`.","operationId":"create_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users":{"get":{"tags":["Learnings"],"summary":"List Learning Users","description":"List the users that own learning records, with a per-user count and last-updated timestamp. Intended as the entry point for a per-user view: list users here, then drill into a single user's learnings via `GET /learnings?user_id=...`. Records with no owner (`user_id IS NULL`) are excluded. Pass `learning_type` to restrict the grouping to a single store (e.g. `user_profile` or `user_memory`). For a scoped (non-admin) caller results are bound to that user; an explicit `user_id` that differs is rejected with 403. Admins and unscoped callers list all users. Sortable by `user_id` or `last_learning_updated_at` (the default).","operationId":"list_learning_users","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the grouping to a single learning type","title":"Learning Type"},"description":"Restrict the grouping to a single learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the result to a single user","title":"User Id"},"description":"Restrict the result to a single user"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by: user_id or last_learning_updated_at (the default)","title":"Sort By"},"description":"Field to sort by: user_id or last_learning_updated_at (the default)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningUserStats_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users/{user_id}":{"delete":{"tags":["Learnings"],"summary":"Delete Learning User","description":"Delete the learning records owned by a user. By default removes every learning type backed by the agno_learnings table (user_profile, user_memory, and any user-scoped entity records); pass `learning_type` to restrict deletion to a single store. Records with no owner (`user_id IS NULL`) are not affected. For a scoped (non-admin) caller, only their own learnings may be deleted; a different `user_id` is rejected with 403. Admins and unscoped callers may delete any user's learnings. Returns 204 even if the user had no matching records.","operationId":"delete_learning_user","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The user whose learnings should be deleted","title":"User Id"},"description":"The user whose learnings should be deleted"},{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings","title":"Learning Type"},"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/{learning_id}":{"get":{"tags":["Learnings"],"summary":"Get Learning","description":"Retrieve a single learning record by its ID.","operationId":"get_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Learnings"],"summary":"Update Learning","description":"Update a learning record. Only `content` and `metadata` may be modified; identity fields (user_id, agent_id, team_id, etc.) are immutable. Provided fields fully replace the existing values. Records with no owner (`user_id IS NULL` — shared agent/team/session/entity learnings) are readable by any caller but may only be modified by an admin.","operationId":"update_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Learnings"],"summary":"Delete Learning","description":"Permanently delete a learning record by its ID. Records with no owner (`user_id IS NULL` — shared agent/team/session/entity learnings) may only be deleted by an admin.","operationId":"delete_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs":{"get":{"tags":["Evals"],"summary":"List Evaluation Runs","description":"Retrieve paginated evaluation runs with filtering and sorting options. Filter by agent, team, workflow, model, or evaluation type.","operationId":"get_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Workflow ID","title":"Workflow Id"},"description":"Workflow ID"},{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model ID","title":"Model Id"},"description":"Model ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EvalFilterType"},{"type":"null"}],"description":"Filter type","title":"Type"},"description":"Filter type"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of eval runs to return","default":20,"title":"Limit"},"description":"Number of eval runs to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"eval_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)","examples":["accuracy,agent_as_judge,performance,reliability"],"title":"Eval Types"},"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)"}],"responses":{"200":{"description":"Evaluation runs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_EvalSchema_"},"example":{"data":[{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Evals"],"summary":"Delete Evaluation Runs","description":"Delete multiple evaluation runs by their IDs. This action cannot be undone.","operationId":"delete_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvalRunsRequest"}}}},"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete evaluation runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Evals"],"summary":"Execute Evaluation","description":"Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both.","operationId":"run_eval","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for evaluation","title":"Db Id"},"description":"Database ID to use for evaluation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for evaluation","title":"Table"},"description":"Table to use for evaluation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRunInput"}}}},"responses":{"200":{"description":"Evaluation executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"f2b2d72f-e9e2-4f0e-8810-0a7e1ff58614","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Invalid request - provide either agent_id or team_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent or team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs/{eval_run_id}":{"get":{"tags":["Evals"],"summary":"Get Evaluation Run","description":"Retrieve detailed results and metrics for a specific evaluation run.","operationId":"get_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query eval run from","title":"Table"},"description":"Table to query eval run from"}],"responses":{"200":{"description":"Evaluation run details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Evals"],"summary":"Update Evaluation Run","description":"Update the name or other properties of an existing evaluation run.","operationId":"update_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvalRunRequest"}}}},"responses":{"200":{"description":"Evaluation run updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update evaluation run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics":{"get":{"tags":["Metrics"],"summary":"Get AgentOS Metrics","description":"Retrieve AgentOS metrics and analytics data for a specified date range. If no date range is specified, returns all available metrics.","operationId":"get_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"starting_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Starting date for metrics range (YYYY-MM-DD format)","title":"Starting Date"},"description":"Starting date for metrics range (YYYY-MM-DD format)"},{"name":"ending_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Ending date for metrics range (YYYY-MM-DD format)","title":"Ending Date"},"description":"Ending date for metrics range (YYYY-MM-DD format)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query metrics from","title":"Db Id"},"description":"Database ID to query metrics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Metrics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"},"example":{"metrics":[{"id":"7bf39658-a00a-484c-8a28-67fd8a9ddb2a","agent_runs_count":5,"agent_sessions_count":5,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":448,"output_tokens":148,"total_tokens":596,"audio_tokens":0,"input_audio_tokens":0,"output_audio_tokens":0,"cached_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":5}],"date":"2025-07-31T00:00:00Z","created_at":"2025-07-31T12:38:52Z","updated_at":"2025-07-31T12:49:01Z"}]}}}},"400":{"description":"Invalid date range parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve metrics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics/refresh":{"post":{"tags":["Metrics"],"summary":"Refresh Metrics","description":"Manually trigger recalculation of system metrics from raw data. This operation analyzes system activity logs and regenerates aggregated metrics. Useful for ensuring metrics are up-to-date or after system maintenance.","operationId":"refresh_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for metrics calculation","title":"Db Id"},"description":"Database ID to use for metrics calculation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for metrics calculation","title":"Table"},"description":"Table to use for metrics calculation"}],"responses":{"200":{"description":"Metrics refreshed successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"title":"Response Refresh Metrics"},"example":[{"id":"e77c9531-818b-47a5-99cd-59fed61e5403","agent_runs_count":2,"agent_sessions_count":2,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":256,"output_tokens":441,"total_tokens":697,"audio_total_tokens":0,"audio_input_tokens":0,"audio_output_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":2}],"date":"2025-08-12T00:00:00Z","created_at":"2025-08-12T08:01:47Z","updated_at":"2025-08-12T08:01:47Z"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to refresh metrics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content":{"post":{"tags":["Knowledge"],"summary":"Upload Content","description":"Upload content to the knowledge base. Supports file uploads, text content, or URLs. Content is processed asynchronously in the background. Supports custom readers and chunking strategies.","operationId":"upload_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_content"}}}},"responses":{"202":{"description":"Content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-123","name":"example-document.pdf","description":"Sample document for processing","metadata":{"category":"documentation","priority":"high"},"status":"processing"}}}},"400":{"description":"Invalid request - malformed metadata or missing content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in form data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"List Content","description":"Retrieve paginated list of all content in the knowledge base with filtering and sorting options. Filter by status, content type, or metadata properties.","operationId":"get_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of content entries to return","default":20,"title":"Limit"},"description":"Number of content entries to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ContentResponseSchema_"},"example":{"data":[{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}],"meta":{"page":1,"limit":20,"total_pages":1,"total_count":2}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete All Content","description":"Permanently remove all content from the knowledge base. This is a destructive operation that cannot be undone. Use with extreme caution.","operationId":"delete_all_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete all content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/remote-content":{"post":{"tags":["Knowledge"],"summary":"Upload Remote Content","description":"Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.","operationId":"upload_remote_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_upload_remote_content"}}}},"responses":{"202":{"description":"Remote content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-456","name":"reports/q1-2024.pdf","description":"Q1 Report from S3","metadata":{"source":"s3-docs"},"status":"processing"}}}},"400":{"description":"Invalid request - unknown config or missing path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}":{"patch":{"tags":["Knowledge"],"summary":"Update Content","description":"Update content properties such as name, description, metadata, or processing configuration. Allows modification of existing content without re-uploading.","operationId":"update_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","description":"Content ID","title":"Content Id"},"description":"Content ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_update_content"}}}},"responses":{"200":{"description":"Content updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Invalid request - malformed metadata or invalid reader_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"Get Content by ID","description":"Retrieve detailed information about a specific content item including processing status and metadata.","operationId":"get_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete Content by ID","description":"Permanently remove a specific content item from the knowledge base. This action cannot be undone.","operationId":"delete_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}/status":{"get":{"tags":["Knowledge"],"summary":"Get Content Status","description":"Retrieve the current processing status of a content item. Useful for monitoring asynchronous content processing progress and identifying any processing errors.","operationId":"get_content_status","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content status retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentStatusResponse"},"examples":{"completed":{"summary":"Example completed content status","value":{"status":"completed","status_message":""}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/search":{"post":{"tags":["Knowledge"],"summary":"Search Knowledge","description":"Search the knowledge base for relevant documents using query, filters and search type.","operationId":"search_knowledge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VectorSearchRequestSchema"}}},"required":true},"responses":{"200":{"description":"Search results retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_VectorSearchResult_"},"example":{"data":[{"id":"doc_123","content":"Jordan Mitchell - Software Engineer with skills in JavaScript, React, Python","name":"cv_1","meta_data":{"page":1,"chunk":1},"usage":{"total_tokens":14},"reranking_score":0.95,"content_id":"content_456"}],"meta":{"page":1,"limit":20,"total_pages":2,"total_count":35}}}}},"400":{"description":"Invalid search parameters"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"No documents found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/knowledge/config":{"get":{"tags":["Knowledge"],"summary":"Get Config","description":"Retrieve available readers, chunkers, and configuration options for content processing. This endpoint provides metadata about supported file types, processing strategies, and filters.","operationId":"get_knowledge_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Knowledge configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponseSchema"},"example":{"readers":{"website":{"id":"website","name":"WebsiteReader","description":"Reads website files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"firecrawl":{"id":"firecrawl","name":"FirecrawlReader","description":"Reads firecrawl files","chunkers":["SemanticChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"youtube":{"id":"youtube","name":"YoutubeReader","description":"Reads youtube files","chunkers":["RecursiveChunker","AgenticChunker","DocumentChunker","SemanticChunker","FixedSizeChunker"]},"web_search":{"id":"web_search","name":"WebSearchReader","description":"Reads web_search files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"arxiv":{"id":"arxiv","name":"ArxivReader","description":"Reads arxiv files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"csv":{"id":"csv","name":"CsvReader","description":"Reads csv files","chunkers":["RowChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"docling":{"id":"docling","name":"DoclingReader","description":"Converts multiple document formats like PDF, DOCX, PPTX, images, HTML, etc. using IBM's Docling library","chunkers":["AgenticChunker","CodeChunker","DocumentChunker","FixedSizeChunker","RecursiveChunker","SemanticChunker"]},"docx":{"id":"docx","name":"DocxReader","description":"Reads docx files","chunkers":["DocumentChunker","FixedSizeChunker","SemanticChunker","AgenticChunker","RecursiveChunker"]},"gcs":{"id":"gcs","name":"GcsReader","description":"Reads gcs files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"json":{"id":"json","name":"JsonReader","description":"Reads json files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"markdown":{"id":"markdown","name":"MarkdownReader","description":"Reads markdown files","chunkers":["MarkdownChunker","DocumentChunker","AgenticChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"pdf":{"id":"pdf","name":"PdfReader","description":"Reads pdf files","chunkers":["DocumentChunker","FixedSizeChunker","AgenticChunker","SemanticChunker","RecursiveChunker"]},"text":{"id":"text","name":"TextReader","description":"Reads text files","chunkers":["CodeChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]}},"readersForType":{"url":["url","website","firecrawl","youtube","web_search","gcs"],"youtube":["youtube"],"text":["web_search"],"topic":["arxiv"],"file":["csv","gcs"],".csv":["csv","field_labeled_csv","docling"],".xlsx":["excel","docling"],".xls":["excel"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["excel"],"application/vnd.ms-excel":["excel"],".docx":["docx","docling"],".dotx":["docling"],".docm":["docling"],".dotm":["docling"],".pptx":["docling","pptx"],".potx":["docling"],".ppsx":["docling"],".pptm":["docling"],".ppsm":["docling"],".potm":["docling"],".doc":["docx"],".json":["json"],".md":["markdown","docling"],".pdf":["pdf","docling"],".txt":["text"],".html":["docling"],".htm":["docling"],".xhtml":["docling"],".xml":["docling"],".nxml":["docling"],".xbrl":["docling"],".adoc":["docling"],".asciidoc":["docling"],".asc":["docling"],".xlsm":["docling"],".tex":["docling"],".latex":["docling"],".tar.gz":["docling"],".vtt":["docling"],".png":["docling"],".jpeg":["docling"],".jpg":["docling"],".tiff":["docling"],".tif":["docling"],".bmp":["docling"],".webp":["docling"],".wav":["docling"],".mp3":["docling"],".m4a":["docling"],".aac":["docling"],".ogg":["docling"],".flac":["docling"],".mp4":["docling"],".avi":["docling"],".mov":["docling"]},"chunkers":{"AgenticChunker":{"key":"AgenticChunker","name":"AgenticChunker","description":"Chunking strategy that uses an LLM to determine natural breakpoints in the text","metadata":{"chunk_size":5000}},"CodeChunker":{"key":"CodeChunker","name":"CodeChunker","description":"The CodeChunker splits code into chunks based on its structure, leveraging Abstract Syntax Trees (ASTs) to create contextually relevant segments","metadata":{"chunk_size":2048}},"DocumentChunker":{"key":"DocumentChunker","name":"DocumentChunker","description":"A chunking strategy that splits text based on document structure like paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"FixedSizeChunker":{"key":"FixedSizeChunker","name":"FixedSizeChunker","description":"Chunking strategy that splits text into fixed-size chunks with optional overlap","metadata":{"chunk_size":5000,"chunk_overlap":0}},"MarkdownChunker":{"key":"MarkdownChunker","name":"MarkdownChunker","description":"A chunking strategy that splits markdown based on structure like headers, paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RecursiveChunker":{"key":"RecursiveChunker","name":"RecursiveChunker","description":"Chunking strategy that recursively splits text into chunks by finding natural break points","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RowChunker":{"key":"RowChunker","name":"RowChunker","description":"RowChunking chunking strategy","metadata":{}},"SemanticChunker":{"key":"SemanticChunker","name":"SemanticChunker","description":"Chunking strategy that splits text into semantic chunks using chonkie","metadata":{"chunk_size":5000}}},"vector_dbs":[{"id":"vector_db_1","name":"Vector DB 1","description":"Vector DB 1 description","search_types":["vector","keyword","hybrid"]}],"filters":["filter_tag_1","filter_tag2"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources":{"get":{"tags":["Knowledge"],"summary":"List Content Sources","description":"List all registered content sources (S3, GCS, SharePoint, GitHub) for the knowledge base.","operationId":"list_content_sources","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Content sources retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"title":"Response List Content Sources"},"example":[{"id":"company-s3","name":"Company Documents","type":"s3","prefix":"documents/"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Knowledge base not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources/{source_id}/files":{"get":{"tags":["Knowledge"],"summary":"List Files in Source","description":"List available files and folders in a specific content source. Supports pagination and folder navigation.","operationId":"list_source_files","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the content source","title":"Source Id"},"description":"ID of the content source"},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Path prefix to filter files","title":"Prefix"},"description":"Path prefix to filter files"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of files per page","default":100,"title":"Limit"},"description":"Number of files per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"delimiter","in":"query","required":false,"schema":{"type":"string","description":"Folder delimiter (enables folder grouping)","default":"/","title":"Delimiter"},"description":"Folder delimiter (enables folder grouping)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Files listed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceFilesResponseSchema"},"example":{"source_id":"company-s3","source_name":"Company Documents","prefix":"reports/","folders":[{"prefix":"reports/2024/","name":"2024","is_empty":false}],"files":[{"key":"reports/annual-summary.pdf","name":"annual-summary.pdf","size":102400,"last_modified":"2024-01-15T10:30:00Z","content_type":"application/pdf"}],"meta":{"page":1,"limit":100,"total_pages":1,"total_count":1}}}}},"400":{"description":"Unsupported source type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Knowledge base or content source not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces":{"get":{"tags":["Traces","Traces"],"summary":"List Traces","description":"Retrieve a paginated list of execution traces with optional filtering.\n\n**Traces provide observability into:**\n- Agent execution flows\n- Model invocations and token usage\n- Tool calls and their results\n- Errors and performance bottlenecks\n\n**Filtering Options:**\n- By run, session, user, or agent ID\n- By status (OK, ERROR)\n- By time range\n\n**Pagination:**\n- Use `page` (1-indexed) and `limit` parameters\n- Response includes pagination metadata (total_pages, total_count, etc.)\n\n**Response Format:**\nReturns summary information for each trace. Use GET `/traces/{trace_id}` for detailed hierarchy.","operationId":"get_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run ID","title":"Run Id"},"description":"Filter by run ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status (OK, ERROR)","title":"Status"},"description":"Filter by status (OK, ERROR)"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of traces per page","default":20,"title":"Limit"},"description":"Number of traces per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"responses":{"200":{"description":"List of traces retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSummary_"},"example":{"data":[{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","total_spans":4,"error_count":0,"input":"What is the stock price of NVDA?","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"agent_stock","created_at":"2025-11-19T10:30:00+00:00"}],"meta":{"page":1,"limit":20,"total_pages":5,"total_count":95}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/filter-schema":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Filter Schema","description":"Returns the available filterable fields, their types, valid operators, and enum values.\n\nThe frontend uses this to dynamically build the filter bar UI:\n- Field dropdown populated from `fields[].key`\n- Operator dropdown changes per field type\n- Value input shows autocomplete for enum fields (e.g., status)\n- Logical operators (AND, OR) for combining clauses","operationId":"get_traces_filter_schema","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterSchemaResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/traces/{trace_id}":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace or Span Detail","description":"Retrieve detailed trace information with hierarchical span tree, or a specific span within the trace.\n\n**Without span_id parameter:**\nReturns the full trace with hierarchical span tree:\n- Trace metadata (ID, status, duration, context)\n- Hierarchical tree of all spans\n- Each span includes timing, status, and type-specific metadata\n\n**With span_id parameter:**\nReturns details for a specific span within the trace:\n- Span metadata (ID, name, type, timing)\n- Status and error information\n- Type-specific attributes (model, tokens, tool params, etc.)\n\n**Span Hierarchy (full trace):**\nThe `tree` field contains root spans, each with potential `children`.\nThis recursive structure represents the execution flow:\n```\nAgent.run (root)\n ├─ LLM.invoke\n ├─ Tool.execute\n │ └─ LLM.invoke (nested)\n └─ LLM.invoke\n```\n\n**Span Types:**\n- `AGENT`: Agent execution with input/output\n- `LLM`: Model invocations with tokens and prompts\n- `TOOL`: Tool calls with parameters and results","operationId":"get_trace","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}},{"name":"span_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Span ID to retrieve specific span","title":"Span Id"},"description":"Optional: Span ID to retrieve specific span"},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Run ID to retrieve trace for","title":"Run Id"},"description":"Optional: Run ID to retrieve trace for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query trace from","title":"Db Id"},"description":"Database ID to query trace from"}],"responses":{"200":{"description":"Trace or span detail retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TraceDetail"},{"$ref":"#/components/schemas/TraceNode"}],"title":"Response Get Trace"},"examples":{"full_trace":{"summary":"Full trace with hierarchy (no span_id)","value":{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","end_time":"2025-11-19T10:30:01.200000+00:00","total_spans":4,"error_count":0,"input":"What is Tesla stock price?","output":"The current price of Tesla (TSLA) is $245.67.","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"stock_agent","created_at":"2025-11-19T10:30:00+00:00","tree":[{"id":"span1","name":"Stock_Price_Agent.run","type":"AGENT","duration":"1.2s","status":"OK","spans":[]}]}},"single_span":{"summary":"Single span detail (with span_id)","value":{"id":"span2","name":"gpt-4o-mini.invoke","type":"LLM","duration":"800ms","status":"OK","metadata":{"model":"gpt-4o-mini","input_tokens":120}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Trace or span not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/trace_session_stats":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Statistics by Session","description":"Retrieve aggregated trace statistics grouped by session ID with pagination.\n\n**Provides insights into:**\n- Total traces per session\n- First and last trace timestamps per session\n- Associated user and agent information\n\n**Filtering Options:**\n- By user ID\n- By agent ID\n\n**Use Cases:**\n- Monitor session-level activity\n- Track conversation flows\n- Identify high-activity sessions\n- Analyze user engagement patterns","operationId":"get_trace_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of sessions per page","default":20,"title":"Limit"},"description":"Number of sessions per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"}],"responses":{"200":{"description":"Trace statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"},"example":{"data":[{"session_id":"37029bc6-1794-4ba8-a629-1efedc53dcad","user_id":"kaustubh@agno.com","agent_id":"hackernews-agent","total_traces":5,"first_trace_at":"2025-11-19T10:15:16+00:00","last_trace_at":"2025-11-19T10:21:30+00:00"}],"meta":{"page":1,"limit":20,"total_pages":3,"total_count":45}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/search":{"post":{"tags":["Traces","Traces"],"summary":"Search Traces with Advanced Filters","description":"Search traces using the FilterExpr DSL for complex, composable queries.\n\n**Group By Mode:**\n- `run` (default): Returns `PaginatedResponse[TraceDetail]` with full span trees\n- `session`: Returns `PaginatedResponse[TraceSessionStats]` with aggregated session stats\n\n**Supported Operators:**\n- Comparison: `EQ`, `NEQ`, `GT`, `GTE`, `LT`, `LTE`\n- Inclusion: `IN`\n- String matching: `CONTAINS` (case-insensitive substring), `STARTSWITH` (prefix)\n- Logical: `AND`, `OR`, `NOT`\n\n**Filterable Fields:**\ntrace_id, name, status, start_time, end_time, duration_ms, run_id, session_id, user_id, agent_id, team_id, workflow_id, created_at\n\n**Example Request Body (runs):**\n```json\n{\n \"filter\": {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n}\n```\n\n**Example Request Body (sessions):**\n```json\n{\n \"filter\": {\"op\": \"CONTAINS\", \"key\": \"agent_id\", \"value\": \"stock\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n}\n```","operationId":"search_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PaginatedResponse_TraceDetail_"},{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"}],"title":"Response Search Traces"}}}},"400":{"description":"Invalid filter expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/all/migrate":{"post":{"tags":["Database"],"summary":"Migrate All Databases","description":"Migrate all database schemas to the given target version. If a target version is not provided, all databases will be migrated to the latest version.","operationId":"migrate_all_databases","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"All databases migrated successfully","content":{"application/json":{"schema":{},"example":{"message":"All databases migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/{db_id}/migrate":{"post":{"tags":["Database"],"summary":"Migrate Database","description":"Migrate the given database schema to the given target version. If a target version is not provided, the database will be migrated to the latest version.","operationId":"migrate_database","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"Database migrated successfully","content":{"application/json":{"schema":{},"example":{"message":"Database migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Database not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components":{"get":{"tags":["Components"],"summary":"List Components","description":"Retrieve a paginated list of components with optional filtering by type.","operationId":"list_components","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ComponentType"},{"type":"null"}],"description":"Filter by type: agent, team, workflow","title":"Component Type"},"description":"Filter by type: agent, team, workflow"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ComponentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Component","description":"Create a new component (agent, team, or workflow) with initial config.","operationId":"create_component","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}":{"get":{"tags":["Components"],"summary":"Get Component","description":"Retrieve a component by ID.","operationId":"get_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Components"],"summary":"Update Component","description":"Partially update a component by ID.","operationId":"update_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentUpdate","description":"Component fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Component","description":"Soft-delete a component by ID. Component configs and links remain stored.","operationId":"delete_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs":{"get":{"tags":["Components"],"summary":"List Configs","description":"List all configs for a component.","operationId":"list_configs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"include_config","in":"query","required":false,"schema":{"type":"boolean","description":"Include full config blob","default":true,"title":"Include Config"},"description":"Include full config blob"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComponentConfigResponse"},"title":"Response List Configs"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Config Version","description":"Create a new config version for a component.","operationId":"create_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigCreate","description":"Config data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}":{"patch":{"tags":["Components"],"summary":"Update Draft Config","description":"Update an existing draft config. Cannot update published configs.","operationId":"update_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigUpdate","description":"Config fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Components"],"summary":"Get Config Version","description":"Get a specific config version by number.","operationId":"get_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Config Version","description":"Delete a specific draft config version. Cannot delete published or current configs.","operationId":"delete_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/current":{"get":{"tags":["Components"],"summary":"Get Current Config","description":"Get the current config version for a component.","operationId":"get_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}/set-current":{"post":{"tags":["Components"],"summary":"Set Current Config Version","description":"Set a published config version as current (for rollback).","operationId":"set_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/schedules":{"get":{"tags":["Schedules"],"summary":"List Schedules","operationId":"list_schedules_schedules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Schedules"],"summary":"Create Schedule","operationId":"create_schedule_schedules_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule","operationId":"get_schedule_schedules__schedule_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Schedules"],"summary":"Update Schedule","operationId":"update_schedule_schedules__schedule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Schedules"],"summary":"Delete Schedule","operationId":"delete_schedule_schedules__schedule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}/enable":{"post":{"tags":["Schedules"],"summary":"Enable Schedule","operationId":"enable_schedule_schedules__schedule_id__enable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}/disable":{"post":{"tags":["Schedules"],"summary":"Disable Schedule","operationId":"disable_schedule_schedules__schedule_id__disable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}/trigger":{"post":{"tags":["Schedules"],"summary":"Trigger Schedule","operationId":"trigger_schedule_schedules__schedule_id__trigger_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}/runs":{"get":{"tags":["Schedules"],"summary":"List Schedule Runs","operationId":"list_schedule_runs_schedules__schedule_id__runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleRunResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}/runs/{run_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule Run","operationId":"get_schedule_run_schedules__schedule_id__runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals":{"get":{"tags":["Approvals"],"summary":"List Approvals","operationId":"list_approvals_approvals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","approved","rejected","expired","cancelled"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"source_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"}},{"name":"approval_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["required","audit"],"type":"string"},{"type":"null"}],"title":"Approval Type"}},{"name":"pause_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"schedule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"}},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ApprovalResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/count":{"get":{"tags":["Approvals"],"summary":"Get Approval Count","operationId":"get_approval_count_approvals_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalCountResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/{approval_id}/status":{"get":{"tags":["Approvals"],"summary":"Get Approval Status","operationId":"get_approval_status_approvals__approval_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/{approval_id}":{"get":{"tags":["Approvals"],"summary":"Get Approval","operationId":"get_approval_approvals__approval_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Approvals"],"summary":"Delete Approval","operationId":"delete_approval_approvals__approval_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/{approval_id}/resolve":{"post":{"tags":["Approvals"],"summary":"Resolve Approval","operationId":"resolve_approval_approvals__approval_id__resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResolve"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/service-accounts":{"post":{"tags":["Service Accounts"],"summary":"Create Service Account","description":"Mint a service account token. The plaintext token is returned exactly once.","operationId":"create_service_account_service_accounts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Service Accounts"],"summary":"List Service Accounts","description":"List service accounts. Returns metadata and display prefixes only - never hashes or plaintext.","operationId":"list_service_accounts_service_accounts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Revoked"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ServiceAccountResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/service-accounts/{service_account_id}":{"delete":{"tags":["Service Accounts"],"summary":"Revoke Service Account","description":"Revoke a service account. Idempotent.\n\nTakes effect immediately on this worker (the local verification cache entry is\nevicted) and within the cache TTL on other workers.","operationId":"revoke_service_account_service_accounts__service_account_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"service_account_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/registry":{"get":{"tags":["Registry"],"summary":"List Registry","description":"List all resources in the registry with optional filtering.","operationId":"list_registry","security":[{"HTTPBearer":[]}],"parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RegistryResourceType"},{"type":"null"}],"description":"Filter by resource type","title":"Resource Type"},"description":"Filter by resource type"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (partial match)","title":"Name"},"description":"Filter by name (partial match)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_RegistryContentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}}},"components":{"schemas":{"ActivityMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"activity","title":"Role","default":"activity"},"activityType":{"type":"string","title":"Activitytype"},"content":{"additionalProperties":true,"type":"object","title":"Content"}},"additionalProperties":true,"type":"object","required":["id","activityType","content"],"title":"ActivityMessage","description":"An activity progress message emitted between chat messages."},"AgentResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"extra_messages":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Messages"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"AgentResponse"},"AgentSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_session_id":{"type":"string","title":"Agent Session Id","description":"Unique agent session identifier"},"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID used in this session"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"agent_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Data","description":"Agent-specific data"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["agent_session_id","session_id","session_name"],"title":"AgentSessionDetailSchema"},"AgentSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the agent"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the agent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the agent"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the agent"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","title":"AgentSummaryResponse"},"ApprovalCountResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"ApprovalCountResponse","description":"Response model for pending approval count."},"ApprovalResolve":{"properties":{"status":{"type":"string","pattern":"^(approved|rejected)$","title":"Status"},"resolved_by":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Resolved By"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"}},"type":"object","required":["status"],"title":"ApprovalResolve","description":"Request body for resolving (approve/reject) an approval."},"ApprovalResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"},"source_type":{"type":"string","title":"Source Type"},"approval_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Type"},"pause_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Args"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"},"schedule_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Run Id"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"},"run_status":{"anyOf":[{"$ref":"#/components/schemas/RunStatus"},{"type":"null"}]}},"type":"object","required":["id","run_id","session_id","status","source_type"],"title":"ApprovalResponse","description":"Response model for a single approval."},"ApprovalStatusResponse":{"properties":{"approval_id":{"type":"string","title":"Approval Id"},"status":{"type":"string","title":"Status"},"run_id":{"type":"string","title":"Run Id"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"}},"type":"object","required":["approval_id","status","run_id"],"title":"ApprovalStatusResponse","description":"Lightweight response model for polling approval status."},"Artifact":{"properties":{"artifactId":{"type":"string","title":"Artifactid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"}},"type":"object","required":["artifactId","parts"],"title":"Artifact","description":"Represents a file, data structure, or other resource generated by an agent during a task."},"AssistantMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"assistant","title":"Role","default":"assistant"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"},"toolCalls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},{"type":"null"}],"title":"Toolcalls"}},"additionalProperties":true,"type":"object","required":["id"],"title":"AssistantMessage","description":"An assistant message."},"AudioInputContent":{"properties":{"type":{"type":"string","const":"audio","title":"Type","default":"audio"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"AudioInputContent","description":"An audio input content fragment."},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"BadRequestResponse","example":{"detail":"Bad request","error_code":"BAD_REQUEST"}},"BinaryInputContent":{"properties":{"type":{"type":"string","const":"binary","title":"Type","default":"binary"},"mimeType":{"type":"string","title":"Mimetype"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"additionalProperties":true,"type":"object","required":["mimeType"],"title":"BinaryInputContent","description":"A deprecated binary payload reference in a multimodal user message."},"Body_continue_agent_run":{"properties":{"tools":{"type":"string","title":"Tools","description":"JSON string of tool call results to continue the paused run","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Optional new user-message text to append to the run before resuming. Use for continuing a COMPLETED run with a follow-up, or adding context to a RUNNING/ERROR resume."},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","description":"When true, clone the run with a new ``run_id`` before resuming. The original is untouched; the clone becomes a sibling within the same session, with ``forked_from_run_id`` set.","default":false},"regenerate":{"type":"boolean","title":"Regenerate","description":"Sugar: regenerate the last response of this run. Auto-computes ``continue_from='last_user'`` to land just after the last user message. Pair with ``additional_instructions`` to steer the new output. By default the original response is hidden from history (replaced); pass ``replace_original=false`` to keep both the original and the regenerated response visible side by side.","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original","description":"Only valid with ``regenerate=true``. Controls history visibility of the original response; the original run is always retained in storage. Defaults to true: the original is marked REGENERATED and hidden from history so the new response replaces it. Pass false to keep both the original and regenerated responses visible."},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions","description":"Only valid with ``regenerate=true``: extra guidance appended as a user message before re-generation. Friendly alias for ``input``."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run continue in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false}},"type":"object","title":"Body_continue_agent_run"},"Body_continue_team_run":{"properties":{"requirements":{"type":"string","title":"Requirements","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input"},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","default":false},"regenerate":{"type":"boolean","title":"Regenerate","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original"},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"stream":{"type":"boolean","title":"Stream","default":true},"background":{"type":"boolean","title":"Background","default":false}},"type":"object","title":"Body_continue_team_run"},"Body_continue_workflow_run":{"properties":{"step_requirements":{"type":"string","title":"Step Requirements","description":"JSON string of step requirement objects with resolution status","default":""},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}},"type":"object","title":"Body_continue_workflow_run"},"Body_create_agent_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the agent"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Agent version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic agent construction"}},"type":"object","required":["message"],"title":"Body_create_agent_run"},"Body_create_team_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the team"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"monitor":{"type":"boolean","title":"Monitor","description":"Enable monitoring and logging for this run","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Team version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic team construction"}},"type":"object","required":["message"],"title":"Body_create_team_run"},"Body_create_workflow_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the workflow"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run workflow in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Workflow version to use for this run"},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow construction"}},"type":"object","required":["message"],"title":"Body_create_workflow_run"},"Body_rename_session":{"properties":{"session_name":{"type":"string","title":"Session Name","description":"New name for the session"}},"type":"object","required":["session_name"],"title":"Body_rename_session"},"Body_resume_agent_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_agent_run_stream"},"Body_resume_team_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_team_run_stream"},"Body_resume_workflow_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_workflow_run_stream"},"Body_update_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"Content metadata as JSON string"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"}},"type":"object","title":"Body_update_content"},"Body_upload_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated from file/URL if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description for context"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"URL to fetch content from (JSON array or single URL string)"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object for additional content properties"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File","description":"File to upload for processing"},"text_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Content","description":"Raw text content to process"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for content processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply during processing"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size to use for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap to use for processing"}},"type":"object","title":"Body_upload_content"},"Body_upload_remote_content":{"properties":{"config_id":{"type":"string","title":"Config Id","description":"ID of the configured remote content source (from /knowledge/config)"},"path":{"type":"string","title":"Path","description":"Path to file or folder in the remote source"},"source_params":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Params","description":"JSON object of per-request parameters forwarded to the source's factory. Used for provider-specific routing that shouldn't be baked into the config. Currently supported keys: GitHub accepts 'repo' ('owner/repo'), letting one configured GitHub source serve multiple repositories the credentials can access."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap for processing"}},"type":"object","required":["config_id","path"],"title":"Body_upload_remote_content"},"ChatConfig":{"properties":{"quick_prompts":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Quick Prompts"}},"type":"object","required":["quick_prompts"],"title":"ChatConfig","description":"Configuration for the Chat page of the AgentOS"},"ChunkerSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["key"],"title":"ChunkerSchema"},"ComponentConfigResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"version":{"type":"integer","title":"Version"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"type":"string","title":"Stage"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","version","stage","config","created_at"],"title":"ComponentConfigResponse"},"ComponentCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Display name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id","description":"Unique identifier for the entity. Auto-generated from name if not provided."},"component_type":{"$ref":"#/components/schemas/ComponentType","description":"Type of entity: agent, team, or workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config","description":"Optional configuration"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["name","component_type"],"title":"ComponentCreate"},"ComponentResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"component_type":{"$ref":"#/components/schemas/ComponentType"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","component_type","created_at"],"title":"ComponentResponse"},"ComponentType":{"type":"string","enum":["agent","team","workflow"],"title":"ComponentType"},"ComponentUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"component_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"}},"type":"object","title":"ComponentUpdate"},"ConfigCreate":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config","description":"The configuration data"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Optional version number"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links","description":"Optional links to child components"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["config"],"title":"ConfigCreate"},"ConfigResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the OS instance"},"available_models":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Models","description":"List of available models"},"os_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Database","description":"ID of the database used for the OS instance"},"databases":{"items":{"type":"string"},"type":"array","title":"Databases","description":"List of database IDs used by the components of the OS instance"},"chat":{"anyOf":[{"$ref":"#/components/schemas/ChatConfig"},{"type":"null"}],"description":"Chat configuration"},"manifest":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Manifest"},"type":"object"},{"type":"null"}],"title":"Manifest","description":"Per-entity UI metadata keyed by agent/team/workflow id"},"session":{"anyOf":[{"$ref":"#/components/schemas/SessionConfig"},{"type":"null"}],"description":"Session configuration"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/MetricsConfig"},{"type":"null"}],"description":"Metrics configuration"},"memory":{"anyOf":[{"$ref":"#/components/schemas/MemoryConfig"},{"type":"null"}],"description":"Memory configuration"},"learning":{"anyOf":[{"$ref":"#/components/schemas/LearningConfig"},{"type":"null"}],"description":"Learning configuration"},"knowledge":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeConfig"},{"type":"null"}],"description":"Knowledge configuration"},"evals":{"anyOf":[{"$ref":"#/components/schemas/EvalsConfig"},{"type":"null"}],"description":"Evaluations configuration"},"traces":{"anyOf":[{"$ref":"#/components/schemas/TracesConfig"},{"type":"null"}],"description":"Traces configuration"},"agents":{"items":{"$ref":"#/components/schemas/AgentSummaryResponse"},"type":"array","title":"Agents","description":"List of registered agents"},"teams":{"items":{"$ref":"#/components/schemas/TeamSummaryResponse"},"type":"array","title":"Teams","description":"List of registered teams"},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Workflows","description":"List of registered workflows"},"interfaces":{"items":{"$ref":"#/components/schemas/InterfaceResponse"},"type":"array","title":"Interfaces","description":"List of available interfaces"}},"type":"object","required":["os_id","databases","agents","teams","workflows","interfaces"],"title":"ConfigResponse","description":"Response schema for the general config endpoint"},"ConfigResponseSchema":{"properties":{"readers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ReaderSchema"},"type":"object"},{"type":"null"}],"title":"Readers","description":"Available content readers"},"readersForType":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Readersfortype","description":"Mapping of content types to reader IDs"},"chunkers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ChunkerSchema"},"type":"object"},{"type":"null"}],"title":"Chunkers","description":"Available chunking strategies"},"filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filters","description":"Available filter tags"},"vector_dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/VectorDbSchema"},"type":"array"},{"type":"null"}],"title":"Vector Dbs","description":"Configured vector databases"},"remote_content_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"type":"array"},{"type":"null"}],"title":"Remote Content Sources","description":"Configured remote content sources (S3, GCS, SharePoint, GitHub)"}},"type":"object","title":"ConfigResponseSchema"},"ConfigUpdate":{"properties":{"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","title":"ConfigUpdate"},"ContentResponseSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the content"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"MIME type of the content"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"},"linked_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linked To","description":"ID of related content if linked"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata as key-value pairs"},"access_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Access Count","description":"Number of times content has been accessed"},"status":{"anyOf":[{"$ref":"#/components/schemas/ContentStatus"},{"type":"null"}],"description":"Processing status of the content"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message","description":"Status message or error details"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when content was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when content was last updated"}},"type":"object","required":["id"],"title":"ContentResponseSchema"},"ContentStatus":{"type":"string","enum":["processing","completed","failed"],"title":"ContentStatus","description":"Enumeration of possible content processing statuses."},"ContentStatusResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Content ID"},"status":{"$ref":"#/components/schemas/ContentStatus","description":"Current processing status of the content"},"status_message":{"type":"string","title":"Status Message","description":"Status message or error details","default":""}},"type":"object","required":["status"],"title":"ContentStatusResponse","description":"Response model for content status endpoint."},"Context":{"properties":{"description":{"type":"string","title":"Description"},"value":{"type":"string","title":"Value"}},"additionalProperties":true,"type":"object","required":["description","value"],"title":"Context","description":"Additional context for the agent."},"CreateSessionRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session ID (generated if not provided)"},"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Initial session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"}},"type":"object","title":"CreateSessionRequest"},"DataPart":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data"},"kind":{"type":"string","const":"data","title":"Kind","default":"data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["data"],"title":"DataPart","description":"Represents a structured data segment (e.g., JSON) within a message or artifact."},"DatabaseConfig_EvalsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/EvalsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[EvalsDomainConfig]"},"DatabaseConfig_LearningDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/LearningDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[LearningDomainConfig]"},"DatabaseConfig_MemoryDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MemoryDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MemoryDomainConfig]"},"DatabaseConfig_MetricsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MetricsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MetricsDomainConfig]"},"DatabaseConfig_SessionDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/SessionDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[SessionDomainConfig]"},"DatabaseConfig_TracesDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/TracesDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[TracesDomainConfig]"},"DayAggregatedMetrics":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the metrics record"},"agent_runs_count":{"type":"integer","minimum":0.0,"title":"Agent Runs Count","description":"Total number of agent runs"},"agent_sessions_count":{"type":"integer","minimum":0.0,"title":"Agent Sessions Count","description":"Total number of agent sessions"},"team_runs_count":{"type":"integer","minimum":0.0,"title":"Team Runs Count","description":"Total number of team runs"},"team_sessions_count":{"type":"integer","minimum":0.0,"title":"Team Sessions Count","description":"Total number of team sessions"},"workflow_runs_count":{"type":"integer","minimum":0.0,"title":"Workflow Runs Count","description":"Total number of workflow runs"},"workflow_sessions_count":{"type":"integer","minimum":0.0,"title":"Workflow Sessions Count","description":"Total number of workflow sessions"},"users_count":{"type":"integer","minimum":0.0,"title":"Users Count","description":"Total number of unique users"},"token_metrics":{"additionalProperties":true,"type":"object","title":"Token Metrics","description":"Token usage metrics (input, output, cached, etc.)"},"model_metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Model Metrics","description":"Metrics grouped by model (model_id, provider, count)"},"date":{"type":"string","format":"date-time","title":"Date","description":"Date for which these metrics are aggregated"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when metrics were created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when metrics were last updated"}},"type":"object","required":["id","agent_runs_count","agent_sessions_count","team_runs_count","team_sessions_count","workflow_runs_count","workflow_sessions_count","users_count","token_metrics","model_metrics","date","created_at","updated_at"],"title":"DayAggregatedMetrics","description":"Aggregated metrics for a given day"},"DeleteEvalRunsRequest":{"properties":{"eval_run_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Eval Run Ids","description":"List of evaluation run IDs to delete"}},"type":"object","required":["eval_run_ids"],"title":"DeleteEvalRunsRequest"},"DeleteMemoriesRequest":{"properties":{"memory_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Memory Ids","description":"List of memory IDs to delete"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID to filter memories for deletion"}},"type":"object","required":["memory_ids"],"title":"DeleteMemoriesRequest"},"DeleteSessionRequest":{"properties":{"session_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Session Ids","description":"List of session IDs to delete"},"session_types":{"items":{"$ref":"#/components/schemas/SessionType"},"type":"array","minItems":1,"title":"Session Types","description":"Types of sessions to delete"}},"type":"object","required":["session_ids","session_types"],"title":"DeleteSessionRequest"},"DeveloperMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"developer","title":"Role","default":"developer"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"DeveloperMessage","description":"A developer message."},"DocumentInputContent":{"properties":{"type":{"type":"string","const":"document","title":"Type","default":"document"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"DocumentInputContent","description":"A document input content fragment."},"EvalFilterType":{"type":"string","enum":["agent","team","workflow"],"title":"EvalFilterType"},"EvalRunInput":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID to evaluate"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID to evaluate"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID to use for evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation to run (accuracy, performance, or reliability)"},"input":{"type":"string","minLength":1,"title":"Input","description":"Input text/query for the evaluation"},"additional_guidelines":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Guidelines","description":"Additional guidelines for the evaluation"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for the evaluation"},"num_iterations":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Num Iterations","description":"Number of times to run the evaluation","default":1},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for this evaluation run"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output","description":"Expected output for accuracy evaluation"},"criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criteria","description":"Evaluation criteria for agent-as-judge evaluation"},"scoring_strategy":{"anyOf":[{"type":"string","enum":["numeric","binary"]},{"type":"null"}],"title":"Scoring Strategy","description":"Scoring strategy: 'numeric' (1-10 with threshold) or 'binary' (PASS/FAIL)","default":"binary"},"threshold":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Threshold","description":"Score threshold for pass/fail (1-10), only used with numeric scoring","default":7},"warmup_runs":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Warmup Runs","description":"Number of warmup runs before measuring performance","default":0},"expected_tool_calls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expected Tool Calls","description":"Expected tool calls for reliability evaluation"},"allow_additional_tool_calls":{"type":"boolean","title":"Allow Additional Tool Calls","description":"When True, tool calls not in expected_tool_calls are allowed (subset matching)","default":false},"expected_tool_call_arguments":{"anyOf":[{"additionalProperties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Expected Tool Call Arguments","description":"Expected arguments for specific tool calls, e.g. {\"tool_name\": {\"arg_name\": \"expected_value\"}} or {\"tool_name\": [{\"arg_name\": \"val1\"}, {\"arg_name\": \"val2\"}]}"}},"type":"object","required":["eval_type","input"],"title":"EvalRunInput"},"EvalSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the evaluation run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that was evaluated"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID used in evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that was evaluated"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was evaluated"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the evaluation run"},"evaluated_component_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluated Component Name","description":"Name of the evaluated component"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation (accuracy, performance, or reliability)"},"eval_data":{"additionalProperties":true,"type":"object","title":"Eval Data","description":"Evaluation results and metrics"},"eval_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eval Input","description":"Input parameters used for the evaluation"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when evaluation was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when evaluation was last updated"}},"type":"object","required":["id","eval_type","eval_data"],"title":"EvalSchema"},"EvalType":{"type":"string","enum":["accuracy","agent_as_judge","performance","reliability"],"title":"EvalType"},"EvalsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_EvalsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"EvalsConfig","description":"Configuration for the Evals domain of the AgentOS"},"EvalsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"EvalsDomainConfig","description":"Configuration for the Evals domain of the AgentOS"},"FilePart":{"properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/FileWithBytes"},{"$ref":"#/components/schemas/FileWithUri"}],"title":"File"},"kind":{"type":"string","const":"file","title":"Kind","default":"file"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["file"],"title":"FilePart","description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI."},"FileWithBytes":{"properties":{"bytes":{"type":"string","title":"Bytes"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["bytes"],"title":"FileWithBytes","description":"Represents a file with its content provided directly as a base64-encoded string."},"FileWithUri":{"properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uri":{"type":"string","title":"Uri"}},"type":"object","required":["uri"],"title":"FileWithUri","description":"Represents a file with its content located at a specific URI."},"FilterFieldSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Column/field name used in filter expressions"},"label":{"type":"string","title":"Label","description":"Human-readable display label for the UI"},"type":{"type":"string","title":"Type","description":"Field data type: string, number, datetime, enum"},"operators":{"items":{"type":"string"},"type":"array","title":"Operators","description":"List of valid filter operators for this field"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values","description":"Allowed enum values (for autocomplete/dropdown)"}},"type":"object","required":["key","label","type","operators"],"title":"FilterFieldSchema","description":"Schema describing a single filterable field for the frontend filter bar."},"FilterSchemaResponse":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FilterFieldSchema"},"type":"array","title":"Fields","description":"Available filterable fields"},"logical_operators":{"items":{"type":"string"},"type":"array","title":"Logical Operators","description":"Logical operators for combining filter clauses","default":["AND","OR"]}},"type":"object","required":["fields"],"title":"FilterSchemaResponse","description":"Response for the filter schema endpoint. Tells the FE what fields, operators, and values are available."},"FunctionCall":{"properties":{"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"additionalProperties":true,"type":"object","required":["name","arguments"],"title":"FunctionCall","description":"Name and arguments of a function call."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Health status of the service"},"instantiated_at":{"type":"string","format":"date-time","title":"Instantiated At","description":"Timestamp when service was instantiated"}},"type":"object","required":["status","instantiated_at"],"title":"HealthResponse","example":{"instantiated_at":"2025-06-10T12:00:00Z","status":"ok"}},"ImageInputContent":{"properties":{"type":{"type":"string","const":"image","title":"Type","default":"image"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"ImageInputContent","description":"An image input content fragment."},"InfoResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"agno_version":{"type":"string","title":"Agno Version","description":"Version of the agno framework"},"agent_count":{"type":"integer","title":"Agent Count","description":"Number of agents registered in the OS","default":0},"team_count":{"type":"integer","title":"Team Count","description":"Number of teams registered in the OS","default":0},"workflow_count":{"type":"integer","title":"Workflow Count","description":"Number of workflows registered in the OS","default":0},"mcp":{"$ref":"#/components/schemas/McpInfo","description":"MCP server availability for this OS instance"},"auth_mode":{"type":"string","enum":["none","security_key","jwt"],"title":"Auth Mode","description":"Authentication mode enforced on the REST/WS plane of this OS instance. MCP OAuth, when enabled, is described separately under `mcp.oauth`.","default":"none"}},"type":"object","required":["os_id","agno_version"],"title":"InfoResponse","description":"Response schema for the /info endpoint returning lightweight OS metadata."},"InputContentDataSource":{"properties":{"type":{"type":"string","const":"data","title":"Type","default":"data"},"value":{"type":"string","title":"Value"},"mimeType":{"type":"string","title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value","mimeType"],"title":"InputContentDataSource","description":"Inline base64-encoded source."},"InputContentUrlSource":{"properties":{"type":{"type":"string","const":"url","title":"Type","default":"url"},"value":{"type":"string","title":"Value"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value"],"title":"InputContentUrlSource","description":"URL-referenced source."},"InterfaceResponse":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the interface"},"version":{"type":"string","title":"Version","description":"Version of the interface"},"route":{"type":"string","title":"Route","description":"API route path"}},"type":"object","required":["type","version","route"],"title":"InterfaceResponse"},"InternalServerErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"InternalServerErrorResponse","example":{"detail":"Internal server error","error_code":"INTERNAL_SERVER_ERROR"}},"KnowledgeConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeDatabaseConfig"},"type":"array"},{"type":"null"}],"title":"Dbs"},"knowledge_instances":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeInstanceConfig"},"type":"array"},{"type":"null"}],"title":"Knowledge Instances"}},"type":"object","title":"KnowledgeConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeDatabaseConfig":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeDomainConfig"},{"type":"null"}]},"tables":{"items":{"type":"string"},"type":"array","title":"Tables","default":[]}},"type":"object","required":["db_id"],"title":"KnowledgeDatabaseConfig","description":"Configuration for a knowledge database with its tables"},"KnowledgeDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"KnowledgeDomainConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeInstanceConfig":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"db_id":{"type":"string","title":"Db Id"},"table":{"type":"string","title":"Table"}},"type":"object","required":["id","name","db_id","table"],"title":"KnowledgeInstanceConfig","description":"Configuration for a single knowledge instance"},"LearningConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_LearningDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"LearningConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningCreate":{"properties":{"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"content":{"additionalProperties":true,"type":"object","title":"Content","description":"The learning content payload"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID. When the request is authenticated, must match the JWT subject or be omitted/null (which creates a global / non-user-scoped record)."},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"}},"type":"object","required":["learning_type","content"],"title":"LearningCreate","description":"Request body for creating a learning record."},"LearningDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"LearningDomainConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningResponse":{"properties":{"learning_id":{"type":"string","title":"Learning Id","description":"Unique identifier for the learning record"},"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID (for entity-specific learnings)"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type (e.g. 'person', 'company')"},"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"The learning content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Creation timestamp (Unix epoch seconds)"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp (Unix epoch seconds)"}},"type":"object","required":["learning_id","learning_type"],"title":"LearningResponse","description":"A single learning record as returned by the API."},"LearningUpdate":{"properties":{"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Replacement content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Replacement metadata"}},"type":"object","title":"LearningUpdate","description":"Request body for updating a learning record. Identity fields are immutable."},"LearningUserStats":{"properties":{"user_id":{"type":"string","title":"User Id","description":"The user ID"},"last_learning_updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Learning Updated At","description":"Most recent learning update for this user (Unix epoch seconds)"}},"type":"object","required":["user_id"],"title":"LearningUserStats","description":"A user that owns learning records, with their most recent activity.\n\nUsed as a lightweight index for the per-user view: list users here, then drill into a\nsingle user's records via ``GET /learnings?user_id=...``. No per-user count is returned\n-- the user-scoped stores (``user_profile``, ``user_memory``) keep a single record per\nuser, so a record count would always be 1; the actual memory count lives in that\nrecord's ``content``."},"Manifest":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"},"quick_prompts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quick Prompts"}},"type":"object","title":"Manifest","description":"OS-level UI metadata for an agent/team/workflow.\n\nFields here are AgentOS UI metadata only. ``description`` is unrelated to\n``Agent.description`` / ``Team.description`` / ``Workflow.description``,\nwhich are sent to the model.\n\nRendering surfaces:\n- ``description``, ``labels``: home/landing card\n- ``quick_prompts``: chat page"},"McpInfo":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the MCP server is enabled on this OS instance","default":false},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Path where the MCP server is mounted, null when disabled"},"oauth":{"anyOf":[{"$ref":"#/components/schemas/McpOAuthInfo"},{"type":"null"}],"description":"OAuth discovery details when the MCP endpoint is OAuth-protected, null otherwise"}},"type":"object","title":"McpInfo","description":"MCP server availability for the /info endpoint."},"McpOAuthInfo":{"properties":{"authorization_servers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorization Servers","description":"Issuer URL(s) of the authorization server(s) protecting the MCP endpoint"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource","description":"RFC 9728 resource URL advertised for the MCP endpoint"}},"type":"object","title":"McpOAuthInfo","description":"OAuth discovery details for an MCP endpoint protected by ``AgentOS(mcp_auth=...)``."},"MemoryConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MemoryDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MemoryConfig","description":"Configuration for the Memory domain of the AgentOS"},"MemoryDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MemoryDomainConfig","description":"Configuration for the Memory domain of the AgentOS"},"Message":{"properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"kind":{"type":"string","const":"message","title":"Kind","default":"message"},"messageId":{"type":"string","title":"Messageid"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taskid"}},"type":"object","required":["messageId","parts","role"],"title":"Message","description":"Represents a single message in the conversation between a user and an agent."},"Meta":{"properties":{"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of results per page","default":20},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number","default":1}},"type":"object","title":"Meta","description":"Inline metadata schema for pagination."},"MetricsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MetricsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MetricsConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MetricsDomainConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsResponse":{"properties":{"metrics":{"items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"type":"array","title":"Metrics","description":"List of daily aggregated metrics"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp of the most recent metrics update"}},"type":"object","required":["metrics"],"title":"MetricsResponse"},"Model":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"Model"},"ModelResponse":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the model"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"ModelResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"NotFoundResponse","example":{"detail":"Not found","error_code":"NOT_FOUND"}},"OptimizeMemoriesRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID to optimize memories for"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model to use for optimization in format 'provider:model_id' (e.g., 'openai:gpt-4o-mini', 'anthropic:claude-3-5-sonnet-20241022', 'google:gemini-2.0-flash-exp'). If not specified, uses MemoryManager's default model (gpt-4o)."},"apply":{"type":"boolean","title":"Apply","description":"If True, apply optimization changes to database. If False, return preview only without saving.","default":true}},"type":"object","required":["user_id"],"title":"OptimizeMemoriesRequest","description":"Schema for memory optimization request"},"OptimizeMemoriesResponse":{"properties":{"memories":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Memories","description":"List of optimized memory objects"},"memories_before":{"type":"integer","minimum":0.0,"title":"Memories Before","description":"Number of memories before optimization"},"memories_after":{"type":"integer","minimum":0.0,"title":"Memories After","description":"Number of memories after optimization"},"tokens_before":{"type":"integer","minimum":0.0,"title":"Tokens Before","description":"Token count before optimization"},"tokens_after":{"type":"integer","minimum":0.0,"title":"Tokens After","description":"Token count after optimization"},"tokens_saved":{"type":"integer","minimum":0.0,"title":"Tokens Saved","description":"Number of tokens saved through optimization"},"reduction_percentage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Reduction Percentage","description":"Percentage of token reduction achieved"}},"type":"object","required":["memories","memories_before","memories_after","tokens_before","tokens_after","tokens_saved","reduction_percentage"],"title":"OptimizeMemoriesResponse","description":"Schema for memory optimization response"},"PaginatedResponse_ApprovalResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ApprovalResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ApprovalResponse]"},"PaginatedResponse_ComponentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ComponentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ComponentResponse]"},"PaginatedResponse_ContentResponseSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentResponseSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ContentResponseSchema]"},"PaginatedResponse_EvalSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EvalSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[EvalSchema]"},"PaginatedResponse_LearningResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningResponse]"},"PaginatedResponse_LearningUserStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningUserStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningUserStats]"},"PaginatedResponse_RegistryContentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RegistryContentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[RegistryContentResponse]"},"PaginatedResponse_ScheduleResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleResponse]"},"PaginatedResponse_ScheduleRunResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleRunResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleRunResponse]"},"PaginatedResponse_ServiceAccountResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ServiceAccountResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ServiceAccountResponse]"},"PaginatedResponse_SessionSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SessionSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[SessionSchema]"},"PaginatedResponse_TraceDetail_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceDetail"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceDetail]"},"PaginatedResponse_TraceSessionStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSessionStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSessionStats]"},"PaginatedResponse_TraceSummary_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSummary"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSummary]"},"PaginatedResponse_UserMemorySchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserMemorySchema]"},"PaginatedResponse_UserStatsSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserStatsSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserStatsSchema]"},"PaginatedResponse_VectorSearchResult_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VectorSearchResult"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[VectorSearchResult]"},"PaginationInfo":{"properties":{"page":{"type":"integer","minimum":0.0,"title":"Page","description":"Current page number (0-indexed)","default":0},"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of items per page","default":20},"total_pages":{"type":"integer","minimum":0.0,"title":"Total Pages","description":"Total number of pages","default":0},"total_count":{"type":"integer","minimum":0.0,"title":"Total Count","description":"Total count of items","default":0},"search_time_ms":{"type":"number","minimum":0.0,"title":"Search Time Ms","description":"Search execution time in milliseconds","default":0}},"type":"object","title":"PaginationInfo"},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/DataPart"}],"title":"Part"},"ReaderSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the reader"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the reader"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the reader's capabilities"},"chunkers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chunkers","description":"List of supported chunking strategies"}},"type":"object","required":["id"],"title":"ReaderSchema"},"ReasoningMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"reasoning","title":"Role","default":"reasoning"},"content":{"type":"string","title":"Content"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"ReasoningMessage","description":"A reasoning message containing the agent's internal reasoning process."},"RegistryContentResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/RegistryResourceType"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name","type"],"title":"RegistryContentResponse"},"RegistryResourceType":{"type":"string","enum":["tool","model","db","vector_db","schema","function","agent","team","knowledge","memory_manager","session_summary_manager"],"title":"RegistryResourceType","description":"Types of resources that can be stored in a registry."},"RemoteContentSourceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content source"},"name":{"type":"string","title":"Name","description":"Display name for the content source"},"type":{"type":"string","title":"Type","description":"Type of content source (s3, gcs, sharepoint, github, azureblob)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Default path prefix for this source"}},"type":"object","required":["id","name","type"],"title":"RemoteContentSourceSchema","description":"Schema for remote content source configuration."},"ResumeEntry":{"properties":{"interruptId":{"type":"string","title":"Interruptid"},"status":{"type":"string","enum":["resolved","cancelled"],"title":"Status"},"payload":{"anyOf":[{},{"type":"null"}],"title":"Payload"}},"additionalProperties":true,"type":"object","required":["interruptId","status"],"title":"ResumeEntry","description":"A per-interrupt response in the resume array of a RunAgentInput."},"Role":{"type":"string","enum":["agent","user"],"title":"Role","description":"Identifies the sender of the message. `user` for the client, `agent` for the service."},"RunAgentInput":{"properties":{"threadId":{"type":"string","title":"Threadid"},"runId":{"type":"string","title":"Runid"},"parentRunId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentrunid"},"state":{"title":"State"},"messages":{"items":{"oneOf":[{"$ref":"#/components/schemas/DeveloperMessage"},{"$ref":"#/components/schemas/SystemMessage"},{"$ref":"#/components/schemas/AssistantMessage"},{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/ToolMessage"},{"$ref":"#/components/schemas/ActivityMessage"},{"$ref":"#/components/schemas/ReasoningMessage"}],"discriminator":{"propertyName":"role","mapping":{"activity":"#/components/schemas/ActivityMessage","assistant":"#/components/schemas/AssistantMessage","developer":"#/components/schemas/DeveloperMessage","reasoning":"#/components/schemas/ReasoningMessage","system":"#/components/schemas/SystemMessage","tool":"#/components/schemas/ToolMessage","user":"#/components/schemas/UserMessage"}}},"type":"array","title":"Messages"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","title":"Tools"},"context":{"items":{"$ref":"#/components/schemas/Context"},"type":"array","title":"Context"},"forwardedProps":{"title":"Forwardedprops"},"resume":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResumeEntry"},"type":"array"},{"type":"null"}],"title":"Resume"}},"additionalProperties":true,"type":"object","required":["threadId","runId","state","messages","tools","context","forwardedProps"],"title":"RunAgentInput","description":"Input for running an agent."},"RunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that executed this run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"RunSchema"},"RunStatus":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","PAUSED","CANCELLED","ERROR","REGENERATED"],"title":"RunStatus","description":"State of the main run response"},"ScheduleCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"cron_expr":{"type":"string","maxLength":128,"title":"Cron Expr"},"endpoint":{"type":"string","maxLength":512,"title":"Endpoint"},"method":{"type":"string","maxLength":10,"title":"Method","default":"POST"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"type":"string","maxLength":64,"title":"Timezone","default":"UTC"},"timeout_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Timeout Seconds","default":3600},"max_retries":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Max Retries","default":0},"retry_delay_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Retry Delay Seconds","default":60}},"type":"object","required":["name","cron_expr","endpoint"],"title":"ScheduleCreate"},"ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"cron_expr":{"type":"string","title":"Cron Expr"},"timezone":{"type":"string","title":"Timezone"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"max_retries":{"type":"integer","title":"Max Retries"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","method","endpoint","cron_expr","timezone","timeout_seconds","max_retries","retry_delay_seconds","enabled"],"title":"ScheduleResponse"},"ScheduleRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"schedule_id":{"type":"string","title":"Schedule Id"},"attempt":{"type":"integer","title":"Attempt"},"triggered_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triggered At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"status":{"type":"string","title":"Status"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","schedule_id","attempt","status"],"title":"ScheduleRunResponse"},"ScheduleStateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","enabled"],"title":"ScheduleStateResponse","description":"Trimmed response for state-changing operations (enable/disable)."},"ScheduleUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"cron_expr":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Cron Expr"},"endpoint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Endpoint"},"method":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Method"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Timezone"},"timeout_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":1.0},{"type":"null"}],"title":"Timeout Seconds"},"max_retries":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Max Retries"},"retry_delay_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":1.0},{"type":"null"}],"title":"Retry Delay Seconds"}},"type":"object","title":"ScheduleUpdate"},"ScopeItem":{"properties":{"scope":{"type":"string","title":"Scope","description":"Scope string, e.g. 'agents:*:run'"},"effect":{"type":"string","enum":["allow","deny"],"title":"Effect","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["scope"],"title":"ScopeItem","description":"Write shape for one scope grant — the canonical RBAC payload for every scope-bearing API.\n\nEndpoints that take scopes accept these objects only (a bare string is a validation\nerror). ``effect`` is constrained here so every consumer rejects typos at the model\nlayer; whether ``deny`` is *semantically* legal stays per-endpoint (roles support\ndeny rules, service-account tokens are pure grants and reject it)."},"ScopeSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Scope id (always null here; kept for shape parity with the cloud RBAC API, which addresses scopes individually)"},"raw":{"type":"string","title":"Raw","description":"Original scope string, e.g. 'agents:*:run'"},"namespace":{"type":"string","title":"Namespace","description":"Resource namespace, e.g. 'agents'"},"sub_namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Namespace","description":"Specific resource id or wildcard '*'"},"permission":{"type":"string","title":"Permission","description":"Action, e.g. 'read' / 'run' / 'write'"},"value":{"type":"string","title":"Value","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["raw","namespace","permission"],"title":"ScopeSchema","description":"Read shape for one scope — the parsed RBAC payload shared by every scope-bearing API.\n\nMirrors the cloud RBAC scope shape ({raw, namespace, sub_namespace, permission, value})\nso a frontend renders scopes from any AgentOS API with one integration."},"SendMessageSuccessResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id"},"jsonrpc":{"type":"string","const":"2.0","title":"Jsonrpc","default":"2.0"},"result":{"anyOf":[{"$ref":"#/components/schemas/Task"},{"$ref":"#/components/schemas/Message"}],"title":"Result"}},"type":"object","required":["result"],"title":"SendMessageSuccessResponse","description":"Represents a successful JSON-RPC response for the `message/send` method."},"ServiceAccountCreate":{"properties":{"name":{"type":"string","maxLength":63,"title":"Name","description":"Machine identity name (lowercase slug), e.g. 'claude-code' or 'github-actions'"},"scopes":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScopeItem"},"type":"array"},{"type":"null"}],"title":"Scopes","description":"Scopes granted to the token, as {scope, effect} objects (the shared RBAC write shape; token scopes are grants, so only effect='allow' is accepted). Defaults to run and read scopes: agents:run, teams:run, workflows:run, sessions:read"},"expires_in_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Expires In Days","description":"Days until the token expires (default: 90)","default":90},"never_expires":{"type":"boolean","title":"Never Expires","description":"Mint a non-expiring token. Must be set explicitly; overrides expires_in_days.","default":false},"allow_privileged_scopes":{"type":"boolean","title":"Allow Privileged Scopes","description":"Required to grant privileged scopes: any write or delete action, the admin scope, or any service_accounts scope. Privileged tokens must be deliberate, never accidental.","default":false}},"type":"object","required":["name"],"title":"ServiceAccountCreate"},"ServiceAccountCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"token":{"type":"string","title":"Token","description":"The plaintext token. Shown exactly once - store it securely now."}},"type":"object","required":["id","name","principal","token_prefix","created_at","token"],"title":"ServiceAccountCreateResponse","description":"Returned once, at creation. The token is never retrievable again."},"ServiceAccountResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","name","principal","token_prefix","created_at"],"title":"ServiceAccountResponse","description":"Service account metadata. Never includes the token hash or plaintext."},"SessionConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_SessionDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"SessionConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"SessionDomainConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier for the session"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state data of the session"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when session was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when session was last updated"},"session_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type","description":"Type of session: agent, team, or workflow"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["session_id","session_name"],"title":"SessionSchema"},"SessionType":{"type":"string","enum":["agent","team","workflow"],"title":"SessionType"},"SlackChallengeResponse":{"properties":{"challenge":{"type":"string","title":"Challenge","description":"Challenge string to echo back to Slack"}},"type":"object","required":["challenge"],"title":"SlackChallengeResponse"},"SlackEventResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"}},"type":"object","title":"SlackEventResponse"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"SourceFileSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Full path/key of the file"},"name":{"type":"string","title":"Name","description":"Display name (filename)"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"File size in bytes"},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified","description":"ISO 8601 timestamp of last modification"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"MIME type of the file"}},"type":"object","required":["key","name"],"title":"SourceFileSchema","description":"Schema for a file in a content source."},"SourceFilesResponseSchema":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"ID of the content source"},"source_name":{"type":"string","title":"Source Name","description":"Name of the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Prefix filter that was applied"},"folders":{"items":{"$ref":"#/components/schemas/SourceFolderSchema"},"type":"array","title":"Folders","description":"Subfolders at this level"},"files":{"items":{"$ref":"#/components/schemas/SourceFileSchema"},"type":"array","title":"Files","description":"List of files at this level"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["source_id","source_name","meta"],"title":"SourceFilesResponseSchema","description":"Response schema for listing files in a content source."},"SourceFolderSchema":{"properties":{"prefix":{"type":"string","title":"Prefix","description":"Full prefix to use for navigating into this folder"},"name":{"type":"string","title":"Name","description":"Display name of the folder"},"is_empty":{"type":"boolean","title":"Is Empty","description":"Whether the folder contains any files","default":false}},"type":"object","required":["prefix","name"],"title":"SourceFolderSchema","description":"Schema for a folder in a content source."},"SystemMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"system","title":"Role","default":"system"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"SystemMessage","description":"A system message."},"Task":{"properties":{"artifacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Artifact"},"type":"array"},{"type":"null"}],"title":"Artifacts"},"contextId":{"type":"string","title":"Contextid"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"History"},"id":{"type":"string","title":"Id"},"kind":{"type":"string","const":"task","title":"Kind","default":"task"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"status":{"$ref":"#/components/schemas/TaskStatus"}},"type":"object","required":["contextId","id","status"],"title":"Task","description":"Represents a single, stateful operation or conversation between a client and an agent."},"TaskState":{"type":"string","enum":["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"],"title":"TaskState","description":"Defines the lifecycle states of a Task."},"TaskStatus":{"properties":{"message":{"anyOf":[{"$ref":"#/components/schemas/Message"},{"type":"null"}]},"state":{"$ref":"#/components/schemas/TaskState"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp","examples":["2023-10-27T10:00:00Z"]}},"type":"object","required":["state"],"title":"TaskStatus","description":"Represents the status of a task at a specific point in time."},"TeamResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"members":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"$ref":"#/components/schemas/TeamResponse"}]},"type":"array"},{"type":"null"}],"title":"Members"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"TeamResponse"},"TeamRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the team run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that executed this run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the team run"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this team run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this team run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this team run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this team run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"TeamRunSchema"},"TeamSessionDetailSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID used in this session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of team interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"team_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Team Data","description":"Team-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"}},"type":"object","required":["session_id","session_name"],"title":"TeamSessionDetailSchema"},"TeamSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the team"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the team"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the team"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Team execution mode (coordinate, route, broadcast, tasks)"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the team leader"}},"type":"object","title":"TeamSummaryResponse"},"TelegramStatusResponse":{"properties":{"status":{"type":"string","title":"Status","default":"available"}},"type":"object","title":"TelegramStatusResponse"},"TelegramWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status"}},"type":"object","required":["status"],"title":"TelegramWebhookResponse"},"TextInputContent":{"properties":{"type":{"type":"string","const":"text","title":"Type","default":"text"},"text":{"type":"string","title":"Text"}},"additionalProperties":true,"type":"object","required":["text"],"title":"TextInputContent","description":"A text fragment in a multimodal user message."},"TextPart":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"TextPart","description":"Represents a text segment within a message or artifact."},"Tool":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{},{"type":"null"}],"title":"Parameters"}},"additionalProperties":true,"type":"object","required":["name","description"],"title":"Tool","description":"A tool definition."},"ToolCall":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/FunctionCall"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","function"],"title":"ToolCall","description":"A tool call, modelled after OpenAI tool calls."},"ToolMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"tool","title":"Role","default":"tool"},"content":{"type":"string","title":"Content"},"toolCallId":{"type":"string","title":"Toolcallid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content","toolCallId"],"title":"ToolMessage","description":"A tool result message."},"TraceDetail":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent/workflow"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the agent/workflow"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"},"tree":{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array","title":"Tree","description":"Hierarchical tree of spans (root nodes)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at","tree"],"title":"TraceDetail","description":"Detailed trace information with hierarchical span tree"},"TraceNode":{"properties":{"id":{"type":"string","title":"Id","description":"Span ID"},"name":{"type":"string","title":"Name","description":"Span name (e.g., 'agent.run', 'llm.invoke')"},"type":{"type":"string","title":"Type","description":"Span kind (AGENT, TEAM, WORKFLOW, LLM, TOOL)"},"duration":{"type":"string","title":"Duration","description":"Human-readable duration (e.g., '123ms', '1.5s')"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"End time (Pydantic auto-serializes to ISO 8601)"},"status":{"type":"string","title":"Status","description":"Status code (OK, ERROR)"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the span"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the span"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"spans":{"anyOf":[{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array"},{"type":"null"}],"title":"Spans","description":"Child spans in the trace hierarchy"},"step_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Type","description":"Workflow step type (Step, Condition, function, Agent, Team)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional span attributes and data"},"extra_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Data","description":"Flexible field for custom attributes and additional data"}},"type":"object","required":["id","name","type","duration","start_time","end_time","status"],"title":"TraceNode","description":"Recursive node structure for rendering trace hierarchy in the frontend"},"TraceSearchGroupBy":{"type":"string","enum":["run","session"],"title":"TraceSearchGroupBy","description":"Grouping options for trace search results."},"TraceSearchRequest":{"properties":{"filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter","description":"FilterExpr DSL as JSON dict. Supports operators: EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH, AND, OR, NOT."},"group_by":{"$ref":"#/components/schemas/TraceSearchGroupBy","description":"Grouping mode: 'run' returns individual TraceDetail, 'session' returns aggregated TraceSessionStats.","default":"run"},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number (1-indexed)","default":1},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"Number of traces per page (max 100)","default":20}},"type":"object","title":"TraceSearchRequest","description":"Request body for POST /traces/search with advanced filtering.\n\nThe filter field accepts a FilterExpr DSL dict supporting composable queries\nwith AND/OR/NOT logic and operators like EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH.\n\nExample for run grouping (default):\n {\n \"filter\": {\n \"op\": \"AND\",\n \"conditions\": [\n {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n {\"op\": \"CONTAINS\", \"key\": \"user_id\", \"value\": \"admin\"}\n ]\n },\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n }\n\nExample for session grouping:\n {\n \"filter\": {\"op\": \"EQ\", \"key\": \"agent_id\", \"value\": \"my-agent\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n }"},"TraceSessionStats":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID(s) used in the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID associated with the session"},"total_traces":{"type":"integer","title":"Total Traces","description":"Total number of traces in this session"},"first_trace_at":{"type":"string","format":"date-time","title":"First Trace At","description":"Time of first trace (Pydantic auto-serializes to ISO 8601)"},"last_trace_at":{"type":"string","format":"date-time","title":"Last Trace At","description":"Time of last trace (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["session_id","total_traces","first_trace_at","last_trace_at"],"title":"TraceSessionStats","description":"Aggregated trace statistics grouped by session"},"TraceSummary":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR, UNSET)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at"],"title":"TraceSummary","description":"Summary information for trace list view"},"TracesConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_TracesDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"TracesConfig","description":"Configuration for the Traces domain of the AgentOS"},"TracesDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"TracesDomainConfig","description":"Configuration for the Traces domain of the AgentOS"},"UnauthenticatedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"UnauthenticatedResponse","example":{"detail":"Unauthenticated access","error_code":"UNAUTHENTICATED"}},"UpdateEvalRunRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"New name for the evaluation run"}},"type":"object","required":["name"],"title":"UpdateEvalRunRequest"},"UpdateSessionRequest":{"properties":{"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Updated session name"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Updated session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Updated metadata"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary","description":"Session summary"}},"type":"object","title":"UpdateSessionRequest"},"UserMemoryCreateSchema":{"properties":{"memory":{"type":"string","maxLength":5000,"minLength":1,"title":"Memory","description":"Memory content text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags to categorize the memory"}},"type":"object","required":["memory"],"title":"UserMemoryCreateSchema","description":"Define the payload expected for creating a new user memory"},"UserMemorySchema":{"properties":{"memory_id":{"type":"string","title":"Memory Id","description":"Unique identifier for the memory"},"memory":{"type":"string","title":"Memory","description":"Memory content text"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags associated with the memory"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID associated with this memory"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with this memory"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when memory was last updated"}},"type":"object","required":["memory_id","memory"],"title":"UserMemorySchema"},"UserMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"user","title":"Role","default":"user"},"content":{"anyOf":[{"type":"string"},{"items":{"oneOf":[{"$ref":"#/components/schemas/TextInputContent"},{"$ref":"#/components/schemas/ImageInputContent"},{"$ref":"#/components/schemas/AudioInputContent"},{"$ref":"#/components/schemas/VideoInputContent"},{"$ref":"#/components/schemas/DocumentInputContent"},{"$ref":"#/components/schemas/BinaryInputContent"}],"discriminator":{"propertyName":"type","mapping":{"audio":"#/components/schemas/AudioInputContent","binary":"#/components/schemas/BinaryInputContent","document":"#/components/schemas/DocumentInputContent","image":"#/components/schemas/ImageInputContent","text":"#/components/schemas/TextInputContent","video":"#/components/schemas/VideoInputContent"}}},"type":"array"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"UserMessage","description":"A user message supporting text or multimodal content."},"UserStatsSchema":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"total_memories":{"type":"integer","minimum":0.0,"title":"Total Memories","description":"Total number of memories for this user"},"last_memory_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Memory Updated At","description":"Timestamp of the most recent memory update"}},"type":"object","required":["user_id","total_memories"],"title":"UserStatsSchema","description":"Schema for user memory statistics"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"ValidationErrorResponse","example":{"detail":"Validation error","error_code":"VALIDATION_ERROR"}},"VectorDbSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the vector database"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the vector database"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the vector database"},"search_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Search Types","description":"List of supported search types (vector, keyword, hybrid)"}},"type":"object","required":["id"],"title":"VectorDbSchema"},"VectorSearchRequestSchema":{"properties":{"query":{"type":"string","title":"Query","description":"The search query text"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database ID to search in"},"knowledge_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledge Id","description":"Knowledge base ID to search in"},"vector_db_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vector Db Ids","description":"List of vector database IDs to search in"},"search_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Type","description":"The type of search to perform (vector, keyword, hybrid)"},"max_results":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Max Results","description":"The maximum number of results to return"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Filters to apply to the search results"},"meta":{"anyOf":[{"$ref":"#/components/schemas/Meta"},{"type":"null"}],"description":"Pagination metadata. Limit and page number to return a subset of results."}},"type":"object","required":["query"],"title":"VectorSearchRequestSchema","description":"Schema for vector search request."},"VectorSearchResult":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the search result document"},"content":{"type":"string","title":"Content","description":"Content text of the document"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the document"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Metadata associated with the document"},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"Usage statistics (e.g., token counts)"},"reranking_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reranking Score","description":"Reranking score for relevance"},"content_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Id","description":"ID of the source content"},"content_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Origin","description":"Origin URL or source of the content"},"size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"}},"type":"object","required":["id","content"],"title":"VectorSearchResult","description":"Schema for search result documents."},"VideoInputContent":{"properties":{"type":{"type":"string","const":"video","title":"Type","default":"video"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"VideoInputContent","description":"A video input content fragment."},"WhatsAppWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status","default":"ok"}},"type":"object","title":"WhatsAppWebhookResponse"},"WorkflowResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema","description":"Input schema for the workflow"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps","description":"List of workflow steps"},"agent":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"type":"null"}],"description":"Agent configuration if used"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamResponse"},{"type":"null"}],"description":"Team configuration if used"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"workflow_agent":{"type":"boolean","title":"Workflow Agent","description":"Whether this workflow uses a WorkflowAgent","default":false},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowResponse"},"WorkflowRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the workflow run"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the workflow"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was executed"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the workflow"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"Type of content returned"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status of the workflow run"},"step_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Results","description":"Results from each workflow step"},"step_executor_runs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Executor Runs","description":"Executor runs for each step"},"step_requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Requirements","description":"HITL step requirements (resolved state for historical display)"},"pause_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Kind","description":"Kind of HITL pause: 'step' or 'executor'"},"paused_step_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Step Name","description":"Name of the step that caused the pause"},"paused_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Paused Step Index","description":"Index of the step that caused the pause"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the workflow"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the workflow"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the workflow"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the workflow"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the workflow"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"}},"type":"object","required":["run_id"],"title":"WorkflowRunSchema"},"WorkflowSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID used in this session"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name","description":"Name of the workflow"},"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Data","description":"Complete session data"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current workflow state"},"workflow_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Data","description":"Workflow-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["session_id","session_name"],"title":"WorkflowSessionDetailSchema"},"WorkflowSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowSummaryResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} \ No newline at end of file +{"openapi":"3.1.0","info":{"title":"Agno API Reference","description":"The all-in-one, private, secure agent platform that runs in your cloud.","version":"2.7.4"},"paths":{"/":{"get":{"tags":["Home"],"summary":"API Information","description":"Get basic information about this AgentOS API instance, including:\n\n- API metadata and version\n- Available capabilities overview\n- Links to key endpoints and documentation","operationId":"get_api_info","responses":{"200":{"description":"API information retrieved successfully","content":{"application/json":{"schema":{},"examples":{"home":{"summary":"Example home response","value":{"name":"AgentOS API","id":"demo-os","version":"1.0.0"}}}}}}}}},"/health":{"get":{"tags":["Health"],"summary":"Health Check","description":"Check the health status of the AgentOS API. Returns a simple status indicator.","operationId":"health_check","responses":{"200":{"description":"API is healthy and operational","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"},"example":{"status":"ok","instantiated_at":"2025-06-10T12:00:00Z"}}}}}}},"/info":{"get":{"tags":["Core"],"summary":"Get OS Info","description":"Return lightweight, unauthenticated metadata about this AgentOS instance.","operationId":"get_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoResponse"}}}}}}},"/config":{"get":{"tags":["Core"],"summary":"Get OS Configuration","description":"Retrieve the complete configuration of the AgentOS instance, including:\n\n- Available models and databases\n- Registered agents, teams, and workflows\n- Chat, session, memory, knowledge, and evaluation configurations\n- Available interfaces and their routes","operationId":"get_config","responses":{"200":{"description":"OS configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"},"example":{"id":"demo","description":"Example AgentOS configuration","available_models":[],"databases":["9c884dc4-9066-448c-9074-ef49ec7eb73c"],"session":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Sessions"}}]},"metrics":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Metrics"}}]},"memory":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Memory"}}]},"knowledge":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Knowledge"}}]},"evals":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Evals"}}]},"agents":[{"id":"main-agent","name":"Main Agent","db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c"}],"teams":[],"workflows":[],"interfaces":[]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/models":{"get":{"tags":["Core"],"summary":"Get Available Models","description":"Retrieve a list of all unique models currently used by agents and teams in this OS instance. This includes the model ID and provider information for each model.","operationId":"get_models","responses":{"200":{"description":"List of models retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Response Get Models"},"example":[{"id":"gpt-4","provider":"openai"},{"id":"claude-3-sonnet","provider":"anthropic"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}/runs":{"post":{"tags":["Agents"],"summary":"Create Agent Run","description":"Execute an agent with a message and optional media files. Supports both streaming and non-streaming responses.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_agent_run"}}}},"responses":{"200":{"description":"Agent run executed successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"examples":{"event_stream":{"summary":"Example event stream response","value":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Agents"],"summary":"List Agent Runs","description":"List runs for an agent within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_agent_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/cancel":{"post":{"tags":["Agents"],"summary":"Cancel Agent Run","description":"Cancel a currently executing agent run. This will attempt to stop the agent's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/continue":{"post":{"tags":["Agents"],"summary":"Continue Agent Run","description":"Advance a persisted agent run from its current state. Dispatches on the body shape and the persisted run state (see ADR-003 in specs/agno/features/checkpointing/decisions.md).\n\n**Variants:**\n- PAUSED + tools provided → apply HITL tool results, resume\n- PAUSED + resolved admin approval (empty tools) → apply resolution, resume\n- RUNNING / ERROR (no unresolved HITL requirements) → resume from last persisted state\n- COMPLETED + new tools → continue with appended messages\n\n**Tools Parameter:**\nJSON string containing array of tool execution objects with results. Optional — only required when the persisted run has unresolved HITL requirements.","operationId":"continue_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_agent_run"}}}},"responses":{"200":{"description":"Agent run continued successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n"}}},"400":{"description":"Invalid JSON in tools field or invalid tool structure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"403":{"description":"Run has a pending admin approval and cannot be continued by the user yet."}}}},"/agents/{agent_id}/sessions/{session_id}/fork":{"post":{"tags":["Agents"],"summary":"Fork Agent Session","description":"Deep-copy a session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_agent_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents":{"get":{"tags":["Agents"],"summary":"List All Agents","description":"Retrieve a comprehensive list of all agents configured in this OS instance.\n\n**Returns:**\n- Agent metadata (ID, name, description)\n- Model configuration and capabilities\n- Available tools and their configurations\n- Session, knowledge, memory, and reasoning settings\n- Only meaningful (non-default) configurations are included","operationId":"get_agents","responses":{"200":{"description":"List of agents retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentResponse"},"type":"array","title":"Response Get Agents"},"example":[{"id":"main-agent","name":"Main Agent","db_id":"c6bf0644-feb8-4930-a305-380dae5ad6aa","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Details","description":"Retrieve detailed configuration and capabilities of a specific agent.\n\n**Returns comprehensive agent information including:**\n- Model configuration and provider details\n- Complete tool inventory and configurations\n- Session management settings\n- Knowledge base and memory configurations\n- Reasoning capabilities and settings\n- System prompts and response formatting options","operationId":"get_agent","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Agent details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"},"example":{"id":"main-agent","name":"Main Agent","db_id":"9e064c70-6821-4840-a333-ce6230908a70","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Run","description":"Retrieve the status and output of an agent run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Agents"],"summary":"List Agent Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_agent_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Agents"],"summary":"Get Agent Run Checkpoint Snapshot","description":"Return a derived run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_agent_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/resume":{"post":{"tags":["Agents"],"summary":"Resume Agent Run Stream","description":"Resume an SSE stream for an agent run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_agent_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_agent_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"application/json":{"schema":{}},"text/event-stream":{}}},"400":{"description":"Not supported for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs":{"post":{"tags":["Teams"],"summary":"Create Team Run","description":"Execute a team collaboration with multiple agents working together on a task.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_team_run"}}}},"responses":{"200":{"description":"Team run executed successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Teams"],"summary":"List Team Runs","description":"List runs for a team within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_team_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/cancel":{"post":{"tags":["Teams"],"summary":"Cancel Team Run","description":"Cancel a currently executing team run. This will attempt to stop the team's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel team run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/resume":{"post":{"tags":["Teams"],"summary":"Resume Team Run Stream","description":"Resume an SSE stream for a team run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_team_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_team_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"application/json":{"schema":{}},"text/event-stream":{}}},"400":{"description":"Not supported for remote teams","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/continue":{"post":{"tags":["Teams"],"summary":"Continue Team Run","description":"Continue a paused or incomplete team run with updated requirements.\n\n**Use Cases:**\n- Resume execution after tool approval/rejection\n- Provide manual tool execution results\n- Resume after admin approval (requirements can be empty; resolution fetched from DB)\n\n**Requirements Parameter:**\nJSON string containing array of requirement objects with tool execution results.\nCan be empty when an admin-required approval has been resolved.","operationId":"continue_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_team_run"}}}},"responses":{"200":{"description":"Team run continued successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n"}}},"400":{"description":"Invalid JSON in requirements field or invalid requirement structure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"403":{"description":"Run has a pending admin approval and cannot be continued by the user yet."},"409":{"description":"Run is not paused (e.g. run is already running, continued, or errored). Only PAUSED runs can be continued."}}}},"/teams/{team_id}/sessions/{session_id}/fork":{"post":{"tags":["Teams"],"summary":"Fork Team Session","description":"Deep-copy a team session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_team_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams":{"get":{"tags":["Teams"],"summary":"List All Teams","description":"Retrieve a comprehensive list of all teams configured in this OS instance.\n\n**Returns team information including:**\n- Team metadata (ID, name, description, execution mode)\n- Model configuration for team coordination\n- Team member roster with roles and capabilities\n- Knowledge sharing and memory configurations","operationId":"get_teams","responses":{"200":{"description":"List of teams retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamResponse"},"type":"array","title":"Response Get Teams"},"example":[{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"agno_memories","app_url":"/memory/1","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/teams/{team_id}":{"get":{"tags":["Teams"],"summary":"Get Team Details","description":"Retrieve detailed configuration and member information for a specific team.","operationId":"get_team","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"},"example":{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}":{"get":{"tags":["Teams"],"summary":"Get Team Run","description":"Retrieve the status and output of a team run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Teams"],"summary":"List Team Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored team run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_team_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Teams"],"summary":"Get Team Run Checkpoint Snapshot","description":"Return a derived team run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_team_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows":{"get":{"tags":["Workflows"],"summary":"List All Workflows","description":"Retrieve a comprehensive list of all workflows configured in this OS instance.\n\n**Return Information:**\n- Workflow metadata (ID, name, description)\n- Input schema requirements\n- Step sequence and execution flow\n- Associated agents and teams","operationId":"get_workflows","responses":{"200":{"description":"List of workflows retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Response Get Workflows"},"example":[{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/workflows/{workflow_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Details","description":"Retrieve detailed configuration and step information for a specific workflow.","operationId":"get_workflow","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Workflow version to retrieve","title":"Version"},"description":"Workflow version to retrieve"}],"responses":{"200":{"description":"Workflow details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"},"example":{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs":{"post":{"tags":["Workflows"],"summary":"Execute Workflow","description":"Execute a workflow with the provided input data. Workflows can run in streaming or batch mode.\n\n**Execution Modes:**\n- **Streaming (`stream=true`)**: Real-time step-by-step execution updates via SSE\n- **Non-Streaming (`stream=false`)**: Complete workflow execution with final result\n\n**Workflow Execution Process:**\n1. Input validation against workflow schema\n2. Sequential or parallel step execution based on workflow design\n3. Data flow between steps with transformation\n4. Error handling and automatic retries where configured\n5. Final result compilation and response\n\n**Session Management:**\nWorkflows support session continuity for stateful execution across multiple runs.","operationId":"create_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_run"}}}},"responses":{"200":{"description":"Workflow executed successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"400":{"description":"Invalid input data or workflow configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Workflow execution error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"List Workflow Runs","description":"List runs for a workflow within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_workflow_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/continue":{"post":{"tags":["Workflows"],"summary":"Continue Workflow Run","description":"Continue a paused workflow run with resolved requirements.\n\n**Use Cases:**\n- Resume after step-level HITL (confirmation, user input, router selection)\n- Resume after executor-level HITL (agent/team tool confirmation within a step)\n\n**Requirements Parameter:**\nJSON string containing the resolved step requirements.","operationId":"continue_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_workflow_run"}}}},"responses":{"200":{"description":"Workflow run continued successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: StepCompleted\ndata: {\"step_name\": \"step1\"}\n\n"}}},"400":{"description":"Invalid JSON in requirements field","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"409":{"description":"Run is not paused. Only PAUSED runs can be continued."}}}},"/workflows/{workflow_id}/runs/{run_id}/cancel":{"post":{"tags":["Workflows"],"summary":"Cancel Workflow Run","description":"Cancel a currently executing workflow run, stopping all active steps and cleanup.\n**Note:** Complex workflows with multiple parallel steps may take time to fully cancel.","operationId":"cancel_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel workflow run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/resume":{"post":{"tags":["Workflows"],"summary":"Resume Workflow Run Stream","description":"Resume an SSE stream for a workflow run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_workflow_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_workflow_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"application/json":{"schema":{}},"text/event-stream":{}}},"400":{"description":"Stream resumption is unavailable for remote and factory workflows. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Run","description":"Retrieve the status and output of a workflow run. Use this to poll for run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/slack/events":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Receives incoming Slack events (messages, mentions, thread starts).\n\n**URL Verification:** On first setup, Slack sends a `url_verification` challenge. The endpoint echoes back the challenge string.\n\n**Event Processing:** Normal events are acknowledged immediately with `{\"status\": \"ok\"}` and processed in the background. This prevents Slack's 3-second retry timeout.\n\n**Retry Handling:** Events with `X-Slack-Retry-Num` header are duplicates and return 200 without reprocessing.\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Event Subscriptions > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for creating a Slack App or use the [manifest](/agent-os/interfaces/slack/setup#2-create-the-slack-app) for quick setup.\n","operationId":"slack_events_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SlackChallengeResponse"},{"$ref":"#/components/schemas/SlackEventResponse"}],"title":"Response Slack Events Simple Agent"}}}},"400":{"description":"Missing Slack headers"},"403":{"description":"Invalid Slack signature"}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number (present on retried events)"}]}},"/slack/interactions":{"post":{"tags":["Slack"],"summary":"Slack Interactions","description":"Handles Slack interactive components for Human-in-the-Loop (HITL) workflows.\n\n**Supported Actions:**\n- `row_approve` - Approve a pending tool call\n- `row_reject` - Reject a pending tool call\n- `submit_pause` - Submit form data for a paused workflow\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Interactivity & Shortcuts > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for step-by-step instructions or the [HITL guide](/agent-os/interfaces/slack/hitl) for approval workflows.\n","operationId":"slack_interactions_simple_agent","responses":{"200":{"description":"Interaction accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackEventResponse"}}}},"400":{"description":"Malformed interaction payload"},"403":{"description":"Invalid Slack signature"}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"URL-encoded JSON interaction payload (Slack sends interactive component data as a single form field)"}}}}}}}},"/whatsapp/status":{"get":{"tags":["Whatsapp"],"summary":"Status","operationId":"whatsapp_status_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/whatsapp/webhook":{"get":{"tags":["Whatsapp"],"summary":"Whatsapp Verify","description":"Handle WhatsApp webhook verification","operationId":"whatsapp_verify_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["Whatsapp"],"summary":"Whatsapp Webhook","description":"Process incoming WhatsApp messages","operationId":"whatsapp_webhook_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppWebhookResponse"}}}},"403":{"description":"Invalid webhook signature"}}}},"/telegram/status":{"get":{"tags":["Telegram"],"summary":"Telegram Status","operationId":"telegram_status_simple-agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramStatusResponse"}}}}}}},"/telegram/webhook":{"post":{"tags":["Telegram"],"summary":"Telegram Webhook","operationId":"telegram_webhook_simple-agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramWebhookResponse"}}}},"403":{"description":"Invalid webhook secret token"}}}},"/agui":{"post":{"tags":["AGUI"],"summary":"Run Agent","operationId":"run_agent_agui_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/status":{"get":{"tags":["AGUI"],"summary":"Get Status","operationId":"get_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/a2a/agents/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Agent Card","operationId":"get_agent_card_a2a_agents__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Agent","description":"Send a message to an Agno Agent (non-streaming). The Agent is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"run_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request"},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Agent Task","description":"Get the status and result of an agent task by ID.","operationId":"get_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Agent Task","description":"Cancel a running agent task.","operationId":"cancel_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Agent","description":"Stream a message to an Agno Agent (streaming). The Agent is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Streaming response with task updates","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n"}}},"400":{"description":"Invalid request"},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Team Card","operationId":"get_team_card_a2a_teams__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Team","description":"Send a message to an Agno Team (non-streaming). The Team is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"run_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request"},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Team Task","description":"Get the status and result of a team task by ID.","operationId":"get_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Team Task","description":"Cancel a running team task.","operationId":"cancel_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Team","description":"Stream a message to an Agno Team (streaming). The Team is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Streaming response with task updates","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n"}}},"400":{"description":"Invalid request"},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/workflows/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Workflow Card","operationId":"get_workflow_card_a2a_workflows__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/workflows/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Workflow","description":"Send a message to an Agno Workflow (non-streaming). The Workflow is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"run_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request"},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/workflows/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Workflow","description":"Stream a message to an Agno Workflow (streaming). The Workflow is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Streaming response with task updates","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n"}}},"400":{"description":"Invalid request"},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/message/send":{"post":{"tags":["A2A"],"summary":"Send Message","description":"[DEPRECATED] Send a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"send_message","responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/a2a/message/stream":{"post":{"tags":["A2A"],"summary":"Stream Message","description":"[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message","responses":{"200":{"description":"Streaming response with task updates","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n"}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/sessions":{"get":{"tags":["Sessions"],"summary":"List Sessions","description":"Retrieve paginated list of sessions with filtering and sorting options. Supports filtering by session type (agent, team, workflow), component, user, and name. Sessions represent conversation histories and execution contexts.","operationId":"get_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types.","title":"Type"},"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types."},{"name":"component_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by component ID (agent/team/workflow ID)","title":"Component Id"},"description":"Filter sessions by component ID (agent/team/workflow ID)"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by user ID","title":"User Id"},"description":"Filter sessions by user ID"},{"name":"session_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by name (partial match)","title":"Session Name"},"description":"Filter sessions by name (partial match)"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of sessions to return per page","default":20,"title":"Limit"},"description":"Number of sessions to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort sessions by","default":"created_at","title":"Sort By"},"description":"Field to sort sessions by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query sessions from","title":"Db Id"},"description":"Database ID to query sessions from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Sessions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_SessionSchema_"},"example":{"session_example":{"summary":"Example session response","value":{"data":[{"session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_state":{},"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}]}}}}}},"400":{"description":"Invalid session type or filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in query parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Sessions"],"summary":"Create New Session","description":"Create a new empty session with optional configuration. Useful for pre-creating sessions with specific session_state, metadata, or other properties before running any agent/team/workflow interactions. The session can later be used by providing its session_id in run requests.","operationId":"create_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SessionType","description":"Type of session to create (agent, team, or workflow)","default":"agent"},"description":"Type of session to create (agent, team, or workflow)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to create session in","title":"Db Id"},"description":"Database ID to create session in"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest","description":"Session configuration data","default":{}}}}},"responses":{"201":{"description":"Session created successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Create Session"},"examples":{"agent_session_example":{"summary":"Example created agent session","value":{"user_id":"user-123","agent_session_id":"new-session-id","session_id":"new-session-id","session_name":"New Session","session_state":{"key":"value"},"metadata":{"key":"value"},"agent_id":"agent-1","created_at":"2025-10-21T12:00:00Z","updated_at":"2025-10-21T12:00:00Z"}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"409":{"description":"A session with the supplied session_id already exists"}}},"delete":{"tags":["Sessions"],"summary":"Delete Multiple Sessions","description":"Delete multiple sessions by their IDs in a single operation. This action cannot be undone and will permanently remove all specified sessions and their runs.","operationId":"delete_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSessionRequest"}}}},"responses":{"204":{"description":"Sessions deleted successfully"},"400":{"description":"Invalid request - session IDs and types length mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["Sessions"],"summary":"Get Session by ID","description":"Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow).","operationId":"get_session_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to retrieve","title":"Session Id"},"description":"Session ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query session from","title":"User Id"},"description":"User ID to query session from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query session from","title":"Db Id"},"description":"Database ID to query session from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query session from","title":"Table"},"description":"Table to query session from"}],"responses":{"200":{"description":"Session details retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Get Session By Id"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Session","description":"Permanently delete a specific session and all its associated runs. This action cannot be undone and will remove all conversation history.","operationId":"delete_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to delete","title":"Session Id"},"description":"Session ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Sessions"],"summary":"Update Session","description":"Update session properties such as session_name, session_state, metadata, or summary. Use this endpoint to modify the session name, update state, add metadata, or update the session summary.","operationId":"update_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to update","title":"Session Id"},"description":"Session ID to update"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID","title":"User Id"},"description":"User ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update operation","title":"Db Id"},"description":"Database ID to use for update operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update operation","title":"Table"},"description":"Table to use for update operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest","description":"Session update data"}}}},"responses":{"200":{"description":"Session updated successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Update Session"},"examples":{"update_summary":{"summary":"Update session summary","value":{"summary":{"summary":"The user discussed project planning with the agent.","updated_at":"2025-10-21T14:30:00Z"}}},"update_metadata":{"summary":"Update session metadata","value":{"metadata":{"tags":["planning","project"],"priority":"high"}}},"update_session_name":{"summary":"Update session name","value":{"session_name":"Updated Session Name"}},"update_session_state":{"summary":"Update session state","value":{"session_state":{"step":"completed","context":"Project planning finished","progress":100}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs":{"get":{"tags":["Sessions"],"summary":"Get Session Runs","description":"Retrieve all runs (executions) for a specific session with optional timestamp filtering. Runs represent individual interactions or executions within a session. Response schema varies based on session type.","operationId":"get_session_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get runs from","title":"Session Id"},"description":"Session ID to get runs from"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query runs from","title":"User Id"},"description":"User ID to query runs from"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created after this Unix timestamp (epoch time in seconds)","title":"Created After"},"description":"Filter runs created after this Unix timestamp (epoch time in seconds)"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created before this Unix timestamp (epoch time in seconds)","title":"Created Before"},"description":"Filter runs created before this Unix timestamp (epoch time in seconds)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query runs from","title":"Db Id"},"description":"Database ID to query runs from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query runs from","title":"Table"},"description":"Table to query runs from"}],"responses":{"200":{"description":"Session runs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}]},"title":"Response Get Session Runs"},"examples":{"completed_run":{"summary":"Example completed run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"","run_input":"Which tools do you have access to?","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","run_response_format":"text","reasoning_content":"","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069},"messages":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-08 17:52:10.101003.\n\n\nYou have the capability to retain memories from previous interactions with the user, but have not had any interactions with the user yet.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757346730},{"content":"Which tools do you have access to?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757346730},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138},"created_at":1757346730}],"events":[{"created_at":1757346730,"event":"RunStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","model":"gpt-4o","model_provider":"OpenAI"},{"created_at":1757346733,"event":"MemoryUpdateStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"MemoryUpdateCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"RunCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","content_type":"str","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069}}],"created_at":"2025-09-08T15:52:10Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Session not found or has no runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs/{run_id}":{"get":{"tags":["Sessions"],"summary":"Get Run by ID","description":"Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run).","operationId":"get_session_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get run from","title":"Session Id"},"description":"Session ID to get run from"},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","description":"Run ID to retrieve","title":"Run Id"},"description":"Run ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query run from","title":"User Id"},"description":"User ID to query run from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query run from","title":"Db Id"},"description":"Database ID to query run from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query run from","title":"Table"},"description":"Table to query run from"}],"responses":{"200":{"description":"Run retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}],"title":"Response Get Session Run"},"examples":{"agent_run":{"summary":"Example agent run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"user_123","run_input":"Which tools do you have access to?","content":"I don't have access to external tools.","created_at":1728499200}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Session or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/rename":{"post":{"tags":["Sessions"],"summary":"Rename Session","description":"Update the name of an existing session. Useful for organizing and categorizing sessions with meaningful names for better identification and management.","operationId":"rename_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to rename","title":"Session Id"},"description":"Session ID to rename"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope rename to","title":"User Id"},"description":"User ID to scope rename to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for rename operation","title":"Db Id"},"description":"Database ID to use for rename operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_rename_session"}}}},"responses":{"200":{"description":"Session renamed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Rename Session"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Invalid session name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type or validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories":{"post":{"tags":["Memory"],"summary":"Create Memory","description":"Create a new user memory with content and associated topics. Memories are used to store contextual information for users across conversations.","operationId":"create_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for memory storage","title":"Db Id"},"description":"Database ID to use for memory storage"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for memory storage","title":"Table"},"description":"Table to use for memory storage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"mem-123","memory":"User prefers technical explanations with code examples","topics":["preferences","communication_style","technical"],"user_id":"user-456","created_at":"2024-01-15T10:30:00Z","updated_at":"2024-01-15T10:30:00Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Memory"],"summary":"Delete Multiple Memories","description":"Delete multiple user memories by their IDs in a single operation. This action cannot be undone and all specified memories will be permanently removed.","operationId":"delete_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMemoriesRequest"}}}},"responses":{"204":{"description":"Memories deleted successfully"},"400":{"description":"Invalid request - empty memory_ids list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"List Memories","description":"Retrieve paginated list of user memories with filtering and search capabilities. Filter by user, agent, team, topics, or search within memory content.","operationId":"get_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by user ID","title":"User Id"},"description":"Filter memories by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by agent ID","title":"Agent Id"},"description":"Filter memories by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by team ID","title":"Team Id"},"description":"Filter memories by team ID"},{"name":"search_content","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fuzzy search within memory content","title":"Search Content"},"description":"Fuzzy search within memory content"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of memories to return per page","default":20,"title":"Limit"},"description":"Number of memories to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort memories by","default":"updated_at","title":"Sort By"},"description":"Field to sort memories by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memories from","title":"Db Id"},"description":"Database ID to query memories from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Comma-separated list of topics to filter by","examples":["preferences,technical,communication_style"],"title":"Topics"},"description":"Comma-separated list of topics to filter by"}],"responses":{"200":{"description":"Memories retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserMemorySchema_"},"example":{"data":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories/{memory_id}":{"delete":{"tags":["Memory"],"summary":"Delete Memory","description":"Permanently delete a specific user memory. This action cannot be undone.","operationId":"delete_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to delete","title":"Memory Id"},"description":"Memory ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to delete memory for","title":"User Id"},"description":"User ID to delete memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Memory deleted successfully"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"Get Memory by ID","description":"Retrieve detailed information about a specific user memory by its ID.","operationId":"get_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to retrieve","title":"Memory Id"},"description":"Memory ID to retrieve"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query memory for","title":"User Id"},"description":"User ID to query memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memory from","title":"Db Id"},"description":"Database ID to query memory from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query memory from","title":"Table"},"description":"Table to query memory from"}],"responses":{"200":{"description":"Memory retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Memory"],"summary":"Update Memory","description":"Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values.","operationId":"update_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to update","title":"Memory Id"},"description":"Memory ID to update"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update","title":"Db Id"},"description":"Database ID to use for update"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update","title":"Table"},"description":"Table to use for update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memory_topics":{"get":{"tags":["Memory"],"summary":"Get Memory Topics","description":"Retrieve all unique topics associated with memories in the system. Useful for filtering and categorizing memories by topic.","operationId":"get_memory_topics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter topics for","title":"User Id"},"description":"User ID to filter topics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query topics from","title":"Db Id"},"description":"Database ID to query topics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query topics from","title":"Table"},"description":"Table to query topics from"}],"responses":{"200":{"description":"Memory topics retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Get Memory Topics"},"example":["preferences","communication_style","technical","industry","compliance","code_examples","requirements","healthcare","finance"]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/user_memory_stats":{"get":{"tags":["Memory"],"summary":"Get User Memory Statistics","description":"Retrieve paginated statistics about memory usage by user. Provides insights into user engagement and memory distribution across users.","operationId":"get_user_memory_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of user statistics to return per page","default":20,"title":"Limit"},"description":"Number of user statistics to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter statistics for","title":"User Id"},"description":"User ID to filter statistics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query statistics from","title":"Table"},"description":"Table to query statistics from"}],"responses":{"200":{"description":"User memory statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserStatsSchema_"},"example":{"data":[{"user_id":"123","total_memories":3,"last_memory_updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve user statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/optimize-memories":{"post":{"tags":["Memory"],"summary":"Optimize User Memories","description":"Optimize all memories for a given user using the default summarize strategy. This operation combines all memories into a single comprehensive summary, achieving maximum token reduction while preserving all key information. To use a custom model, specify the model parameter in 'provider:model_id' format (e.g., 'openai:gpt-4o-mini', 'anthropic:claude-3-5-sonnet-20241022'). If not specified, uses MemoryManager's default model (gpt-4o). Set apply=false to preview optimization results without saving to database.","operationId":"optimize_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for optimization","title":"Db Id"},"description":"Database ID to use for optimization"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for optimization","title":"Table"},"description":"Table to use for optimization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesRequest"}}}},"responses":{"200":{"description":"Memories optimized successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesResponse"},"example":{"memories":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User has a 3-year-old golden retriever named Max who loves fetch and walks. Lives in San Francisco's Mission district, works as a product manager in tech. Enjoys hiking Bay Area trails, trying new restaurants (especially Japanese, Thai, Mexican), and learning piano for 1.5 years.","topics":["pets","location","work","hobbies","food_preferences"],"user_id":"user2","updated_at":"2025-11-18T10:30:00Z"}],"memories_before":4,"memories_after":1,"tokens_before":450,"tokens_after":180,"tokens_saved":270,"reduction_percentage":60.0}}}},"400":{"description":"Bad request - User ID is required or invalid model string format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"No memories found for user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to optimize memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings":{"get":{"tags":["Learnings"],"summary":"List Learnings","description":"List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) — this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`).","operationId":"list_learnings","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by learning type","title":"Learning Type"},"description":"Filter by learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"namespace","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by namespace","title":"Namespace"},"description":"Filter by namespace"},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity ID","title":"Entity Id"},"description":"Filter by entity ID"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity type","title":"Entity Type"},"description":"Filter by entity type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":100,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used).","title":"Sort By"},"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used)."},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Learnings"],"summary":"Create Learning","description":"Create a new learning record. For the identity-keyed learning types (`user_profile`, `user_memory`, `session_context`, `entity_memory`) the record id is derived deterministically from the identity fields so it reconciles with what the agent reads/writes — provide those fields (else 422), and if a record already exists the request is rejected with 409 (use PATCH to update it). Other types get a generated id. For a scoped (non-admin) caller, the body's `user_id` must be omitted/null or match the caller (mismatch → 403); admins and unscoped callers may set any `user_id`.","operationId":"create_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users":{"get":{"tags":["Learnings"],"summary":"List Learning Users","description":"List the users that own learning records, with a per-user count and last-updated timestamp. Intended as the entry point for a per-user view: list users here, then drill into a single user's learnings via `GET /learnings?user_id=...`. Records with no owner (`user_id IS NULL`) are excluded. Pass `learning_type` to restrict the grouping to a single store (e.g. `user_profile` or `user_memory`). For a scoped (non-admin) caller results are bound to that user; an explicit `user_id` that differs is rejected with 403. Admins and unscoped callers list all users. Sortable by `user_id` or `last_learning_updated_at` (the default).","operationId":"list_learning_users","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the grouping to a single learning type","title":"Learning Type"},"description":"Restrict the grouping to a single learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the result to a single user","title":"User Id"},"description":"Restrict the result to a single user"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by: user_id or last_learning_updated_at (the default)","title":"Sort By"},"description":"Field to sort by: user_id or last_learning_updated_at (the default)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningUserStats_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users/{user_id}":{"delete":{"tags":["Learnings"],"summary":"Delete Learning User","description":"Delete the learning records owned by a user. By default removes every learning type backed by the agno_learnings table (user_profile, user_memory, and any user-scoped entity records); pass `learning_type` to restrict deletion to a single store. Records with no owner (`user_id IS NULL`) are not affected. For a scoped (non-admin) caller, only their own learnings may be deleted; a different `user_id` is rejected with 403. Admins and unscoped callers may delete any user's learnings. Returns 204 even if the user had no matching records.","operationId":"delete_learning_user","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The user whose learnings should be deleted","title":"User Id"},"description":"The user whose learnings should be deleted"},{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings","title":"Learning Type"},"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/{learning_id}":{"get":{"tags":["Learnings"],"summary":"Get Learning","description":"Retrieve a single learning record by its ID.","operationId":"get_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Learnings"],"summary":"Update Learning","description":"Update a learning record. Only `content` and `metadata` may be modified; identity fields (user_id, agent_id, team_id, etc.) are immutable. Provided fields fully replace the existing values. Records with no owner (`user_id IS NULL` — shared agent/team/session/entity learnings) are readable by any caller but may only be modified by an admin.","operationId":"update_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Learnings"],"summary":"Delete Learning","description":"Permanently delete a learning record by its ID. Records with no owner (`user_id IS NULL` — shared agent/team/session/entity learnings) may only be deleted by an admin.","operationId":"delete_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs":{"get":{"tags":["Evals"],"summary":"List Evaluation Runs","description":"Retrieve paginated evaluation runs with filtering and sorting options. Filter by agent, team, workflow, model, or evaluation type.","operationId":"get_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Workflow ID","title":"Workflow Id"},"description":"Workflow ID"},{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model ID","title":"Model Id"},"description":"Model ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EvalFilterType"},{"type":"null"}],"description":"Filter type","title":"Type"},"description":"Filter type"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of eval runs to return","default":20,"title":"Limit"},"description":"Number of eval runs to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"eval_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)","examples":["accuracy,agent_as_judge,performance,reliability"],"title":"Eval Types"},"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)"}],"responses":{"200":{"description":"Evaluation runs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_EvalSchema_"},"example":{"data":[{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Evals"],"summary":"Delete Evaluation Runs","description":"Delete multiple evaluation runs by their IDs. This action cannot be undone.","operationId":"delete_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvalRunsRequest"}}}},"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete evaluation runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Evals"],"summary":"Execute Evaluation","description":"Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both.","operationId":"run_eval","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for evaluation","title":"Db Id"},"description":"Database ID to use for evaluation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for evaluation","title":"Table"},"description":"Table to use for evaluation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRunInput"}}}},"responses":{"200":{"description":"Evaluation executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"f2b2d72f-e9e2-4f0e-8810-0a7e1ff58614","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Invalid request - provide either agent_id or team_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent or team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs/{eval_run_id}":{"get":{"tags":["Evals"],"summary":"Get Evaluation Run","description":"Retrieve detailed results and metrics for a specific evaluation run.","operationId":"get_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query eval run from","title":"Table"},"description":"Table to query eval run from"}],"responses":{"200":{"description":"Evaluation run details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Evals"],"summary":"Update Evaluation Run","description":"Update the name or other properties of an existing evaluation run.","operationId":"update_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvalRunRequest"}}}},"responses":{"200":{"description":"Evaluation run updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update evaluation run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics":{"get":{"tags":["Metrics"],"summary":"Get AgentOS Metrics","description":"Retrieve AgentOS metrics and analytics data for a specified date range. If no date range is specified, returns all available metrics.","operationId":"get_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"starting_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Starting date for metrics range (YYYY-MM-DD format)","title":"Starting Date"},"description":"Starting date for metrics range (YYYY-MM-DD format)"},{"name":"ending_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Ending date for metrics range (YYYY-MM-DD format)","title":"Ending Date"},"description":"Ending date for metrics range (YYYY-MM-DD format)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query metrics from","title":"Db Id"},"description":"Database ID to query metrics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Metrics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"},"example":{"metrics":[{"id":"7bf39658-a00a-484c-8a28-67fd8a9ddb2a","agent_runs_count":5,"agent_sessions_count":5,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":448,"output_tokens":148,"total_tokens":596,"audio_tokens":0,"input_audio_tokens":0,"output_audio_tokens":0,"cached_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":5}],"date":"2025-07-31T00:00:00Z","created_at":"2025-07-31T12:38:52Z","updated_at":"2025-07-31T12:49:01Z"}]}}}},"400":{"description":"Invalid date range parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve metrics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics/refresh":{"post":{"tags":["Metrics"],"summary":"Refresh Metrics","description":"Manually trigger recalculation of system metrics from raw data. This operation analyzes system activity logs and regenerates aggregated metrics. Useful for ensuring metrics are up-to-date or after system maintenance.","operationId":"refresh_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for metrics calculation","title":"Db Id"},"description":"Database ID to use for metrics calculation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for metrics calculation","title":"Table"},"description":"Table to use for metrics calculation"}],"responses":{"200":{"description":"Metrics refreshed successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"title":"Response Refresh Metrics"},"example":[{"id":"e77c9531-818b-47a5-99cd-59fed61e5403","agent_runs_count":2,"agent_sessions_count":2,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":256,"output_tokens":441,"total_tokens":697,"audio_total_tokens":0,"audio_input_tokens":0,"audio_output_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":2}],"date":"2025-08-12T00:00:00Z","created_at":"2025-08-12T08:01:47Z","updated_at":"2025-08-12T08:01:47Z"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to refresh metrics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content":{"post":{"tags":["Knowledge"],"summary":"Upload Content","description":"Upload content to the knowledge base. Supports file uploads, text content, or URLs. Content is processed asynchronously in the background. Supports custom readers and chunking strategies.","operationId":"upload_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_content"}}}},"responses":{"202":{"description":"Content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-123","name":"example-document.pdf","description":"Sample document for processing","metadata":{"category":"documentation","priority":"high"},"status":"processing"}}}},"400":{"description":"Invalid request - malformed metadata or missing content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in form data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"List Content","description":"Retrieve paginated list of all content in the knowledge base with filtering and sorting options. Filter by status, content type, or metadata properties.","operationId":"get_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of content entries to return","default":20,"title":"Limit"},"description":"Number of content entries to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ContentResponseSchema_"},"example":{"data":[{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}],"meta":{"page":1,"limit":20,"total_pages":1,"total_count":2}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete All Content","description":"Permanently remove all content from the knowledge base. This is a destructive operation that cannot be undone. Use with extreme caution.","operationId":"delete_all_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete all content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/remote-content":{"post":{"tags":["Knowledge"],"summary":"Upload Remote Content","description":"Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.","operationId":"upload_remote_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_upload_remote_content"}}}},"responses":{"202":{"description":"Remote content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-456","name":"reports/q1-2024.pdf","description":"Q1 Report from S3","metadata":{"source":"s3-docs"},"status":"processing"}}}},"400":{"description":"Invalid request - unknown config or missing path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}":{"patch":{"tags":["Knowledge"],"summary":"Update Content","description":"Update content properties such as name, description, metadata, or processing configuration. Allows modification of existing content without re-uploading.","operationId":"update_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","description":"Content ID","title":"Content Id"},"description":"Content ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_update_content"}}}},"responses":{"200":{"description":"Content updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Invalid request - malformed metadata or invalid reader_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"Get Content by ID","description":"Retrieve detailed information about a specific content item including processing status and metadata.","operationId":"get_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete Content by ID","description":"Permanently remove a specific content item from the knowledge base. This action cannot be undone.","operationId":"delete_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}/status":{"get":{"tags":["Knowledge"],"summary":"Get Content Status","description":"Retrieve the current processing status of a content item. Useful for monitoring asynchronous content processing progress and identifying any processing errors.","operationId":"get_content_status","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content status retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentStatusResponse"},"examples":{"completed":{"summary":"Example completed content status","value":{"status":"completed","status_message":""}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/search":{"post":{"tags":["Knowledge"],"summary":"Search Knowledge","description":"Search the knowledge base for relevant documents using query, filters and search type.","operationId":"search_knowledge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VectorSearchRequestSchema"}}},"required":true},"responses":{"200":{"description":"Search results retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_VectorSearchResult_"},"example":{"data":[{"id":"doc_123","content":"Jordan Mitchell - Software Engineer with skills in JavaScript, React, Python","name":"cv_1","meta_data":{"page":1,"chunk":1},"usage":{"total_tokens":14},"reranking_score":0.95,"content_id":"content_456"}],"meta":{"page":1,"limit":20,"total_pages":2,"total_count":35}}}}},"400":{"description":"Invalid search parameters"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"No documents found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/knowledge/config":{"get":{"tags":["Knowledge"],"summary":"Get Config","description":"Retrieve available readers, chunkers, and configuration options for content processing. This endpoint provides metadata about supported file types, processing strategies, and filters.","operationId":"get_knowledge_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Knowledge configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponseSchema"},"example":{"readers":{"website":{"id":"website","name":"WebsiteReader","description":"Reads website files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"firecrawl":{"id":"firecrawl","name":"FirecrawlReader","description":"Reads firecrawl files","chunkers":["SemanticChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"youtube":{"id":"youtube","name":"YoutubeReader","description":"Reads youtube files","chunkers":["RecursiveChunker","AgenticChunker","DocumentChunker","SemanticChunker","FixedSizeChunker"]},"web_search":{"id":"web_search","name":"WebSearchReader","description":"Reads web_search files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"arxiv":{"id":"arxiv","name":"ArxivReader","description":"Reads arxiv files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"csv":{"id":"csv","name":"CsvReader","description":"Reads csv files","chunkers":["RowChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"docling":{"id":"docling","name":"DoclingReader","description":"Converts multiple document formats like PDF, DOCX, PPTX, images, HTML, etc. using IBM's Docling library","chunkers":["AgenticChunker","CodeChunker","DocumentChunker","FixedSizeChunker","RecursiveChunker","SemanticChunker"]},"docx":{"id":"docx","name":"DocxReader","description":"Reads docx files","chunkers":["DocumentChunker","FixedSizeChunker","SemanticChunker","AgenticChunker","RecursiveChunker"]},"gcs":{"id":"gcs","name":"GcsReader","description":"Reads gcs files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"json":{"id":"json","name":"JsonReader","description":"Reads json files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"markdown":{"id":"markdown","name":"MarkdownReader","description":"Reads markdown files","chunkers":["MarkdownChunker","DocumentChunker","AgenticChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"pdf":{"id":"pdf","name":"PdfReader","description":"Reads pdf files","chunkers":["DocumentChunker","FixedSizeChunker","AgenticChunker","SemanticChunker","RecursiveChunker"]},"text":{"id":"text","name":"TextReader","description":"Reads text files","chunkers":["CodeChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]}},"readersForType":{"url":["url","website","firecrawl","youtube","web_search","gcs"],"youtube":["youtube"],"text":["web_search"],"topic":["arxiv"],"file":["csv","gcs"],".csv":["csv","field_labeled_csv","docling"],".xlsx":["excel","docling"],".xls":["excel"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["excel"],"application/vnd.ms-excel":["excel"],".docx":["docx","docling"],".dotx":["docling"],".docm":["docling"],".dotm":["docling"],".pptx":["docling","pptx"],".potx":["docling"],".ppsx":["docling"],".pptm":["docling"],".ppsm":["docling"],".potm":["docling"],".doc":["docx"],".json":["json"],".md":["markdown","docling"],".pdf":["pdf","docling"],".txt":["text"],".html":["docling"],".htm":["docling"],".xhtml":["docling"],".xml":["docling"],".nxml":["docling"],".xbrl":["docling"],".adoc":["docling"],".asciidoc":["docling"],".asc":["docling"],".xlsm":["docling"],".tex":["docling"],".latex":["docling"],".tar.gz":["docling"],".vtt":["docling"],".png":["docling"],".jpeg":["docling"],".jpg":["docling"],".tiff":["docling"],".tif":["docling"],".bmp":["docling"],".webp":["docling"],".wav":["docling"],".mp3":["docling"],".m4a":["docling"],".aac":["docling"],".ogg":["docling"],".flac":["docling"],".mp4":["docling"],".avi":["docling"],".mov":["docling"]},"chunkers":{"AgenticChunker":{"key":"AgenticChunker","name":"AgenticChunker","description":"Chunking strategy that uses an LLM to determine natural breakpoints in the text","metadata":{"chunk_size":5000}},"CodeChunker":{"key":"CodeChunker","name":"CodeChunker","description":"The CodeChunker splits code into chunks based on its structure, leveraging Abstract Syntax Trees (ASTs) to create contextually relevant segments","metadata":{"chunk_size":2048}},"DocumentChunker":{"key":"DocumentChunker","name":"DocumentChunker","description":"A chunking strategy that splits text based on document structure like paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"FixedSizeChunker":{"key":"FixedSizeChunker","name":"FixedSizeChunker","description":"Chunking strategy that splits text into fixed-size chunks with optional overlap","metadata":{"chunk_size":5000,"chunk_overlap":0}},"MarkdownChunker":{"key":"MarkdownChunker","name":"MarkdownChunker","description":"A chunking strategy that splits markdown based on structure like headers, paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RecursiveChunker":{"key":"RecursiveChunker","name":"RecursiveChunker","description":"Chunking strategy that recursively splits text into chunks by finding natural break points","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RowChunker":{"key":"RowChunker","name":"RowChunker","description":"RowChunking chunking strategy","metadata":{}},"SemanticChunker":{"key":"SemanticChunker","name":"SemanticChunker","description":"Chunking strategy that splits text into semantic chunks using chonkie","metadata":{"chunk_size":5000}}},"vector_dbs":[{"id":"vector_db_1","name":"Vector DB 1","description":"Vector DB 1 description","search_types":["vector","keyword","hybrid"]}],"filters":["filter_tag_1","filter_tag2"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources":{"get":{"tags":["Knowledge"],"summary":"List Content Sources","description":"List all registered content sources (S3, GCS, SharePoint, GitHub) for the knowledge base.","operationId":"list_content_sources","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Content sources retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"title":"Response List Content Sources"},"example":[{"id":"company-s3","name":"Company Documents","type":"s3","prefix":"documents/"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Knowledge base not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources/{source_id}/files":{"get":{"tags":["Knowledge"],"summary":"List Files in Source","description":"List available files and folders in a specific content source. Supports pagination and folder navigation.","operationId":"list_source_files","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the content source","title":"Source Id"},"description":"ID of the content source"},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Path prefix to filter files","title":"Prefix"},"description":"Path prefix to filter files"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of files per page","default":100,"title":"Limit"},"description":"Number of files per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"delimiter","in":"query","required":false,"schema":{"type":"string","description":"Folder delimiter (enables folder grouping)","default":"/","title":"Delimiter"},"description":"Folder delimiter (enables folder grouping)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Files listed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceFilesResponseSchema"},"example":{"source_id":"company-s3","source_name":"Company Documents","prefix":"reports/","folders":[{"prefix":"reports/2024/","name":"2024","is_empty":false}],"files":[{"key":"reports/annual-summary.pdf","name":"annual-summary.pdf","size":102400,"last_modified":"2024-01-15T10:30:00Z","content_type":"application/pdf"}],"meta":{"page":1,"limit":100,"total_pages":1,"total_count":1}}}}},"400":{"description":"Unsupported source type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Knowledge base or content source not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces":{"get":{"tags":["Traces","Traces"],"summary":"List Traces","description":"Retrieve a paginated list of execution traces with optional filtering.\n\n**Traces provide observability into:**\n- Agent execution flows\n- Model invocations and token usage\n- Tool calls and their results\n- Errors and performance bottlenecks\n\n**Filtering Options:**\n- By run, session, user, or agent ID\n- By status (OK, ERROR)\n- By time range\n\n**Pagination:**\n- Use `page` (1-indexed) and `limit` parameters\n- Response includes pagination metadata (total_pages, total_count, etc.)\n\n**Response Format:**\nReturns summary information for each trace. Use GET `/traces/{trace_id}` for detailed hierarchy.","operationId":"get_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run ID","title":"Run Id"},"description":"Filter by run ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status (OK, ERROR)","title":"Status"},"description":"Filter by status (OK, ERROR)"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of traces per page","default":20,"title":"Limit"},"description":"Number of traces per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"responses":{"200":{"description":"List of traces retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSummary_"},"example":{"data":[{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","total_spans":4,"error_count":0,"input":"What is the stock price of NVDA?","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"agent_stock","created_at":"2025-11-19T10:30:00+00:00"}],"meta":{"page":1,"limit":20,"total_pages":5,"total_count":95}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/filter-schema":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Filter Schema","description":"Returns the available filterable fields, their types, valid operators, and enum values.\n\nThe frontend uses this to dynamically build the filter bar UI:\n- Field dropdown populated from `fields[].key`\n- Operator dropdown changes per field type\n- Value input shows autocomplete for enum fields (e.g., status)\n- Logical operators (AND, OR) for combining clauses","operationId":"get_traces_filter_schema","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterSchemaResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/traces/{trace_id}":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace or Span Detail","description":"Retrieve detailed trace information with hierarchical span tree, or a specific span within the trace.\n\n**Without span_id parameter:**\nReturns the full trace with hierarchical span tree:\n- Trace metadata (ID, status, duration, context)\n- Hierarchical tree of all spans\n- Each span includes timing, status, and type-specific metadata\n\n**With span_id parameter:**\nReturns details for a specific span within the trace:\n- Span metadata (ID, name, type, timing)\n- Status and error information\n- Type-specific attributes (model, tokens, tool params, etc.)\n\n**Span Hierarchy (full trace):**\nThe `tree` field contains root spans, each with potential `children`.\nThis recursive structure represents the execution flow:\n```\nAgent.run (root)\n ├─ LLM.invoke\n ├─ Tool.execute\n │ └─ LLM.invoke (nested)\n └─ LLM.invoke\n```\n\n**Span Types:**\n- `AGENT`: Agent execution with input/output\n- `LLM`: Model invocations with tokens and prompts\n- `TOOL`: Tool calls with parameters and results","operationId":"get_trace","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}},{"name":"span_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Span ID to retrieve specific span","title":"Span Id"},"description":"Optional: Span ID to retrieve specific span"},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Run ID to retrieve trace for","title":"Run Id"},"description":"Optional: Run ID to retrieve trace for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query trace from","title":"Db Id"},"description":"Database ID to query trace from"}],"responses":{"200":{"description":"Trace or span detail retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TraceDetail"},{"$ref":"#/components/schemas/TraceNode"}],"title":"Response Get Trace"},"examples":{"full_trace":{"summary":"Full trace with hierarchy (no span_id)","value":{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","end_time":"2025-11-19T10:30:01.200000+00:00","total_spans":4,"error_count":0,"input":"What is Tesla stock price?","output":"The current price of Tesla (TSLA) is $245.67.","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"stock_agent","created_at":"2025-11-19T10:30:00+00:00","tree":[{"id":"span1","name":"Stock_Price_Agent.run","type":"AGENT","duration":"1.2s","status":"OK","spans":[]}]}},"single_span":{"summary":"Single span detail (with span_id)","value":{"id":"span2","name":"gpt-4o-mini.invoke","type":"LLM","duration":"800ms","status":"OK","metadata":{"model":"gpt-4o-mini","input_tokens":120}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Trace or span not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/trace_session_stats":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Statistics by Session","description":"Retrieve aggregated trace statistics grouped by session ID with pagination.\n\n**Provides insights into:**\n- Total traces per session\n- First and last trace timestamps per session\n- Associated user and agent information\n\n**Filtering Options:**\n- By user ID\n- By agent ID\n\n**Use Cases:**\n- Monitor session-level activity\n- Track conversation flows\n- Identify high-activity sessions\n- Analyze user engagement patterns","operationId":"get_trace_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of sessions per page","default":20,"title":"Limit"},"description":"Number of sessions per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"}],"responses":{"200":{"description":"Trace statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"},"example":{"data":[{"session_id":"37029bc6-1794-4ba8-a629-1efedc53dcad","user_id":"kaustubh@agno.com","agent_id":"hackernews-agent","total_traces":5,"first_trace_at":"2025-11-19T10:15:16+00:00","last_trace_at":"2025-11-19T10:21:30+00:00"}],"meta":{"page":1,"limit":20,"total_pages":3,"total_count":45}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/search":{"post":{"tags":["Traces","Traces"],"summary":"Search Traces with Advanced Filters","description":"Search traces using the FilterExpr DSL for complex, composable queries.\n\n**Group By Mode:**\n- `run` (default): Returns `PaginatedResponse[TraceDetail]` with full span trees\n- `session`: Returns `PaginatedResponse[TraceSessionStats]` with aggregated session stats\n\n**Supported Operators:**\n- Comparison: `EQ`, `NEQ`, `GT`, `GTE`, `LT`, `LTE`\n- Inclusion: `IN`\n- String matching: `CONTAINS` (case-insensitive substring), `STARTSWITH` (prefix)\n- Logical: `AND`, `OR`, `NOT`\n\n**Filterable Fields:**\ntrace_id, name, status, start_time, end_time, duration_ms, run_id, session_id, user_id, agent_id, team_id, workflow_id, created_at\n\n**Example Request Body (runs):**\n```json\n{\n \"filter\": {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n}\n```\n\n**Example Request Body (sessions):**\n```json\n{\n \"filter\": {\"op\": \"CONTAINS\", \"key\": \"agent_id\", \"value\": \"stock\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n}\n```","operationId":"search_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PaginatedResponse_TraceDetail_"},{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"}],"title":"Response Search Traces"}}}},"400":{"description":"Invalid filter expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/all/migrate":{"post":{"tags":["Database"],"summary":"Migrate All Databases","description":"Migrate all database schemas to the given target version. If a target version is not provided, all databases will be migrated to the latest version.","operationId":"migrate_all_databases","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"All databases migrated successfully","content":{"application/json":{"schema":{},"example":{"message":"All databases migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/{db_id}/migrate":{"post":{"tags":["Database"],"summary":"Migrate Database","description":"Migrate the given database schema to the given target version. If a target version is not provided, the database will be migrated to the latest version.","operationId":"migrate_database","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"Database migrated successfully","content":{"application/json":{"schema":{},"example":{"message":"Database migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Database not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components":{"get":{"tags":["Components"],"summary":"List Components","description":"Retrieve a paginated list of components with optional filtering by type.","operationId":"list_components","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ComponentType"},{"type":"null"}],"description":"Filter by type: agent, team, workflow","title":"Component Type"},"description":"Filter by type: agent, team, workflow"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ComponentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Component","description":"Create a new component (agent, team, or workflow) with initial config.","operationId":"create_component","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}":{"get":{"tags":["Components"],"summary":"Get Component","description":"Retrieve a component by ID.","operationId":"get_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Components"],"summary":"Update Component","description":"Partially update a component by ID.","operationId":"update_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentUpdate","description":"Component fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Component","description":"Soft-delete a component by ID. Component configs and links remain stored.","operationId":"delete_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs":{"get":{"tags":["Components"],"summary":"List Configs","description":"List all configs for a component.","operationId":"list_configs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"include_config","in":"query","required":false,"schema":{"type":"boolean","description":"Include full config blob","default":true,"title":"Include Config"},"description":"Include full config blob"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComponentConfigResponse"},"title":"Response List Configs"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Config Version","description":"Create a new config version for a component.","operationId":"create_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigCreate","description":"Config data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}":{"patch":{"tags":["Components"],"summary":"Update Draft Config","description":"Update an existing draft config. Cannot update published configs.","operationId":"update_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigUpdate","description":"Config fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Components"],"summary":"Get Config Version","description":"Get a specific config version by number.","operationId":"get_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Config Version","description":"Delete a specific draft config version. Cannot delete published or current configs.","operationId":"delete_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/current":{"get":{"tags":["Components"],"summary":"Get Current Config","description":"Get the current config version for a component.","operationId":"get_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}/set-current":{"post":{"tags":["Components"],"summary":"Set Current Config Version","description":"Set a published config version as current (for rollback).","operationId":"set_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/schedules":{"get":{"tags":["Schedules"],"summary":"List Schedules","operationId":"list_schedules_schedules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Schedules"],"summary":"Create Schedule","operationId":"create_schedule_schedules_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule","operationId":"get_schedule_schedules__schedule_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Schedules"],"summary":"Update Schedule","operationId":"update_schedule_schedules__schedule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Schedules"],"summary":"Delete Schedule","operationId":"delete_schedule_schedules__schedule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}/enable":{"post":{"tags":["Schedules"],"summary":"Enable Schedule","operationId":"enable_schedule_schedules__schedule_id__enable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}/disable":{"post":{"tags":["Schedules"],"summary":"Disable Schedule","operationId":"disable_schedule_schedules__schedule_id__disable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}/trigger":{"post":{"tags":["Schedules"],"summary":"Trigger Schedule","operationId":"trigger_schedule_schedules__schedule_id__trigger_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}/runs":{"get":{"tags":["Schedules"],"summary":"List Schedule Runs","operationId":"list_schedule_runs_schedules__schedule_id__runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleRunResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}/runs/{run_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule Run","operationId":"get_schedule_run_schedules__schedule_id__runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals":{"get":{"tags":["Approvals"],"summary":"List Approvals","operationId":"list_approvals_approvals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","approved","rejected","expired","cancelled"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"source_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"}},{"name":"approval_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["required","audit"],"type":"string"},{"type":"null"}],"title":"Approval Type"}},{"name":"pause_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"schedule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"}},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ApprovalResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/count":{"get":{"tags":["Approvals"],"summary":"Get Approval Count","operationId":"get_approval_count_approvals_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalCountResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/{approval_id}/status":{"get":{"tags":["Approvals"],"summary":"Get Approval Status","operationId":"get_approval_status_approvals__approval_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/{approval_id}":{"get":{"tags":["Approvals"],"summary":"Get Approval","operationId":"get_approval_approvals__approval_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Approvals"],"summary":"Delete Approval","operationId":"delete_approval_approvals__approval_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/{approval_id}/resolve":{"post":{"tags":["Approvals"],"summary":"Resolve Approval","operationId":"resolve_approval_approvals__approval_id__resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResolve"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/service-accounts":{"post":{"tags":["Service Accounts"],"summary":"Create Service Account","description":"Mint a service account token. The plaintext token is returned exactly once.","operationId":"create_service_account_service_accounts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Service Accounts"],"summary":"List Service Accounts","description":"List service accounts. Returns metadata and display prefixes only - never hashes or plaintext.","operationId":"list_service_accounts_service_accounts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Revoked"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ServiceAccountResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/service-accounts/{service_account_id}":{"delete":{"tags":["Service Accounts"],"summary":"Revoke Service Account","description":"Revoke a service account. Idempotent.\n\nTakes effect immediately on this worker (the local verification cache entry is\nevicted) and within the cache TTL on other workers.","operationId":"revoke_service_account_service_accounts__service_account_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"service_account_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/registry":{"get":{"tags":["Registry"],"summary":"List Registry","description":"List all resources in the registry with optional filtering.","operationId":"list_registry","security":[{"HTTPBearer":[]}],"parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RegistryResourceType"},{"type":"null"}],"description":"Filter by resource type","title":"Resource Type"},"description":"Filter by resource type"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (partial match)","title":"Name"},"description":"Filter by name (partial match)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_RegistryContentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}}},"components":{"schemas":{"ActivityMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"activity","title":"Role","default":"activity"},"activityType":{"type":"string","title":"Activitytype"},"content":{"additionalProperties":true,"type":"object","title":"Content"}},"additionalProperties":true,"type":"object","required":["id","activityType","content"],"title":"ActivityMessage","description":"An activity progress message emitted between chat messages."},"AgentResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"extra_messages":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Messages"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"AgentResponse"},"AgentSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_session_id":{"type":"string","title":"Agent Session Id","description":"Unique agent session identifier"},"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID used in this session"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"agent_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Data","description":"Agent-specific data"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["agent_session_id","session_id","session_name"],"title":"AgentSessionDetailSchema"},"AgentSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the agent"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the agent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the agent"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the agent"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","title":"AgentSummaryResponse"},"ApprovalCountResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"ApprovalCountResponse","description":"Response model for pending approval count."},"ApprovalResolve":{"properties":{"status":{"type":"string","pattern":"^(approved|rejected)$","title":"Status"},"resolved_by":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Resolved By"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"}},"type":"object","required":["status"],"title":"ApprovalResolve","description":"Request body for resolving (approve/reject) an approval."},"ApprovalResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"},"source_type":{"type":"string","title":"Source Type"},"approval_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Type"},"pause_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Args"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"},"schedule_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Run Id"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"},"run_status":{"anyOf":[{"$ref":"#/components/schemas/RunStatus"},{"type":"null"}]}},"type":"object","required":["id","run_id","session_id","status","source_type"],"title":"ApprovalResponse","description":"Response model for a single approval."},"ApprovalStatusResponse":{"properties":{"approval_id":{"type":"string","title":"Approval Id"},"status":{"type":"string","title":"Status"},"run_id":{"type":"string","title":"Run Id"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"}},"type":"object","required":["approval_id","status","run_id"],"title":"ApprovalStatusResponse","description":"Lightweight response model for polling approval status."},"Artifact":{"properties":{"artifactId":{"type":"string","title":"Artifactid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"}},"type":"object","required":["artifactId","parts"],"title":"Artifact","description":"Represents a file, data structure, or other resource generated by an agent during a task."},"AssistantMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"assistant","title":"Role","default":"assistant"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"},"toolCalls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},{"type":"null"}],"title":"Toolcalls"}},"additionalProperties":true,"type":"object","required":["id"],"title":"AssistantMessage","description":"An assistant message."},"AudioInputContent":{"properties":{"type":{"type":"string","const":"audio","title":"Type","default":"audio"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"AudioInputContent","description":"An audio input content fragment."},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"BadRequestResponse","example":{"detail":"Bad request","error_code":"BAD_REQUEST"}},"BinaryInputContent":{"properties":{"type":{"type":"string","const":"binary","title":"Type","default":"binary"},"mimeType":{"type":"string","title":"Mimetype"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"additionalProperties":true,"type":"object","required":["mimeType"],"title":"BinaryInputContent","description":"A deprecated binary payload reference in a multimodal user message."},"Body_continue_agent_run":{"properties":{"tools":{"type":"string","title":"Tools","description":"JSON string of tool call results to continue the paused run","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Optional new user-message text to append to the run before resuming. Use for continuing a COMPLETED run with a follow-up, or adding context to a RUNNING/ERROR resume."},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","description":"When true, clone the run with a new ``run_id`` before resuming. The original is untouched; the clone becomes a sibling within the same session, with ``forked_from_run_id`` set.","default":false},"regenerate":{"type":"boolean","title":"Regenerate","description":"Sugar: regenerate the last response of this run. Auto-computes ``continue_from='last_user'`` to land just after the last user message. Pair with ``additional_instructions`` to steer the new output. By default the original response is hidden from history (replaced); pass ``replace_original=false`` to keep both the original and the regenerated response visible side by side.","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original","description":"Only valid with ``regenerate=true``. Controls history visibility of the original response; the original run is always retained in storage. Defaults to true: the original is marked REGENERATED and hidden from history so the new response replaces it. Pass false to keep both the original and regenerated responses visible."},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions","description":"Only valid with ``regenerate=true``: extra guidance appended as a user message before re-generation. Friendly alias for ``input``."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run continue in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false}},"type":"object","title":"Body_continue_agent_run"},"Body_continue_team_run":{"properties":{"requirements":{"type":"string","title":"Requirements","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input"},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","default":false},"regenerate":{"type":"boolean","title":"Regenerate","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original"},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"stream":{"type":"boolean","title":"Stream","default":true},"background":{"type":"boolean","title":"Background","default":false}},"type":"object","title":"Body_continue_team_run"},"Body_continue_workflow_run":{"properties":{"step_requirements":{"type":"string","title":"Step Requirements","description":"JSON string of step requirement objects with resolution status","default":""},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}},"type":"object","title":"Body_continue_workflow_run"},"Body_create_agent_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the agent"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Agent version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic agent construction"}},"type":"object","required":["message"],"title":"Body_create_agent_run"},"Body_create_team_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the team"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"monitor":{"type":"boolean","title":"Monitor","description":"Enable monitoring and logging for this run","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Team version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic team construction"}},"type":"object","required":["message"],"title":"Body_create_team_run"},"Body_create_workflow_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the workflow"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run workflow in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Workflow version to use for this run"},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow construction"}},"type":"object","required":["message"],"title":"Body_create_workflow_run"},"Body_rename_session":{"properties":{"session_name":{"type":"string","title":"Session Name","description":"New name for the session"}},"type":"object","required":["session_name"],"title":"Body_rename_session"},"Body_resume_agent_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_agent_run_stream"},"Body_resume_team_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_team_run_stream"},"Body_resume_workflow_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_workflow_run_stream"},"Body_update_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"Content metadata as JSON string"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"}},"type":"object","title":"Body_update_content"},"Body_upload_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated from file/URL if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description for context"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"URL to fetch content from (JSON array or single URL string)"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object for additional content properties"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File","description":"File to upload for processing"},"text_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Content","description":"Raw text content to process"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for content processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply during processing"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size to use for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap to use for processing"}},"type":"object","title":"Body_upload_content"},"Body_upload_remote_content":{"properties":{"config_id":{"type":"string","title":"Config Id","description":"ID of the configured remote content source (from /knowledge/config)"},"path":{"type":"string","title":"Path","description":"Path to file or folder in the remote source"},"source_params":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Params","description":"JSON object of per-request parameters forwarded to the source's factory. Used for provider-specific routing that shouldn't be baked into the config. Currently supported keys: GitHub accepts 'repo' ('owner/repo'), letting one configured GitHub source serve multiple repositories the credentials can access."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap for processing"}},"type":"object","required":["config_id","path"],"title":"Body_upload_remote_content"},"ChatConfig":{"properties":{"quick_prompts":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Quick Prompts"}},"type":"object","required":["quick_prompts"],"title":"ChatConfig","description":"Configuration for the Chat page of the AgentOS"},"ChunkerSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["key"],"title":"ChunkerSchema"},"ComponentConfigResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"version":{"type":"integer","title":"Version"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"type":"string","title":"Stage"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","version","stage","config","created_at"],"title":"ComponentConfigResponse"},"ComponentCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Display name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id","description":"Unique identifier for the entity. Auto-generated from name if not provided."},"component_type":{"$ref":"#/components/schemas/ComponentType","description":"Type of entity: agent, team, or workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config","description":"Optional configuration"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["name","component_type"],"title":"ComponentCreate"},"ComponentResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"component_type":{"$ref":"#/components/schemas/ComponentType"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","component_type","created_at"],"title":"ComponentResponse"},"ComponentType":{"type":"string","enum":["agent","team","workflow"],"title":"ComponentType"},"ComponentUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"component_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"}},"type":"object","title":"ComponentUpdate"},"ConfigCreate":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config","description":"The configuration data"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Optional version number"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links","description":"Optional links to child components"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["config"],"title":"ConfigCreate"},"ConfigResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the OS instance"},"available_models":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Models","description":"List of available models"},"os_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Database","description":"ID of the database used for the OS instance"},"databases":{"items":{"type":"string"},"type":"array","title":"Databases","description":"List of database IDs used by the components of the OS instance"},"chat":{"anyOf":[{"$ref":"#/components/schemas/ChatConfig"},{"type":"null"}],"description":"Chat configuration"},"manifest":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Manifest"},"type":"object"},{"type":"null"}],"title":"Manifest","description":"Per-entity UI metadata keyed by agent/team/workflow id"},"session":{"anyOf":[{"$ref":"#/components/schemas/SessionConfig"},{"type":"null"}],"description":"Session configuration"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/MetricsConfig"},{"type":"null"}],"description":"Metrics configuration"},"memory":{"anyOf":[{"$ref":"#/components/schemas/MemoryConfig"},{"type":"null"}],"description":"Memory configuration"},"learning":{"anyOf":[{"$ref":"#/components/schemas/LearningConfig"},{"type":"null"}],"description":"Learning configuration"},"knowledge":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeConfig"},{"type":"null"}],"description":"Knowledge configuration"},"evals":{"anyOf":[{"$ref":"#/components/schemas/EvalsConfig"},{"type":"null"}],"description":"Evaluations configuration"},"traces":{"anyOf":[{"$ref":"#/components/schemas/TracesConfig"},{"type":"null"}],"description":"Traces configuration"},"agents":{"items":{"$ref":"#/components/schemas/AgentSummaryResponse"},"type":"array","title":"Agents","description":"List of registered agents"},"teams":{"items":{"$ref":"#/components/schemas/TeamSummaryResponse"},"type":"array","title":"Teams","description":"List of registered teams"},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Workflows","description":"List of registered workflows"},"interfaces":{"items":{"$ref":"#/components/schemas/InterfaceResponse"},"type":"array","title":"Interfaces","description":"List of available interfaces"}},"type":"object","required":["os_id","databases","agents","teams","workflows","interfaces"],"title":"ConfigResponse","description":"Response schema for the general config endpoint"},"ConfigResponseSchema":{"properties":{"readers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ReaderSchema"},"type":"object"},{"type":"null"}],"title":"Readers","description":"Available content readers"},"readersForType":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Readersfortype","description":"Mapping of content types to reader IDs"},"chunkers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ChunkerSchema"},"type":"object"},{"type":"null"}],"title":"Chunkers","description":"Available chunking strategies"},"filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filters","description":"Available filter tags"},"vector_dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/VectorDbSchema"},"type":"array"},{"type":"null"}],"title":"Vector Dbs","description":"Configured vector databases"},"remote_content_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"type":"array"},{"type":"null"}],"title":"Remote Content Sources","description":"Configured remote content sources (S3, GCS, SharePoint, GitHub)"}},"type":"object","title":"ConfigResponseSchema"},"ConfigUpdate":{"properties":{"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","title":"ConfigUpdate"},"ContentResponseSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the content"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"MIME type of the content"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"},"linked_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linked To","description":"ID of related content if linked"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata as key-value pairs"},"access_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Access Count","description":"Number of times content has been accessed"},"status":{"anyOf":[{"$ref":"#/components/schemas/ContentStatus"},{"type":"null"}],"description":"Processing status of the content"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message","description":"Status message or error details"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when content was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when content was last updated"}},"type":"object","required":["id"],"title":"ContentResponseSchema"},"ContentStatus":{"type":"string","enum":["processing","completed","failed"],"title":"ContentStatus","description":"Enumeration of possible content processing statuses."},"ContentStatusResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Content ID"},"status":{"$ref":"#/components/schemas/ContentStatus","description":"Current processing status of the content"},"status_message":{"type":"string","title":"Status Message","description":"Status message or error details","default":""}},"type":"object","required":["status"],"title":"ContentStatusResponse","description":"Response model for content status endpoint."},"Context":{"properties":{"description":{"type":"string","title":"Description"},"value":{"type":"string","title":"Value"}},"additionalProperties":true,"type":"object","required":["description","value"],"title":"Context","description":"Additional context for the agent."},"CreateSessionRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session ID (generated if not provided)"},"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Initial session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"}},"type":"object","title":"CreateSessionRequest"},"DataPart":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data"},"kind":{"type":"string","const":"data","title":"Kind","default":"data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["data"],"title":"DataPart","description":"Represents a structured data segment (e.g., JSON) within a message or artifact."},"DatabaseConfig_EvalsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/EvalsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[EvalsDomainConfig]"},"DatabaseConfig_LearningDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/LearningDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[LearningDomainConfig]"},"DatabaseConfig_MemoryDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MemoryDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MemoryDomainConfig]"},"DatabaseConfig_MetricsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MetricsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MetricsDomainConfig]"},"DatabaseConfig_SessionDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/SessionDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[SessionDomainConfig]"},"DatabaseConfig_TracesDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/TracesDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[TracesDomainConfig]"},"DayAggregatedMetrics":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the metrics record"},"agent_runs_count":{"type":"integer","minimum":0.0,"title":"Agent Runs Count","description":"Total number of agent runs"},"agent_sessions_count":{"type":"integer","minimum":0.0,"title":"Agent Sessions Count","description":"Total number of agent sessions"},"team_runs_count":{"type":"integer","minimum":0.0,"title":"Team Runs Count","description":"Total number of team runs"},"team_sessions_count":{"type":"integer","minimum":0.0,"title":"Team Sessions Count","description":"Total number of team sessions"},"workflow_runs_count":{"type":"integer","minimum":0.0,"title":"Workflow Runs Count","description":"Total number of workflow runs"},"workflow_sessions_count":{"type":"integer","minimum":0.0,"title":"Workflow Sessions Count","description":"Total number of workflow sessions"},"users_count":{"type":"integer","minimum":0.0,"title":"Users Count","description":"Total number of unique users"},"token_metrics":{"additionalProperties":true,"type":"object","title":"Token Metrics","description":"Token usage metrics (input, output, cached, etc.)"},"model_metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Model Metrics","description":"Metrics grouped by model (model_id, provider, count)"},"date":{"type":"string","format":"date-time","title":"Date","description":"Date for which these metrics are aggregated"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when metrics were created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when metrics were last updated"}},"type":"object","required":["id","agent_runs_count","agent_sessions_count","team_runs_count","team_sessions_count","workflow_runs_count","workflow_sessions_count","users_count","token_metrics","model_metrics","date","created_at","updated_at"],"title":"DayAggregatedMetrics","description":"Aggregated metrics for a given day"},"DeleteEvalRunsRequest":{"properties":{"eval_run_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Eval Run Ids","description":"List of evaluation run IDs to delete"}},"type":"object","required":["eval_run_ids"],"title":"DeleteEvalRunsRequest"},"DeleteMemoriesRequest":{"properties":{"memory_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Memory Ids","description":"List of memory IDs to delete"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID to filter memories for deletion"}},"type":"object","required":["memory_ids"],"title":"DeleteMemoriesRequest"},"DeleteSessionRequest":{"properties":{"session_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Session Ids","description":"List of session IDs to delete"},"session_types":{"items":{"$ref":"#/components/schemas/SessionType"},"type":"array","minItems":1,"title":"Session Types","description":"Types of sessions to delete"}},"type":"object","required":["session_ids","session_types"],"title":"DeleteSessionRequest"},"DeveloperMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"developer","title":"Role","default":"developer"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"DeveloperMessage","description":"A developer message."},"DocumentInputContent":{"properties":{"type":{"type":"string","const":"document","title":"Type","default":"document"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"DocumentInputContent","description":"A document input content fragment."},"EvalFilterType":{"type":"string","enum":["agent","team","workflow"],"title":"EvalFilterType"},"EvalRunInput":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID to evaluate"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID to evaluate"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID to use for evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation to run (accuracy, performance, or reliability)"},"input":{"type":"string","minLength":1,"title":"Input","description":"Input text/query for the evaluation"},"additional_guidelines":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Guidelines","description":"Additional guidelines for the evaluation"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for the evaluation"},"num_iterations":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Num Iterations","description":"Number of times to run the evaluation","default":1},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for this evaluation run"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output","description":"Expected output for accuracy evaluation"},"criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criteria","description":"Evaluation criteria for agent-as-judge evaluation"},"scoring_strategy":{"anyOf":[{"type":"string","enum":["numeric","binary"]},{"type":"null"}],"title":"Scoring Strategy","description":"Scoring strategy: 'numeric' (1-10 with threshold) or 'binary' (PASS/FAIL)","default":"binary"},"threshold":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Threshold","description":"Score threshold for pass/fail (1-10), only used with numeric scoring","default":7},"warmup_runs":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Warmup Runs","description":"Number of warmup runs before measuring performance","default":0},"expected_tool_calls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expected Tool Calls","description":"Expected tool calls for reliability evaluation"},"allow_additional_tool_calls":{"type":"boolean","title":"Allow Additional Tool Calls","description":"When True, tool calls not in expected_tool_calls are allowed (subset matching)","default":false},"expected_tool_call_arguments":{"anyOf":[{"additionalProperties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Expected Tool Call Arguments","description":"Expected arguments for specific tool calls, e.g. {\"tool_name\": {\"arg_name\": \"expected_value\"}} or {\"tool_name\": [{\"arg_name\": \"val1\"}, {\"arg_name\": \"val2\"}]}"}},"type":"object","required":["eval_type","input"],"title":"EvalRunInput"},"EvalSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the evaluation run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that was evaluated"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID used in evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that was evaluated"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was evaluated"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the evaluation run"},"evaluated_component_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluated Component Name","description":"Name of the evaluated component"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation (accuracy, performance, or reliability)"},"eval_data":{"additionalProperties":true,"type":"object","title":"Eval Data","description":"Evaluation results and metrics"},"eval_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eval Input","description":"Input parameters used for the evaluation"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when evaluation was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when evaluation was last updated"}},"type":"object","required":["id","eval_type","eval_data"],"title":"EvalSchema"},"EvalType":{"type":"string","enum":["accuracy","agent_as_judge","performance","reliability"],"title":"EvalType"},"EvalsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_EvalsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"EvalsConfig","description":"Configuration for the Evals domain of the AgentOS"},"EvalsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"EvalsDomainConfig","description":"Configuration for the Evals domain of the AgentOS"},"FilePart":{"properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/FileWithBytes"},{"$ref":"#/components/schemas/FileWithUri"}],"title":"File"},"kind":{"type":"string","const":"file","title":"Kind","default":"file"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["file"],"title":"FilePart","description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI."},"FileWithBytes":{"properties":{"bytes":{"type":"string","title":"Bytes"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["bytes"],"title":"FileWithBytes","description":"Represents a file with its content provided directly as a base64-encoded string."},"FileWithUri":{"properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uri":{"type":"string","title":"Uri"}},"type":"object","required":["uri"],"title":"FileWithUri","description":"Represents a file with its content located at a specific URI."},"FilterFieldSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Column/field name used in filter expressions"},"label":{"type":"string","title":"Label","description":"Human-readable display label for the UI"},"type":{"type":"string","title":"Type","description":"Field data type: string, number, datetime, enum"},"operators":{"items":{"type":"string"},"type":"array","title":"Operators","description":"List of valid filter operators for this field"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values","description":"Allowed enum values (for autocomplete/dropdown)"}},"type":"object","required":["key","label","type","operators"],"title":"FilterFieldSchema","description":"Schema describing a single filterable field for the frontend filter bar."},"FilterSchemaResponse":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FilterFieldSchema"},"type":"array","title":"Fields","description":"Available filterable fields"},"logical_operators":{"items":{"type":"string"},"type":"array","title":"Logical Operators","description":"Logical operators for combining filter clauses","default":["AND","OR"]}},"type":"object","required":["fields"],"title":"FilterSchemaResponse","description":"Response for the filter schema endpoint. Tells the FE what fields, operators, and values are available."},"FunctionCall":{"properties":{"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"additionalProperties":true,"type":"object","required":["name","arguments"],"title":"FunctionCall","description":"Name and arguments of a function call."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Health status of the service"},"instantiated_at":{"type":"string","format":"date-time","title":"Instantiated At","description":"Timestamp when service was instantiated"}},"type":"object","required":["status","instantiated_at"],"title":"HealthResponse","example":{"instantiated_at":"2025-06-10T12:00:00Z","status":"ok"}},"ImageInputContent":{"properties":{"type":{"type":"string","const":"image","title":"Type","default":"image"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"ImageInputContent","description":"An image input content fragment."},"InfoResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"agno_version":{"type":"string","title":"Agno Version","description":"Version of the agno framework"},"agent_count":{"type":"integer","title":"Agent Count","description":"Number of agents registered in the OS","default":0},"team_count":{"type":"integer","title":"Team Count","description":"Number of teams registered in the OS","default":0},"workflow_count":{"type":"integer","title":"Workflow Count","description":"Number of workflows registered in the OS","default":0},"mcp":{"$ref":"#/components/schemas/McpInfo","description":"MCP server availability for this OS instance"},"auth_mode":{"type":"string","enum":["none","security_key","jwt"],"title":"Auth Mode","description":"Authentication mode enforced on the REST/WS plane of this OS instance. MCP OAuth, when enabled, is described separately under `mcp.oauth`.","default":"none"}},"type":"object","required":["os_id","agno_version"],"title":"InfoResponse","description":"Response schema for the /info endpoint returning lightweight OS metadata."},"InputContentDataSource":{"properties":{"type":{"type":"string","const":"data","title":"Type","default":"data"},"value":{"type":"string","title":"Value"},"mimeType":{"type":"string","title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value","mimeType"],"title":"InputContentDataSource","description":"Inline base64-encoded source."},"InputContentUrlSource":{"properties":{"type":{"type":"string","const":"url","title":"Type","default":"url"},"value":{"type":"string","title":"Value"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value"],"title":"InputContentUrlSource","description":"URL-referenced source."},"InterfaceResponse":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the interface"},"version":{"type":"string","title":"Version","description":"Version of the interface"},"route":{"type":"string","title":"Route","description":"API route path"}},"type":"object","required":["type","version","route"],"title":"InterfaceResponse"},"InternalServerErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"InternalServerErrorResponse","example":{"detail":"Internal server error","error_code":"INTERNAL_SERVER_ERROR"}},"KnowledgeConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeDatabaseConfig"},"type":"array"},{"type":"null"}],"title":"Dbs"},"knowledge_instances":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeInstanceConfig"},"type":"array"},{"type":"null"}],"title":"Knowledge Instances"}},"type":"object","title":"KnowledgeConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeDatabaseConfig":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeDomainConfig"},{"type":"null"}]},"tables":{"items":{"type":"string"},"type":"array","title":"Tables","default":[]}},"type":"object","required":["db_id"],"title":"KnowledgeDatabaseConfig","description":"Configuration for a knowledge database with its tables"},"KnowledgeDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"KnowledgeDomainConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeInstanceConfig":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"db_id":{"type":"string","title":"Db Id"},"table":{"type":"string","title":"Table"}},"type":"object","required":["id","name","db_id","table"],"title":"KnowledgeInstanceConfig","description":"Configuration for a single knowledge instance"},"LearningConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_LearningDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"LearningConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningCreate":{"properties":{"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"content":{"additionalProperties":true,"type":"object","title":"Content","description":"The learning content payload"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID. When the request is authenticated, must match the JWT subject or be omitted/null (which creates a global / non-user-scoped record)."},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"}},"type":"object","required":["learning_type","content"],"title":"LearningCreate","description":"Request body for creating a learning record."},"LearningDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"LearningDomainConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningResponse":{"properties":{"learning_id":{"type":"string","title":"Learning Id","description":"Unique identifier for the learning record"},"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID (for entity-specific learnings)"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type (e.g. 'person', 'company')"},"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"The learning content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Creation timestamp (Unix epoch seconds)"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp (Unix epoch seconds)"}},"type":"object","required":["learning_id","learning_type"],"title":"LearningResponse","description":"A single learning record as returned by the API."},"LearningUpdate":{"properties":{"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Replacement content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Replacement metadata"}},"type":"object","title":"LearningUpdate","description":"Request body for updating a learning record. Identity fields are immutable."},"LearningUserStats":{"properties":{"user_id":{"type":"string","title":"User Id","description":"The user ID"},"last_learning_updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Learning Updated At","description":"Most recent learning update for this user (Unix epoch seconds)"}},"type":"object","required":["user_id"],"title":"LearningUserStats","description":"A user that owns learning records, with their most recent activity.\n\nUsed as a lightweight index for the per-user view: list users here, then drill into a\nsingle user's records via ``GET /learnings?user_id=...``. No per-user count is returned\n-- the user-scoped stores (``user_profile``, ``user_memory``) keep a single record per\nuser, so a record count would always be 1; the actual memory count lives in that\nrecord's ``content``."},"Manifest":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"},"quick_prompts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quick Prompts"}},"type":"object","title":"Manifest","description":"OS-level UI metadata for an agent/team/workflow.\n\nFields here are AgentOS UI metadata only. ``description`` is unrelated to\n``Agent.description`` / ``Team.description`` / ``Workflow.description``,\nwhich are sent to the model.\n\nRendering surfaces:\n- ``description``, ``labels``: home/landing card\n- ``quick_prompts``: chat page"},"McpInfo":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the MCP server is enabled on this OS instance","default":false},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Path where the MCP server is mounted, null when disabled"},"oauth":{"anyOf":[{"$ref":"#/components/schemas/McpOAuthInfo"},{"type":"null"}],"description":"OAuth discovery details when the MCP endpoint is OAuth-protected, null otherwise"}},"type":"object","title":"McpInfo","description":"MCP server availability for the /info endpoint."},"McpOAuthInfo":{"properties":{"authorization_servers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorization Servers","description":"Issuer URL(s) of the authorization server(s) protecting the MCP endpoint"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource","description":"RFC 9728 resource URL advertised for the MCP endpoint"}},"type":"object","title":"McpOAuthInfo","description":"OAuth discovery details for an MCP endpoint protected by ``AgentOS(mcp_auth=...)``."},"MemoryConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MemoryDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MemoryConfig","description":"Configuration for the Memory domain of the AgentOS"},"MemoryDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MemoryDomainConfig","description":"Configuration for the Memory domain of the AgentOS"},"Message":{"properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"kind":{"type":"string","const":"message","title":"Kind","default":"message"},"messageId":{"type":"string","title":"Messageid"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taskid"}},"type":"object","required":["messageId","parts","role"],"title":"Message","description":"Represents a single message in the conversation between a user and an agent."},"Meta":{"properties":{"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of results per page","default":20},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number","default":1}},"type":"object","title":"Meta","description":"Inline metadata schema for pagination."},"MetricsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MetricsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MetricsConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MetricsDomainConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsResponse":{"properties":{"metrics":{"items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"type":"array","title":"Metrics","description":"List of daily aggregated metrics"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp of the most recent metrics update"}},"type":"object","required":["metrics"],"title":"MetricsResponse"},"Model":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"Model"},"ModelResponse":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the model"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"ModelResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"NotFoundResponse","example":{"detail":"Not found","error_code":"NOT_FOUND"}},"OptimizeMemoriesRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID to optimize memories for"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model to use for optimization in format 'provider:model_id' (e.g., 'openai:gpt-4o-mini', 'anthropic:claude-3-5-sonnet-20241022', 'google:gemini-2.0-flash-exp'). If not specified, uses MemoryManager's default model (gpt-4o)."},"apply":{"type":"boolean","title":"Apply","description":"If True, apply optimization changes to database. If False, return preview only without saving.","default":true}},"type":"object","required":["user_id"],"title":"OptimizeMemoriesRequest","description":"Schema for memory optimization request"},"OptimizeMemoriesResponse":{"properties":{"memories":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Memories","description":"List of optimized memory objects"},"memories_before":{"type":"integer","minimum":0.0,"title":"Memories Before","description":"Number of memories before optimization"},"memories_after":{"type":"integer","minimum":0.0,"title":"Memories After","description":"Number of memories after optimization"},"tokens_before":{"type":"integer","minimum":0.0,"title":"Tokens Before","description":"Token count before optimization"},"tokens_after":{"type":"integer","minimum":0.0,"title":"Tokens After","description":"Token count after optimization"},"tokens_saved":{"type":"integer","minimum":0.0,"title":"Tokens Saved","description":"Number of tokens saved through optimization"},"reduction_percentage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Reduction Percentage","description":"Percentage of token reduction achieved"}},"type":"object","required":["memories","memories_before","memories_after","tokens_before","tokens_after","tokens_saved","reduction_percentage"],"title":"OptimizeMemoriesResponse","description":"Schema for memory optimization response"},"PaginatedResponse_ApprovalResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ApprovalResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ApprovalResponse]"},"PaginatedResponse_ComponentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ComponentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ComponentResponse]"},"PaginatedResponse_ContentResponseSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentResponseSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ContentResponseSchema]"},"PaginatedResponse_EvalSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EvalSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[EvalSchema]"},"PaginatedResponse_LearningResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningResponse]"},"PaginatedResponse_LearningUserStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningUserStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningUserStats]"},"PaginatedResponse_RegistryContentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RegistryContentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[RegistryContentResponse]"},"PaginatedResponse_ScheduleResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleResponse]"},"PaginatedResponse_ScheduleRunResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleRunResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleRunResponse]"},"PaginatedResponse_ServiceAccountResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ServiceAccountResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ServiceAccountResponse]"},"PaginatedResponse_SessionSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SessionSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[SessionSchema]"},"PaginatedResponse_TraceDetail_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceDetail"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceDetail]"},"PaginatedResponse_TraceSessionStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSessionStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSessionStats]"},"PaginatedResponse_TraceSummary_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSummary"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSummary]"},"PaginatedResponse_UserMemorySchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserMemorySchema]"},"PaginatedResponse_UserStatsSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserStatsSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserStatsSchema]"},"PaginatedResponse_VectorSearchResult_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VectorSearchResult"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[VectorSearchResult]"},"PaginationInfo":{"properties":{"page":{"type":"integer","minimum":0.0,"title":"Page","description":"Current page number (0-indexed)","default":0},"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of items per page","default":20},"total_pages":{"type":"integer","minimum":0.0,"title":"Total Pages","description":"Total number of pages","default":0},"total_count":{"type":"integer","minimum":0.0,"title":"Total Count","description":"Total count of items","default":0},"search_time_ms":{"type":"number","minimum":0.0,"title":"Search Time Ms","description":"Search execution time in milliseconds","default":0}},"type":"object","title":"PaginationInfo"},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/DataPart"}],"title":"Part"},"ReaderSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the reader"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the reader"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the reader's capabilities"},"chunkers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chunkers","description":"List of supported chunking strategies"}},"type":"object","required":["id"],"title":"ReaderSchema"},"ReasoningMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"reasoning","title":"Role","default":"reasoning"},"content":{"type":"string","title":"Content"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"ReasoningMessage","description":"A reasoning message containing the agent's internal reasoning process."},"RegistryContentResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/RegistryResourceType"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name","type"],"title":"RegistryContentResponse"},"RegistryResourceType":{"type":"string","enum":["tool","model","db","vector_db","schema","function","agent","team","knowledge","memory_manager","session_summary_manager"],"title":"RegistryResourceType","description":"Types of resources that can be stored in a registry."},"RemoteContentSourceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content source"},"name":{"type":"string","title":"Name","description":"Display name for the content source"},"type":{"type":"string","title":"Type","description":"Type of content source (s3, gcs, sharepoint, github, azureblob)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Default path prefix for this source"}},"type":"object","required":["id","name","type"],"title":"RemoteContentSourceSchema","description":"Schema for remote content source configuration."},"ResumeEntry":{"properties":{"interruptId":{"type":"string","title":"Interruptid"},"status":{"type":"string","enum":["resolved","cancelled"],"title":"Status"},"payload":{"anyOf":[{},{"type":"null"}],"title":"Payload"}},"additionalProperties":true,"type":"object","required":["interruptId","status"],"title":"ResumeEntry","description":"A per-interrupt response in the resume array of a RunAgentInput."},"Role":{"type":"string","enum":["agent","user"],"title":"Role","description":"Identifies the sender of the message. `user` for the client, `agent` for the service."},"RunAgentInput":{"properties":{"threadId":{"type":"string","title":"Threadid"},"runId":{"type":"string","title":"Runid"},"parentRunId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentrunid"},"state":{"title":"State"},"messages":{"items":{"oneOf":[{"$ref":"#/components/schemas/DeveloperMessage"},{"$ref":"#/components/schemas/SystemMessage"},{"$ref":"#/components/schemas/AssistantMessage"},{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/ToolMessage"},{"$ref":"#/components/schemas/ActivityMessage"},{"$ref":"#/components/schemas/ReasoningMessage"}],"discriminator":{"propertyName":"role","mapping":{"activity":"#/components/schemas/ActivityMessage","assistant":"#/components/schemas/AssistantMessage","developer":"#/components/schemas/DeveloperMessage","reasoning":"#/components/schemas/ReasoningMessage","system":"#/components/schemas/SystemMessage","tool":"#/components/schemas/ToolMessage","user":"#/components/schemas/UserMessage"}}},"type":"array","title":"Messages"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","title":"Tools"},"context":{"items":{"$ref":"#/components/schemas/Context"},"type":"array","title":"Context"},"forwardedProps":{"title":"Forwardedprops"},"resume":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResumeEntry"},"type":"array"},{"type":"null"}],"title":"Resume"}},"additionalProperties":true,"type":"object","required":["threadId","runId","state","messages","tools","context","forwardedProps"],"title":"RunAgentInput","description":"Input for running an agent."},"RunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that executed this run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"RunSchema"},"RunStatus":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","PAUSED","CANCELLED","ERROR","REGENERATED"],"title":"RunStatus","description":"State of the main run response"},"ScheduleCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"cron_expr":{"type":"string","maxLength":128,"title":"Cron Expr"},"endpoint":{"type":"string","maxLength":512,"title":"Endpoint"},"method":{"type":"string","maxLength":10,"title":"Method","default":"POST"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"type":"string","maxLength":64,"title":"Timezone","default":"UTC"},"timeout_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Timeout Seconds","default":3600},"max_retries":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Max Retries","default":0},"retry_delay_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Retry Delay Seconds","default":60}},"type":"object","required":["name","cron_expr","endpoint"],"title":"ScheduleCreate"},"ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"cron_expr":{"type":"string","title":"Cron Expr"},"timezone":{"type":"string","title":"Timezone"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"max_retries":{"type":"integer","title":"Max Retries"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","method","endpoint","cron_expr","timezone","timeout_seconds","max_retries","retry_delay_seconds","enabled"],"title":"ScheduleResponse"},"ScheduleRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"schedule_id":{"type":"string","title":"Schedule Id"},"attempt":{"type":"integer","title":"Attempt"},"triggered_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triggered At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"status":{"type":"string","title":"Status"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","schedule_id","attempt","status"],"title":"ScheduleRunResponse"},"ScheduleStateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","enabled"],"title":"ScheduleStateResponse","description":"Trimmed response for state-changing operations (enable/disable)."},"ScheduleUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"cron_expr":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Cron Expr"},"endpoint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Endpoint"},"method":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Method"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Timezone"},"timeout_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":1.0},{"type":"null"}],"title":"Timeout Seconds"},"max_retries":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Max Retries"},"retry_delay_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":1.0},{"type":"null"}],"title":"Retry Delay Seconds"}},"type":"object","title":"ScheduleUpdate"},"ScopeItem":{"properties":{"scope":{"type":"string","title":"Scope","description":"Scope string, e.g. 'agents:*:run'"},"effect":{"type":"string","enum":["allow","deny"],"title":"Effect","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["scope"],"title":"ScopeItem","description":"Write shape for one scope grant — the canonical RBAC payload for every scope-bearing API.\n\nEndpoints that take scopes accept these objects only (a bare string is a validation\nerror). ``effect`` is constrained here so every consumer rejects typos at the model\nlayer; whether ``deny`` is *semantically* legal stays per-endpoint (roles support\ndeny rules, service-account tokens are pure grants and reject it)."},"ScopeSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Scope id (always null here; kept for shape parity with the cloud RBAC API, which addresses scopes individually)"},"raw":{"type":"string","title":"Raw","description":"Original scope string, e.g. 'agents:*:run'"},"namespace":{"type":"string","title":"Namespace","description":"Resource namespace, e.g. 'agents'"},"sub_namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Namespace","description":"Specific resource id or wildcard '*'"},"permission":{"type":"string","title":"Permission","description":"Action, e.g. 'read' / 'run' / 'write'"},"value":{"type":"string","title":"Value","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["raw","namespace","permission"],"title":"ScopeSchema","description":"Read shape for one scope — the parsed RBAC payload shared by every scope-bearing API.\n\nMirrors the cloud RBAC scope shape ({raw, namespace, sub_namespace, permission, value})\nso a frontend renders scopes from any AgentOS API with one integration."},"SendMessageSuccessResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id"},"jsonrpc":{"type":"string","const":"2.0","title":"Jsonrpc","default":"2.0"},"result":{"anyOf":[{"$ref":"#/components/schemas/Task"},{"$ref":"#/components/schemas/Message"}],"title":"Result"}},"type":"object","required":["result"],"title":"SendMessageSuccessResponse","description":"Represents a successful JSON-RPC response for the `message/send` method."},"ServiceAccountCreate":{"properties":{"name":{"type":"string","maxLength":63,"title":"Name","description":"Machine identity name (lowercase slug), e.g. 'claude-code' or 'github-actions'"},"scopes":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScopeItem"},"type":"array"},{"type":"null"}],"title":"Scopes","description":"Scopes granted to the token, as {scope, effect} objects (the shared RBAC write shape; token scopes are grants, so only effect='allow' is accepted). Defaults to run and read scopes: agents:run, teams:run, workflows:run, sessions:read"},"expires_in_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Expires In Days","description":"Days until the token expires (default: 90)","default":90},"never_expires":{"type":"boolean","title":"Never Expires","description":"Mint a non-expiring token. Must be set explicitly; overrides expires_in_days.","default":false},"allow_privileged_scopes":{"type":"boolean","title":"Allow Privileged Scopes","description":"Required to grant privileged scopes: any write or delete action, the admin scope, or any service_accounts scope. Privileged tokens must be deliberate, never accidental.","default":false}},"type":"object","required":["name"],"title":"ServiceAccountCreate"},"ServiceAccountCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"token":{"type":"string","title":"Token","description":"The plaintext token. Shown exactly once - store it securely now."}},"type":"object","required":["id","name","principal","token_prefix","created_at","token"],"title":"ServiceAccountCreateResponse","description":"Returned once, at creation. The token is never retrievable again."},"ServiceAccountResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","name","principal","token_prefix","created_at"],"title":"ServiceAccountResponse","description":"Service account metadata. Never includes the token hash or plaintext."},"SessionConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_SessionDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"SessionConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"SessionDomainConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier for the session"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state data of the session"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when session was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when session was last updated"},"session_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type","description":"Type of session: agent, team, or workflow"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["session_id","session_name"],"title":"SessionSchema"},"SessionType":{"type":"string","enum":["agent","team","workflow"],"title":"SessionType"},"SlackChallengeResponse":{"properties":{"challenge":{"type":"string","title":"Challenge","description":"Challenge string to echo back to Slack"}},"type":"object","required":["challenge"],"title":"SlackChallengeResponse"},"SlackEventResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"}},"type":"object","title":"SlackEventResponse"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"SourceFileSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Full path/key of the file"},"name":{"type":"string","title":"Name","description":"Display name (filename)"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"File size in bytes"},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified","description":"ISO 8601 timestamp of last modification"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"MIME type of the file"}},"type":"object","required":["key","name"],"title":"SourceFileSchema","description":"Schema for a file in a content source."},"SourceFilesResponseSchema":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"ID of the content source"},"source_name":{"type":"string","title":"Source Name","description":"Name of the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Prefix filter that was applied"},"folders":{"items":{"$ref":"#/components/schemas/SourceFolderSchema"},"type":"array","title":"Folders","description":"Subfolders at this level"},"files":{"items":{"$ref":"#/components/schemas/SourceFileSchema"},"type":"array","title":"Files","description":"List of files at this level"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["source_id","source_name","meta"],"title":"SourceFilesResponseSchema","description":"Response schema for listing files in a content source."},"SourceFolderSchema":{"properties":{"prefix":{"type":"string","title":"Prefix","description":"Full prefix to use for navigating into this folder"},"name":{"type":"string","title":"Name","description":"Display name of the folder"},"is_empty":{"type":"boolean","title":"Is Empty","description":"Whether the folder contains any files","default":false}},"type":"object","required":["prefix","name"],"title":"SourceFolderSchema","description":"Schema for a folder in a content source."},"SystemMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"system","title":"Role","default":"system"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"SystemMessage","description":"A system message."},"Task":{"properties":{"artifacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Artifact"},"type":"array"},{"type":"null"}],"title":"Artifacts"},"contextId":{"type":"string","title":"Contextid"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"History"},"id":{"type":"string","title":"Id"},"kind":{"type":"string","const":"task","title":"Kind","default":"task"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"status":{"$ref":"#/components/schemas/TaskStatus"}},"type":"object","required":["contextId","id","status"],"title":"Task","description":"Represents a single, stateful operation or conversation between a client and an agent."},"TaskState":{"type":"string","enum":["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"],"title":"TaskState","description":"Defines the lifecycle states of a Task."},"TaskStatus":{"properties":{"message":{"anyOf":[{"$ref":"#/components/schemas/Message"},{"type":"null"}]},"state":{"$ref":"#/components/schemas/TaskState"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp","examples":["2023-10-27T10:00:00Z"]}},"type":"object","required":["state"],"title":"TaskStatus","description":"Represents the status of a task at a specific point in time."},"TeamResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"members":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"$ref":"#/components/schemas/TeamResponse"}]},"type":"array"},{"type":"null"}],"title":"Members"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"TeamResponse"},"TeamRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the team run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that executed this run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the team run"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this team run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this team run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this team run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this team run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"TeamRunSchema"},"TeamSessionDetailSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID used in this session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of team interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"team_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Team Data","description":"Team-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"}},"type":"object","required":["session_id","session_name"],"title":"TeamSessionDetailSchema"},"TeamSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the team"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the team"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the team"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Team execution mode (coordinate, route, broadcast, tasks)"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the team leader"}},"type":"object","title":"TeamSummaryResponse"},"TelegramStatusResponse":{"properties":{"status":{"type":"string","title":"Status","default":"available"}},"type":"object","title":"TelegramStatusResponse"},"TelegramWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status"}},"type":"object","required":["status"],"title":"TelegramWebhookResponse"},"TextInputContent":{"properties":{"type":{"type":"string","const":"text","title":"Type","default":"text"},"text":{"type":"string","title":"Text"}},"additionalProperties":true,"type":"object","required":["text"],"title":"TextInputContent","description":"A text fragment in a multimodal user message."},"TextPart":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"TextPart","description":"Represents a text segment within a message or artifact."},"Tool":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{},{"type":"null"}],"title":"Parameters"}},"additionalProperties":true,"type":"object","required":["name","description"],"title":"Tool","description":"A tool definition."},"ToolCall":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/FunctionCall"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","function"],"title":"ToolCall","description":"A tool call, modelled after OpenAI tool calls."},"ToolMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"tool","title":"Role","default":"tool"},"content":{"type":"string","title":"Content"},"toolCallId":{"type":"string","title":"Toolcallid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content","toolCallId"],"title":"ToolMessage","description":"A tool result message."},"TraceDetail":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent/workflow"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the agent/workflow"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"},"tree":{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array","title":"Tree","description":"Hierarchical tree of spans (root nodes)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at","tree"],"title":"TraceDetail","description":"Detailed trace information with hierarchical span tree"},"TraceNode":{"properties":{"id":{"type":"string","title":"Id","description":"Span ID"},"name":{"type":"string","title":"Name","description":"Span name (e.g., 'agent.run', 'llm.invoke')"},"type":{"type":"string","title":"Type","description":"Span kind (AGENT, TEAM, WORKFLOW, LLM, TOOL)"},"duration":{"type":"string","title":"Duration","description":"Human-readable duration (e.g., '123ms', '1.5s')"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"End time (Pydantic auto-serializes to ISO 8601)"},"status":{"type":"string","title":"Status","description":"Status code (OK, ERROR)"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the span"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the span"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"spans":{"anyOf":[{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array"},{"type":"null"}],"title":"Spans","description":"Child spans in the trace hierarchy"},"step_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Type","description":"Workflow step type (Step, Condition, function, Agent, Team)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional span attributes and data"},"extra_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Data","description":"Flexible field for custom attributes and additional data"}},"type":"object","required":["id","name","type","duration","start_time","end_time","status"],"title":"TraceNode","description":"Recursive node structure for rendering trace hierarchy in the frontend"},"TraceSearchGroupBy":{"type":"string","enum":["run","session"],"title":"TraceSearchGroupBy","description":"Grouping options for trace search results."},"TraceSearchRequest":{"properties":{"filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter","description":"FilterExpr DSL as JSON dict. Supports operators: EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH, AND, OR, NOT."},"group_by":{"$ref":"#/components/schemas/TraceSearchGroupBy","description":"Grouping mode: 'run' returns individual TraceDetail, 'session' returns aggregated TraceSessionStats.","default":"run"},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number (1-indexed)","default":1},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"Number of traces per page (max 100)","default":20}},"type":"object","title":"TraceSearchRequest","description":"Request body for POST /traces/search with advanced filtering.\n\nThe filter field accepts a FilterExpr DSL dict supporting composable queries\nwith AND/OR/NOT logic and operators like EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH.\n\nExample for run grouping (default):\n {\n \"filter\": {\n \"op\": \"AND\",\n \"conditions\": [\n {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n {\"op\": \"CONTAINS\", \"key\": \"user_id\", \"value\": \"admin\"}\n ]\n },\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n }\n\nExample for session grouping:\n {\n \"filter\": {\"op\": \"EQ\", \"key\": \"agent_id\", \"value\": \"my-agent\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n }"},"TraceSessionStats":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID(s) used in the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID associated with the session"},"total_traces":{"type":"integer","title":"Total Traces","description":"Total number of traces in this session"},"first_trace_at":{"type":"string","format":"date-time","title":"First Trace At","description":"Time of first trace (Pydantic auto-serializes to ISO 8601)"},"last_trace_at":{"type":"string","format":"date-time","title":"Last Trace At","description":"Time of last trace (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["session_id","total_traces","first_trace_at","last_trace_at"],"title":"TraceSessionStats","description":"Aggregated trace statistics grouped by session"},"TraceSummary":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR, UNSET)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at"],"title":"TraceSummary","description":"Summary information for trace list view"},"TracesConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_TracesDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"TracesConfig","description":"Configuration for the Traces domain of the AgentOS"},"TracesDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"TracesDomainConfig","description":"Configuration for the Traces domain of the AgentOS"},"UnauthenticatedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"UnauthenticatedResponse","example":{"detail":"Unauthenticated access","error_code":"UNAUTHENTICATED"}},"UpdateEvalRunRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"New name for the evaluation run"}},"type":"object","required":["name"],"title":"UpdateEvalRunRequest"},"UpdateSessionRequest":{"properties":{"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Updated session name"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Updated session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Updated metadata"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary","description":"Session summary"}},"type":"object","title":"UpdateSessionRequest"},"UserMemoryCreateSchema":{"properties":{"memory":{"type":"string","maxLength":5000,"minLength":1,"title":"Memory","description":"Memory content text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags to categorize the memory"}},"type":"object","required":["memory"],"title":"UserMemoryCreateSchema","description":"Define the payload expected for creating a new user memory"},"UserMemorySchema":{"properties":{"memory_id":{"type":"string","title":"Memory Id","description":"Unique identifier for the memory"},"memory":{"type":"string","title":"Memory","description":"Memory content text"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags associated with the memory"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID associated with this memory"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with this memory"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when memory was last updated"}},"type":"object","required":["memory_id","memory"],"title":"UserMemorySchema"},"UserMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"user","title":"Role","default":"user"},"content":{"anyOf":[{"type":"string"},{"items":{"oneOf":[{"$ref":"#/components/schemas/TextInputContent"},{"$ref":"#/components/schemas/ImageInputContent"},{"$ref":"#/components/schemas/AudioInputContent"},{"$ref":"#/components/schemas/VideoInputContent"},{"$ref":"#/components/schemas/DocumentInputContent"},{"$ref":"#/components/schemas/BinaryInputContent"}],"discriminator":{"propertyName":"type","mapping":{"audio":"#/components/schemas/AudioInputContent","binary":"#/components/schemas/BinaryInputContent","document":"#/components/schemas/DocumentInputContent","image":"#/components/schemas/ImageInputContent","text":"#/components/schemas/TextInputContent","video":"#/components/schemas/VideoInputContent"}}},"type":"array"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"UserMessage","description":"A user message supporting text or multimodal content."},"UserStatsSchema":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"total_memories":{"type":"integer","minimum":0.0,"title":"Total Memories","description":"Total number of memories for this user"},"last_memory_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Memory Updated At","description":"Timestamp of the most recent memory update"}},"type":"object","required":["user_id","total_memories"],"title":"UserStatsSchema","description":"Schema for user memory statistics"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"ValidationErrorResponse","example":{"detail":"Validation error","error_code":"VALIDATION_ERROR"}},"VectorDbSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the vector database"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the vector database"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the vector database"},"search_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Search Types","description":"List of supported search types (vector, keyword, hybrid)"}},"type":"object","required":["id"],"title":"VectorDbSchema"},"VectorSearchRequestSchema":{"properties":{"query":{"type":"string","title":"Query","description":"The search query text"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database ID to search in"},"knowledge_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledge Id","description":"Knowledge base ID to search in"},"vector_db_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vector Db Ids","description":"List of vector database IDs to search in"},"search_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Type","description":"The type of search to perform (vector, keyword, hybrid)"},"max_results":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Max Results","description":"The maximum number of results to return"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Filters to apply to the search results"},"meta":{"anyOf":[{"$ref":"#/components/schemas/Meta"},{"type":"null"}],"description":"Pagination metadata. Limit and page number to return a subset of results."}},"type":"object","required":["query"],"title":"VectorSearchRequestSchema","description":"Schema for vector search request."},"VectorSearchResult":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the search result document"},"content":{"type":"string","title":"Content","description":"Content text of the document"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the document"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Metadata associated with the document"},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"Usage statistics (e.g., token counts)"},"reranking_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reranking Score","description":"Reranking score for relevance"},"content_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Id","description":"ID of the source content"},"content_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Origin","description":"Origin URL or source of the content"},"size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"}},"type":"object","required":["id","content"],"title":"VectorSearchResult","description":"Schema for search result documents."},"VideoInputContent":{"properties":{"type":{"type":"string","const":"video","title":"Type","default":"video"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"VideoInputContent","description":"A video input content fragment."},"WhatsAppWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status","default":"ok"}},"type":"object","title":"WhatsAppWebhookResponse"},"WorkflowResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema","description":"Input schema for the workflow"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps","description":"List of workflow steps"},"agent":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"type":"null"}],"description":"Agent configuration if used"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamResponse"},{"type":"null"}],"description":"Team configuration if used"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"workflow_agent":{"type":"boolean","title":"Workflow Agent","description":"Whether this workflow uses a WorkflowAgent","default":false},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowResponse"},"WorkflowRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the workflow run"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the workflow"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was executed"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the workflow"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"Type of content returned"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status of the workflow run"},"step_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Results","description":"Results from each workflow step"},"step_executor_runs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Executor Runs","description":"Executor runs for each step"},"step_requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Requirements","description":"HITL step requirements (resolved state for historical display)"},"pause_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Kind","description":"Kind of HITL pause: 'step' or 'executor'"},"paused_step_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Step Name","description":"Name of the step that caused the pause"},"paused_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Paused Step Index","description":"Index of the step that caused the pause"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the workflow"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the workflow"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the workflow"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the workflow"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the workflow"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"}},"type":"object","required":["run_id"],"title":"WorkflowRunSchema"},"WorkflowSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID used in this session"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name","description":"Name of the workflow"},"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Data","description":"Complete session data"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current workflow state"},"workflow_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Data","description":"Workflow-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["session_id","session_name"],"title":"WorkflowSessionDetailSchema"},"WorkflowSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowSummaryResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} diff --git a/reference-api/openapi.yaml b/reference-api/openapi.yaml index 4cc9dcf3b..7cb751298 100644 --- a/reference-api/openapi.yaml +++ b/reference-api/openapi.yaml @@ -2,7 +2,7 @@ openapi: 3.1.0 info: title: Agno API Reference description: The all-in-one, private, secure agent platform that runs in your cloud. - version: 2.7.2 + version: 2.7.4 paths: /: get: @@ -3409,6 +3409,8 @@ paths: application/json: schema: $ref: '#/components/schemas/InternalServerErrorResponse' + '409': + description: A session with the supplied session_id already exists delete: tags: - Sessions diff --git a/reference/hooks/prompt-injection-guardrail.mdx b/reference/hooks/prompt-injection-guardrail.mdx index 51cd93ec4..a91adc370 100644 --- a/reference/hooks/prompt-injection-guardrail.mdx +++ b/reference/hooks/prompt-injection-guardrail.mdx @@ -7,13 +7,13 @@ description: "PromptInjectionGuardrail parameters and the default prompt injecti | Parameter | Type | Default | Description | | ------------------ | ---------------------------- | ----------------------------- | -------------------------------------------------------------------------------------------------- | -| `injection_patterns` | `Optional[List[str]]` | `None` | Literal substrings to check in the input. `None` or an empty list uses the built-in defaults. In v2.7.2, custom patterns must be lowercase. | +| `injection_patterns` | `Optional[List[str]]` | `None` | Literal substrings to check in the input. `None` or an empty list uses the built-in defaults. In v2.7.4, custom patterns must be lowercase. | ## Matching behavior The guardrail lowercases the input and checks whether it contains any configured pattern. Patterns are literal substrings, not regular expressions. -Custom patterns are not normalized in v2.7.2. Write them in lowercase so they match the normalized input. +Custom patterns are not normalized in v2.7.4. Write them in lowercase so they match the normalized input. ## Injection patterns diff --git a/reference/models/cohere.mdx b/reference/models/cohere.mdx index 81c2e5929..d9e47604e 100644 --- a/reference/models/cohere.mdx +++ b/reference/models/cohere.mdx @@ -15,17 +15,17 @@ The Cohere model provides access to Cohere's language models. | `provider` | `str` | `"Cohere"` | The provider of the model | | `api_key` | `Optional[str]` | `None` | The API key for Cohere (defaults to CO_API_KEY env var) | | `max_tokens` | `Optional[int]` | `None` | Maximum number of tokens to generate | -| `temperature` | `Optional[float]` | `None` | Controls randomness in the model's output. In v2.7.2, pass zero as `request_params={"temperature": 0}` because `temperature=0` is not sent | +| `temperature` | `Optional[float]` | `None` | Controls randomness in the model's output. In v2.7.4, pass zero as `request_params={"temperature": 0}` because `temperature=0` is not sent | | `top_p` | `Optional[float]` | `None` | Controls diversity via nucleus sampling (0.01 to 0.99) | | `top_k` | `Optional[int]` | `None` | Controls diversity via top-k sampling | -| `seed` | `Optional[int]` | `None` | Random seed for best-effort repeatability. Identical requests can still differ. In v2.7.2, pass zero as `request_params={"seed": 0}` because `seed=0` is not sent | +| `seed` | `Optional[int]` | `None` | Random seed for best-effort repeatability. Identical requests can still differ. In v2.7.4, pass zero as `request_params={"seed": 0}` because `seed=0` is not sent | | `frequency_penalty` | `Optional[float]` | `None` | Reduces repetition by penalizing frequent tokens (0.0 to 1.0) | | `presence_penalty` | `Optional[float]` | `None` | Reduces repetition by penalizing present tokens (0.0 to 1.0) | | `logprobs` | `Optional[bool]` | `None` | Return log probabilities of the output tokens | | `strict_tools` | `bool` | `False` | Enforce strict tool schemas in requests | -| `add_chat_history` | `bool` | `False` | Reserved in v2.7.2. Request construction does not read this value | +| `add_chat_history` | `bool` | `False` | Reserved in v2.7.4. Request construction does not read this value | | `request_params` | `Optional[Dict[str, Any]]` | `None` | Additional parameters to include in the request | -| `client_params` | `Optional[Dict[str, Any]]` | `None` | Reserved in v2.7.2. Client construction does not merge this mapping | +| `client_params` | `Optional[Dict[str, Any]]` | `None` | Reserved in v2.7.4. Client construction does not merge this mapping | | `http_client` | `Optional[Union[httpx.Client, httpx.AsyncClient]]` | `None` | Custom HTTP client for requests | | `client` | `Optional[CohereClient]` | `None` | Pre-configured Cohere client | | `async_client` | `Optional[CohereAsyncClient]` | `None` | Pre-configured async Cohere client | @@ -46,5 +46,5 @@ The Cohere model provides access to Cohere's language models. | `retry_with_guidance_limit` | `int` | `1` | Number of times to retry the model invocation with guidance | - Agno v2.7.2 omits zero-valued model fields during request construction. Pass a supported zero value through `request_params` instead. `add_chat_history` does not affect message construction, and `client_params` is not passed to either Cohere client. + Agno v2.7.4 omits zero-valued model fields during request construction. Pass a supported zero value through `request_params` instead. `add_chat_history` does not affect message construction, and `client_params` is not passed to either Cohere client. diff --git a/reference/models/mistral.mdx b/reference/models/mistral.mdx index 3bd1196c8..f7e2bd34b 100644 --- a/reference/models/mistral.mdx +++ b/reference/models/mistral.mdx @@ -17,6 +17,9 @@ The Mistral model provides access to Mistral's language models. | `max_tokens` | `Optional[int]` | `None` | Maximum number of tokens to generate | | `top_p` | `Optional[float]` | `None` | Controls diversity via nucleus sampling | | `random_seed` | `Optional[int]` | `None` | Random seed for deterministic sampling | +| `frequency_penalty` | `Optional[float]` | `None` | Penalizes tokens based on their frequency in the generated text | +| `presence_penalty` | `Optional[float]` | `None` | Penalizes tokens based on whether they appear in the generated text | +| `stop` | `Optional[Union[str, List[str]]]` | `None` | Stop sequence or sequences for generation | | `safe_mode` | `bool` | `False` | Legacy Agno field. Current Mistral APIs use `safe_prompt` and reject `safe_mode` | | `safe_prompt` | `bool` | `False` | Inject Mistral's deprecated safety prompt. Mistral recommends custom guardrails | | `request_params` | `Optional[Dict[str, Any]]` | `None` | Additional parameters to include in the request | diff --git a/reference/storage/gcs.mdx b/reference/storage/gcs.mdx index 61f13de71..a2896be87 100644 --- a/reference/storage/gcs.mdx +++ b/reference/storage/gcs.mdx @@ -9,5 +9,5 @@ description: "Store sessions, memories, metrics, knowledge, evals, and traces as -`GcsJsonDb` accepts multiple records through the bulk methods but processes each record with an individual upsert. These methods do not reduce GCS read and write operations. In v2.7.2, `preserve_updated_at` is accepted but ignored, so an upsert replaces the existing timestamp. +`GcsJsonDb` accepts multiple records through the bulk methods but processes each record with an individual upsert. These methods do not reduce GCS read and write operations. In v2.7.4, `preserve_updated_at` is accepted but ignored, so an upsert replaces the existing timestamp. diff --git a/reference/storage/json.mdx b/reference/storage/json.mdx index 4efcc0f7f..41cefaf0d 100644 --- a/reference/storage/json.mdx +++ b/reference/storage/json.mdx @@ -9,5 +9,5 @@ description: "Store sessions, memories, metrics, knowledge, evals, and traces in -In Agno v2.7.2, `JsonDb.upsert_sessions()` and `JsonDb.upsert_memories()` declare `preserve_updated_at`, but the JSON backend does not forward it to individual upserts. `JsonDb` does not preserve supplied `updated_at` values when this argument is `True`. +In Agno v2.7.4, `JsonDb.upsert_sessions()` and `JsonDb.upsert_memories()` declare `preserve_updated_at`, but the JSON backend does not forward it to individual upserts. `JsonDb` does not preserve supplied `updated_at` values when this argument is `True`. diff --git a/scripts/README.md b/scripts/README.md index 6255f4778..e0369b1cb 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -56,11 +56,8 @@ the release tag: 5. `python scripts/reference_drift.py`, then work through `out/drift-report.json` against the `reference/**` tables. 6. At GA only: `python scripts/make_openapi.py`, review `out/openapi-diff.md`, - copy `out/openapi.yaml` over `reference-api/openapi.yaml`. Re-apply the two - Slack enrichment blocks from PR #681 on top (header parameters, - form-urlencoded request body, and HITL descriptions for - `POST /slack/events` and `POST /slack/interactions`); the generator emits - both operations but the Slack router reads headers imperatively, so the - enrichment is not derivable. Add stub pages and docs.json nav entries for - any new endpoints. + and copy `out/openapi.yaml` over `reference-api/openapi.yaml`. The generator + preserves the curated Slack header parameters, form request body, and HITL + descriptions because the Slack router reads those values imperatively. + Add stub pages and `docs.json` nav entries for any new endpoints. 7. `python scripts/check_imports.py`, then `mint broken-links`. diff --git a/scripts/make_openapi.py b/scripts/make_openapi.py index 1f78786ba..470bbcad3 100644 --- a/scripts/make_openapi.py +++ b/scripts/make_openapi.py @@ -5,8 +5,8 @@ scripts/out/openapi.json / openapi.yaml, and writes a structured diff against the checked-in reference-api/openapi.yaml to scripts/out/openapi-diff.md. -Never touches reference-api/ itself: review the diff, then copy -scripts/out/openapi.yaml over reference-api/openapi.yaml by hand. +Never touches reference-api/ itself. It carries forward the reviewed Slack +request metadata that FastAPI cannot derive from the router implementation. Run with a venv where agno[os,mcp,telegram,agui,a2a,slack] is importable: python scripts/make_openapi.py @@ -212,6 +212,22 @@ def apply_runtime_description_enrichments(spec: dict) -> dict: return spec +def preserve_curated_slack_metadata(spec: dict) -> dict: + """Carry forward Slack request details read imperatively by the router.""" + old = yaml.safe_load(OLD_YAML.read_text()) + fields = { + "/slack/events": ("description", "parameters"), + "/slack/interactions": ("description", "parameters", "requestBody"), + } + for path, names in fields.items(): + current_post = spec["paths"][path]["post"] + curated_post = old["paths"][path]["post"] + for name in names: + assert name in curated_post, f"missing curated Slack {path} {name}" + current_post[name] = curated_post[name] + return spec + + # --- YAML dumping shaped like the existing reference-api/openapi.yaml ---------- @@ -383,6 +399,7 @@ def main() -> int: OUT_DIR.mkdir(parents=True, exist_ok=True) app = build_app() spec = apply_runtime_description_enrichments(app.openapi()) + spec = preserve_curated_slack_metadata(spec) NEW_JSON.write_text(json.dumps(spec, indent=2) + "\n") dump_yaml(spec, NEW_YAML) diff --git a/scripts/reference_drift.py b/scripts/reference_drift.py index 5f07e704d..04ef22214 100644 --- a/scripts/reference_drift.py +++ b/scripts/reference_drift.py @@ -107,6 +107,19 @@ # BaseRunOutputEvent in run/base.py is a thin mixin without those fields. ("reference/agents/run-response.mdx", "baserunoutputevent"): "agno.run.agent:BaseAgentRunEvent", ("reference/teams/team-response.mdx", "baserunoutputevent"): "agno.run.team:BaseTeamRunEvent", + ("reference/teams/team-response.mdx", "baseteamrunoutputevent"): "agno.run.team:BaseTeamRunEvent", +} + +# Public names that intentionally differ from the implementation signature. +# Each entry is source-adjudicated. Keep this list narrow so new names still +# surface as drift. +ACCEPTED_DOCUMENTED_PARAMS: dict[tuple[str, str], set[str]] = { + ("reference/clients/agentos-client.mdx", "AgentOSClient.run_agent()"): { + "dependencies", "knowledge_filters", "metadata", "output_schema", "session_state", + }, + # Parallel calls the variadic positional argument ``args`` in source. The + # public API documents those values as steps. + ("reference/workflows/parallel-steps.mdx", "Parallel"): {"steps"}, } SKIP_PAGES: dict[str, str] = { @@ -123,6 +136,8 @@ "documents framework-injected hook callable arguments, not a class signature", "reference/hooks/base-guardrail.mdx": "abstract interface page (check/async_check methods as prose bullets), no param table", + "reference/cli/agnoctl.mdx": "CLI command page, not an SDK class signature", + "reference/storage/in_memory.mdx": "storage behavior overview, not an SDK class signature", } # Directory-specific candidate-name transforms (applied to the page title). @@ -309,6 +324,11 @@ def _class_properties(obj) -> set[str]: for n, v in vars(klass).items(): if not n.startswith("_") and isinstance(v, (property, functools.cached_property)): props.add(n) + if is_dataclass(obj): + # init=False fields and fields on dataclasses with a custom __init__ + # remain part of the public result/event object even though they are + # absent from the callable signature. + props.update(f.name for f in dc_fields(obj) if not f.name.startswith("_")) return props @@ -587,6 +607,7 @@ def extract_function(self, module_hint: str | None, name: str) -> SourceParams | RESPONSE_FIELD_RE = re.compile( r"]*)>", re.DOTALL ) +REFERENCE_LINK_RE = re.compile(r"\]\((/reference/[^)#]+)(?:#[^)]+)?\)") def resolve_snippets(text: str, depth: int = 0) -> tuple[str, list[str]]: @@ -741,6 +762,23 @@ def flush_rf(): return out +def linked_base_param_names(text: str) -> set[str]: + """Parameters delegated to an explicitly linked base reference page.""" + names: set[str] = set() + for line in text.splitlines(): + lower = line.lower() + if "extends" not in lower and "accepts" not in lower: + continue + for route in REFERENCE_LINK_RE.findall(line): + linked = DOCS_ROOT / (route.lstrip("/") + ".mdx") + if not linked.exists(): + continue + linked_text, _ = resolve_snippets(linked.read_text(encoding="utf-8")) + for table in extract_tables(linked_text): + names.update(row["name"] for row in table["rows"]) + return names + + # --------------------------------------------------------------------------- # Default normalization # --------------------------------------------------------------------------- @@ -909,7 +947,9 @@ def strip_heading_suffix(heading: str) -> str: # --------------------------------------------------------------------------- def compare(table_rows: list[dict], sp: SourceParams, - page_doc_names: set[str] | None = None) -> dict: + page_doc_names: set[str] | None = None, + linked_doc_names: set[str] | None = None, + accepted_documented: set[str] | None = None) -> dict: documented: dict[str, dict] = {} for r in table_rows: documented.setdefault(r["name"], r) @@ -930,9 +970,13 @@ def compare(table_rows: list[dict], sp: SourceParams, # base-class fields documented in another table on the same page (e.g. a # "BaseXEvent Attributes" table) are not per-class missing covered_elsewhere = sorted(missing_raw & (page_doc_names or set())) - missing = sorted(missing_raw - set(covered_elsewhere)) + after_page = missing_raw - set(covered_elsewhere) + covered_by_link = sorted(after_page & (linked_doc_names or set())) + missing = sorted(after_page - set(covered_by_link)) + accepted_documented = accepted_documented or set() + accepted_extras = sorted(doc_names & accepted_documented) phantom = sorted(doc_names - set(src) - set(inherited_documented) - - set(documented_properties)) + - set(documented_properties) - set(accepted_extras)) documented_aliases = sorted(doc_names & src_deprecated) undocumented_aliases = sorted(src_deprecated - doc_names) @@ -958,7 +1002,9 @@ def compare(table_rows: list[dict], sp: SourceParams, "undocumented_aliases": undocumented_aliases, "inherited_documented": inherited_documented, "documented_properties": documented_properties, + "accepted_documented": accepted_extras, "covered_by_other_table_on_page": covered_elsewhere, + "covered_by_linked_reference": covered_by_link, "wrong_defaults": wrong_defaults, "accepts_kwargs": sp.has_kwargs, } @@ -995,7 +1041,7 @@ def main() -> None: rel = str(page.relative_to(DOCS_ROOT)) entry: dict = {"page": rel} if rel in SKIP_PAGES: - entry["status"] = "UNPARSEABLE" + entry["status"] = "SKIPPED" entry["reason"] = SKIP_PAGES[rel] report_pages.append(entry) continue @@ -1113,6 +1159,7 @@ def main() -> None: page_doc_names: set[str] = set() for rows in grouped.values(): page_doc_names.update(r["name"] for r in rows) + linked_doc_names = linked_base_param_names(text) results = [] for (hint, name, is_fn), rows in grouped.items(): @@ -1120,8 +1167,15 @@ def main() -> None: if sp is None: results.append({"class": name, "status": "SOURCE_NOT_FOUND"}) continue - cmp = compare(rows, sp, page_doc_names if len(grouped) > 1 else None) - cmp.update({"class": name + ("()" if is_fn else ""), "module": sp.module, + class_label = name + ("()" if is_fn else "") + cmp = compare( + rows, + sp, + page_doc_names if len(grouped) > 1 else None, + linked_doc_names, + ACCEPTED_DOCUMENTED_PARAMS.get((rel, class_label)), + ) + cmp.update({"class": class_label, "module": sp.module, "extraction": sp.method, "status": "OK"}) results.append(cmp) @@ -1133,8 +1187,13 @@ def main() -> None: if sp is None: unmapped_tables.append(mname) continue - cmp = compare(rows, sp) - cmp.update({"class": f"{main_target[1]}.{mname}()", "module": sp.module, + class_label = f"{main_target[1]}.{mname}()" + cmp = compare( + rows, + sp, + accepted_documented=ACCEPTED_DOCUMENTED_PARAMS.get((rel, class_label)), + ) + cmp.update({"class": class_label, "module": sp.module, "extraction": sp.method, "status": "OK", "is_method": True}) results.append(cmp) @@ -1168,10 +1227,12 @@ def main() -> None: report_pages.append(entry) ok_pages = [p for p in report_pages if p["status"] == "OK"] - unparseable = [p for p in report_pages if p["status"] != "OK"] + skipped = [p for p in report_pages if p["status"] == "SKIPPED"] + unparseable = [p for p in report_pages if p["status"] not in {"OK", "SKIPPED"}] totals = { "pages_total": len(report_pages), "pages_ok": len(ok_pages), + "pages_skipped": len(skipped), "pages_unparseable": len(unparseable), "missing_total": sum(p["totals"]["missing"] for p in ok_pages), "phantom_total": sum(p["totals"]["phantom"] for p in ok_pages), diff --git a/telemetry.mdx b/telemetry.mdx index b377a3e53..5be1583cc 100644 --- a/telemetry.mdx +++ b/telemetry.mdx @@ -27,7 +27,7 @@ Here's what an agent run telemetry payload looks like: { "session_id": "123", "run_id": "123", - "sdk_version": "2.7.2", + "sdk_version": "2.7.4", "type": "agent", "data": { "agent_id": "123", diff --git a/tools/toolkits/models/azure-openai.mdx b/tools/toolkits/models/azure-openai.mdx index 7519675e1..3c8d9bd0b 100644 --- a/tools/toolkits/models/azure-openai.mdx +++ b/tools/toolkits/models/azure-openai.mdx @@ -4,7 +4,7 @@ description: Legacy AzureOpenAITools reference for image generation with retired --- -Azure DALL-E 2 and DALL-E 3 deployments are retired. The v2.7.2 `AzureOpenAITools` implementation supports only those models, so this example no longer runs against a current Azure image model. See [Microsoft's migration guidance](https://learn.microsoft.com/en-us/azure/foundry/openai/how-to/dall-e). +Azure DALL-E 2 and DALL-E 3 deployments are retired. The v2.7.4 `AzureOpenAITools` implementation supports only those models, so this example no longer runs against a current Azure image model. See [Microsoft's migration guidance](https://learn.microsoft.com/en-us/azure/foundry/openai/how-to/dall-e). ## Legacy Requirements diff --git a/tools/toolkits/models/openai.mdx b/tools/toolkits/models/openai.mdx index b6c6f0bd4..45be8f485 100644 --- a/tools/toolkits/models/openai.mdx +++ b/tools/toolkits/models/openai.mdx @@ -6,7 +6,7 @@ description: "OpenAITools gives an agent access to OpenAI's audio transcription, OpenAITools allow an Agent to interact with OpenAI models for performing audio transcription, image generation, and text-to-speech. -In Agno v2.7.2, `image_model` still defaults to the deprecated `dall-e-3`. Set `image_model="gpt-image-2"` for the current OpenAI image model. +In Agno v2.7.4, `image_model` still defaults to the deprecated `dall-e-3`. Set `image_model="gpt-image-2"` for the current OpenAI image model. ## Prerequisites diff --git a/tools/toolkits/others/spotify.mdx b/tools/toolkits/others/spotify.mdx index 7207af2a7..70adb329e 100644 --- a/tools/toolkits/others/spotify.mdx +++ b/tools/toolkits/others/spotify.mdx @@ -19,7 +19,7 @@ export ANTHROPIC_API_KEY=*** ``` -Spotify changed several endpoints and response fields for Development Mode apps in February 2026. Extended Quota Mode apps are unaffected. Agno 2.7.2 still uses the earlier paths and fields, so the affected methods below are unavailable to Development Mode apps. Use the read-only example until `SpotifyTools` is updated. See Spotify's [February 2026 migration guide](https://developer.spotify.com/documentation/web-api/tutorials/february-2026-migration-guide). +Spotify changed several endpoints and response fields for Development Mode apps in February 2026. Extended Quota Mode apps are unaffected. Agno 2.7.4 still uses the earlier paths and fields, so the affected methods below are unavailable to Development Mode apps. Use the read-only example until `SpotifyTools` is updated. See Spotify's [February 2026 migration guide](https://developer.spotify.com/documentation/web-api/tutorials/february-2026-migration-guide). ## Example @@ -72,20 +72,20 @@ print(response.content) | Function | Description | | ----------------------------- | --------------------------------------------------- | | `search_tracks` | Search for tracks on Spotify | -| `search_playlists` | Unavailable to Development Mode apps in Agno 2.7.2 because it expects the earlier playlist response fields | +| `search_playlists` | Unavailable to Development Mode apps in Agno 2.7.4 because it expects the earlier playlist response fields | | `search_artists` | Search for artists on Spotify | | `search_albums` | Search for albums on Spotify | -| `get_user_playlists` | Unavailable to Development Mode apps in Agno 2.7.2 because it expects the earlier response fields | +| `get_user_playlists` | Unavailable to Development Mode apps in Agno 2.7.4 because it expects the earlier response fields | | `get_track_recommendations` | Get track recommendations based on seed data | | `get_artist_top_tracks` | Unavailable to Development Mode apps because Spotify removed the endpoint | | `get_album_tracks` | Get tracks from a specific album | | `get_my_top_tracks` | Get current user's top tracks | | `get_my_top_artists` | Get current user's top artists | -| `create_playlist` | Unavailable to Development Mode apps in Agno 2.7.2 because it calls the removed user-specific endpoint | -| `add_tracks_to_playlist` | Unavailable to Development Mode apps in Agno 2.7.2 because it calls the removed `/tracks` endpoint | +| `create_playlist` | Unavailable to Development Mode apps in Agno 2.7.4 because it calls the removed user-specific endpoint | +| `add_tracks_to_playlist` | Unavailable to Development Mode apps in Agno 2.7.4 because it calls the removed `/tracks` endpoint | | `get_playlist` | For Development Mode apps, use `include_tracks=False`; item parsing expects the earlier field names | | `update_playlist_details` | Update playlist name, description, or other details | -| `remove_tracks_from_playlist` | Unavailable to Development Mode apps in Agno 2.7.2 because it calls the removed `/tracks` endpoint | +| `remove_tracks_from_playlist` | Unavailable to Development Mode apps in Agno 2.7.4 because it calls the removed `/tracks` endpoint | | `get_current_user` | Get current user's profile information | | `play_track` | Start or resume playback (requires an active Spotify session) | | `get_currently_playing` | Get information about currently playing track | diff --git a/tools/toolkits/search/youcom.mdx b/tools/toolkits/search/youcom.mdx index d1ab2e16d..b944dd05f 100644 --- a/tools/toolkits/search/youcom.mdx +++ b/tools/toolkits/search/youcom.mdx @@ -1,71 +1,69 @@ --- title: You.com -description: "Reference the Agno v2.7.2 YouTools adapter and use You.com's MCP endpoint for current search requests." +description: "Search the web with YouTools using domain filters, livecrawl, and structured You.com results." --- -**YouTools** wraps the You.com Search API, but its Agno v2.7.2 response parser and livecrawl parameters target an older API contract. +`YouTools` searches the You.com Search API and returns JSON or markdown results. - - Agno v2.7.2 expects a flat `results` list, while the current Search API returns results under `results.web` and `results.news`. The adapter therefore returns an empty result set after a successful request. Its non-default livecrawl values and string-form `livecrawl_formats` also differ from the current API. Use You.com's MCP endpoint below or call the [current Search API](https://you.com/docs/api-reference/search/v1-search.md) directly until the adapter is updated. - - -## Prerequisites +```python youcom_tools.py +from agno.agent import Agent +from agno.tools.youcom import YouTools -YouTools uses the `httpx` client already bundled with Agno. The source-reference example below runs on the default OpenAI model, so it needs the `openai` library and a You.com API key, available at [you.com/platform/api-keys](https://you.com/platform/api-keys). +agent = Agent( + tools=[ + YouTools( + include_domains=["cnbc.com", "reuters.com", "bloomberg.com"], + num_results=8, + ) + ], + markdown=True, +) -```shell -uv pip install -U openai +agent.print_response("Search for the latest AAPL news") ``` +## Setup + ```shell +uv pip install -U agno openai export YDC_API_KEY=*** -# optional: override the default API endpoint (https://ydc-index.io) -export YDC_BASE_URL=*** ``` -For a working current integration, You.com hosts a free MCP profile at `https://api.you.com/mcp?profile=free` (`you-search`, 100 queries/day, no signup). Plug that URL into Agno's [MCPTools](/tools/mcp/overview). - -## Example - -The following source-reference agent shows the v2.7.2 toolkit configuration. It requires the parser and parameter updates described above before it can return current Search API results. - -```python youcom_tools.py -from agno.agent import Agent -from agno.tools.youcom import YouTools - -agent = Agent( - tools=[YouTools( - include_domains=["cnbc.com", "reuters.com", "bloomberg.com"], - num_results=8, - show_results=True, - )], -) -agent.print_response("Search for AAPL news", markdown=True) -``` +`YDC_BASE_URL` overrides the default `https://ydc-index.io` endpoint. -## Toolkit Functions +## Toolkit Function -| Function | Description | -| -------- | ----------- | -| `you_search` | Search the web for a given query. Accepts `query` (str) and an optional `num_results` (int) to override the configured count. Returns results as JSON or markdown. | +| Function | Parameters | Description | +| --- | --- | --- | +| `you_search` | `query: str`, `num_results: Optional[int] = None` | Search the web. `num_results` overrides the toolkit default for one call. | -## Toolkit Params +## Toolkit Parameters | Parameter | Type | Default | Description | -| --------- | ---- | ------- | ----------- | -| `api_key` | `Optional[str]` | `None` | You.com API key. Falls back to the `YDC_API_KEY` environment variable. | -| `base_url` | `Optional[str]` | `None` | Override the API base URL. Falls back to `YDC_BASE_URL`, then `https://ydc-index.io`. | -| `num_results` | `int` | `5` | Default number of search results. | -| `livecrawl` | `Literal['always', 'fallback', 'never', 'web']` | `'web'` | Values exposed by the v2.7.2 adapter. The current API accepts `web`, `news`, or `all`; the other adapter values are stale. | -| `livecrawl_formats` | `str` | `'markdown'` | String value sent by the v2.7.2 adapter. The current API expects an array containing `html` and/or `markdown`. | -| `text_length_limit` | `int` | `1000` | Maximum length of text content per result. | -| `include_domains` | `Optional[List[str]]` | `None` | Restrict results to these domains. | -| `exclude_domains` | `Optional[List[str]]` | `None` | Exclude results from these domains. | -| `timeout` | `int` | `30` | Maximum time in seconds to wait for API responses. | -| `format` | `Literal['json', 'markdown']` | `'json'` | Output format for search results. | -| `show_results` | `bool` | `False` | Log responses for debugging. | +| --- | --- | --- | --- | +| `api_key` | `Optional[str]` | `None` | You.com API key. Falls back to `YDC_API_KEY`. | +| `base_url` | `Optional[str]` | `None` | API base URL. Falls back to `YDC_BASE_URL`, then `https://ydc-index.io`. | +| `num_results` | `int` | `5` | Default result count. | +| `livecrawl` | `Optional[Literal["web", "news", "all"]]` | `None` | Enable livecrawl for the selected source. | +| `livecrawl_formats` | `Union[str, List[str]]` | `"markdown"` | Livecrawl content formats. Strings may be comma-separated. | +| `text_length_limit` | `int` | `1000` | Maximum livecrawled text length per result. | +| `include_domains` | `Optional[List[str]]` | `None` | Restrict results to these domains. Cannot be combined with `exclude_domains` or `boost_domains`. | +| `exclude_domains` | `Optional[List[str]]` | `None` | Exclude these domains. | +| `country` | `Optional[str]` | `None` | Country code for the search focus. | +| `freshness` | `Optional[str]` | `None` | Result freshness, such as `day`, `week`, `month`, or `year`. | +| `language` | `Optional[str]` | `None` | Result language in BCP 47 format. | +| `safesearch` | `Optional[str]` | `None` | Content filter: `off`, `moderate`, or `strict`. | +| `offset` | `Optional[int]` | `None` | Pagination offset from `0` through `9`. | +| `boost_domains` | `Optional[List[str]]` | `None` | Boost these domains without restricting results. Cannot be combined with `include_domains`. | +| `crawl_timeout` | `int` | `10` | Livecrawl timeout from 1 through 60 seconds. | +| `search_params` | `Optional[Dict[str, Any]]` | `None` | Additional query parameters. These values override the parameters above. | +| `timeout` | `int` | `30` | HTTP request timeout in seconds. | +| `format` | `Literal["json", "markdown"]` | `"json"` | Result format. | +| `show_results` | `bool` | `False` | Log the formatted result. | + +You.com also provides an MCP profile at `https://api.you.com/mcp?profile=free`. Use it with [MCPTools](/tools/mcp/overview) when you want the hosted `you-search` MCP tool. ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/youcom.py) -- [Cookbook example](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/youcom_tools.py) +- [YouTools source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/youcom.py) +- [Cookbook example](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/youcom_tools.py) diff --git a/tracing/db-functions.mdx b/tracing/db-functions.mdx index 41bbbe461..5992c3690 100644 --- a/tracing/db-functions.mdx +++ b/tracing/db-functions.mdx @@ -118,7 +118,7 @@ children = db.get_spans(parent_span_id=root_span.span_id) **Returns:** `List[Span]` - In Agno v2.7.2, synchronous `SqliteDb.get_spans()` does not accept `limit`. Omit `limit` when using SQLite. The other filters and the SQLite example below work as shown. + In Agno v2.7.4, synchronous `SqliteDb.get_spans()` does not accept `limit`. Omit `limit` when using SQLite. The other filters and the SQLite example below work as shown. diff --git a/use-cases/document-processing/batch-and-durability.mdx b/use-cases/document-processing/batch-and-durability.mdx index d67fb7d01..8bf9cfab5 100644 --- a/use-cases/document-processing/batch-and-durability.mdx +++ b/use-cases/document-processing/batch-and-durability.mdx @@ -94,7 +94,7 @@ async def extract_long(file_url: str) -> Invoice: raise TimeoutError(f"Run {started.run_id} did not finish within 10 minutes") ``` -Content loaded from the database comes back as a plain dict, so validate it back into your schema. The database persists pending, running, and terminal state for polling. The work itself is an in-process asyncio task. If the process exits, Agno v2.7.2 does not resume that task from the database. Use a durable external queue or worker system when execution must survive process failure. +Content loaded from the database comes back as a plain dict, so validate it back into your schema. The database persists pending, running, and terminal state for polling. The work itself is an in-process asyncio task. If the process exits, Agno v2.7.4 does not resume that task from the database. Use a durable external queue or worker system when execution must survive process failure. ## Scheduled batch with retries @@ -148,14 +148,14 @@ if __name__ == "__main__": agent_os.serve(app="scheduled_intake:app", port=7777) ``` -`if_exists="update"` updates a schedule found by name instead of creating another schedule. The lookup and write are not atomic, and v2.7.2 does not place a unique constraint on schedule names. Run schedule bootstrap once when multiple application workers can start concurrently. The option also does not make the scheduled endpoint idempotent. The executor retries failed HTTP or run attempts with the configured delay, and each attempt writes a row to `agno_schedule_runs`. +`if_exists="update"` updates a schedule found by name instead of creating another schedule. The lookup and write are not atomic, and v2.7.4 does not place a unique constraint on schedule names. Run schedule bootstrap once when multiple application workers can start concurrently. The option also does not make the scheduled endpoint idempotent. The executor retries failed HTTP or run attempts with the configured delay, and each attempt writes a row to `agno_schedule_runs`. Make the endpoint idempotent before enabling retries. A response or polling failure can cause another attempt after the target already performed a side effect. - In Agno v2.7.2, a scheduler claim becomes stale after 300 seconds and the executor does not refresh the lock. A schedule that runs longer than five minutes can be claimed again. Keep the target idempotent and use an external scheduler or queue for long-running jobs. + In Agno v2.7.4, a scheduler claim becomes stale after 300 seconds and the executor does not refresh the lock. A schedule that runs longer than five minutes can be claimed again. Keep the target idempotent and use an external scheduler or queue for long-running jobs. ## Pattern comparison diff --git a/workflows/hitl/loop.mdx b/workflows/hitl/loop.mdx index 4e1758acb..fed1609ae 100644 --- a/workflows/hitl/loop.mdx +++ b/workflows/hitl/loop.mdx @@ -90,7 +90,7 @@ The confirmation happens once before the loop starts. Individual iterations do n Set `requires_iteration_review=True` to pause between loop iterations. The workflow pauses after each non-final iteration that would otherwise continue. The reviewer can accept the result (stopping the loop) or reject to run another iteration. -In Agno v2.7.2, resuming a rejected iteration review assumes that each loop iteration contains one child step. Use iteration review with a single child `Step` until multi-step resume grouping is supported. +In Agno v2.7.4, resuming a rejected iteration review assumes that each loop iteration contains one child step. Use iteration review with a single child `Step` until multi-step resume grouping is supported. ```python From a9bd431ca128f7ba4df9a0f878724b7789f3787e Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 03:01:51 +0100 Subject: [PATCH 04/47] docs: correct companion runtime and deployment claims --- agent-os/factories/overview.mdx | 2 +- agent-os/security/authorization/overview.mdx | 2 +- agent-platform/evals.mdx | 4 ++ agent-platform/run-railway.mdx | 4 +- cli/create.mdx | 19 ++++--- deploy/templates/aws/deploy.mdx | 2 +- deploy/templates/aws/reference.mdx | 4 ++ deploy/templates/azure/deploy.mdx | 2 +- deploy/templates/azure/reference.mdx | 6 +- deploy/templates/coda/overview.mdx | 12 ++-- deploy/templates/context/overview.mdx | 4 +- deploy/templates/dash/overview.mdx | 19 +++---- deploy/templates/fly/deploy.mdx | 2 +- deploy/templates/fly/reference.mdx | 6 +- deploy/templates/gcp/reference.mdx | 4 ++ deploy/templates/helm/deploy.mdx | 2 +- deploy/templates/helm/reference.mdx | 4 ++ deploy/templates/improve-agents.mdx | 4 ++ deploy/templates/modal/reference.mdx | 8 ++- deploy/templates/render/deploy.mdx | 2 +- deploy/templates/render/reference.mdx | 4 ++ deploy/templates/scout/overview.mdx | 8 +-- other/agent-ui.mdx | 59 ++++++++++---------- reference/cli/agnoctl.mdx | 8 ++- use-cases/deep-research/overview.mdx | 2 +- 25 files changed, 116 insertions(+), 77 deletions(-) diff --git a/agent-os/factories/overview.mdx b/agent-os/factories/overview.mdx index 5fd5996a2..658c37ac7 100644 --- a/agent-os/factories/overview.mdx +++ b/agent-os/factories/overview.mdx @@ -70,7 +70,7 @@ Use a plain `Agent` / `Team` / `Workflow` when the component is shared across al `GET /agents/{id}`, `GET /teams/{id}`, and `GET /workflows/{id}` (the component-detail endpoints) return the factory's metadata without invoking it. See the [Factories reference](/reference/agent-os/factories) for per-endpoint behavior and discovery payload shape. -## Learn How To +## Guides diff --git a/agent-os/security/authorization/overview.mdx b/agent-os/security/authorization/overview.mdx index 2f7df0088..579043cc2 100644 --- a/agent-os/security/authorization/overview.mdx +++ b/agent-os/security/authorization/overview.mdx @@ -50,7 +50,7 @@ app = agent_os.get_app() | Isolation | Per-user data scoping for sessions, memories, and traces | | Service accounts | Opaque `agno_pat_` tokens for machine callers, with scopes stored in your database | -## Learn How To +## Guides diff --git a/agent-platform/evals.mdx b/agent-platform/evals.mdx index 5ccb23318..af0aafdb0 100644 --- a/agent-platform/evals.mdx +++ b/agent-platform/evals.mdx @@ -108,6 +108,10 @@ The coding agent runs the suite, triages every failure (bad criteria, real regre The template ships a `run_evals` workflow for scheduled checks. Set `ENABLE_SCHEDULED_EVALS=True` to run the `smoke`-tagged cases daily. See [scheduling](/features/scheduling) for the cron API. + + Scheduler claims expire after 300 seconds without renewal. The bundled eval workflow permits runs up to 900 seconds, so the same process can reclaim an eval that is still running. Keep the target idempotent or run production evals from an external scheduler until the lease is renewed during execution. + + ## What good cases look like - **Specific.** "Returns a JSON object with `ticker` and `price`" beats "Returns the right answer". diff --git a/agent-platform/run-railway.mdx b/agent-platform/run-railway.mdx index 7874c0360..bf680c066 100644 --- a/agent-platform/run-railway.mdx +++ b/agent-platform/run-railway.mdx @@ -112,10 +112,10 @@ The default deploy is one replica with 4 GiB of memory and 2 vCPU. Change `numRe | Run a command with production env vars | `railway run --service agent-os ` | | Push env changes | `./scripts/railway/env-sync.sh` | | Redeploy without git push | `./scripts/railway/redeploy.sh` | -| Tear everything down | Delete the project in the Railway dashboard | +| Tear everything down | `./scripts/railway/down.sh` | - Deleting the Railway project removes the app, the database, and all data. + `down.sh` confirms the linked project name, deletes the app and database, verifies that the project is gone, and unlinks the directory. All database data is deleted. Pass `--yes` to skip the confirmation. ## Next diff --git a/cli/create.mdx b/cli/create.mdx index 6b618abe4..e3ad32afa 100644 --- a/cli/create.mdx +++ b/cli/create.mdx @@ -1,22 +1,22 @@ --- title: "Create a Project" sidebarTitle: "agno create" -description: "Scaffold an AgentOS project from a starter template: Docker by default, or AWS, Fly.io, GCP, and Railway." +description: "Scaffold an AgentOS project from one of nine deployment templates or a custom repository." --- ```bash agno create my-os ``` -`agno create` clones a starter template into a new directory, strips its git history, and prints the next steps: +`agno create` clones the Docker starter into a new directory, strips its git history, and creates a private `.env` from `example.env`: ```bash cd my-os -cp example.env .env # then fill in your secrets -agno up # start it with docker compose -agno connect # make it available in your coding agents +agno up ``` +Run `agno create` without a name in an interactive terminal to choose a template and project name. The defaults are `agentos-docker` and `agentos`. + ## Starter Templates Pick a starter with `--template`: @@ -29,11 +29,15 @@ agno create my-os --template agentos-aws |----------|--------|------------| | `agentos-docker` (default) | Local dev and any Docker host | [agno-agi/agentos-docker](https://github.com/agno-agi/agentos-docker) | | `agentos-aws` | AWS | [agno-agi/agentos-aws](https://github.com/agno-agi/agentos-aws) | +| `agentos-azure` | Azure | [agno-agi/agentos-azure](https://github.com/agno-agi/agentos-azure) | | `agentos-fly` | Fly.io | [agno-agi/agentos-fly](https://github.com/agno-agi/agentos-fly) | | `agentos-gcp` | Google Cloud | [agno-agi/agentos-gcp](https://github.com/agno-agi/agentos-gcp) | +| `agentos-helm` | Kubernetes with Helm | [agno-agi/agentos-helm](https://github.com/agno-agi/agentos-helm) | +| `agentos-modal` | Modal | [agno-agi/agentos-modal](https://github.com/agno-agi/agentos-modal) | | `agentos-railway` | Railway | [agno-agi/agentos-railway](https://github.com/agno-agi/agentos-railway) | +| `agentos-render` | Render | [agno-agi/agentos-render](https://github.com/agno-agi/agentos-render) | -Every starter ships an AgentOS application, an `example.env`, and a compose file that `agno up` picks up. See [Templates](/deploy/introduction) for the full catalog, including pre-built agent systems. +Every registered starter includes an AgentOS application and `example.env`. `agno create` copies that file to `.env` with mode `0600` on platforms that support POSIX permissions. It preserves an existing tracked `.env` in a custom template. ## Custom Templates @@ -47,7 +51,8 @@ agno create my-os --url https://github.com/acme/agentos-internal 1. Validates the name. It becomes a directory under the current directory, so it must be a single path segment of letters, digits, `-`, and `_`. 2. Runs `git clone --depth 1` on the template repository (git must be installed). -3. Removes the cloned `.git` directory, giving you a clean tree to init your own repo in. +3. Removes the cloned `.git` directory. +4. Copies `example.env` to `.env` when the template provides it. The command fails if the target directory already exists. The CLI doesn't keep a registry of projects; `up`, `down`, and `restart` operate on whatever directory you run them from. diff --git a/deploy/templates/aws/deploy.mdx b/deploy/templates/aws/deploy.mdx index 7a59279c1..d679b227a 100644 --- a/deploy/templates/aws/deploy.mdx +++ b/deploy/templates/aws/deploy.mdx @@ -95,7 +95,7 @@ Edit `.env.production` with production values: a different OpenAI key, productio ./scripts/aws/up.sh ``` -Provisions an ECR repo, a private RDS PostgreSQL 17 instance, and Secrets Manager secrets, then makes one `aws ecs create-express-gateway-service` call. That call brings the Fargate service, an ALB with HTTPS, security groups, autoscaling, CloudWatch logs and alarms, and a public URL (`https://ag-.ecs..on.aws`, generated per service). The script pins scaling to a single always-on task so the in-process scheduler never double-fires, and sets `AGENTOS_URL` to the generated URL so scheduled jobs reach the platform. It also generates `MCP_CONNECT_SECRET` into `.env.production` when it's missing, so chat apps can connect over OAuth from the first deploy. +Provisions an ECR repo, a private RDS PostgreSQL 17 instance, and Secrets Manager secrets, then makes one `aws ecs create-express-gateway-service` call. That call brings the Fargate service, an ALB with HTTPS, security groups, autoscaling, CloudWatch logs and alarms, and a public URL (`https://ag-.ecs..on.aws`, generated per service). The script pins scaling to a single always-on task to control cost. It sets `AGENTOS_URL` to the generated URL so scheduled jobs reach the platform. It also generates `MCP_CONNECT_SECRET` into `.env.production` when it's missing, so chat apps can connect over OAuth from the first deploy. Schedule claims expire after 300 seconds without renewal, even on one task. Keep longer targets idempotent or use an external scheduler. The first run takes 30-45 minutes end to end. Certificate and DNS provisioning is the long pole, and the script waits until the gateway actually answers before declaring success. Redeploys take minutes. Region comes from `AWS_REGION` (default `us-east-1`). diff --git a/deploy/templates/aws/reference.mdx b/deploy/templates/aws/reference.mdx index 5be0235d0..f538b726e 100644 --- a/deploy/templates/aws/reference.mdx +++ b/deploy/templates/aws/reference.mdx @@ -6,6 +6,10 @@ description: "Commands, customization, environment variables, and troubleshootin The template names the Express service `agent-os`, the ECR repo `agentos`, and the RDS instance `agentos-db`. Secrets live under `agentos/*` in Secrets Manager, and the scripts record the service ARN and region in `tmp/agentos-aws.state`. + + The state file does not bind lifecycle commands to an AWS account. Before `env-sync.sh`, `redeploy.sh`, or `down.sh`, run `aws sts get-caller-identity` and confirm that the active account matches the account in the saved service ARN. If credentials or `AWS_PROFILE` changed, `down.sh` can fail to delete the saved service and still delete same-named RDS, ECR, Secrets Manager, and log resources in the active account. + + ## Manage | Task | Command | diff --git a/deploy/templates/azure/deploy.mdx b/deploy/templates/azure/deploy.mdx index 84ada58c7..aa5f6ea7d 100644 --- a/deploy/templates/azure/deploy.mdx +++ b/deploy/templates/azure/deploy.mdx @@ -95,7 +95,7 @@ Edit `.env.production` with production values: a different OpenAI key, productio ./scripts/azure/up.sh ``` -The first run takes 15-20 minutes (Postgres Flexible Server is the long pole) and creates everything inside one dedicated resource group, `agentos` by default: a VNet with private DNS, a container registry with the locally built image, PostgreSQL 17 Flexible Server with private access and pgvector allowlisted, the Container Apps environment, and the `agent-os` app pinned to exactly one replica so the in-process scheduler never runs twice. The app URL is only known after create. Once the app is up, the script writes `AGENTOS_URL` back to your env file so scheduled jobs reach the platform. It also generates `MCP_CONNECT_SECRET`, the OAuth consent secret for connecting chat apps, into the same file. +The first run takes 15-20 minutes (Postgres Flexible Server is the long pole) and creates everything inside one dedicated resource group, `agentos` by default: a VNet with private DNS, a container registry with the locally built image, PostgreSQL 17 Flexible Server with private access and pgvector allowlisted, the Container Apps environment, and the `agent-os` app pinned to one replica. The single replica controls cost. The app URL is only known after create. Once the app is up, the script writes `AGENTOS_URL` back to your env file so scheduled jobs reach the platform. It also generates `MCP_CONNECT_SECRET`, the OAuth consent secret for connecting chat apps, into the same file. Schedule claims expire after 300 seconds without renewal, even on one replica. Keep longer targets idempotent or use an external scheduler. diff --git a/deploy/templates/azure/reference.mdx b/deploy/templates/azure/reference.mdx index 50ef14be9..ef1c83be1 100644 --- a/deploy/templates/azure/reference.mdx +++ b/deploy/templates/azure/reference.mdx @@ -6,6 +6,10 @@ description: "Commands, customization, environment variables, and troubleshootin The deploy scripts put everything in one resource group, `agentos` by default, and the container app is named `agent-os`. Override the group and region with `AZURE_RESOURCE_GROUP` and `AZURE_LOCATION` (default `eastus`). + + The scripts use the active Azure subscription and do not persist its ID. Run `az account show` before every lifecycle command and confirm the subscription. For a custom resource group, also export `AZURE_RESOURCE_GROUP` in the shell before `env-sync.sh`, `redeploy.sh`, or `down.sh`. Those scripts resolve the group before reading an env file. A value stored only in `.env.production` does not change their target. + + ## Manage | Task | Command | @@ -17,7 +21,7 @@ The deploy scripts put everything in one resource group, `agentos` by default, a `env-sync.sh` turns secret-shaped keys (`OPENAI_API_KEY`, `DB_PASS`, `JWT_VERIFICATION_KEY`, `MCP_CONNECT_SECRET`, `AGENTOS_MCP_SIGNING_KEY`, `PARALLEL_API_KEY`, `SLACK_*`) into Container Apps secrets and everything else into plain env vars, then applies it all in one revision roll. It skips `AZURE_*` keys; those configure the scripts, not the app. -The app is pinned to one replica (`--min-replicas 1 --max-replicas 1`). Min 1 keeps the in-process scheduler and MCP streams alive; max 1 stops Azure from running two schedulers. Leave both pins in place. +The app is pinned to one replica (`--min-replicas 1 --max-replicas 1`). Min 1 keeps the in-process scheduler and MCP streams alive. Max 1 controls cost. Schedule claims expire after 300 seconds without renewal, and the same replica can reclaim a long-running job. Keep longer targets idempotent or use an external scheduler. ## Production auth diff --git a/deploy/templates/coda/overview.mdx b/deploy/templates/coda/overview.mdx index 1d8373bed..f70dc85c8 100644 --- a/deploy/templates/coda/overview.mdx +++ b/deploy/templates/coda/overview.mdx @@ -14,17 +14,19 @@ The code is public at [agno-agi/coda](https://github.com/agno-agi/coda). ## How it works -Coda is a team of five specialist agents coordinated by a leader: +Coda is a team of up to five specialist agents coordinated by a leader: | Agent | Role | |-------|------| -| **Explorer** | Searches code, answers architecture questions, reviews PRs (read-only) | +| **Explorer** | Searches local code without modifying it, answers architecture questions, and can post GitHub review or issue comments | | **Coder** | Writes code in isolated worktrees, opens PRs | | **Planner** | Breaks features into ordered GitHub issues | | **Triager** | Labels, comments on, and closes issues based on code analysis | -| **Researcher** | Searches the web for docs, APIs, and error messages | +| **Researcher** | Searches the web for docs, APIs, and error messages when `PARALLEL_API_KEY` is set | -Coda writes code in git worktrees on `coda/*` branches, so your main branch is never touched. It opens PRs; a human merges them. And it runs in your infrastructure, so your code stays on your machines. The only external calls go to your configured LLM provider. +Coda's instructions direct the Coder to use git worktrees on `coda/*` branches and open pull requests for review. The repo-sync task updates each configured main checkout. `CodingTools` also exposes shell and git access, so branch protections remain the enforcement point for protected branches and human review. + +Coda runs in your infrastructure and calls the services you configure. Model prompts go to the model provider. Repository operations, diffs, and comments use GitHub. Messages and digests use Slack. The optional Researcher sends research queries to Parallel. Between them, the agents cover: @@ -50,7 +52,7 @@ Repo sync always runs. The daily digest only registers when both `DIGEST_CHANNEL ### Self-learning -Coda gets sharper the more you use it. It picks up your coding standards, conventions, and patterns. The learning is powered by Agno's [Learning Machines](/learning/overview): +Coda can record coding standards, conventions, and patterns for later retrieval. The learning tools come from Agno's [Learning Machines](/learning/overview): | Week 1 | Week 4 | |--------|--------| diff --git a/deploy/templates/context/overview.mdx b/deploy/templates/context/overview.mdx index 1f6f0694b..8fcb194ac 100644 --- a/deploy/templates/context/overview.mdx +++ b/deploy/templates/context/overview.mdx @@ -49,11 +49,11 @@ Most sources are sub-agents behind at most two tools: `query_` to read and ` | `gmail` | Read and write; writes are drafts only | `GOOGLE_*` credentials | | `calendar` | Read and write; writes pause for approval | `GOOGLE_*` credentials | -The `crm` source is the structured store: contacts, projects, meetings, reminders, notes, and queued updates in the `crm` Postgres schema. Writes are confined to that schema and every row is scoped to your `user_id`, so a guest can't see this data. The `knowledge` source is the prose store for specs and research notes. It lives on the filesystem by default and can use a private Git repository in production. +The `crm` source is the structured store: contacts, projects, meetings, reminders, notes, and queued updates in the `crm` Postgres schema. Agent instructions require CRM writes to use that schema and stamp rows with `user_id`. A heuristic SQL guard blocks common writes to other schemas, but the database connection does not use a least-privilege role or row-level security. Guest privacy is enforced separately by the code-selected guest toolset, which exposes no CRM query tool. The `knowledge` source is the prose store for specs and research notes. It lives on the filesystem by default and can use a private Git repository in production. ### Security -@context is an alter ego with access to a lot of sensitive information, so the security boundaries need to be airtight. The toolset is chosen in code from the request identity before the model runs. Production HTTP requests use verified JWT identities, and Slack events use signed author identities. Local HTTP development trusts the caller-supplied identity. The owner gets the full surface. A guest gets `submit_update` to append to your queue, `my_updates` to see only their own submissions, and `owner_availability` when Calendar is configured. The availability tool returns free/busy intervals without event details. Guests cannot access your CRM, knowledge base, inbox, or calendar events. Each caller gets separate user memory. +@context handles sensitive information. The toolset is chosen in code from the request identity before the model runs. Production HTTP requests use verified JWT identities, and Slack events use signed author identities. Local HTTP development trusts the caller-supplied identity. The owner gets the full surface. A guest gets `submit_update` to append to your queue, `my_updates` to see only their own submissions, and `owner_availability` when Calendar is configured. The availability tool returns free/busy intervals without event details. The guest toolset cannot access your CRM, knowledge base, inbox, or calendar events. Each caller gets separate user memory. The Slack, Calendar, and Gmail write tools are owner-only. `update_slack` sends messages immediately. `update_calendar` pauses for your explicit approval before it changes the calendar. `update_gmail` creates a draft for you to review and send. It never sends email. diff --git a/deploy/templates/dash/overview.mdx b/deploy/templates/dash/overview.mdx index 22dc968d7..9670148e8 100644 --- a/deploy/templates/dash/overview.mdx +++ b/deploy/templates/dash/overview.mdx @@ -1,10 +1,10 @@ --- title: "Dash" sidebarTitle: "Dash" -description: "Self-learning data agent that grounds answers in six layers of context and improves with every query." +description: "Data agent that grounds SQL analysis in five context layers and can save fixes as learnings." --- -**Dash is a self-learning data agent built with systems engineering principles. It grounds answers in six layers of context and improves with every query.** +**Dash is a data agent that grounds SQL analysis in five context layers and can save fixes as learnings.** Ask a question in English and get a correct, meaningful answer. That's the goal. But raw LLMs writing SQL hit a wall fast: schemas lack meaning, types are misleading, tribal knowledge is missing, there's no way to learn from mistakes, and results lack interpretation. The root cause is missing context and missing memory. Dash solves this with six layers of grounded context, a self-learning loop that captures every fix, and a focus on delivering insights you can act on. @@ -20,29 +20,28 @@ Dash runs as an Agno team in coordinate mode, with a leader that routes each req | **Engineer** | Builds reusable views and summary tables in the `dash` schema | | **Leader** | Routes queries, coordinates the team, posts to Slack | -**Schema boundaries:** Company data lives in the `public` schema; agent-created views and summary tables live in the `dash` schema. The Analyst connects with `default_transaction_read_only=on`, so PostgreSQL rejects any write it attempts. A SQLAlchemy event listener blocks Engineer writes that target `public`. These guardrails live in the infrastructure, so they hold regardless of what the model generates. +**Schema boundaries:** Company data lives in the `public` schema; agent-created views and summary tables live in the `dash` schema. The Analyst connects with `default_transaction_read_only=on`, so PostgreSQL rejects its writes. The Engineer uses the application's database role, and a regex-based SQLAlchemy listener blocks common writes to `public`. That listener is a best-effort guard, not a database privilege boundary. Use a role without `public` write privileges when the boundary must hold for every SQL form. -### Six layers of context +### Five layers of context | Layer | Purpose | Source | |-------|---------|--------| | **Table Usage** | Schema, columns, relationships | `knowledge/tables/*.json` | | **Human Annotations** | Metrics, definitions, business rules | `knowledge/business/*.json` | | **Query Patterns** | SQL that is known to work | `knowledge/queries/*.sql` | -| **Institutional Knowledge** | Docs, wikis, external references | MCP (optional) | | **Learnings** | Error patterns and discovered fixes | Agno `Learning Machine` | | **Runtime Context** | Live schema changes | `introspect_schema` tool | ### Self-learning -Every query retrieves knowledge and learnings before generating SQL. When a query fails, Dash diagnoses the error, fixes it, and saves the fix as a learning. Two complementary systems make this work: +The Analyst is instructed to retrieve knowledge and learnings before generating SQL. It can diagnose a failed query and save the fix as a learning. These tools are model-callable, so retrieval and saving depend on the model's tool choices. | System | Stores | How it evolves | |--------|--------|----------------| | **Knowledge** | Validated queries, table schemas, business rules | Curated by you and refined by Dash | | **Learnings** | Error patterns and discovered fixes | Managed automatically by the Learning Machine | -When a churn query returns wrong numbers because it filtered on the `status` column instead of `ended_at IS NULL`, Dash saves the fix and doesn't make that mistake again. When your team defines MRR as the sum of active subscriptions excluding trials, that rule lives in `knowledge/business/` and every future query respects it. +When a churn query uses the wrong filter, Dash can save the corrected `ended_at IS NULL` pattern for later retrieval. When your team defines MRR as the sum of active subscriptions excluding trials, that rule can live in `knowledge/business/` for later queries. ### Insights you can act on @@ -115,12 +114,12 @@ Production requires a `JWT_VERIFICATION_KEY` from AgentOS. You need the Railway 2. Open [os.agno.com](https://os.agno.com) and log in. 3. Click **Connect OS**, choose **Live**, and paste your Railway URL. 4. Go to **Settings** → **OS & Security** and turn on **Token-Based Authorization (JWT)**. The UI generates a key pair and shows you the public key. -5. Add the public key to `.env.production`, wrapped in single quotes: +5. Add the public key to `.env.production` without surrounding quotes: ```bash -JWT_VERIFICATION_KEY='-----BEGIN PUBLIC KEY----- +JWT_VERIFICATION_KEY=-----BEGIN PUBLIC KEY----- MIIBIjANBgkq... ------END PUBLIC KEY-----' +-----END PUBLIC KEY----- ``` diff --git a/deploy/templates/fly/deploy.mdx b/deploy/templates/fly/deploy.mdx index e3ad11a71..fc67227e4 100644 --- a/deploy/templates/fly/deploy.mdx +++ b/deploy/templates/fly/deploy.mdx @@ -95,7 +95,7 @@ Edit `.env.production` with production values: a different OpenAI key, productio Provisions the app and an unmanaged Fly Postgres on the same private network, pushes your credentials as Fly secrets, and deploys a single always-on machine. Fly app names are global, so the script generates `agentos-` and records it in `fly.toml`. It also sets `AGENTOS_URL` to `https://.fly.dev` before the first deploy so scheduled jobs reach the platform, and generates `MCP_CONNECT_SECRET`, the OAuth consent secret for chat apps, into `.env.production` when it's missing. -Deploys use `fly deploy --ha=false` on purpose: the Fly default creates two machines, which doubles cost and runs two in-process schedulers double-firing every cron. Default sizing is `shared-cpu-2x` with 4 GB (~$21/mo) plus a small Postgres machine (~$4/mo). For dedicated cores, switch the size to `performance-2x` (~$62/mo) in `fly.toml`. +Deploys use `fly deploy --ha=false` on purpose because the Fly default creates two machines and doubles the app cost. Shared PostgreSQL serializes normal schedule claims across replicas. Agno does not renew the 300-second claim while a job runs, and the same machine can reclaim a long-running job. Keep longer targets idempotent or use an external scheduler. Default sizing is `shared-cpu-2x` with 4 GB (~$21/mo) plus a small Postgres machine (~$4/mo). For dedicated cores, switch the size to `performance-2x` (~$62/mo) in `fly.toml`. Fly's stock `postgres-flex` image does not ship pgvector: sessions and memory work out of the box, but knowledge bases (RAG) need the extension. Set `FLY_PG_IMAGE` to a `postgres-flex` derivative with pgvector installed before running `up.sh`. Without it, the script prints a warning and everything except knowledge bases works. See [Enable pgvector](/deploy/templates/fly/reference#customize). diff --git a/deploy/templates/fly/reference.mdx b/deploy/templates/fly/reference.mdx index d57c4a8b4..a83631571 100644 --- a/deploy/templates/fly/reference.mdx +++ b/deploy/templates/fly/reference.mdx @@ -16,7 +16,7 @@ Fly app names are global, so `up.sh` generates a unique name (`agentos-` | Resize the machine | Edit `[[vm]]` in `fly.toml`, then `./scripts/fly/redeploy.sh` | | Tear down | `./scripts/fly/down.sh` (add `--yes` to skip the confirmation) | -The platform runs one machine by design. Both deploy scripts pass `fly deploy --ha=false` because the Fly default creates two machines, which doubles cost and runs two in-process schedulers double-firing every cron. `fly.toml` keeps the machine warm with `auto_stop_machines = "off"` and `min_machines_running = 1`; with scale-to-zero, scheduled jobs silently stop firing. +The platform runs one machine by design. Both deploy scripts pass `fly deploy --ha=false` because the Fly default creates two machines and doubles the app cost. Shared PostgreSQL serializes normal schedule claims across replicas. Agno does not renew the 300-second claim while a job runs, and the same machine can reclaim a long-running job. Keep longer targets idempotent or use an external scheduler. `fly.toml` keeps the machine warm with `auto_stop_machines = "off"` and `min_machines_running = 1`; with scale-to-zero, scheduled jobs silently stop firing. ## Production auth @@ -215,7 +215,7 @@ The stock `postgres-flex` image has no pgvector; sessions and memory are unaffec `AGENTOS_URL` may still be the localhost default. `up.sh` sets it to `https://.fly.dev` automatically; for a custom domain or tunnel, set it by hand and run `./scripts/fly/env-sync.sh`. Re-running `up.sh` resets a hand-set value to the generated fly.dev URL, so re-pin it afterwards. The other cause is the machine scaling to zero: keep `auto_stop_machines = "off"` and `min_machines_running = 1` in `fly.toml`. - -A plain `fly deploy` created a second machine, and each runs its own scheduler. Deploy with the scripts; they pass `--ha=false`. + +Schedule claims expire after 300 seconds and are not renewed while the target runs. Keep targets idempotent. Use an external queue or scheduler when a run can exceed five minutes. The deployment scripts also pass `--ha=false` to keep the app on one machine. diff --git a/deploy/templates/gcp/reference.mdx b/deploy/templates/gcp/reference.mdx index 5bc381857..13c546336 100644 --- a/deploy/templates/gcp/reference.mdx +++ b/deploy/templates/gcp/reference.mdx @@ -6,6 +6,10 @@ description: "Commands, customization, environment variables, and troubleshootin The Cloud Run service is `agent-os`, the Cloud SQL instance is `agentos-db`, and the Artifact Registry repo is `agentos`. The scripts target the current gcloud project and `us-central1`; override them with `GCP_PROJECT_ID` and `GCP_REGION`. + + Export `GCP_PROJECT_ID` and `GCP_REGION` in the shell before running `env-sync.sh`, `redeploy.sh`, or `down.sh`. This also prevents a changed active gcloud project from selecting same-named resources elsewhere. `down.sh` can recover the region from the env file, but the other lifecycle scripts resolve both values without loading that file. + + ## Manage | Task | Command | diff --git a/deploy/templates/helm/deploy.mdx b/deploy/templates/helm/deploy.mdx index 75c0d6952..c2208ef52 100644 --- a/deploy/templates/helm/deploy.mdx +++ b/deploy/templates/helm/deploy.mdx @@ -107,7 +107,7 @@ Testing on a local [kind](https://kind.sigs.k8s.io) cluster instead? Run `docker IMAGE_REPOSITORY=/agentos IMAGE_TAG=v1 ./scripts/k8s/up.sh # your own build ``` -Helm-installs the chart into the `agentos` namespace of your current kubectl context (the script shows the context and asks first): the API deployment at one replica by design, since the in-process scheduler must not run twice, plus in-cluster Postgres with pgvector and its volume. The script also generates a `DB_PASS` and saves it to your env file. Keep it; the Postgres volume reads the password only on first initialization. +Helm-installs the chart into the `agentos` namespace of your current kubectl context (the script shows the context and asks first): the API deployment at one replica, plus in-cluster Postgres with pgvector and its volume. The single replica controls cost. Schedule claims expire after 300 seconds without renewal, and the same replica can reclaim a long-running job. Keep longer targets idempotent or use an external scheduler. The script also generates a `DB_PASS` and saves it to your env file. Keep it; the Postgres volume reads the password only on first initialization. To publish behind your ingress controller, add `INGRESS_HOST=os.example.com` (and optionally `INGRESS_CLASS=nginx`). `AGENTOS_URL` then points at that host; otherwise the scheduler uses the in-cluster service DNS, which works out of the box. When the deploy has a public URL (`INGRESS_HOST` or an explicit `AGENTOS_URL`), the script also generates `MCP_CONNECT_SECRET`, the OAuth consent secret for connecting chat apps, and saves it to your env file. diff --git a/deploy/templates/helm/reference.mdx b/deploy/templates/helm/reference.mdx index 7fb5476c7..96fb184c1 100644 --- a/deploy/templates/helm/reference.mdx +++ b/deploy/templates/helm/reference.mdx @@ -6,6 +6,10 @@ description: "Commands, customization, environment variables, and troubleshootin The scripts install the Helm release `agentos` into the `agentos` namespace. Override with `AGENTOS_RELEASE` and `AGENTOS_NAMESPACE`. + + The scripts use the active kubectl context and do not persist its name. Run `kubectl config current-context` before every lifecycle command and confirm the cluster. For a custom target, also export `AGENTOS_RELEASE` and `AGENTOS_NAMESPACE` in the shell before `env-sync.sh`, `redeploy.sh`, or `down.sh`. Those scripts resolve the release and namespace before reading an env file, or do not read one. + + ## Manage | Task | Command | diff --git a/deploy/templates/improve-agents.mdx b/deploy/templates/improve-agents.mdx index c89d84e88..d1bd43a15 100644 --- a/deploy/templates/improve-agents.mdx +++ b/deploy/templates/improve-agents.mdx @@ -84,4 +84,8 @@ The scheduler is on by default. Two reference workflows are registered out of th | Deployment check | Daily readiness report: database, auth, scheduler, MCP, Slack config. Fixed checks, no LLM calls. | On. Disable with `ENABLE_DEPLOY_CHECK=False`. | | Run evals | Daily smoke-tag eval run. Uses model calls. | Off. Enable with `ENABLE_SCHEDULED_EVALS=True`. | + + Scheduler claims expire after 300 seconds without renewal. The bundled eval workflow permits runs up to 900 seconds, so a long eval can overlap with a reclaimed run even on one replica. Keep the target idempotent or use an external scheduler. + + See [Scheduler](/agent-os/scheduler/overview) for the cron API. diff --git a/deploy/templates/modal/reference.mdx b/deploy/templates/modal/reference.mdx index 4e67c8dab..6a8a005d2 100644 --- a/deploy/templates/modal/reference.mdx +++ b/deploy/templates/modal/reference.mdx @@ -6,13 +6,17 @@ description: "Commands, customization, environment variables, and troubleshootin The Modal app is `agentos`, served as one always-warm container. Configuration lives in the `agentos-secrets` Modal secret, and the database is a Neon Postgres project named `agentos`. + + Modal lifecycle commands use the active CLI profile and environment with fixed app and secret names. The scripts do not persist that target. Confirm the active Modal workspace and environment before `env-sync.sh`, `redeploy.sh`, or `down.sh`; switching either can target a same-named app or secret while the teardown separately deletes the saved Neon project. + + ## Manage | Task | Command | |------|---------| | Deploy code changes | `./scripts/modal/redeploy.sh` | | Sync env variables | `./scripts/modal/env-sync.sh` (defaults to `.env.production`; pass `.env` to sync that instead) | -| Tail logs | `modal app logs agentos --follow` | +| Tail logs | `modal app logs agentos` | | List apps and status | `modal app list` | | Tear down | `./scripts/modal/down.sh` | @@ -21,7 +25,7 @@ The Modal app is `agentos`, served as one always-warm container. Configuration l -`modal_app.py` pins `min_containers=1` and `max_containers=1`. The always-warm container keeps the in-process scheduler and MCP streams alive, and the cap stops two schedulers from double-firing every cron. Keep both settings. +`modal_app.py` pins `min_containers=1` and `max_containers=1`. The always-warm container keeps the in-process scheduler and MCP streams alive. The cap controls cost. Schedule claims expire after 300 seconds without renewal, and the same container can reclaim a long-running job. Keep longer targets idempotent or use an external scheduler. ## Production auth diff --git a/deploy/templates/render/deploy.mdx b/deploy/templates/render/deploy.mdx index a4af94f39..e3d7b9aa3 100644 --- a/deploy/templates/render/deploy.mdx +++ b/deploy/templates/render/deploy.mdx @@ -93,7 +93,7 @@ Edit `.env.production` with production values: a different OpenAI key, productio Open [dashboard.render.com](https://dashboard.render.com) → **New +** → **Blueprint**, connect your copy of the repo, and apply. Render reads `render.yaml`, prompts for `OPENAI_API_KEY`, builds the Dockerfile, and creates the `basic-256mb` Postgres. The first build takes about 10 minutes. -The web service runs on the `starter` plan, the cheapest that never sleeps, which the in-process scheduler and MCP streams require. It runs as a single instance by design; two instances double-fire every cron. +The web service runs on the `starter` plan, the cheapest that never sleeps, which the in-process scheduler and MCP streams require. It runs as a single instance to control cost. Schedule claims expire after 300 seconds without renewal, and the same instance can reclaim a long-running job. Keep longer targets idempotent or use an external scheduler. diff --git a/deploy/templates/render/reference.mdx b/deploy/templates/render/reference.mdx index 15818ac41..71bd892da 100644 --- a/deploy/templates/render/reference.mdx +++ b/deploy/templates/render/reference.mdx @@ -6,6 +6,10 @@ description: "Commands, customization, environment variables, and troubleshootin The web service is `agent-os` and the database is `agentos-db`. Every command in `scripts/render/` drives the Render API and needs `RENDER_API_KEY` in your environment or env file. + + The scripts search every workspace visible to `RENDER_API_KEY` and select the first exact `agent-os` service and `agentos-db` database. Before `env-sync.sh`, `redeploy.sh`, or `down.sh`, confirm that each name has exactly one visible match and that both returned `ownerId` values identify the intended workspace. + + ## Manage | Task | Command | diff --git a/deploy/templates/scout/overview.mdx b/deploy/templates/scout/overview.mdx index d2e1d9cdb..0d2f63fae 100644 --- a/deploy/templates/scout/overview.mdx +++ b/deploy/templates/scout/overview.mdx @@ -1,10 +1,10 @@ --- title: "Scout" sidebarTitle: "Scout" -description: "Open-source company intelligence agent that navigates web, Slack, Drive, and MCP sources and builds its own wiki and CRM as it learns about your company." +description: "Open-source company intelligence agent that navigates web, Slack, Drive, and MCP sources and can update a wiki and CRM." --- -**Scout is an open-source company intelligence agent.** It navigates live information sources (web, Slack, Drive, wiki, CRM, MCP servers) to assemble context on demand, and it builds its own wiki and CRM as it learns about your company. The code is public at [agno-agi/scout](https://github.com/agno-agi/scout). +**Scout is an open-source company intelligence agent.** It navigates live information sources (web, Slack, Drive, wiki, CRM, MCP servers) to assemble context on demand, and it can update its wiki and CRM when you ask it to save information. The code is public at [agno-agi/scout](https://github.com/agno-agi/scout). The default move when working with knowledge sources is to ingest everything into a vector database, chunk, embed, and pray. Coding agents figured out the right approach. They navigate: `ls`, `grep`, open the file, follow the import. Scout does the same thing across Slack, Drive, and the rest. It searches the channel, opens the doc, expands the thread, and assembles context at question time from the live source. @@ -26,7 +26,7 @@ A sub-agent behind each provider owns the source's quirks. Scout sees `query_sla | **MCP** | Registered in `scout/contexts.py` | One `query_mcp_` per server. | - Scout intends Slack access to be read-only, but the pinned template does not pass `write=False` when it creates `SlackContextProvider`. Configuring Slack currently exposes `update_slack`. Leave write scopes ungranted until the template enforces its intended boundary. + Scout intends Slack context access to be read-only, but the pinned template does not pass `write=False` when it creates `SlackContextProvider`. Configuring `SLACK_BOT_TOKEN` currently exposes `update_slack`. To enforce a read-only context provider, set `write=False` in `scout/contexts.py` before deployment. The linked Slack manifest grants write scopes because the separate Slack interface uses the same bot token to reply. Setup for each provider is covered in the Scout README's [Context Providers](https://github.com/agno-agi/scout#context-providers) section. @@ -40,7 +40,7 @@ Most information Scout learns from working with you is perfect for a wiki and a | **Wiki** | Scout's prose memory: pages about your company, projects, and runbooks | | **CRM** | People and relationships: contacts, projects, notes, follow-ups | -Both start empty and grow with use. Mention that Josh from Anthropic shared a new RLM paper, and Scout adds Josh to the CRM, parses the paper into the wiki, and links them. See [How Scout works](https://github.com/agno-agi/scout#how-scout-works) in the README for how both systems work. +Both start empty. Ask Scout to save that Josh from Anthropic shared a new RLM paper and to file the paper in the wiki. Scout can update both stores and link the records. See [How Scout works](https://github.com/agno-agi/scout#how-scout-works) in the README for how both systems work. ## Run locally diff --git a/other/agent-ui.mdx b/other/agent-ui.mdx index 69c4faa6b..af6364da2 100644 --- a/other/agent-ui.mdx +++ b/other/agent-ui.mdx @@ -1,7 +1,7 @@ --- -title: AgentUI -sidebarTitle: AgentUI -description: An open-source AgentUI for your AgentOS +title: Agent UI +sidebarTitle: Agent UI +description: "Connect a self-hosted chat interface to agents and teams running in AgentOS." keywords: [agent ui, agentui, agent interface, self-hosted ui, agno ui] --- @@ -13,29 +13,34 @@ keywords: [agent ui, agentui, agent interface, self-hosted ui, agno ui] /> -Agno provides an open-source UI for interacting with your agents. It's free to use and build on top of. Chat with your agents and view their memory, knowledge, and more. +Agent UI is an open-source chat interface for AgentOS. Run agents and teams, +resume sessions, inspect tool calls, reasoning, and references, and render image, +video, and audio output. -The AgentOS only uses data in your database. No data is sent to Agno. +Agent UI sends requests to the AgentOS URL you configure. AgentOS stores +sessions in its configured database and sends model and tool requests to the +providers configured in your application. Agno telemetry is enabled by +default. Set `telemetry=False` on `AgentOS` and each agent, team, or workflow +to disable it. -Built with Next.js and TypeScript, the Open Source Agent UI was developed in response to community requests for a self-hosted alternative following the success of [AgentOS](/agent-os/introduction). +Agent UI is built with Next.js and TypeScript. -## Get Started with Agent UI - -To clone the Agent UI, run the following command in your terminal: +## Install Agent UI ```bash npx create-agent-ui@latest ``` -Enter `y` to create a new project, install dependencies, then run the agent-ui using: +Enter `y` to create the project and install its dependencies. Start the +development server: ```bash cd agent-ui && npm run dev ``` -Open http://localhost:3000 to view the Agent UI, but remember to connect to your local agents. +Open [http://localhost:3000](http://localhost:3000). -You can also clone the repository manually +Clone the repository and start the development server: ```bash git clone https://github.com/agno-agi/agent-ui.git -``` - -And run the agent-ui using - -```bash cd agent-ui && pnpm install && pnpm dev ``` -## Connect your AgentOS - -The Agent UI needs to connect to an AgentOS server, which you can run locally or on any cloud provider. +## Connect AgentOS -Let's start with a local AgentOS server. Create a file `agentos.py` +Agent UI sends requests directly to the AgentOS endpoint you select. Create +`agentos.py` for a local server: ```python agentos.py from agno.agent import Agent @@ -126,9 +125,9 @@ In another terminal, run the AgentOS server: source .venv/bin/activate ``` - ```bash Windows - python3 -m venv aienv - aienv/scripts/activate + ```powershell Windows + py -m venv .venv + .venv\Scripts\Activate.ps1 ``` @@ -140,7 +139,7 @@ In another terminal, run the AgentOS server: uv pip install -U openai ddgs yfinance "agno[os]" ``` - ```bash Windows + ```powershell Windows uv pip install -U openai ddgs yfinance "agno[os]" ``` @@ -153,8 +152,8 @@ In another terminal, run the AgentOS server: export OPENAI_API_KEY=sk-*** ``` - ```bash Windows - setx OPENAI_API_KEY sk-*** + ```powershell Windows + $env:OPENAI_API_KEY="sk-***" ``` @@ -170,10 +169,10 @@ In another terminal, run the AgentOS server: Make sure the module path in `agent_os.serve()` matches your filename (e.g., `"agentos:app"` for `agentos.py`). -## View the AgentUI +## Open Agent UI -- Open http://localhost:3000 to view the Agent UI -- Enter the `localhost:7777` endpoint on the left sidebar and start chatting with your agents and teams! +- Open [http://localhost:3000](http://localhost:3000). +- Enter `http://localhost:7777` in the left sidebar. diff --git a/first-agent.mdx b/first-agent.mdx index 4905bb92b..75c505e0e 100644 --- a/first-agent.mdx +++ b/first-agent.mdx @@ -170,7 +170,7 @@ Categorize the files in your working dir Click Sessions or Traces in the sidebar to inspect stored conversations. -Session records stay in your local database. No data leaves your system. +Session records stay in your local SQLite database. The agent sends prompts and workspace tool results to OpenAI because it uses `openai:gpt-5.5`. ## Next Steps diff --git a/models/providers/native/google/usage/interactions-antigravity.mdx b/models/providers/native/google/usage/interactions-antigravity.mdx index e9ac86753..c9c7d1d36 100644 --- a/models/providers/native/google/usage/interactions-antigravity.mdx +++ b/models/providers/native/google/usage/interactions-antigravity.mdx @@ -13,7 +13,7 @@ The `environment` parameter selects the sandbox: | `"env_"` | Reuse a previously provisioned sandbox. | | `dict` | Full `EnvironmentConfig` (sources, network rules). | -`GeminiInteractions` in Agno 2.7.4 sends Antigravity requests in the foreground and forces `store=True` so each interaction is retrievable. The Google API also supports background Antigravity execution. Use the Google Gen AI SDK directly when you need background execution. +`GeminiInteractions` in Agno 2.7.4 sends Antigravity requests in the foreground and forces `store=True` so each interaction is retrievable. Antigravity also runs in the foreground through the Google Gen AI SDK, which rejects `background=True` for this managed agent. Use [streaming](/models/providers/native/google/usage/interactions-antigravity-streaming) to receive progress while the connection stays open. ## Code From 79f4b237c0cd8313e7da770444e61736beb25f2b Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 03:26:08 +0100 Subject: [PATCH 08/47] docs: include setup skill in deployment guides --- deploy/templates/aws/deploy.mdx | 2 +- deploy/templates/azure/deploy.mdx | 2 +- deploy/templates/docker/deploy.mdx | 2 +- deploy/templates/fly/deploy.mdx | 2 +- deploy/templates/gcp/deploy.mdx | 2 +- deploy/templates/helm/deploy.mdx | 2 +- deploy/templates/improve-agents.mdx | 5 +++-- deploy/templates/modal/deploy.mdx | 2 +- deploy/templates/railway/deploy.mdx | 2 +- deploy/templates/render/deploy.mdx | 2 +- 10 files changed, 12 insertions(+), 11 deletions(-) diff --git a/deploy/templates/aws/deploy.mdx b/deploy/templates/aws/deploy.mdx index d679b227a..6c41c08ba 100644 --- a/deploy/templates/aws/deploy.mdx +++ b/deploy/templates/aws/deploy.mdx @@ -7,7 +7,7 @@ description: "Run AgentOS locally using Docker and deploy to production on AWS." AgentOS is a secure, scalable platform for running agents. The [agentos-aws](https://github.com/agno-agi/agentos-aws) codebase runs AgentOS locally using Docker and deploys to production on AWS. It comes with: - **2 platform agents** that build and run the platform for you. **Agent Builder** creates agents, teams, and workflows. **Platform Manager** understands, monitors, and explains the platform. -- **5 [skills](/deploy/templates/improve-agents)** that let coding agents build, test, and improve the platform for you. +- **6 [skills](/deploy/templates/improve-agents)** that let coding agents set up, build, test, and improve the platform for you. Because the trace data, agent code, evals, and system logs all live in one place, the platform can inspect and improve itself automatically. diff --git a/deploy/templates/azure/deploy.mdx b/deploy/templates/azure/deploy.mdx index aa5f6ea7d..b19de35a2 100644 --- a/deploy/templates/azure/deploy.mdx +++ b/deploy/templates/azure/deploy.mdx @@ -7,7 +7,7 @@ description: "Run AgentOS locally using Docker and deploy to production on Azure AgentOS is a secure, scalable platform for running agents. The [agentos-azure](https://github.com/agno-agi/agentos-azure) codebase runs AgentOS locally using Docker and deploys to production on Azure Container Apps. It comes with: - **2 platform agents** that build and run the platform for you. **Agent Builder** creates agents, teams, and workflows. **Platform Manager** understands, monitors, and explains the platform. -- **5 [skills](/deploy/templates/improve-agents)** that let coding agents build, test, and improve the platform for you. +- **6 [skills](/deploy/templates/improve-agents)** that let coding agents set up, build, test, and improve the platform for you. Because the trace data, agent code, evals, and system logs all live in one place, the platform can inspect and improve itself automatically. diff --git a/deploy/templates/docker/deploy.mdx b/deploy/templates/docker/deploy.mdx index 554f8ccd0..8b0d65a3a 100644 --- a/deploy/templates/docker/deploy.mdx +++ b/deploy/templates/docker/deploy.mdx @@ -8,7 +8,7 @@ The [agentos-docker](https://github.com/agno-agi/agentos-docker) template runs A - **Agent Builder**, which creates agents, teams, and workflows when prompted. - **Platform Manager**, which inspects and explains registered agents, eval history, deployment checks, and schedules. -- **Five [skills](/deploy/templates/improve-agents)** that coding agents can invoke to build, test, and improve the project. +- **Six [skills](/deploy/templates/improve-agents)** that coding agents can invoke to set up, build, test, and improve the project. Agent code, evals, traces, and logs stay in one project so users and coding agents can inspect them together. diff --git a/deploy/templates/fly/deploy.mdx b/deploy/templates/fly/deploy.mdx index fc67227e4..456f99ca9 100644 --- a/deploy/templates/fly/deploy.mdx +++ b/deploy/templates/fly/deploy.mdx @@ -7,7 +7,7 @@ description: "Run AgentOS locally using Docker and deploy to production on Fly.i AgentOS is a secure, scalable platform for running agents. The [agentos-fly](https://github.com/agno-agi/agentos-fly) codebase runs AgentOS locally using Docker and deploys to production on Fly.io. It comes with: - **2 platform agents** that build and run the platform for you. **Agent Builder** creates agents, teams, and workflows. **Platform Manager** understands, monitors, and explains the platform. -- **5 [skills](/deploy/templates/improve-agents)** that let coding agents build, test, and improve the platform for you. +- **6 [skills](/deploy/templates/improve-agents)** that let coding agents set up, build, test, and improve the platform for you. Because the trace data, agent code, evals, and system logs all live in one place, the platform can inspect and improve itself automatically. diff --git a/deploy/templates/gcp/deploy.mdx b/deploy/templates/gcp/deploy.mdx index c9a412678..b638275f4 100644 --- a/deploy/templates/gcp/deploy.mdx +++ b/deploy/templates/gcp/deploy.mdx @@ -7,7 +7,7 @@ description: "Run AgentOS locally using Docker and deploy to production on Googl AgentOS is a secure, scalable platform for running agents. The [agentos-gcp](https://github.com/agno-agi/agentos-gcp) codebase runs AgentOS locally using Docker and deploys to production on Google Cloud Run. It comes with: - **2 platform agents** that build and run the platform for you. **Agent Builder** creates agents, teams, and workflows. **Platform Manager** understands, monitors, and explains the platform. -- **5 [skills](/deploy/templates/improve-agents)** that let coding agents build, test, and improve the platform for you. +- **6 [skills](/deploy/templates/improve-agents)** that let coding agents set up, build, test, and improve the platform for you. Because the trace data, agent code, evals, and system logs all live in one place, the platform can inspect and improve itself automatically. diff --git a/deploy/templates/helm/deploy.mdx b/deploy/templates/helm/deploy.mdx index c2208ef52..04d9e6d51 100644 --- a/deploy/templates/helm/deploy.mdx +++ b/deploy/templates/helm/deploy.mdx @@ -7,7 +7,7 @@ description: "Run AgentOS locally using Docker and deploy to production on Kuber AgentOS is a secure, scalable platform for running agents. The [agentos-helm](https://github.com/agno-agi/agentos-helm) codebase runs AgentOS locally using Docker and deploys to production on Kubernetes. It comes with: - **2 platform agents** that build and run the platform for you. **Agent Builder** creates agents, teams, and workflows. **Platform Manager** understands, monitors, and explains the platform. -- **5 [skills](/deploy/templates/improve-agents)** that let coding agents build, test, and improve the platform for you. +- **6 [skills](/deploy/templates/improve-agents)** that let coding agents set up, build, test, and improve the platform for you. Because the trace data, agent code, evals, and system logs all live in one place, the platform can inspect and improve itself automatically. diff --git a/deploy/templates/improve-agents.mdx b/deploy/templates/improve-agents.mdx index d1bd43a15..7146af5dc 100644 --- a/deploy/templates/improve-agents.mdx +++ b/deploy/templates/improve-agents.mdx @@ -1,10 +1,10 @@ --- title: "Build with Coding Agents" sidebarTitle: "Coding Agents" -description: "Bundled skills that let Claude Code, Codex, and Cursor create, improve, evaluate, and maintain your agents." +description: "Bundled skills that let Claude Code, Codex, and Cursor set up, create, improve, evaluate, and maintain your agents." --- -Every template is designed for coding agents to drive the full agent-development lifecycle: create, improve, evaluate, maintain. +Every template is designed for coding agents to drive the full agent-development lifecycle: set up, create, improve, evaluate, maintain. Everything on this page runs inside a cloned template. If you don't have one running yet, [pick a Starter](/deploy/introduction) first. @@ -14,6 +14,7 @@ The skills live in `.agents/skills/`. Claude Code picks them up on clone through | Skill | What it does | Who drives | |-------|--------------|------------| +| `/setup-platform` | Configures the environment, starts AgentOS, builds the first agent, and connects the UI. | You + the agent | | `/create-new-agent` | Scaffolds an agent, registers it in `app/main.py`, smoke-tests it live. | You + the agent | | `/extend-agent` | Adds a tool or capability, refines instructions, fixes a known bug. | You | | `/improve-agent` | Derives probes from the agent's `INSTRUCTIONS`, judges responses, edits until they pass. | The agent | diff --git a/deploy/templates/modal/deploy.mdx b/deploy/templates/modal/deploy.mdx index 446ff3a1d..1a8339d34 100644 --- a/deploy/templates/modal/deploy.mdx +++ b/deploy/templates/modal/deploy.mdx @@ -8,7 +8,7 @@ The [agentos-modal](https://github.com/agno-agi/agentos-modal) template runs Age - **Agent Builder**, which creates agents, teams, and workflows. - **Platform Manager**, which reports on evals, deployment checks, and schedules. -- **5 [skills](/deploy/templates/improve-agents)** for coding-agent development and validation. +- **6 [skills](/deploy/templates/improve-agents)** for coding-agent setup, development, and validation. The template keeps agent code, evals, traces, and system logs in one project. diff --git a/deploy/templates/railway/deploy.mdx b/deploy/templates/railway/deploy.mdx index 326f26a64..970a163f6 100644 --- a/deploy/templates/railway/deploy.mdx +++ b/deploy/templates/railway/deploy.mdx @@ -7,7 +7,7 @@ description: "Run AgentOS locally using Docker and deploy to production on Railw The [agentos-railway](https://github.com/agno-agi/agentos-railway) template runs AgentOS locally with Docker and deploys it to Railway. It includes: - **2 platform agents** that build and run the platform for you. **Agent Builder** creates agents, teams, and workflows. **Platform Manager** understands, monitors, and explains the platform. -- **5 [skills](/deploy/templates/improve-agents)** that let coding agents build, test, and improve the platform for you. +- **6 [skills](/deploy/templates/improve-agents)** that let coding agents set up, build, test, and improve the platform for you. Coding agents can use the repository skills, live AgentOS API, evals, and container logs to inspect and improve the platform. diff --git a/deploy/templates/render/deploy.mdx b/deploy/templates/render/deploy.mdx index e3d7b9aa3..b214654ca 100644 --- a/deploy/templates/render/deploy.mdx +++ b/deploy/templates/render/deploy.mdx @@ -7,7 +7,7 @@ description: "Run AgentOS locally using Docker and deploy to production on Rende AgentOS is a secure, scalable platform for running agents. The [agentos-render](https://github.com/agno-agi/agentos-render) codebase runs AgentOS locally using Docker and deploys to production on Render. It comes with: - **2 platform agents** that build and run the platform for you. **Agent Builder** creates agents, teams, and workflows. **Platform Manager** understands, monitors, and explains the platform. -- **5 [skills](/deploy/templates/improve-agents)** that let coding agents build, test, and improve the platform for you. +- **6 [skills](/deploy/templates/improve-agents)** that let coding agents set up, build, test, and improve the platform for you. Because the trace data, agent code, evals, and system logs all live in one place, the platform can inspect and improve itself automatically. From c692aafbdd16a1dbce0e7657814cf7a3934eb068 Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 03:47:32 +0100 Subject: [PATCH 09/47] docs: close convergence accuracy gaps --- agent-os/security/authorization/overview.mdx | 6 +++++- examples/agent-os/remote/remote-team.mdx | 4 ++++ examples/agents/knowledge/knowledge-filters.mdx | 4 ++++ examples/storage/sqlite/sqlite-for-team.mdx | 4 ++++ examples/tools/google-bigquery-tools.mdx | 8 ++++++-- knowledge/overview.mdx | 2 +- scripts/examples_sync/apply_oneoffs.py | 3 ++- scripts/examples_sync/description-overrides.json | 1 + scripts/examples_sync/generate.py | 14 +++++++++++++- tools/toolkits/search/serper.mdx | 7 ++++--- .../access-multiple-previous-steps-output.mdx | 11 +++++++++++ 11 files changed, 55 insertions(+), 9 deletions(-) diff --git a/agent-os/security/authorization/overview.mdx b/agent-os/security/authorization/overview.mdx index 227468588..311d1b6d8 100644 --- a/agent-os/security/authorization/overview.mdx +++ b/agent-os/security/authorization/overview.mdx @@ -18,7 +18,11 @@ AgentOS validates the JWT on protected requests, then checks its scopes against alt="JWT verification flow" /> -Enable authorization when initializing AgentOS: +Set a verification key, then enable authorization when initializing AgentOS: + +```bash +export JWT_VERIFICATION_KEY="your-public-key" +``` ```python from agno.agent import Agent diff --git a/examples/agent-os/remote/remote-team.mdx b/examples/agent-os/remote/remote-team.mdx index 9d2c741c0..7a31cae7c 100644 --- a/examples/agent-os/remote/remote-team.mdx +++ b/examples/agent-os/remote/remote-team.mdx @@ -4,6 +4,10 @@ description: "Run a team hosted on another AgentOS with RemoteTeam, with and wit source: cookbook/05_agent_os/remote/02_remote_team.py --- + + This example docstring names removed `agent_os_setup.py` and `AgentOSRunner`. Start `server.py` in the generated Run step below; this example uses `RemoteTeam`. + + ```python remote_team.py """ Examples demonstrating AgentOSRunner for remote execution. diff --git a/examples/agents/knowledge/knowledge-filters.mdx b/examples/agents/knowledge/knowledge-filters.mdx index 9729eabb5..b1d8150a5 100644 --- a/examples/agents/knowledge/knowledge-filters.mdx +++ b/examples/agents/knowledge/knowledge-filters.mdx @@ -4,6 +4,10 @@ description: "Filter knowledge base searches using static filters or agentic fil source: cookbook/02_agents/07_knowledge/knowledge_filters.py --- + + This example inserts `ThaiRecipes.pdf` without cuisine metadata, so its static and agentic cuisine filters cannot match that document. Add `metadata={"cuisine": "thai"}` to `knowledge.insert(...)` before running. + + ```python knowledge_filters.py """ Knowledge Filters diff --git a/examples/storage/sqlite/sqlite-for-team.mdx b/examples/storage/sqlite/sqlite-for-team.mdx index 0a2ea9f61..fc40dc1c3 100644 --- a/examples/storage/sqlite/sqlite-for-team.mdx +++ b/examples/storage/sqlite/sqlite-for-team.mdx @@ -4,6 +4,10 @@ description: "HackerNews research team stores sessions in a SQLite file with str source: cookbook/06_storage/sqlite/sqlite_for_team.py --- + + This example docstring names a removed cookbook path. Use the generated Run step below, which runs `cookbook/06_storage/sqlite/sqlite_for_team.py`. + + ```python sqlite_for_team.py """ 1. Run: `uv pip install openai ddgs newspaper4k lxml_html_clean agno` to install the dependencies diff --git a/examples/tools/google-bigquery-tools.mdx b/examples/tools/google-bigquery-tools.mdx index ee999fef6..202f6d2fe 100644 --- a/examples/tools/google-bigquery-tools.mdx +++ b/examples/tools/google-bigquery-tools.mdx @@ -1,9 +1,13 @@ --- -title: "Google Bigquery Tools" -description: "BQTools( project=\"\", location=\"\", dataset=\"\", )." +title: "Google BigQuery Tools" +description: "Configure GoogleBigQueryTools with a Google Cloud project, location, and dataset." source: cookbook/91_tools/google_bigquery_tools.py --- + + This example docstring names `BQTools`, and its Agent instruction names `run_sql`. The imported toolkit is `GoogleBigQueryTools`; its registered SQL function is `run_sql_query`. + + ```python google_bigquery_tools.py """ You can set the following environment variables for your Google Cloud project: diff --git a/knowledge/overview.mdx b/knowledge/overview.mdx index 664c8f99f..975c5dd95 100644 --- a/knowledge/overview.mdx +++ b/knowledge/overview.mdx @@ -107,7 +107,7 @@ The persistent collection keeps saved insights available to later runs. ## Vector Stores -Agno supports 19 vector databases, from local options like LanceDB and ChromaDB to managed services like Pinecone and Weaviate. +Agno supports local vector stores like LanceDB and ChromaDB, managed services like Pinecone and Weaviate, SQL and NoSQL databases, and framework integrations. See supported databases diff --git a/scripts/examples_sync/apply_oneoffs.py b/scripts/examples_sync/apply_oneoffs.py index a60ce81ef..d04fbd13c 100644 --- a/scripts/examples_sync/apply_oneoffs.py +++ b/scripts/examples_sync/apply_oneoffs.py @@ -114,6 +114,7 @@ } TITLE_OVERRIDES = { + "examples/agent-os/remote/remote-team": "Remote Team", "examples/agent-os/rbac/asymmetric/workos-byot": "WorkOS BYOT", "examples/agents/tools/tools-with-literal-type-param": "Tools with Literal Type Parameters", "examples/integrations/parallel/research-workflow": "Research Workflow", @@ -3114,7 +3115,7 @@ async def handle_stripe(event: dict): root_sub( "models/providers/native/google/usage/interactions-antigravity.mdx", "Unlike Deep Research, Antigravity runs in the foreground. The model still forces `store=True` so the interaction is retrievable.", - "`GeminiInteractions` in Agno 2.7.4 sends Antigravity requests in the foreground and forces `store=True` so each interaction is retrievable. The Google API also supports background Antigravity execution. Use the Google Gen AI SDK directly when you need background execution.", + "`GeminiInteractions` in Agno 2.7.4 sends Antigravity requests in the foreground and forces `store=True` so each interaction is retrievable. Antigravity also runs in the foreground through the Google Gen AI SDK, which rejects `background=True` for this managed agent. Use [streaming](/models/providers/native/google/usage/interactions-antigravity-streaming) to receive progress while the connection stays open.", ) root_sub( diff --git a/scripts/examples_sync/description-overrides.json b/scripts/examples_sync/description-overrides.json index 25b228644..7bf1aed58 100644 --- a/scripts/examples_sync/description-overrides.json +++ b/scripts/examples_sync/description-overrides.json @@ -560,6 +560,7 @@ "examples/tools/fal-tools": "Generate a video from a text prompt with FalTools and the fal-ai/hunyuan-video model.", "examples/tools/giphy-tools": "Search Giphy for a fitting GIF with GiphyTools, limiting results and enabled functions.", "examples/tools/gitlab-tools": "List and summarize GitLab merge requests and issues with read-only GitlabTools functions.", + "examples/tools/google-bigquery-tools": "Configure GoogleBigQueryTools with a Google Cloud project, location, and dataset.", "examples/tools/googlesheets-tools": "Read a configured range with GoogleSheetsTools using service-account or OAuth credentials.", "examples/tools/hackernews-tools": "Pull top HackerNews stories with HackerNewsTools and stream a report on trending startups.", "examples/tools/jinareader-tools": "Fetch a GitHub page with JinaReaderTools and have the agent summarize its content.", diff --git a/scripts/examples_sync/generate.py b/scripts/examples_sync/generate.py index 35f670d68..aaa05cfc5 100644 --- a/scripts/examples_sync/generate.py +++ b/scripts/examples_sync/generate.py @@ -487,7 +487,7 @@ "e2b": "E2B", "gcp": "GCP", "gcs": "GCS", "github": "GitHub", "gitlab": "GitLab", "gpt": "GPT", "hackernews": "HackerNews", "hitl": "HITL", "http": "HTTP", "huggingface": "Hugging Face", - "ibm": "IBM", "id": "ID", "io": "I/O", "json": "JSON", "jwt": "JWT", + "bigquery": "BigQuery", "ibm": "IBM", "id": "ID", "io": "I/O", "json": "JSON", "jwt": "JWT", "lancedb": "LanceDB", "litellm": "LiteLLM", "llm": "LLM", "mcp": "MCP", "mongodb": "MongoDB", "mysql": "MySQL", "nvidia": "NVIDIA", "ocr": "OCR", "openai": "OpenAI", "openrouter": "OpenRouter", @@ -508,6 +508,7 @@ # Titles the docstring cannot yield in docs voice, keyed by docs slug. # Consulted at render time, before description/intro derivation. TITLE_OVERRIDES = { + "examples/agent-os/remote/remote-team": "Remote Team", "examples/agent-os/background-tasks/background-hooks-team": "Background Hooks Team", "examples/agent-os/background-tasks/background-hooks-workflow": "Background Hooks Workflow", "examples/agent-os/client-a2a/servers/google-adk-server": "Google ADK A2A Server", @@ -745,6 +746,16 @@ # whose URL insert selects WebsiteReader at runtime. "package_add": {"beautifulsoup4"}, }, + "02_agents/07_knowledge/knowledge_filters.py": { + "pre_code_warning": "The pinned source inserts `ThaiRecipes.pdf` without cuisine metadata, so its static and agentic cuisine filters cannot match that document. Add `metadata={\"cuisine\": \"thai\"}` to `knowledge.insert(...)` before running.", + }, + "06_storage/sqlite/sqlite_for_team.py": { + "pre_code_warning": "The pinned source docstring names a removed cookbook path. Use the generated Run step below, which runs `cookbook/06_storage/sqlite/sqlite_for_team.py`.", + }, + "91_tools/google_bigquery_tools.py": { + "intro_override": "Configure GoogleBigQueryTools with a Google Cloud project, location, and dataset.", + "pre_code_warning": "The pinned source docstring names `BQTools`, and its Agent instruction names `run_sql`. The imported toolkit is `GoogleBigQueryTools`; its registered SQL function is `run_sql_query`.", + }, "02_agents/01_quickstart/agent_with_tools.py": { "suppress_intro": True, }, @@ -1350,6 +1361,7 @@ "extra_add": {"os"}, "package_add": {"chromadb", "ddgs", "openai", "sqlalchemy"}, "env_add": {"OPENAI_API_KEY"}, + "pre_code_warning": "The pinned source docstring names removed `agent_os_setup.py` and `AgentOSRunner`. Start `server.py` in the generated Run step below; this example uses `RemoteTeam`.", "pre_run_steps": [ ( "Start the remote AgentOS", diff --git a/tools/toolkits/search/serper.mdx b/tools/toolkits/search/serper.mdx index ca7dd58fa..1feb88e9e 100644 --- a/tools/toolkits/search/serper.mdx +++ b/tools/toolkits/search/serper.mdx @@ -7,13 +7,14 @@ description: "Search Google, Google News, and Google Scholar, and scrape webpage ## Prerequisites -The following example requires the `requests` and `openai` libraries and an API key from [Serper](https://serper.dev/). +The following example requires Agno, the `requests` and `openai` libraries, an OpenAI API key, and an API key from [Serper](https://serper.dev/). ```shell -uv pip install -U requests openai +uv pip install -U agno requests openai ``` ```shell +export OPENAI_API_KEY=*** export SERPER_API_KEY=*** ``` @@ -56,4 +57,4 @@ agent.print_response("What's happening in the USA?", markdown=True) ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/serper.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/serper.py) diff --git a/workflows/usage/access-multiple-previous-steps-output.mdx b/workflows/usage/access-multiple-previous-steps-output.mdx index 0d8d71a99..f85c600cf 100644 --- a/workflows/usage/access-multiple-previous-steps-output.mdx +++ b/workflows/usage/access-multiple-previous-steps-output.mdx @@ -13,6 +13,17 @@ Install dependencies: uv pip install agno openai yfinance ``` +Set the API key used by the agents' default OpenAI model: + + +```bash Mac/Linux +export OPENAI_API_KEY="your_openai_api_key_here" +``` +```powershell Windows +$Env:OPENAI_API_KEY="your_openai_api_key_here" +``` + + ```python access_multiple_previous_steps_output.py from agno.agent.agent import Agent from agno.tools.hackernews import HackerNewsTools From fe0f018a259ba8a3eb105b7f11ed36c1ffce9c11 Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 03:47:36 +0100 Subject: [PATCH 10/47] docs: enrich incomplete OpenAPI responses --- reference-api/openapi.yaml | 34 +++++++++++++++++++++++++++++++--- scripts/make_openapi.py | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 3 deletions(-) diff --git a/reference-api/openapi.yaml b/reference-api/openapi.yaml index 7cb751298..a322a15c5 100644 --- a/reference-api/openapi.yaml +++ b/reference-api/openapi.yaml @@ -81,7 +81,6 @@ paths: schema: $ref: '#/components/schemas/ConfigResponse' example: - id: demo description: Example AgentOS configuration available_models: [] databases: @@ -118,6 +117,7 @@ paths: teams: [] workflows: [] interfaces: [] + os_id: demo '400': description: Bad Request content: @@ -542,7 +542,21 @@ paths: description: Session forked successfully content: application/json: - schema: {} + schema: + properties: + session_id: + type: string + title: Session Id + description: ID of the new independent session. + forked_from_session_id: + type: string + title: Forked From Session Id + description: ID of the source session. + type: object + required: + - session_id + - forked_from_session_id + title: ForkSessionResponse '400': description: Source session is empty or missing content: @@ -1416,7 +1430,21 @@ paths: description: Session forked successfully content: application/json: - schema: {} + schema: + properties: + session_id: + type: string + title: Session Id + description: ID of the new independent session. + forked_from_session_id: + type: string + title: Forked From Session Id + description: ID of the source session. + type: object + required: + - session_id + - forked_from_session_id + title: ForkSessionResponse '400': description: Source session is empty or missing content: diff --git a/scripts/make_openapi.py b/scripts/make_openapi.py index 470bbcad3..4c9821b05 100644 --- a/scripts/make_openapi.py +++ b/scripts/make_openapi.py @@ -18,6 +18,7 @@ import json import os import sys +from copy import deepcopy from pathlib import Path REPO_ROOT = Path(__file__).resolve().parents[1] @@ -196,6 +197,12 @@ def build_app(): def apply_runtime_description_enrichments(spec: dict) -> dict: """Document runtime branches that the pinned route metadata omits.""" + config_example = spec["paths"]["/config"]["get"]["responses"]["200"]["content"]["application/json"][ + "example" + ] + assert config_example.get("id") == "demo" and "os_id" not in config_example + config_example["os_id"] = config_example.pop("id") + delete_component = spec["paths"]["/components/{component_id}"]["delete"] assert delete_component["description"] == "Delete a component by ID." delete_component["description"] = ( @@ -209,6 +216,30 @@ def apply_runtime_description_enrichments(spec: dict) -> dict: "Stream resumption is unavailable for remote and factory workflows. " "Non-admin callers must provide `session_id`." ) + + fork_response_schema = { + "properties": { + "session_id": { + "type": "string", + "title": "Session Id", + "description": "ID of the new independent session.", + }, + "forked_from_session_id": { + "type": "string", + "title": "Forked From Session Id", + "description": "ID of the source session.", + }, + }, + "type": "object", + "required": ["session_id", "forked_from_session_id"], + "title": "ForkSessionResponse", + } + for component in ("agents", "teams"): + response_schema = spec["paths"][f"/{component}/{{{component[:-1]}_id}}/sessions/{{session_id}}/fork"]["post"][ + "responses" + ]["200"]["content"]["application/json"]["schema"] + assert response_schema == {} + response_schema.update(deepcopy(fork_response_schema)) return spec @@ -220,6 +251,9 @@ def preserve_curated_slack_metadata(spec: dict) -> dict: "/slack/interactions": ("description", "parameters", "requestBody"), } for path, names in fields.items(): + if path not in spec["paths"]: + NOTES.append(f"curated Slack metadata: skipped {path} (Slack interface excluded)") + continue current_post = spec["paths"][path]["post"] curated_post = old["paths"][path]["post"] for name in names: From e6c1ef7f13d8a1211aa4d3ae854cab2f8a4489c3 Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 03:51:10 +0100 Subject: [PATCH 11/47] docs: stabilize remote example titles --- scripts/examples_sync/apply_oneoffs.py | 1 + scripts/examples_sync/generate.py | 1 + 2 files changed, 2 insertions(+) diff --git a/scripts/examples_sync/apply_oneoffs.py b/scripts/examples_sync/apply_oneoffs.py index d04fbd13c..52249356c 100644 --- a/scripts/examples_sync/apply_oneoffs.py +++ b/scripts/examples_sync/apply_oneoffs.py @@ -114,6 +114,7 @@ } TITLE_OVERRIDES = { + "examples/agent-os/remote/remote-agent": "Remote Agent", "examples/agent-os/remote/remote-team": "Remote Team", "examples/agent-os/rbac/asymmetric/workos-byot": "WorkOS BYOT", "examples/agents/tools/tools-with-literal-type-param": "Tools with Literal Type Parameters", diff --git a/scripts/examples_sync/generate.py b/scripts/examples_sync/generate.py index aaa05cfc5..1edc05336 100644 --- a/scripts/examples_sync/generate.py +++ b/scripts/examples_sync/generate.py @@ -508,6 +508,7 @@ # Titles the docstring cannot yield in docs voice, keyed by docs slug. # Consulted at render time, before description/intro derivation. TITLE_OVERRIDES = { + "examples/agent-os/remote/remote-agent": "Remote Agent", "examples/agent-os/remote/remote-team": "Remote Team", "examples/agent-os/background-tasks/background-hooks-team": "Background Hooks Team", "examples/agent-os/background-tasks/background-hooks-workflow": "Background Hooks Workflow", From 176204b4f6555aa40d000808a81b3c684c8a4414 Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 04:35:35 +0100 Subject: [PATCH 12/47] docs: repair stale generated example guidance --- .../client/continue-run-sse-reconnect.mdx | 4 +++ .../team/confirmation-required.mdx | 4 +++ .../team/external-tool-execution.mdx | 4 +++ .../team/team-tool-confirmation.mdx | 4 +++ .../team/user-input-required.mdx | 4 +++ examples/agent-os/remote/remote-adk-agent.mdx | 4 +++ .../background-execution-structured.mdx | 4 +++ .../agents/advanced/background-execution.mdx | 4 +++ .../advanced/custom-cancellation-manager.mdx | 4 +++ examples/models/anthropic/memory.mdx | 4 +++ examples/models/cohere/memory.mdx | 4 +++ examples/models/groq/image-agent.mdx | 2 +- examples/models/lmstudio/memory.mdx | 4 +++ examples/models/meta/llama-openai/memory.mdx | 4 +++ examples/models/meta/llama/memory.mdx | 4 +++ examples/models/mistral/memory.mdx | 4 +++ examples/models/ollama/chat/memory.mdx | 4 +++ ...ess-memories-in-memory-completed-event.mdx | 4 +++ examples/models/openai/responses/memory.mdx | 4 +++ examples/models/perplexity/memory.mdx | 4 +++ examples/models/vertexai/claude/memory.mdx | 4 +++ .../models/groq/deepseek-plus-claude.mdx | 2 +- examples/reasoning/models/groq/or-9-9.mdx | 2 +- .../tools/groq-llama-finance-agent.mdx | 2 +- .../storage/firestore/firestore-for-agent.mdx | 4 +++ .../in-memory/in-memory-storage-for-team.mdx | 4 +++ .../async-mongodb-for-workflow.mdx | 4 +++ .../async-postgres-for-team.mdx | 4 +++ .../storage/postgres/postgres-for-team.mdx | 4 +++ .../singlestore/singlestore-for-team.mdx | 4 +++ .../async-sqlite/async-sqlite-for-team.mdx | 4 +++ .../async-sqlite-for-workflow.mdx | 4 +++ .../storage/surrealdb/surrealdb-for-team.mdx | 4 +++ .../surrealdb/surrealdb-for-workflow.mdx | 4 +++ examples/tools/mcp/stagehand.mdx | 4 +++ scripts/examples_sync/generate.py | 29 +++++++++++++++++-- 36 files changed, 155 insertions(+), 6 deletions(-) diff --git a/examples/agent-os/client/continue-run-sse-reconnect.mdx b/examples/agent-os/client/continue-run-sse-reconnect.mdx index 660a2bf6a..e3c1f1e59 100644 --- a/examples/agent-os/client/continue-run-sse-reconnect.mdx +++ b/examples/agent-os/client/continue-run-sse-reconnect.mdx @@ -6,6 +6,10 @@ source: cookbook/05_agent_os/client/12_continue_run_sse_reconnect.py Tests SSE stream reconnection for agent continue-run (HITL) scenarios. When an agent run pauses (e.g., tool requires approval), the client calls /continue with background=True to resume in a detached task that survives client disconnections. Events are buffered for reconnection via /resume. + + This example's source docstring names a removed cookbook path: `cookbook/05_agent_os/human_in_the_loop/agent_tool_requires_confirmation.py`. Follow the generated Run step below. + + ```python continue_run_sse_reconnect.py """ Continue Run SSE Reconnection diff --git a/examples/agent-os/human-in-the-loop/team/confirmation-required.mdx b/examples/agent-os/human-in-the-loop/team/confirmation-required.mdx index 9334e0f48..7ad6c2659 100644 --- a/examples/agent-os/human-in-the-loop/team/confirmation-required.mdx +++ b/examples/agent-os/human-in-the-loop/team/confirmation-required.mdx @@ -6,6 +6,10 @@ source: cookbook/05_agent_os/human_in_the_loop/team/confirmation_required.py AgentOS equivalent of cookbook/03_teams/20_human_in_the_loop/confirmation_required.py + + This example's source docstring names a removed cookbook path: `cookbook/05_agent_os/hitl/confirmation_required.py`. Follow the generated Run step below. + + ```python confirmation_required.py """AgentOS HITL: Confirmation Required diff --git a/examples/agent-os/human-in-the-loop/team/external-tool-execution.mdx b/examples/agent-os/human-in-the-loop/team/external-tool-execution.mdx index dcff72ddc..7b01e759f 100644 --- a/examples/agent-os/human-in-the-loop/team/external-tool-execution.mdx +++ b/examples/agent-os/human-in-the-loop/team/external-tool-execution.mdx @@ -6,6 +6,10 @@ source: cookbook/05_agent_os/human_in_the_loop/team/external_tool_execution.py AgentOS equivalent of cookbook/03_teams/20_human_in_the_loop/external_tool_execution.py + + This example's source docstring names a removed cookbook path: `cookbook/05_agent_os/hitl/external_tool_execution.py`. Follow the generated Run step below. + + ```python external_tool_execution.py """AgentOS HITL: External Tool Execution diff --git a/examples/agent-os/human-in-the-loop/team/team-tool-confirmation.mdx b/examples/agent-os/human-in-the-loop/team/team-tool-confirmation.mdx index 6c4ada84a..8d6bd309c 100644 --- a/examples/agent-os/human-in-the-loop/team/team-tool-confirmation.mdx +++ b/examples/agent-os/human-in-the-loop/team/team-tool-confirmation.mdx @@ -6,6 +6,10 @@ source: cookbook/05_agent_os/human_in_the_loop/team/team_tool_confirmation.py AgentOS equivalent of cookbook/03_teams/20_human_in_the_loop/team_tool_confirmation.py + + This example's source docstring names a removed cookbook path: `cookbook/05_agent_os/hitl/team_tool_confirmation.py`. Follow the generated Run step below. + + ```python team_tool_confirmation.py """AgentOS HITL: Team-Level Tool Confirmation diff --git a/examples/agent-os/human-in-the-loop/team/user-input-required.mdx b/examples/agent-os/human-in-the-loop/team/user-input-required.mdx index cb7d8aabc..c444f26fd 100644 --- a/examples/agent-os/human-in-the-loop/team/user-input-required.mdx +++ b/examples/agent-os/human-in-the-loop/team/user-input-required.mdx @@ -6,6 +6,10 @@ source: cookbook/05_agent_os/human_in_the_loop/team/user_input_required.py AgentOS equivalent of cookbook/03_teams/20_human_in_the_loop/user_input_required.py + + This example's source docstring names a removed cookbook path: `cookbook/05_agent_os/hitl/user_input_required.py`. Follow the generated Run step below. + + ```python user_input_required.py """AgentOS HITL: User Input Required diff --git a/examples/agent-os/remote/remote-adk-agent.mdx b/examples/agent-os/remote/remote-adk-agent.mdx index 2fc2b3245..05383d25a 100644 --- a/examples/agent-os/remote/remote-adk-agent.mdx +++ b/examples/agent-os/remote/remote-adk-agent.mdx @@ -6,6 +6,10 @@ source: cookbook/05_agent_os/remote/04_remote_adk_agent.py Example demonstrating how to connect to a remote Google ADK agent. + + This example's source docstring names a removed cookbook path: `cookbook/06_agent_os/remote/adk_server.py`. Follow the generated Run step below. + + ```python remote_adk_agent.py """ Example demonstrating how to connect to a remote Google ADK agent. diff --git a/examples/agents/advanced/background-execution-structured.mdx b/examples/agents/advanced/background-execution-structured.mdx index d0e752d32..8ff69fc21 100644 --- a/examples/agents/advanced/background-execution-structured.mdx +++ b/examples/agents/advanced/background-execution-structured.mdx @@ -4,6 +4,10 @@ description: "Example demonstrating background execution with structured output. source: cookbook/02_agents/14_advanced/background_execution_structured.py --- + + This example's source docstring names a removed cookbook path: `cookbook/02_agents/other/background_execution_structured.py`. Follow the generated Run step below. + + ```python background_execution_structured.py """ Example demonstrating background execution with structured output. diff --git a/examples/agents/advanced/background-execution.mdx b/examples/agents/advanced/background-execution.mdx index ca0f9d04f..959448a9a 100644 --- a/examples/agents/advanced/background-execution.mdx +++ b/examples/agents/advanced/background-execution.mdx @@ -6,6 +6,10 @@ source: cookbook/02_agents/14_advanced/background_execution.py Example demonstrating background execution with polling and cancellation. + + This example's source docstring names a removed cookbook path: `cookbook/02_agents/other/background_execution.py`. Follow the generated Run step below. + + ```python background_execution.py """ Example demonstrating background execution with polling and cancellation. diff --git a/examples/agents/advanced/custom-cancellation-manager.mdx b/examples/agents/advanced/custom-cancellation-manager.mdx index 79bd4717c..4bae2f9d5 100644 --- a/examples/agents/advanced/custom-cancellation-manager.mdx +++ b/examples/agents/advanced/custom-cancellation-manager.mdx @@ -4,6 +4,10 @@ description: "Extend BaseRunCancellationManager to implement your own cancellati source: cookbook/02_agents/14_advanced/custom_cancellation_manager.py --- + + This example's source docstring names a removed cookbook path: `cookbook/02_agents/other/custom_cancellation_manager.py`. Follow the generated Run step below. + + ```python custom_cancellation_manager.py """ Example demonstrating a custom cancellation manager. diff --git a/examples/models/anthropic/memory.mdx b/examples/models/anthropic/memory.mdx index 9554c284b..4154637e3 100644 --- a/examples/models/anthropic/memory.mdx +++ b/examples/models/anthropic/memory.mdx @@ -4,6 +4,10 @@ description: "Store Claude agent memories and session summaries in Postgres acro source: cookbook/90_models/anthropic/memory.py --- + + This example's source docstring names a removed cookbook path: `cookbook/92_models/anthropic/memory.py`. Follow the generated Run step below. + + ```python memory.py """ This recipe shows how to use personalized memories and summaries in an agent. diff --git a/examples/models/cohere/memory.mdx b/examples/models/cohere/memory.mdx index ff5718467..9387d5a77 100644 --- a/examples/models/cohere/memory.mdx +++ b/examples/models/cohere/memory.mdx @@ -4,6 +4,10 @@ description: "Use personalized memories and summaries in an agent." source: cookbook/90_models/cohere/memory.py --- + + This example's source docstring names a removed cookbook path: `cookbook/92_models/cohere/memory.py`. Follow the generated Run step below. + + ```python memory.py """ This recipe shows how to use personalized memories and summaries in an agent. diff --git a/examples/models/groq/image-agent.mdx b/examples/models/groq/image-agent.mdx index be4701f34..eac541708 100644 --- a/examples/models/groq/image-agent.mdx +++ b/examples/models/groq/image-agent.mdx @@ -5,7 +5,7 @@ source: cookbook/90_models/groq/image_agent.py --- - For free and developer tiers, Groq will shut down `meta-llama/llama-4-scout-17b-16e-instruct` on July 17, 2026. Replace it with the vision-capable `qwen/qwen3.6-27b` before that date. See [Groq deprecations](https://console.groq.com/docs/deprecations). + Groq shut down `meta-llama/llama-4-scout-17b-16e-instruct` for free and developer tiers on July 17, 2026. Replace it with the vision-capable `qwen/qwen3.6-27b`. See [Groq deprecations](https://console.groq.com/docs/deprecations). ```python image_agent.py diff --git a/examples/models/lmstudio/memory.mdx b/examples/models/lmstudio/memory.mdx index 54e635b9f..da7c5d690 100644 --- a/examples/models/lmstudio/memory.mdx +++ b/examples/models/lmstudio/memory.mdx @@ -4,6 +4,10 @@ description: "Store and retrieve personalized user memories and conversation sum source: cookbook/90_models/lmstudio/memory.py --- + + This example's source docstring names a removed cookbook path: `cookbook/92_models/lmstudio/memory.py`. Follow the generated Run step below. + + ```python memory.py """ This recipe shows how to use personalized memories and summaries in an agent. diff --git a/examples/models/meta/llama-openai/memory.mdx b/examples/models/meta/llama-openai/memory.mdx index 29816aca4..15fbc2b26 100644 --- a/examples/models/meta/llama-openai/memory.mdx +++ b/examples/models/meta/llama-openai/memory.mdx @@ -4,6 +4,10 @@ description: "Use personalized memories and summaries in an agent." source: cookbook/90_models/meta/llama_openai/memory.py --- + + This example's source docstring names a removed cookbook path: `cookbook/agents/personalized_memories_and_summaries.py`. Follow the generated Run step below. + + ```python memory.py """ This recipe shows how to use personalized memories and summaries in an agent. diff --git a/examples/models/meta/llama/memory.mdx b/examples/models/meta/llama/memory.mdx index f05b3f03c..dffdff166 100644 --- a/examples/models/meta/llama/memory.mdx +++ b/examples/models/meta/llama/memory.mdx @@ -4,6 +4,10 @@ description: "Use personalized memories and summaries in an agent." source: cookbook/90_models/meta/llama/memory.py --- + + This example's source docstring names a removed cookbook path: `cookbook/agents/personalized_memories_and_summaries.py`. Follow the generated Run step below. + + ```python memory.py """ This recipe shows how to use personalized memories and summaries in an agent. diff --git a/examples/models/mistral/memory.mdx b/examples/models/mistral/memory.mdx index 7ac687094..02954a284 100644 --- a/examples/models/mistral/memory.mdx +++ b/examples/models/mistral/memory.mdx @@ -4,6 +4,10 @@ description: "Persist user memories and session summaries for a Mistral Large ag source: cookbook/90_models/mistral/memory.py --- + + This example's source docstring names a removed cookbook path: `cookbook/92_models/mistral/memory.py`. Follow the generated Run step below. + + ```python memory.py """ This recipe shows how to use personalized memories and summaries in an agent. diff --git a/examples/models/ollama/chat/memory.mdx b/examples/models/ollama/chat/memory.mdx index 457a32b3d..45a7cee03 100644 --- a/examples/models/ollama/chat/memory.mdx +++ b/examples/models/ollama/chat/memory.mdx @@ -4,6 +4,10 @@ description: "Persist user memories and session summaries in Postgres with a loc source: cookbook/90_models/ollama/chat/memory.py --- + + This example's source docstring names a removed cookbook path: `cookbook/92_models/ollama/memory.py`. Follow the generated Run step below. + + ```python memory.py """ This recipe shows how to use personalized memories and summaries in an agent. diff --git a/examples/models/openai/chat/access-memories-in-memory-completed-event.mdx b/examples/models/openai/chat/access-memories-in-memory-completed-event.mdx index 1e76de51a..1c4af3fca 100644 --- a/examples/models/openai/chat/access-memories-in-memory-completed-event.mdx +++ b/examples/models/openai/chat/access-memories-in-memory-completed-event.mdx @@ -4,6 +4,10 @@ description: "Stream an agent run with stream_events=True and read user memories source: cookbook/90_models/openai/chat/access_memories_in_memory_completed_event.py --- + + This example's source docstring names a removed cookbook path: `cookbook/11_models/openai/chat/access_memories_in_memory_completed_event.py`. Follow the generated Run step below. + + ```python access_memories_in_memory_completed_event.py """ Test script to verify memory events are working correctly. diff --git a/examples/models/openai/responses/memory.mdx b/examples/models/openai/responses/memory.mdx index edb2bf934..f1b312bdb 100644 --- a/examples/models/openai/responses/memory.mdx +++ b/examples/models/openai/responses/memory.mdx @@ -4,6 +4,10 @@ description: "Store user memories and session summaries in Postgres while chatti source: cookbook/90_models/openai/responses/memory.py --- + + This example's source docstring names a removed cookbook path: `cookbook/agents/personalized_memories_and_summaries.py`. Follow the generated Run step below. + + ```python memory.py """ This recipe shows how to use personalized memories and summaries in an agent. diff --git a/examples/models/perplexity/memory.mdx b/examples/models/perplexity/memory.mdx index ea748ea26..b0f3e217c 100644 --- a/examples/models/perplexity/memory.mdx +++ b/examples/models/perplexity/memory.mdx @@ -4,6 +4,10 @@ description: "Persist Perplexity sonar-pro user memories and session summaries i source: cookbook/90_models/perplexity/memory.py --- + + This example's source docstring names a removed cookbook path: `cookbook/agents/personalized_memories_and_summaries.py`. Follow the generated Run step below. + + ```python memory.py """ This recipe shows how to use personalized memories and summaries in an agent. diff --git a/examples/models/vertexai/claude/memory.mdx b/examples/models/vertexai/claude/memory.mdx index 34c8586b0..26d4be2a0 100644 --- a/examples/models/vertexai/claude/memory.mdx +++ b/examples/models/vertexai/claude/memory.mdx @@ -4,6 +4,10 @@ description: "Store personalized memories and session summaries with Claude on V source: cookbook/90_models/vertexai/claude/memory.py --- + + This example's source docstring names a removed cookbook path: `cookbook/92_models/anthropic/memory.py`. Follow the generated Run step below. + + ```python memory.py """ This recipe shows how to use personalized memories and summaries in an agent. diff --git a/examples/reasoning/models/groq/deepseek-plus-claude.mdx b/examples/reasoning/models/groq/deepseek-plus-claude.mdx index e7effe019..5abf989e2 100644 --- a/examples/reasoning/models/groq/deepseek-plus-claude.mdx +++ b/examples/reasoning/models/groq/deepseek-plus-claude.mdx @@ -5,7 +5,7 @@ source: cookbook/10_reasoning/models/groq/deepseek_plus_claude.py --- - For free and developer tiers, Groq will shut down `qwen/qwen3-32b` on July 17, 2026. Replace it with `qwen/qwen3.6-27b` before that date. See [Groq deprecations](https://console.groq.com/docs/deprecations). + Groq shut down `qwen/qwen3-32b` for free and developer tiers on July 17, 2026. Replace it with `qwen/qwen3.6-27b`. See [Groq deprecations](https://console.groq.com/docs/deprecations). ```python deepseek_plus_claude.py diff --git a/examples/reasoning/models/groq/or-9-9.mdx b/examples/reasoning/models/groq/or-9-9.mdx index ebf0eb454..41fd893af 100644 --- a/examples/reasoning/models/groq/or-9-9.mdx +++ b/examples/reasoning/models/groq/or-9-9.mdx @@ -5,7 +5,7 @@ source: cookbook/10_reasoning/models/groq/9_11_or_9_9.py --- - For free and developer tiers, Groq will shut down `qwen/qwen3-32b` on July 17, 2026. Replace it with `qwen/qwen3.6-27b` before that date. See [Groq deprecations](https://console.groq.com/docs/deprecations). + Groq shut down `qwen/qwen3-32b` for free and developer tiers on July 17, 2026. Replace it with `qwen/qwen3.6-27b`. See [Groq deprecations](https://console.groq.com/docs/deprecations). ```python 11_or_9_9.py diff --git a/examples/reasoning/tools/groq-llama-finance-agent.mdx b/examples/reasoning/tools/groq-llama-finance-agent.mdx index b66ea9a97..dc388f1a2 100644 --- a/examples/reasoning/tools/groq-llama-finance-agent.mdx +++ b/examples/reasoning/tools/groq-llama-finance-agent.mdx @@ -5,7 +5,7 @@ source: cookbook/10_reasoning/tools/groq_llama_finance_agent.py --- - For free and developer tiers, Groq will shut down `meta-llama/llama-4-scout-17b-16e-instruct` on July 17, 2026. Replace it with the vision-capable `qwen/qwen3.6-27b` before that date. See [Groq deprecations](https://console.groq.com/docs/deprecations). + Groq shut down `meta-llama/llama-4-scout-17b-16e-instruct` for free and developer tiers on July 17, 2026. Replace it with the vision-capable `qwen/qwen3.6-27b`. See [Groq deprecations](https://console.groq.com/docs/deprecations). ```python groq_llama_finance_agent.py diff --git a/examples/storage/firestore/firestore-for-agent.mdx b/examples/storage/firestore/firestore-for-agent.mdx index 7f495aa66..14e0f999a 100644 --- a/examples/storage/firestore/firestore-for-agent.mdx +++ b/examples/storage/firestore/firestore-for-agent.mdx @@ -4,6 +4,10 @@ description: "Store agent sessions in a Firestore database." source: cookbook/06_storage/firestore/firestore_for_agent.py --- + + This example's source docstring names a removed cookbook path: `cookbook/storage/firestore_storage.py`. Follow the generated Run step below. + + ```python firestore_for_agent.py """ This recipe shows how to store agent sessions in a Firestore database. diff --git a/examples/storage/in-memory/in-memory-storage-for-team.mdx b/examples/storage/in-memory/in-memory-storage-for-team.mdx index f2ecb41b6..903c7164a 100644 --- a/examples/storage/in-memory/in-memory-storage-for-team.mdx +++ b/examples/storage/in-memory/in-memory-storage-for-team.mdx @@ -4,6 +4,10 @@ description: "HackerNews research team stores sessions in an in-memory database source: cookbook/06_storage/in_memory/in_memory_storage_for_team.py --- + + This example's source docstring names a removed cookbook path: `cookbook/storage/in_memory_storage/in_memory_storage_for_team.py`. Follow the generated Run step below. + + ```python in_memory_storage_for_team.py """ 1. Run: `uv pip install openai ddgs newspaper4k lxml_html_clean agno` to install the dependencies diff --git a/examples/storage/mongo/async-mongo/async-mongodb-for-workflow.mdx b/examples/storage/mongo/async-mongo/async-mongodb-for-workflow.mdx index ce260aa42..51f0b8230 100644 --- a/examples/storage/mongo/async-mongo/async-mongodb-for-workflow.mdx +++ b/examples/storage/mongo/async-mongo/async-mongodb-for-workflow.mdx @@ -4,6 +4,10 @@ description: "Two-step content workflow stores its sessions in MongoDB through A source: cookbook/06_storage/mongo/async_mongo/async_mongodb_for_workflow.py --- + + This example's source docstring names a removed cookbook path: `cookbook/db/mongo/async_mongo/async_mongodb_for_workflow.py`. Follow the generated Run step below. + + ````python async_mongodb_for_workflow.py """ Run: `pip install openai ddgs pymongo motor` to install dependencies diff --git a/examples/storage/postgres/async-postgres/async-postgres-for-team.mdx b/examples/storage/postgres/async-postgres/async-postgres-for-team.mdx index 02e61d466..f84ff10e8 100644 --- a/examples/storage/postgres/async-postgres/async-postgres-for-team.mdx +++ b/examples/storage/postgres/async-postgres/async-postgres-for-team.mdx @@ -4,6 +4,10 @@ description: "HackerNews team persists sessions in Postgres using AsyncPostgresD source: cookbook/06_storage/postgres/async_postgres/async_postgres_for_team.py --- + + This example's source docstring names a removed cookbook path: `cookbook/db/async_postgres/async_postgres_for_team.py`. Follow the generated Run step below. + + ```python async_postgres_for_team.py """ 1. Run: `uv pip install openai ddgs newspaper4k lxml_html_clean agno` to install the dependencies diff --git a/examples/storage/postgres/postgres-for-team.mdx b/examples/storage/postgres/postgres-for-team.mdx index 829b23a41..0acbb4543 100644 --- a/examples/storage/postgres/postgres-for-team.mdx +++ b/examples/storage/postgres/postgres-for-team.mdx @@ -4,6 +4,10 @@ description: "HackerNews research team stores sessions in Postgres with a struct source: cookbook/06_storage/postgres/postgres_for_team.py --- + + This example's source docstring names a removed cookbook path: `cookbook/storage/postgres_storage/postgres_storage_for_team.py`. Follow the generated Run step below. + + ```python postgres_for_team.py """ 1. Run: `uv pip install openai ddgs newspaper4k lxml_html_clean agno` to install the dependencies diff --git a/examples/storage/singlestore/singlestore-for-team.mdx b/examples/storage/singlestore/singlestore-for-team.mdx index a044b8848..8293207bc 100644 --- a/examples/storage/singlestore/singlestore-for-team.mdx +++ b/examples/storage/singlestore/singlestore-for-team.mdx @@ -4,6 +4,10 @@ description: "HackerNews team persists its sessions in SingleStore configured fr source: cookbook/06_storage/singlestore/singlestore_for_team.py --- + + This example's source docstring names a removed cookbook path: `cookbook/storage/singlestore_storage/singlestore_storage_for_team.py`. Follow the generated Run step below. + + ```python singlestore_for_team.py """ 1. Run: `uv pip install openai ddgs newspaper4k lxml_html_clean agno` to install the dependencies diff --git a/examples/storage/sqlite/async-sqlite/async-sqlite-for-team.mdx b/examples/storage/sqlite/async-sqlite/async-sqlite-for-team.mdx index 56dc3f841..6dfc07f21 100644 --- a/examples/storage/sqlite/async-sqlite/async-sqlite-for-team.mdx +++ b/examples/storage/sqlite/async-sqlite/async-sqlite-for-team.mdx @@ -4,6 +4,10 @@ description: "HackerNews team persists sessions in a SQLite file using AsyncSqli source: cookbook/06_storage/sqlite/async_sqlite/async_sqlite_for_team.py --- + + This example's source docstring names a removed cookbook path: `cookbook/db/async_sqlite/async_sqlite_for_team.py`. Follow the generated Run step below. + + ```python async_sqlite_for_team.py """ 1. Run: `uv pip install openai ddgs newspaper4k lxml_html_clean agno sqlalchemy aiosqlite` to install the dependencies diff --git a/examples/storage/sqlite/async-sqlite/async-sqlite-for-workflow.mdx b/examples/storage/sqlite/async-sqlite/async-sqlite-for-workflow.mdx index e3f9ba5fb..7cce5cd19 100644 --- a/examples/storage/sqlite/async-sqlite/async-sqlite-for-workflow.mdx +++ b/examples/storage/sqlite/async-sqlite/async-sqlite-for-workflow.mdx @@ -4,6 +4,10 @@ description: "Two-step content workflow stores its sessions in SQLite through As source: cookbook/06_storage/sqlite/async_sqlite/async_sqlite_for_workflow.py --- + + This example's source docstring names a removed cookbook path: `cookbook/db/async_sqlite/async_sqlite_for_workflow.py`. Follow the generated Run step below. + + ```python async_sqlite_for_workflow.py """ Run: `pip install openai ddgs sqlalchemy aiosqlite` to install dependencies diff --git a/examples/storage/surrealdb/surrealdb-for-team.mdx b/examples/storage/surrealdb/surrealdb-for-team.mdx index 3fed32f39..221e2af3a 100644 --- a/examples/storage/surrealdb/surrealdb-for-team.mdx +++ b/examples/storage/surrealdb/surrealdb-for-team.mdx @@ -4,6 +4,10 @@ description: "Persist a HackerNews research team's sessions in SurrealDB with st source: cookbook/06_storage/surrealdb/surrealdb_for_team.py --- + + This example's source docstring names a removed cookbook path: `cookbook/db/surrealdb/surrealdb_for_team.py`. Follow the generated Run step below. + + ````python surrealdb_for_team.py r""" Run SurrealDB in a container before running this script diff --git a/examples/storage/surrealdb/surrealdb-for-workflow.mdx b/examples/storage/surrealdb/surrealdb-for-workflow.mdx index cba06ced1..26600a7ef 100644 --- a/examples/storage/surrealdb/surrealdb-for-workflow.mdx +++ b/examples/storage/surrealdb/surrealdb-for-workflow.mdx @@ -4,6 +4,10 @@ description: "Persist workflow sessions in SurrealDB for a two-step research and source: cookbook/06_storage/surrealdb/surrealdb_for_workflow.py --- + + This example's source docstring names a removed cookbook path: `cookbook/db/surrealdb/surrealdb_for_workflow.py`. Follow the generated Run step below. + + ````python surrealdb_for_workflow.py r""" Run SurrealDB in a container before running this script diff --git a/examples/tools/mcp/stagehand.mdx b/examples/tools/mcp/stagehand.mdx index 3e0ca2fee..eaf94d3db 100644 --- a/examples/tools/mcp/stagehand.mdx +++ b/examples/tools/mcp/stagehand.mdx @@ -6,6 +6,10 @@ source: cookbook/91_tools/mcp/stagehand.py Scrape Hacker News headlines and top comments into a structured reader's digest with the Stagehand MCP server. + + This example's source docstring names a removed cookbook path: `cookbook/90_tools/mcp/stagehand.py`. Follow the generated Run step below. + + ```python stagehand.py """ Stagehand MCP Agent - Hacker News Reader's Digest diff --git a/scripts/examples_sync/generate.py b/scripts/examples_sync/generate.py index 1edc05336..22449f88f 100644 --- a/scripts/examples_sync/generate.py +++ b/scripts/examples_sync/generate.py @@ -657,12 +657,12 @@ "Replace `llama-3.3-70b-versatile` with `openai/gpt-oss-120b` in the saved file.", ), "qwen/qwen3-32b": ( - "For free and developer tiers, Groq will shut down `qwen/qwen3-32b` on July 17, 2026. Replace it with `qwen/qwen3.6-27b` before that date.", + "Groq shut down `qwen/qwen3-32b` for free and developer tiers on July 17, 2026. Replace it with `qwen/qwen3.6-27b`.", "Replace Qwen3 32B", "Replace `qwen/qwen3-32b` with `qwen/qwen3.6-27b` in the saved file.", ), "meta-llama/llama-4-scout-17b-16e-instruct": ( - "For free and developer tiers, Groq will shut down `meta-llama/llama-4-scout-17b-16e-instruct` on July 17, 2026. Replace it with the vision-capable `qwen/qwen3.6-27b` before that date.", + "Groq shut down `meta-llama/llama-4-scout-17b-16e-instruct` for free and developer tiers on July 17, 2026. Replace it with the vision-capable `qwen/qwen3.6-27b`.", "Replace Llama 4 Scout", "Replace `meta-llama/llama-4-scout-17b-16e-instruct` with `qwen/qwen3.6-27b` in the saved file.", ), @@ -4769,6 +4769,19 @@ def source_link(cookbook_rel: str, render_override: dict[str, object], agno_root return f"https://github.com/agno-agi/agno/blob/{ref}/{cookbook_rel}" +def missing_docstring_cookbook_paths(docstring: str, agno_root: Path) -> list[str]: + """Return cookbook run paths named by the docstring that no longer exist.""" + paths = sorted( + set( + re.findall( + r"\bpython\s+`?(cookbook/[A-Za-z0-9_./-]+\.py)`?", + docstring, + ) + ) + ) + return [path for path in paths if not (agno_root / path).is_file()] + + def render( source_path: Path, cookbook_rel: str, src: str, agno_root: Path, slug: str | None = None ) -> str: @@ -4792,6 +4805,18 @@ def render( all_srcs = [src] + [s for _, s in sibling_srcs] req = derive_requirements(all_srcs, agno_root, skip_modules) render_override = apply_source_render_override(req, cookbook_rel, all_srcs) + missing_run_paths = missing_docstring_cookbook_paths(docstring or "", agno_root) + if missing_run_paths and not render_override.get("pre_code_warning"): + formatted_paths = [f"`{path}`" for path in missing_run_paths] + if len(formatted_paths) == 1: + path_text = formatted_paths[0] + warning = f"This example's source docstring names a removed cookbook path: {path_text}." + else: + path_text = ", ".join(formatted_paths[:-1]) + f", and {formatted_paths[-1]}" + warning = f"This example's source docstring names removed cookbook paths: {path_text}." + render_override["pre_code_warning"] = ( + f"{warning} Follow the generated Run step below." + ) full_source_url = source_link(cookbook_rel, render_override, agno_root) if "intro_override" in render_override: intro_override = render_override["intro_override"] From 078511a0ee6e05a1c2b302fbf9d05fca3caeaa62 Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 04:35:41 +0100 Subject: [PATCH 13/47] docs: align OpenAPI with v2.7.4 runtime branches --- reference-api/openapi.json | 2 +- reference-api/openapi.yaml | 143 ++++++++++++++++++---------- scripts/make_openapi.py | 188 ++++++++++++++++++++++++++++++++++++- 3 files changed, 283 insertions(+), 50 deletions(-) diff --git a/reference-api/openapi.json b/reference-api/openapi.json index b1e9ce12b..37e47aa1e 100644 --- a/reference-api/openapi.json +++ b/reference-api/openapi.json @@ -1 +1 @@ -{"openapi":"3.1.0","info":{"title":"Agno API Reference","description":"The all-in-one, private, secure agent platform that runs in your cloud.","version":"2.7.4"},"paths":{"/":{"get":{"tags":["Home"],"summary":"API Information","description":"Get basic information about this AgentOS API instance, including:\n\n- API metadata and version\n- Available capabilities overview\n- Links to key endpoints and documentation","operationId":"get_api_info","responses":{"200":{"description":"API information retrieved successfully","content":{"application/json":{"schema":{},"examples":{"home":{"summary":"Example home response","value":{"name":"AgentOS API","id":"demo-os","version":"1.0.0"}}}}}}}}},"/health":{"get":{"tags":["Health"],"summary":"Health Check","description":"Check the health status of the AgentOS API. Returns a simple status indicator.","operationId":"health_check","responses":{"200":{"description":"API is healthy and operational","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"},"example":{"status":"ok","instantiated_at":"2025-06-10T12:00:00Z"}}}}}}},"/info":{"get":{"tags":["Core"],"summary":"Get OS Info","description":"Return lightweight, unauthenticated metadata about this AgentOS instance.","operationId":"get_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoResponse"}}}}}}},"/config":{"get":{"tags":["Core"],"summary":"Get OS Configuration","description":"Retrieve the complete configuration of the AgentOS instance, including:\n\n- Available models and databases\n- Registered agents, teams, and workflows\n- Chat, session, memory, knowledge, and evaluation configurations\n- Available interfaces and their routes","operationId":"get_config","responses":{"200":{"description":"OS configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"},"example":{"id":"demo","description":"Example AgentOS configuration","available_models":[],"databases":["9c884dc4-9066-448c-9074-ef49ec7eb73c"],"session":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Sessions"}}]},"metrics":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Metrics"}}]},"memory":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Memory"}}]},"knowledge":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Knowledge"}}]},"evals":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Evals"}}]},"agents":[{"id":"main-agent","name":"Main Agent","db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c"}],"teams":[],"workflows":[],"interfaces":[]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/models":{"get":{"tags":["Core"],"summary":"Get Available Models","description":"Retrieve a list of all unique models currently used by agents and teams in this OS instance. This includes the model ID and provider information for each model.","operationId":"get_models","responses":{"200":{"description":"List of models retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Response Get Models"},"example":[{"id":"gpt-4","provider":"openai"},{"id":"claude-3-sonnet","provider":"anthropic"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}/runs":{"post":{"tags":["Agents"],"summary":"Create Agent Run","description":"Execute an agent with a message and optional media files. Supports both streaming and non-streaming responses.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_agent_run"}}}},"responses":{"200":{"description":"Agent run executed successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"examples":{"event_stream":{"summary":"Example event stream response","value":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Agents"],"summary":"List Agent Runs","description":"List runs for an agent within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_agent_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/cancel":{"post":{"tags":["Agents"],"summary":"Cancel Agent Run","description":"Cancel a currently executing agent run. This will attempt to stop the agent's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/continue":{"post":{"tags":["Agents"],"summary":"Continue Agent Run","description":"Advance a persisted agent run from its current state. Dispatches on the body shape and the persisted run state (see ADR-003 in specs/agno/features/checkpointing/decisions.md).\n\n**Variants:**\n- PAUSED + tools provided → apply HITL tool results, resume\n- PAUSED + resolved admin approval (empty tools) → apply resolution, resume\n- RUNNING / ERROR (no unresolved HITL requirements) → resume from last persisted state\n- COMPLETED + new tools → continue with appended messages\n\n**Tools Parameter:**\nJSON string containing array of tool execution objects with results. Optional — only required when the persisted run has unresolved HITL requirements.","operationId":"continue_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_agent_run"}}}},"responses":{"200":{"description":"Agent run continued successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n"}}},"400":{"description":"Invalid JSON in tools field or invalid tool structure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"403":{"description":"Run has a pending admin approval and cannot be continued by the user yet."}}}},"/agents/{agent_id}/sessions/{session_id}/fork":{"post":{"tags":["Agents"],"summary":"Fork Agent Session","description":"Deep-copy a session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_agent_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents":{"get":{"tags":["Agents"],"summary":"List All Agents","description":"Retrieve a comprehensive list of all agents configured in this OS instance.\n\n**Returns:**\n- Agent metadata (ID, name, description)\n- Model configuration and capabilities\n- Available tools and their configurations\n- Session, knowledge, memory, and reasoning settings\n- Only meaningful (non-default) configurations are included","operationId":"get_agents","responses":{"200":{"description":"List of agents retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentResponse"},"type":"array","title":"Response Get Agents"},"example":[{"id":"main-agent","name":"Main Agent","db_id":"c6bf0644-feb8-4930-a305-380dae5ad6aa","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Details","description":"Retrieve detailed configuration and capabilities of a specific agent.\n\n**Returns comprehensive agent information including:**\n- Model configuration and provider details\n- Complete tool inventory and configurations\n- Session management settings\n- Knowledge base and memory configurations\n- Reasoning capabilities and settings\n- System prompts and response formatting options","operationId":"get_agent","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Agent details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"},"example":{"id":"main-agent","name":"Main Agent","db_id":"9e064c70-6821-4840-a333-ce6230908a70","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Run","description":"Retrieve the status and output of an agent run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Agents"],"summary":"List Agent Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_agent_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Agents"],"summary":"Get Agent Run Checkpoint Snapshot","description":"Return a derived run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_agent_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/resume":{"post":{"tags":["Agents"],"summary":"Resume Agent Run Stream","description":"Resume an SSE stream for an agent run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_agent_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_agent_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"application/json":{"schema":{}},"text/event-stream":{}}},"400":{"description":"Not supported for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs":{"post":{"tags":["Teams"],"summary":"Create Team Run","description":"Execute a team collaboration with multiple agents working together on a task.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_team_run"}}}},"responses":{"200":{"description":"Team run executed successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Teams"],"summary":"List Team Runs","description":"List runs for a team within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_team_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/cancel":{"post":{"tags":["Teams"],"summary":"Cancel Team Run","description":"Cancel a currently executing team run. This will attempt to stop the team's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel team run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/resume":{"post":{"tags":["Teams"],"summary":"Resume Team Run Stream","description":"Resume an SSE stream for a team run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_team_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_team_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"application/json":{"schema":{}},"text/event-stream":{}}},"400":{"description":"Not supported for remote teams","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/continue":{"post":{"tags":["Teams"],"summary":"Continue Team Run","description":"Continue a paused or incomplete team run with updated requirements.\n\n**Use Cases:**\n- Resume execution after tool approval/rejection\n- Provide manual tool execution results\n- Resume after admin approval (requirements can be empty; resolution fetched from DB)\n\n**Requirements Parameter:**\nJSON string containing array of requirement objects with tool execution results.\nCan be empty when an admin-required approval has been resolved.","operationId":"continue_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_team_run"}}}},"responses":{"200":{"description":"Team run continued successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n"}}},"400":{"description":"Invalid JSON in requirements field or invalid requirement structure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"403":{"description":"Run has a pending admin approval and cannot be continued by the user yet."},"409":{"description":"Run is not paused (e.g. run is already running, continued, or errored). Only PAUSED runs can be continued."}}}},"/teams/{team_id}/sessions/{session_id}/fork":{"post":{"tags":["Teams"],"summary":"Fork Team Session","description":"Deep-copy a team session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_team_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams":{"get":{"tags":["Teams"],"summary":"List All Teams","description":"Retrieve a comprehensive list of all teams configured in this OS instance.\n\n**Returns team information including:**\n- Team metadata (ID, name, description, execution mode)\n- Model configuration for team coordination\n- Team member roster with roles and capabilities\n- Knowledge sharing and memory configurations","operationId":"get_teams","responses":{"200":{"description":"List of teams retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamResponse"},"type":"array","title":"Response Get Teams"},"example":[{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"agno_memories","app_url":"/memory/1","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/teams/{team_id}":{"get":{"tags":["Teams"],"summary":"Get Team Details","description":"Retrieve detailed configuration and member information for a specific team.","operationId":"get_team","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"},"example":{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}":{"get":{"tags":["Teams"],"summary":"Get Team Run","description":"Retrieve the status and output of a team run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Teams"],"summary":"List Team Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored team run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_team_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Teams"],"summary":"Get Team Run Checkpoint Snapshot","description":"Return a derived team run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_team_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows":{"get":{"tags":["Workflows"],"summary":"List All Workflows","description":"Retrieve a comprehensive list of all workflows configured in this OS instance.\n\n**Return Information:**\n- Workflow metadata (ID, name, description)\n- Input schema requirements\n- Step sequence and execution flow\n- Associated agents and teams","operationId":"get_workflows","responses":{"200":{"description":"List of workflows retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Response Get Workflows"},"example":[{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/workflows/{workflow_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Details","description":"Retrieve detailed configuration and step information for a specific workflow.","operationId":"get_workflow","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Workflow version to retrieve","title":"Version"},"description":"Workflow version to retrieve"}],"responses":{"200":{"description":"Workflow details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"},"example":{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs":{"post":{"tags":["Workflows"],"summary":"Execute Workflow","description":"Execute a workflow with the provided input data. Workflows can run in streaming or batch mode.\n\n**Execution Modes:**\n- **Streaming (`stream=true`)**: Real-time step-by-step execution updates via SSE\n- **Non-Streaming (`stream=false`)**: Complete workflow execution with final result\n\n**Workflow Execution Process:**\n1. Input validation against workflow schema\n2. Sequential or parallel step execution based on workflow design\n3. Data flow between steps with transformation\n4. Error handling and automatic retries where configured\n5. Final result compilation and response\n\n**Session Management:**\nWorkflows support session continuity for stateful execution across multiple runs.","operationId":"create_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_run"}}}},"responses":{"200":{"description":"Workflow executed successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"400":{"description":"Invalid input data or workflow configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Workflow execution error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"List Workflow Runs","description":"List runs for a workflow within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_workflow_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/continue":{"post":{"tags":["Workflows"],"summary":"Continue Workflow Run","description":"Continue a paused workflow run with resolved requirements.\n\n**Use Cases:**\n- Resume after step-level HITL (confirmation, user input, router selection)\n- Resume after executor-level HITL (agent/team tool confirmation within a step)\n\n**Requirements Parameter:**\nJSON string containing the resolved step requirements.","operationId":"continue_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_workflow_run"}}}},"responses":{"200":{"description":"Workflow run continued successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: StepCompleted\ndata: {\"step_name\": \"step1\"}\n\n"}}},"400":{"description":"Invalid JSON in requirements field","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"409":{"description":"Run is not paused. Only PAUSED runs can be continued."}}}},"/workflows/{workflow_id}/runs/{run_id}/cancel":{"post":{"tags":["Workflows"],"summary":"Cancel Workflow Run","description":"Cancel a currently executing workflow run, stopping all active steps and cleanup.\n**Note:** Complex workflows with multiple parallel steps may take time to fully cancel.","operationId":"cancel_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel workflow run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/resume":{"post":{"tags":["Workflows"],"summary":"Resume Workflow Run Stream","description":"Resume an SSE stream for a workflow run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_workflow_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_workflow_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"application/json":{"schema":{}},"text/event-stream":{}}},"400":{"description":"Stream resumption is unavailable for remote and factory workflows. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Run","description":"Retrieve the status and output of a workflow run. Use this to poll for run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/slack/events":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Receives incoming Slack events (messages, mentions, thread starts).\n\n**URL Verification:** On first setup, Slack sends a `url_verification` challenge. The endpoint echoes back the challenge string.\n\n**Event Processing:** Normal events are acknowledged immediately with `{\"status\": \"ok\"}` and processed in the background. This prevents Slack's 3-second retry timeout.\n\n**Retry Handling:** Events with `X-Slack-Retry-Num` header are duplicates and return 200 without reprocessing.\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Event Subscriptions > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for creating a Slack App or use the [manifest](/agent-os/interfaces/slack/setup#2-create-the-slack-app) for quick setup.\n","operationId":"slack_events_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SlackChallengeResponse"},{"$ref":"#/components/schemas/SlackEventResponse"}],"title":"Response Slack Events Simple Agent"}}}},"400":{"description":"Missing Slack headers"},"403":{"description":"Invalid Slack signature"}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number (present on retried events)"}]}},"/slack/interactions":{"post":{"tags":["Slack"],"summary":"Slack Interactions","description":"Handles Slack interactive components for Human-in-the-Loop (HITL) workflows.\n\n**Supported Actions:**\n- `row_approve` - Approve a pending tool call\n- `row_reject` - Reject a pending tool call\n- `submit_pause` - Submit form data for a paused workflow\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Interactivity & Shortcuts > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for step-by-step instructions or the [HITL guide](/agent-os/interfaces/slack/hitl) for approval workflows.\n","operationId":"slack_interactions_simple_agent","responses":{"200":{"description":"Interaction accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackEventResponse"}}}},"400":{"description":"Malformed interaction payload"},"403":{"description":"Invalid Slack signature"}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"URL-encoded JSON interaction payload (Slack sends interactive component data as a single form field)"}}}}}}}},"/whatsapp/status":{"get":{"tags":["Whatsapp"],"summary":"Status","operationId":"whatsapp_status_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/whatsapp/webhook":{"get":{"tags":["Whatsapp"],"summary":"Whatsapp Verify","description":"Handle WhatsApp webhook verification","operationId":"whatsapp_verify_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["Whatsapp"],"summary":"Whatsapp Webhook","description":"Process incoming WhatsApp messages","operationId":"whatsapp_webhook_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppWebhookResponse"}}}},"403":{"description":"Invalid webhook signature"}}}},"/telegram/status":{"get":{"tags":["Telegram"],"summary":"Telegram Status","operationId":"telegram_status_simple-agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramStatusResponse"}}}}}}},"/telegram/webhook":{"post":{"tags":["Telegram"],"summary":"Telegram Webhook","operationId":"telegram_webhook_simple-agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramWebhookResponse"}}}},"403":{"description":"Invalid webhook secret token"}}}},"/agui":{"post":{"tags":["AGUI"],"summary":"Run Agent","operationId":"run_agent_agui_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/status":{"get":{"tags":["AGUI"],"summary":"Get Status","operationId":"get_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/a2a/agents/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Agent Card","operationId":"get_agent_card_a2a_agents__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Agent","description":"Send a message to an Agno Agent (non-streaming). The Agent is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"run_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request"},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Agent Task","description":"Get the status and result of an agent task by ID.","operationId":"get_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Agent Task","description":"Cancel a running agent task.","operationId":"cancel_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Agent","description":"Stream a message to an Agno Agent (streaming). The Agent is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Streaming response with task updates","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n"}}},"400":{"description":"Invalid request"},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Team Card","operationId":"get_team_card_a2a_teams__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Team","description":"Send a message to an Agno Team (non-streaming). The Team is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"run_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request"},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Team Task","description":"Get the status and result of a team task by ID.","operationId":"get_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Team Task","description":"Cancel a running team task.","operationId":"cancel_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Team","description":"Stream a message to an Agno Team (streaming). The Team is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Streaming response with task updates","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n"}}},"400":{"description":"Invalid request"},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/workflows/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Workflow Card","operationId":"get_workflow_card_a2a_workflows__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/workflows/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Workflow","description":"Send a message to an Agno Workflow (non-streaming). The Workflow is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"run_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request"},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/workflows/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Workflow","description":"Stream a message to an Agno Workflow (streaming). The Workflow is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Streaming response with task updates","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n"}}},"400":{"description":"Invalid request"},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/message/send":{"post":{"tags":["A2A"],"summary":"Send Message","description":"[DEPRECATED] Send a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"send_message","responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/a2a/message/stream":{"post":{"tags":["A2A"],"summary":"Stream Message","description":"[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message","responses":{"200":{"description":"Streaming response with task updates","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n"}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/sessions":{"get":{"tags":["Sessions"],"summary":"List Sessions","description":"Retrieve paginated list of sessions with filtering and sorting options. Supports filtering by session type (agent, team, workflow), component, user, and name. Sessions represent conversation histories and execution contexts.","operationId":"get_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types.","title":"Type"},"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types."},{"name":"component_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by component ID (agent/team/workflow ID)","title":"Component Id"},"description":"Filter sessions by component ID (agent/team/workflow ID)"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by user ID","title":"User Id"},"description":"Filter sessions by user ID"},{"name":"session_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by name (partial match)","title":"Session Name"},"description":"Filter sessions by name (partial match)"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of sessions to return per page","default":20,"title":"Limit"},"description":"Number of sessions to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort sessions by","default":"created_at","title":"Sort By"},"description":"Field to sort sessions by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query sessions from","title":"Db Id"},"description":"Database ID to query sessions from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Sessions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_SessionSchema_"},"example":{"session_example":{"summary":"Example session response","value":{"data":[{"session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_state":{},"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}]}}}}}},"400":{"description":"Invalid session type or filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in query parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Sessions"],"summary":"Create New Session","description":"Create a new empty session with optional configuration. Useful for pre-creating sessions with specific session_state, metadata, or other properties before running any agent/team/workflow interactions. The session can later be used by providing its session_id in run requests.","operationId":"create_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SessionType","description":"Type of session to create (agent, team, or workflow)","default":"agent"},"description":"Type of session to create (agent, team, or workflow)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to create session in","title":"Db Id"},"description":"Database ID to create session in"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest","description":"Session configuration data","default":{}}}}},"responses":{"201":{"description":"Session created successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Create Session"},"examples":{"agent_session_example":{"summary":"Example created agent session","value":{"user_id":"user-123","agent_session_id":"new-session-id","session_id":"new-session-id","session_name":"New Session","session_state":{"key":"value"},"metadata":{"key":"value"},"agent_id":"agent-1","created_at":"2025-10-21T12:00:00Z","updated_at":"2025-10-21T12:00:00Z"}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"409":{"description":"A session with the supplied session_id already exists"}}},"delete":{"tags":["Sessions"],"summary":"Delete Multiple Sessions","description":"Delete multiple sessions by their IDs in a single operation. This action cannot be undone and will permanently remove all specified sessions and their runs.","operationId":"delete_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSessionRequest"}}}},"responses":{"204":{"description":"Sessions deleted successfully"},"400":{"description":"Invalid request - session IDs and types length mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["Sessions"],"summary":"Get Session by ID","description":"Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow).","operationId":"get_session_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to retrieve","title":"Session Id"},"description":"Session ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query session from","title":"User Id"},"description":"User ID to query session from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query session from","title":"Db Id"},"description":"Database ID to query session from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query session from","title":"Table"},"description":"Table to query session from"}],"responses":{"200":{"description":"Session details retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Get Session By Id"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Session","description":"Permanently delete a specific session and all its associated runs. This action cannot be undone and will remove all conversation history.","operationId":"delete_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to delete","title":"Session Id"},"description":"Session ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Sessions"],"summary":"Update Session","description":"Update session properties such as session_name, session_state, metadata, or summary. Use this endpoint to modify the session name, update state, add metadata, or update the session summary.","operationId":"update_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to update","title":"Session Id"},"description":"Session ID to update"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID","title":"User Id"},"description":"User ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update operation","title":"Db Id"},"description":"Database ID to use for update operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update operation","title":"Table"},"description":"Table to use for update operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest","description":"Session update data"}}}},"responses":{"200":{"description":"Session updated successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Update Session"},"examples":{"update_summary":{"summary":"Update session summary","value":{"summary":{"summary":"The user discussed project planning with the agent.","updated_at":"2025-10-21T14:30:00Z"}}},"update_metadata":{"summary":"Update session metadata","value":{"metadata":{"tags":["planning","project"],"priority":"high"}}},"update_session_name":{"summary":"Update session name","value":{"session_name":"Updated Session Name"}},"update_session_state":{"summary":"Update session state","value":{"session_state":{"step":"completed","context":"Project planning finished","progress":100}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs":{"get":{"tags":["Sessions"],"summary":"Get Session Runs","description":"Retrieve all runs (executions) for a specific session with optional timestamp filtering. Runs represent individual interactions or executions within a session. Response schema varies based on session type.","operationId":"get_session_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get runs from","title":"Session Id"},"description":"Session ID to get runs from"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query runs from","title":"User Id"},"description":"User ID to query runs from"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created after this Unix timestamp (epoch time in seconds)","title":"Created After"},"description":"Filter runs created after this Unix timestamp (epoch time in seconds)"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created before this Unix timestamp (epoch time in seconds)","title":"Created Before"},"description":"Filter runs created before this Unix timestamp (epoch time in seconds)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query runs from","title":"Db Id"},"description":"Database ID to query runs from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query runs from","title":"Table"},"description":"Table to query runs from"}],"responses":{"200":{"description":"Session runs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}]},"title":"Response Get Session Runs"},"examples":{"completed_run":{"summary":"Example completed run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"","run_input":"Which tools do you have access to?","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","run_response_format":"text","reasoning_content":"","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069},"messages":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-08 17:52:10.101003.\n\n\nYou have the capability to retain memories from previous interactions with the user, but have not had any interactions with the user yet.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757346730},{"content":"Which tools do you have access to?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757346730},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138},"created_at":1757346730}],"events":[{"created_at":1757346730,"event":"RunStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","model":"gpt-4o","model_provider":"OpenAI"},{"created_at":1757346733,"event":"MemoryUpdateStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"MemoryUpdateCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"RunCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","content_type":"str","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069}}],"created_at":"2025-09-08T15:52:10Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Session not found or has no runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs/{run_id}":{"get":{"tags":["Sessions"],"summary":"Get Run by ID","description":"Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run).","operationId":"get_session_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get run from","title":"Session Id"},"description":"Session ID to get run from"},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","description":"Run ID to retrieve","title":"Run Id"},"description":"Run ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query run from","title":"User Id"},"description":"User ID to query run from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query run from","title":"Db Id"},"description":"Database ID to query run from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query run from","title":"Table"},"description":"Table to query run from"}],"responses":{"200":{"description":"Run retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}],"title":"Response Get Session Run"},"examples":{"agent_run":{"summary":"Example agent run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"user_123","run_input":"Which tools do you have access to?","content":"I don't have access to external tools.","created_at":1728499200}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Session or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/rename":{"post":{"tags":["Sessions"],"summary":"Rename Session","description":"Update the name of an existing session. Useful for organizing and categorizing sessions with meaningful names for better identification and management.","operationId":"rename_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to rename","title":"Session Id"},"description":"Session ID to rename"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope rename to","title":"User Id"},"description":"User ID to scope rename to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for rename operation","title":"Db Id"},"description":"Database ID to use for rename operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_rename_session"}}}},"responses":{"200":{"description":"Session renamed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Rename Session"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Invalid session name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type or validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories":{"post":{"tags":["Memory"],"summary":"Create Memory","description":"Create a new user memory with content and associated topics. Memories are used to store contextual information for users across conversations.","operationId":"create_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for memory storage","title":"Db Id"},"description":"Database ID to use for memory storage"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for memory storage","title":"Table"},"description":"Table to use for memory storage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"mem-123","memory":"User prefers technical explanations with code examples","topics":["preferences","communication_style","technical"],"user_id":"user-456","created_at":"2024-01-15T10:30:00Z","updated_at":"2024-01-15T10:30:00Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Memory"],"summary":"Delete Multiple Memories","description":"Delete multiple user memories by their IDs in a single operation. This action cannot be undone and all specified memories will be permanently removed.","operationId":"delete_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMemoriesRequest"}}}},"responses":{"204":{"description":"Memories deleted successfully"},"400":{"description":"Invalid request - empty memory_ids list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"List Memories","description":"Retrieve paginated list of user memories with filtering and search capabilities. Filter by user, agent, team, topics, or search within memory content.","operationId":"get_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by user ID","title":"User Id"},"description":"Filter memories by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by agent ID","title":"Agent Id"},"description":"Filter memories by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by team ID","title":"Team Id"},"description":"Filter memories by team ID"},{"name":"search_content","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fuzzy search within memory content","title":"Search Content"},"description":"Fuzzy search within memory content"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of memories to return per page","default":20,"title":"Limit"},"description":"Number of memories to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort memories by","default":"updated_at","title":"Sort By"},"description":"Field to sort memories by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memories from","title":"Db Id"},"description":"Database ID to query memories from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Comma-separated list of topics to filter by","examples":["preferences,technical,communication_style"],"title":"Topics"},"description":"Comma-separated list of topics to filter by"}],"responses":{"200":{"description":"Memories retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserMemorySchema_"},"example":{"data":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories/{memory_id}":{"delete":{"tags":["Memory"],"summary":"Delete Memory","description":"Permanently delete a specific user memory. This action cannot be undone.","operationId":"delete_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to delete","title":"Memory Id"},"description":"Memory ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to delete memory for","title":"User Id"},"description":"User ID to delete memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Memory deleted successfully"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"Get Memory by ID","description":"Retrieve detailed information about a specific user memory by its ID.","operationId":"get_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to retrieve","title":"Memory Id"},"description":"Memory ID to retrieve"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query memory for","title":"User Id"},"description":"User ID to query memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memory from","title":"Db Id"},"description":"Database ID to query memory from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query memory from","title":"Table"},"description":"Table to query memory from"}],"responses":{"200":{"description":"Memory retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Memory"],"summary":"Update Memory","description":"Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values.","operationId":"update_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to update","title":"Memory Id"},"description":"Memory ID to update"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update","title":"Db Id"},"description":"Database ID to use for update"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update","title":"Table"},"description":"Table to use for update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memory_topics":{"get":{"tags":["Memory"],"summary":"Get Memory Topics","description":"Retrieve all unique topics associated with memories in the system. Useful for filtering and categorizing memories by topic.","operationId":"get_memory_topics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter topics for","title":"User Id"},"description":"User ID to filter topics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query topics from","title":"Db Id"},"description":"Database ID to query topics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query topics from","title":"Table"},"description":"Table to query topics from"}],"responses":{"200":{"description":"Memory topics retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Get Memory Topics"},"example":["preferences","communication_style","technical","industry","compliance","code_examples","requirements","healthcare","finance"]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/user_memory_stats":{"get":{"tags":["Memory"],"summary":"Get User Memory Statistics","description":"Retrieve paginated statistics about memory usage by user. Provides insights into user engagement and memory distribution across users.","operationId":"get_user_memory_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of user statistics to return per page","default":20,"title":"Limit"},"description":"Number of user statistics to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter statistics for","title":"User Id"},"description":"User ID to filter statistics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query statistics from","title":"Table"},"description":"Table to query statistics from"}],"responses":{"200":{"description":"User memory statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserStatsSchema_"},"example":{"data":[{"user_id":"123","total_memories":3,"last_memory_updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve user statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/optimize-memories":{"post":{"tags":["Memory"],"summary":"Optimize User Memories","description":"Optimize all memories for a given user using the default summarize strategy. This operation combines all memories into a single comprehensive summary, achieving maximum token reduction while preserving all key information. To use a custom model, specify the model parameter in 'provider:model_id' format (e.g., 'openai:gpt-4o-mini', 'anthropic:claude-3-5-sonnet-20241022'). If not specified, uses MemoryManager's default model (gpt-4o). Set apply=false to preview optimization results without saving to database.","operationId":"optimize_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for optimization","title":"Db Id"},"description":"Database ID to use for optimization"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for optimization","title":"Table"},"description":"Table to use for optimization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesRequest"}}}},"responses":{"200":{"description":"Memories optimized successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesResponse"},"example":{"memories":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User has a 3-year-old golden retriever named Max who loves fetch and walks. Lives in San Francisco's Mission district, works as a product manager in tech. Enjoys hiking Bay Area trails, trying new restaurants (especially Japanese, Thai, Mexican), and learning piano for 1.5 years.","topics":["pets","location","work","hobbies","food_preferences"],"user_id":"user2","updated_at":"2025-11-18T10:30:00Z"}],"memories_before":4,"memories_after":1,"tokens_before":450,"tokens_after":180,"tokens_saved":270,"reduction_percentage":60.0}}}},"400":{"description":"Bad request - User ID is required or invalid model string format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"No memories found for user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to optimize memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings":{"get":{"tags":["Learnings"],"summary":"List Learnings","description":"List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) — this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`).","operationId":"list_learnings","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by learning type","title":"Learning Type"},"description":"Filter by learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"namespace","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by namespace","title":"Namespace"},"description":"Filter by namespace"},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity ID","title":"Entity Id"},"description":"Filter by entity ID"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity type","title":"Entity Type"},"description":"Filter by entity type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":100,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used).","title":"Sort By"},"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used)."},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Learnings"],"summary":"Create Learning","description":"Create a new learning record. For the identity-keyed learning types (`user_profile`, `user_memory`, `session_context`, `entity_memory`) the record id is derived deterministically from the identity fields so it reconciles with what the agent reads/writes — provide those fields (else 422), and if a record already exists the request is rejected with 409 (use PATCH to update it). Other types get a generated id. For a scoped (non-admin) caller, the body's `user_id` must be omitted/null or match the caller (mismatch → 403); admins and unscoped callers may set any `user_id`.","operationId":"create_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users":{"get":{"tags":["Learnings"],"summary":"List Learning Users","description":"List the users that own learning records, with a per-user count and last-updated timestamp. Intended as the entry point for a per-user view: list users here, then drill into a single user's learnings via `GET /learnings?user_id=...`. Records with no owner (`user_id IS NULL`) are excluded. Pass `learning_type` to restrict the grouping to a single store (e.g. `user_profile` or `user_memory`). For a scoped (non-admin) caller results are bound to that user; an explicit `user_id` that differs is rejected with 403. Admins and unscoped callers list all users. Sortable by `user_id` or `last_learning_updated_at` (the default).","operationId":"list_learning_users","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the grouping to a single learning type","title":"Learning Type"},"description":"Restrict the grouping to a single learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the result to a single user","title":"User Id"},"description":"Restrict the result to a single user"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by: user_id or last_learning_updated_at (the default)","title":"Sort By"},"description":"Field to sort by: user_id or last_learning_updated_at (the default)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningUserStats_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users/{user_id}":{"delete":{"tags":["Learnings"],"summary":"Delete Learning User","description":"Delete the learning records owned by a user. By default removes every learning type backed by the agno_learnings table (user_profile, user_memory, and any user-scoped entity records); pass `learning_type` to restrict deletion to a single store. Records with no owner (`user_id IS NULL`) are not affected. For a scoped (non-admin) caller, only their own learnings may be deleted; a different `user_id` is rejected with 403. Admins and unscoped callers may delete any user's learnings. Returns 204 even if the user had no matching records.","operationId":"delete_learning_user","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The user whose learnings should be deleted","title":"User Id"},"description":"The user whose learnings should be deleted"},{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings","title":"Learning Type"},"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/{learning_id}":{"get":{"tags":["Learnings"],"summary":"Get Learning","description":"Retrieve a single learning record by its ID.","operationId":"get_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Learnings"],"summary":"Update Learning","description":"Update a learning record. Only `content` and `metadata` may be modified; identity fields (user_id, agent_id, team_id, etc.) are immutable. Provided fields fully replace the existing values. Records with no owner (`user_id IS NULL` — shared agent/team/session/entity learnings) are readable by any caller but may only be modified by an admin.","operationId":"update_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Learnings"],"summary":"Delete Learning","description":"Permanently delete a learning record by its ID. Records with no owner (`user_id IS NULL` — shared agent/team/session/entity learnings) may only be deleted by an admin.","operationId":"delete_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs":{"get":{"tags":["Evals"],"summary":"List Evaluation Runs","description":"Retrieve paginated evaluation runs with filtering and sorting options. Filter by agent, team, workflow, model, or evaluation type.","operationId":"get_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Workflow ID","title":"Workflow Id"},"description":"Workflow ID"},{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model ID","title":"Model Id"},"description":"Model ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EvalFilterType"},{"type":"null"}],"description":"Filter type","title":"Type"},"description":"Filter type"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of eval runs to return","default":20,"title":"Limit"},"description":"Number of eval runs to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"eval_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)","examples":["accuracy,agent_as_judge,performance,reliability"],"title":"Eval Types"},"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)"}],"responses":{"200":{"description":"Evaluation runs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_EvalSchema_"},"example":{"data":[{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Evals"],"summary":"Delete Evaluation Runs","description":"Delete multiple evaluation runs by their IDs. This action cannot be undone.","operationId":"delete_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvalRunsRequest"}}}},"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete evaluation runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Evals"],"summary":"Execute Evaluation","description":"Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both.","operationId":"run_eval","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for evaluation","title":"Db Id"},"description":"Database ID to use for evaluation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for evaluation","title":"Table"},"description":"Table to use for evaluation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRunInput"}}}},"responses":{"200":{"description":"Evaluation executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"f2b2d72f-e9e2-4f0e-8810-0a7e1ff58614","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Invalid request - provide either agent_id or team_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent or team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs/{eval_run_id}":{"get":{"tags":["Evals"],"summary":"Get Evaluation Run","description":"Retrieve detailed results and metrics for a specific evaluation run.","operationId":"get_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query eval run from","title":"Table"},"description":"Table to query eval run from"}],"responses":{"200":{"description":"Evaluation run details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Evals"],"summary":"Update Evaluation Run","description":"Update the name or other properties of an existing evaluation run.","operationId":"update_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvalRunRequest"}}}},"responses":{"200":{"description":"Evaluation run updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update evaluation run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics":{"get":{"tags":["Metrics"],"summary":"Get AgentOS Metrics","description":"Retrieve AgentOS metrics and analytics data for a specified date range. If no date range is specified, returns all available metrics.","operationId":"get_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"starting_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Starting date for metrics range (YYYY-MM-DD format)","title":"Starting Date"},"description":"Starting date for metrics range (YYYY-MM-DD format)"},{"name":"ending_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Ending date for metrics range (YYYY-MM-DD format)","title":"Ending Date"},"description":"Ending date for metrics range (YYYY-MM-DD format)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query metrics from","title":"Db Id"},"description":"Database ID to query metrics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Metrics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"},"example":{"metrics":[{"id":"7bf39658-a00a-484c-8a28-67fd8a9ddb2a","agent_runs_count":5,"agent_sessions_count":5,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":448,"output_tokens":148,"total_tokens":596,"audio_tokens":0,"input_audio_tokens":0,"output_audio_tokens":0,"cached_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":5}],"date":"2025-07-31T00:00:00Z","created_at":"2025-07-31T12:38:52Z","updated_at":"2025-07-31T12:49:01Z"}]}}}},"400":{"description":"Invalid date range parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve metrics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics/refresh":{"post":{"tags":["Metrics"],"summary":"Refresh Metrics","description":"Manually trigger recalculation of system metrics from raw data. This operation analyzes system activity logs and regenerates aggregated metrics. Useful for ensuring metrics are up-to-date or after system maintenance.","operationId":"refresh_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for metrics calculation","title":"Db Id"},"description":"Database ID to use for metrics calculation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for metrics calculation","title":"Table"},"description":"Table to use for metrics calculation"}],"responses":{"200":{"description":"Metrics refreshed successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"title":"Response Refresh Metrics"},"example":[{"id":"e77c9531-818b-47a5-99cd-59fed61e5403","agent_runs_count":2,"agent_sessions_count":2,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":256,"output_tokens":441,"total_tokens":697,"audio_total_tokens":0,"audio_input_tokens":0,"audio_output_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":2}],"date":"2025-08-12T00:00:00Z","created_at":"2025-08-12T08:01:47Z","updated_at":"2025-08-12T08:01:47Z"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to refresh metrics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content":{"post":{"tags":["Knowledge"],"summary":"Upload Content","description":"Upload content to the knowledge base. Supports file uploads, text content, or URLs. Content is processed asynchronously in the background. Supports custom readers and chunking strategies.","operationId":"upload_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_content"}}}},"responses":{"202":{"description":"Content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-123","name":"example-document.pdf","description":"Sample document for processing","metadata":{"category":"documentation","priority":"high"},"status":"processing"}}}},"400":{"description":"Invalid request - malformed metadata or missing content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in form data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"List Content","description":"Retrieve paginated list of all content in the knowledge base with filtering and sorting options. Filter by status, content type, or metadata properties.","operationId":"get_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of content entries to return","default":20,"title":"Limit"},"description":"Number of content entries to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ContentResponseSchema_"},"example":{"data":[{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}],"meta":{"page":1,"limit":20,"total_pages":1,"total_count":2}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete All Content","description":"Permanently remove all content from the knowledge base. This is a destructive operation that cannot be undone. Use with extreme caution.","operationId":"delete_all_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete all content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/remote-content":{"post":{"tags":["Knowledge"],"summary":"Upload Remote Content","description":"Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.","operationId":"upload_remote_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_upload_remote_content"}}}},"responses":{"202":{"description":"Remote content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-456","name":"reports/q1-2024.pdf","description":"Q1 Report from S3","metadata":{"source":"s3-docs"},"status":"processing"}}}},"400":{"description":"Invalid request - unknown config or missing path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}":{"patch":{"tags":["Knowledge"],"summary":"Update Content","description":"Update content properties such as name, description, metadata, or processing configuration. Allows modification of existing content without re-uploading.","operationId":"update_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","description":"Content ID","title":"Content Id"},"description":"Content ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_update_content"}}}},"responses":{"200":{"description":"Content updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Invalid request - malformed metadata or invalid reader_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"Get Content by ID","description":"Retrieve detailed information about a specific content item including processing status and metadata.","operationId":"get_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete Content by ID","description":"Permanently remove a specific content item from the knowledge base. This action cannot be undone.","operationId":"delete_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}/status":{"get":{"tags":["Knowledge"],"summary":"Get Content Status","description":"Retrieve the current processing status of a content item. Useful for monitoring asynchronous content processing progress and identifying any processing errors.","operationId":"get_content_status","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content status retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentStatusResponse"},"examples":{"completed":{"summary":"Example completed content status","value":{"status":"completed","status_message":""}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/search":{"post":{"tags":["Knowledge"],"summary":"Search Knowledge","description":"Search the knowledge base for relevant documents using query, filters and search type.","operationId":"search_knowledge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VectorSearchRequestSchema"}}},"required":true},"responses":{"200":{"description":"Search results retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_VectorSearchResult_"},"example":{"data":[{"id":"doc_123","content":"Jordan Mitchell - Software Engineer with skills in JavaScript, React, Python","name":"cv_1","meta_data":{"page":1,"chunk":1},"usage":{"total_tokens":14},"reranking_score":0.95,"content_id":"content_456"}],"meta":{"page":1,"limit":20,"total_pages":2,"total_count":35}}}}},"400":{"description":"Invalid search parameters"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"No documents found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/knowledge/config":{"get":{"tags":["Knowledge"],"summary":"Get Config","description":"Retrieve available readers, chunkers, and configuration options for content processing. This endpoint provides metadata about supported file types, processing strategies, and filters.","operationId":"get_knowledge_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Knowledge configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponseSchema"},"example":{"readers":{"website":{"id":"website","name":"WebsiteReader","description":"Reads website files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"firecrawl":{"id":"firecrawl","name":"FirecrawlReader","description":"Reads firecrawl files","chunkers":["SemanticChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"youtube":{"id":"youtube","name":"YoutubeReader","description":"Reads youtube files","chunkers":["RecursiveChunker","AgenticChunker","DocumentChunker","SemanticChunker","FixedSizeChunker"]},"web_search":{"id":"web_search","name":"WebSearchReader","description":"Reads web_search files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"arxiv":{"id":"arxiv","name":"ArxivReader","description":"Reads arxiv files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"csv":{"id":"csv","name":"CsvReader","description":"Reads csv files","chunkers":["RowChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"docling":{"id":"docling","name":"DoclingReader","description":"Converts multiple document formats like PDF, DOCX, PPTX, images, HTML, etc. using IBM's Docling library","chunkers":["AgenticChunker","CodeChunker","DocumentChunker","FixedSizeChunker","RecursiveChunker","SemanticChunker"]},"docx":{"id":"docx","name":"DocxReader","description":"Reads docx files","chunkers":["DocumentChunker","FixedSizeChunker","SemanticChunker","AgenticChunker","RecursiveChunker"]},"gcs":{"id":"gcs","name":"GcsReader","description":"Reads gcs files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"json":{"id":"json","name":"JsonReader","description":"Reads json files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"markdown":{"id":"markdown","name":"MarkdownReader","description":"Reads markdown files","chunkers":["MarkdownChunker","DocumentChunker","AgenticChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"pdf":{"id":"pdf","name":"PdfReader","description":"Reads pdf files","chunkers":["DocumentChunker","FixedSizeChunker","AgenticChunker","SemanticChunker","RecursiveChunker"]},"text":{"id":"text","name":"TextReader","description":"Reads text files","chunkers":["CodeChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]}},"readersForType":{"url":["url","website","firecrawl","youtube","web_search","gcs"],"youtube":["youtube"],"text":["web_search"],"topic":["arxiv"],"file":["csv","gcs"],".csv":["csv","field_labeled_csv","docling"],".xlsx":["excel","docling"],".xls":["excel"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["excel"],"application/vnd.ms-excel":["excel"],".docx":["docx","docling"],".dotx":["docling"],".docm":["docling"],".dotm":["docling"],".pptx":["docling","pptx"],".potx":["docling"],".ppsx":["docling"],".pptm":["docling"],".ppsm":["docling"],".potm":["docling"],".doc":["docx"],".json":["json"],".md":["markdown","docling"],".pdf":["pdf","docling"],".txt":["text"],".html":["docling"],".htm":["docling"],".xhtml":["docling"],".xml":["docling"],".nxml":["docling"],".xbrl":["docling"],".adoc":["docling"],".asciidoc":["docling"],".asc":["docling"],".xlsm":["docling"],".tex":["docling"],".latex":["docling"],".tar.gz":["docling"],".vtt":["docling"],".png":["docling"],".jpeg":["docling"],".jpg":["docling"],".tiff":["docling"],".tif":["docling"],".bmp":["docling"],".webp":["docling"],".wav":["docling"],".mp3":["docling"],".m4a":["docling"],".aac":["docling"],".ogg":["docling"],".flac":["docling"],".mp4":["docling"],".avi":["docling"],".mov":["docling"]},"chunkers":{"AgenticChunker":{"key":"AgenticChunker","name":"AgenticChunker","description":"Chunking strategy that uses an LLM to determine natural breakpoints in the text","metadata":{"chunk_size":5000}},"CodeChunker":{"key":"CodeChunker","name":"CodeChunker","description":"The CodeChunker splits code into chunks based on its structure, leveraging Abstract Syntax Trees (ASTs) to create contextually relevant segments","metadata":{"chunk_size":2048}},"DocumentChunker":{"key":"DocumentChunker","name":"DocumentChunker","description":"A chunking strategy that splits text based on document structure like paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"FixedSizeChunker":{"key":"FixedSizeChunker","name":"FixedSizeChunker","description":"Chunking strategy that splits text into fixed-size chunks with optional overlap","metadata":{"chunk_size":5000,"chunk_overlap":0}},"MarkdownChunker":{"key":"MarkdownChunker","name":"MarkdownChunker","description":"A chunking strategy that splits markdown based on structure like headers, paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RecursiveChunker":{"key":"RecursiveChunker","name":"RecursiveChunker","description":"Chunking strategy that recursively splits text into chunks by finding natural break points","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RowChunker":{"key":"RowChunker","name":"RowChunker","description":"RowChunking chunking strategy","metadata":{}},"SemanticChunker":{"key":"SemanticChunker","name":"SemanticChunker","description":"Chunking strategy that splits text into semantic chunks using chonkie","metadata":{"chunk_size":5000}}},"vector_dbs":[{"id":"vector_db_1","name":"Vector DB 1","description":"Vector DB 1 description","search_types":["vector","keyword","hybrid"]}],"filters":["filter_tag_1","filter_tag2"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources":{"get":{"tags":["Knowledge"],"summary":"List Content Sources","description":"List all registered content sources (S3, GCS, SharePoint, GitHub) for the knowledge base.","operationId":"list_content_sources","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Content sources retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"title":"Response List Content Sources"},"example":[{"id":"company-s3","name":"Company Documents","type":"s3","prefix":"documents/"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Knowledge base not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources/{source_id}/files":{"get":{"tags":["Knowledge"],"summary":"List Files in Source","description":"List available files and folders in a specific content source. Supports pagination and folder navigation.","operationId":"list_source_files","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the content source","title":"Source Id"},"description":"ID of the content source"},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Path prefix to filter files","title":"Prefix"},"description":"Path prefix to filter files"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of files per page","default":100,"title":"Limit"},"description":"Number of files per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"delimiter","in":"query","required":false,"schema":{"type":"string","description":"Folder delimiter (enables folder grouping)","default":"/","title":"Delimiter"},"description":"Folder delimiter (enables folder grouping)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Files listed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceFilesResponseSchema"},"example":{"source_id":"company-s3","source_name":"Company Documents","prefix":"reports/","folders":[{"prefix":"reports/2024/","name":"2024","is_empty":false}],"files":[{"key":"reports/annual-summary.pdf","name":"annual-summary.pdf","size":102400,"last_modified":"2024-01-15T10:30:00Z","content_type":"application/pdf"}],"meta":{"page":1,"limit":100,"total_pages":1,"total_count":1}}}}},"400":{"description":"Unsupported source type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Knowledge base or content source not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces":{"get":{"tags":["Traces","Traces"],"summary":"List Traces","description":"Retrieve a paginated list of execution traces with optional filtering.\n\n**Traces provide observability into:**\n- Agent execution flows\n- Model invocations and token usage\n- Tool calls and their results\n- Errors and performance bottlenecks\n\n**Filtering Options:**\n- By run, session, user, or agent ID\n- By status (OK, ERROR)\n- By time range\n\n**Pagination:**\n- Use `page` (1-indexed) and `limit` parameters\n- Response includes pagination metadata (total_pages, total_count, etc.)\n\n**Response Format:**\nReturns summary information for each trace. Use GET `/traces/{trace_id}` for detailed hierarchy.","operationId":"get_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run ID","title":"Run Id"},"description":"Filter by run ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status (OK, ERROR)","title":"Status"},"description":"Filter by status (OK, ERROR)"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of traces per page","default":20,"title":"Limit"},"description":"Number of traces per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"responses":{"200":{"description":"List of traces retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSummary_"},"example":{"data":[{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","total_spans":4,"error_count":0,"input":"What is the stock price of NVDA?","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"agent_stock","created_at":"2025-11-19T10:30:00+00:00"}],"meta":{"page":1,"limit":20,"total_pages":5,"total_count":95}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/filter-schema":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Filter Schema","description":"Returns the available filterable fields, their types, valid operators, and enum values.\n\nThe frontend uses this to dynamically build the filter bar UI:\n- Field dropdown populated from `fields[].key`\n- Operator dropdown changes per field type\n- Value input shows autocomplete for enum fields (e.g., status)\n- Logical operators (AND, OR) for combining clauses","operationId":"get_traces_filter_schema","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterSchemaResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/traces/{trace_id}":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace or Span Detail","description":"Retrieve detailed trace information with hierarchical span tree, or a specific span within the trace.\n\n**Without span_id parameter:**\nReturns the full trace with hierarchical span tree:\n- Trace metadata (ID, status, duration, context)\n- Hierarchical tree of all spans\n- Each span includes timing, status, and type-specific metadata\n\n**With span_id parameter:**\nReturns details for a specific span within the trace:\n- Span metadata (ID, name, type, timing)\n- Status and error information\n- Type-specific attributes (model, tokens, tool params, etc.)\n\n**Span Hierarchy (full trace):**\nThe `tree` field contains root spans, each with potential `children`.\nThis recursive structure represents the execution flow:\n```\nAgent.run (root)\n ├─ LLM.invoke\n ├─ Tool.execute\n │ └─ LLM.invoke (nested)\n └─ LLM.invoke\n```\n\n**Span Types:**\n- `AGENT`: Agent execution with input/output\n- `LLM`: Model invocations with tokens and prompts\n- `TOOL`: Tool calls with parameters and results","operationId":"get_trace","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}},{"name":"span_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Span ID to retrieve specific span","title":"Span Id"},"description":"Optional: Span ID to retrieve specific span"},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Run ID to retrieve trace for","title":"Run Id"},"description":"Optional: Run ID to retrieve trace for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query trace from","title":"Db Id"},"description":"Database ID to query trace from"}],"responses":{"200":{"description":"Trace or span detail retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TraceDetail"},{"$ref":"#/components/schemas/TraceNode"}],"title":"Response Get Trace"},"examples":{"full_trace":{"summary":"Full trace with hierarchy (no span_id)","value":{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","end_time":"2025-11-19T10:30:01.200000+00:00","total_spans":4,"error_count":0,"input":"What is Tesla stock price?","output":"The current price of Tesla (TSLA) is $245.67.","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"stock_agent","created_at":"2025-11-19T10:30:00+00:00","tree":[{"id":"span1","name":"Stock_Price_Agent.run","type":"AGENT","duration":"1.2s","status":"OK","spans":[]}]}},"single_span":{"summary":"Single span detail (with span_id)","value":{"id":"span2","name":"gpt-4o-mini.invoke","type":"LLM","duration":"800ms","status":"OK","metadata":{"model":"gpt-4o-mini","input_tokens":120}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Trace or span not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/trace_session_stats":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Statistics by Session","description":"Retrieve aggregated trace statistics grouped by session ID with pagination.\n\n**Provides insights into:**\n- Total traces per session\n- First and last trace timestamps per session\n- Associated user and agent information\n\n**Filtering Options:**\n- By user ID\n- By agent ID\n\n**Use Cases:**\n- Monitor session-level activity\n- Track conversation flows\n- Identify high-activity sessions\n- Analyze user engagement patterns","operationId":"get_trace_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of sessions per page","default":20,"title":"Limit"},"description":"Number of sessions per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"}],"responses":{"200":{"description":"Trace statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"},"example":{"data":[{"session_id":"37029bc6-1794-4ba8-a629-1efedc53dcad","user_id":"kaustubh@agno.com","agent_id":"hackernews-agent","total_traces":5,"first_trace_at":"2025-11-19T10:15:16+00:00","last_trace_at":"2025-11-19T10:21:30+00:00"}],"meta":{"page":1,"limit":20,"total_pages":3,"total_count":45}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/search":{"post":{"tags":["Traces","Traces"],"summary":"Search Traces with Advanced Filters","description":"Search traces using the FilterExpr DSL for complex, composable queries.\n\n**Group By Mode:**\n- `run` (default): Returns `PaginatedResponse[TraceDetail]` with full span trees\n- `session`: Returns `PaginatedResponse[TraceSessionStats]` with aggregated session stats\n\n**Supported Operators:**\n- Comparison: `EQ`, `NEQ`, `GT`, `GTE`, `LT`, `LTE`\n- Inclusion: `IN`\n- String matching: `CONTAINS` (case-insensitive substring), `STARTSWITH` (prefix)\n- Logical: `AND`, `OR`, `NOT`\n\n**Filterable Fields:**\ntrace_id, name, status, start_time, end_time, duration_ms, run_id, session_id, user_id, agent_id, team_id, workflow_id, created_at\n\n**Example Request Body (runs):**\n```json\n{\n \"filter\": {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n}\n```\n\n**Example Request Body (sessions):**\n```json\n{\n \"filter\": {\"op\": \"CONTAINS\", \"key\": \"agent_id\", \"value\": \"stock\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n}\n```","operationId":"search_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PaginatedResponse_TraceDetail_"},{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"}],"title":"Response Search Traces"}}}},"400":{"description":"Invalid filter expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/all/migrate":{"post":{"tags":["Database"],"summary":"Migrate All Databases","description":"Migrate all database schemas to the given target version. If a target version is not provided, all databases will be migrated to the latest version.","operationId":"migrate_all_databases","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"All databases migrated successfully","content":{"application/json":{"schema":{},"example":{"message":"All databases migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/{db_id}/migrate":{"post":{"tags":["Database"],"summary":"Migrate Database","description":"Migrate the given database schema to the given target version. If a target version is not provided, the database will be migrated to the latest version.","operationId":"migrate_database","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"Database migrated successfully","content":{"application/json":{"schema":{},"example":{"message":"Database migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Database not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components":{"get":{"tags":["Components"],"summary":"List Components","description":"Retrieve a paginated list of components with optional filtering by type.","operationId":"list_components","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ComponentType"},{"type":"null"}],"description":"Filter by type: agent, team, workflow","title":"Component Type"},"description":"Filter by type: agent, team, workflow"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ComponentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Component","description":"Create a new component (agent, team, or workflow) with initial config.","operationId":"create_component","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}":{"get":{"tags":["Components"],"summary":"Get Component","description":"Retrieve a component by ID.","operationId":"get_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Components"],"summary":"Update Component","description":"Partially update a component by ID.","operationId":"update_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentUpdate","description":"Component fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Component","description":"Soft-delete a component by ID. Component configs and links remain stored.","operationId":"delete_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs":{"get":{"tags":["Components"],"summary":"List Configs","description":"List all configs for a component.","operationId":"list_configs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"include_config","in":"query","required":false,"schema":{"type":"boolean","description":"Include full config blob","default":true,"title":"Include Config"},"description":"Include full config blob"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComponentConfigResponse"},"title":"Response List Configs"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Config Version","description":"Create a new config version for a component.","operationId":"create_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigCreate","description":"Config data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}":{"patch":{"tags":["Components"],"summary":"Update Draft Config","description":"Update an existing draft config. Cannot update published configs.","operationId":"update_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigUpdate","description":"Config fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Components"],"summary":"Get Config Version","description":"Get a specific config version by number.","operationId":"get_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Config Version","description":"Delete a specific draft config version. Cannot delete published or current configs.","operationId":"delete_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/current":{"get":{"tags":["Components"],"summary":"Get Current Config","description":"Get the current config version for a component.","operationId":"get_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}/set-current":{"post":{"tags":["Components"],"summary":"Set Current Config Version","description":"Set a published config version as current (for rollback).","operationId":"set_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/schedules":{"get":{"tags":["Schedules"],"summary":"List Schedules","operationId":"list_schedules_schedules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Schedules"],"summary":"Create Schedule","operationId":"create_schedule_schedules_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule","operationId":"get_schedule_schedules__schedule_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Schedules"],"summary":"Update Schedule","operationId":"update_schedule_schedules__schedule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Schedules"],"summary":"Delete Schedule","operationId":"delete_schedule_schedules__schedule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}/enable":{"post":{"tags":["Schedules"],"summary":"Enable Schedule","operationId":"enable_schedule_schedules__schedule_id__enable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}/disable":{"post":{"tags":["Schedules"],"summary":"Disable Schedule","operationId":"disable_schedule_schedules__schedule_id__disable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}/trigger":{"post":{"tags":["Schedules"],"summary":"Trigger Schedule","operationId":"trigger_schedule_schedules__schedule_id__trigger_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}/runs":{"get":{"tags":["Schedules"],"summary":"List Schedule Runs","operationId":"list_schedule_runs_schedules__schedule_id__runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleRunResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}/runs/{run_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule Run","operationId":"get_schedule_run_schedules__schedule_id__runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals":{"get":{"tags":["Approvals"],"summary":"List Approvals","operationId":"list_approvals_approvals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","approved","rejected","expired","cancelled"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"source_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"}},{"name":"approval_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["required","audit"],"type":"string"},{"type":"null"}],"title":"Approval Type"}},{"name":"pause_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"schedule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"}},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ApprovalResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/count":{"get":{"tags":["Approvals"],"summary":"Get Approval Count","operationId":"get_approval_count_approvals_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalCountResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/{approval_id}/status":{"get":{"tags":["Approvals"],"summary":"Get Approval Status","operationId":"get_approval_status_approvals__approval_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/{approval_id}":{"get":{"tags":["Approvals"],"summary":"Get Approval","operationId":"get_approval_approvals__approval_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Approvals"],"summary":"Delete Approval","operationId":"delete_approval_approvals__approval_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/{approval_id}/resolve":{"post":{"tags":["Approvals"],"summary":"Resolve Approval","operationId":"resolve_approval_approvals__approval_id__resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResolve"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/service-accounts":{"post":{"tags":["Service Accounts"],"summary":"Create Service Account","description":"Mint a service account token. The plaintext token is returned exactly once.","operationId":"create_service_account_service_accounts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Service Accounts"],"summary":"List Service Accounts","description":"List service accounts. Returns metadata and display prefixes only - never hashes or plaintext.","operationId":"list_service_accounts_service_accounts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Revoked"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ServiceAccountResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/service-accounts/{service_account_id}":{"delete":{"tags":["Service Accounts"],"summary":"Revoke Service Account","description":"Revoke a service account. Idempotent.\n\nTakes effect immediately on this worker (the local verification cache entry is\nevicted) and within the cache TTL on other workers.","operationId":"revoke_service_account_service_accounts__service_account_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"service_account_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/registry":{"get":{"tags":["Registry"],"summary":"List Registry","description":"List all resources in the registry with optional filtering.","operationId":"list_registry","security":[{"HTTPBearer":[]}],"parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RegistryResourceType"},{"type":"null"}],"description":"Filter by resource type","title":"Resource Type"},"description":"Filter by resource type"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (partial match)","title":"Name"},"description":"Filter by name (partial match)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_RegistryContentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}}},"components":{"schemas":{"ActivityMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"activity","title":"Role","default":"activity"},"activityType":{"type":"string","title":"Activitytype"},"content":{"additionalProperties":true,"type":"object","title":"Content"}},"additionalProperties":true,"type":"object","required":["id","activityType","content"],"title":"ActivityMessage","description":"An activity progress message emitted between chat messages."},"AgentResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"extra_messages":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Messages"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"AgentResponse"},"AgentSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_session_id":{"type":"string","title":"Agent Session Id","description":"Unique agent session identifier"},"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID used in this session"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"agent_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Data","description":"Agent-specific data"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["agent_session_id","session_id","session_name"],"title":"AgentSessionDetailSchema"},"AgentSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the agent"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the agent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the agent"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the agent"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","title":"AgentSummaryResponse"},"ApprovalCountResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"ApprovalCountResponse","description":"Response model for pending approval count."},"ApprovalResolve":{"properties":{"status":{"type":"string","pattern":"^(approved|rejected)$","title":"Status"},"resolved_by":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Resolved By"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"}},"type":"object","required":["status"],"title":"ApprovalResolve","description":"Request body for resolving (approve/reject) an approval."},"ApprovalResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"},"source_type":{"type":"string","title":"Source Type"},"approval_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Type"},"pause_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Args"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"},"schedule_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Run Id"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"},"run_status":{"anyOf":[{"$ref":"#/components/schemas/RunStatus"},{"type":"null"}]}},"type":"object","required":["id","run_id","session_id","status","source_type"],"title":"ApprovalResponse","description":"Response model for a single approval."},"ApprovalStatusResponse":{"properties":{"approval_id":{"type":"string","title":"Approval Id"},"status":{"type":"string","title":"Status"},"run_id":{"type":"string","title":"Run Id"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"}},"type":"object","required":["approval_id","status","run_id"],"title":"ApprovalStatusResponse","description":"Lightweight response model for polling approval status."},"Artifact":{"properties":{"artifactId":{"type":"string","title":"Artifactid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"}},"type":"object","required":["artifactId","parts"],"title":"Artifact","description":"Represents a file, data structure, or other resource generated by an agent during a task."},"AssistantMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"assistant","title":"Role","default":"assistant"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"},"toolCalls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},{"type":"null"}],"title":"Toolcalls"}},"additionalProperties":true,"type":"object","required":["id"],"title":"AssistantMessage","description":"An assistant message."},"AudioInputContent":{"properties":{"type":{"type":"string","const":"audio","title":"Type","default":"audio"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"AudioInputContent","description":"An audio input content fragment."},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"BadRequestResponse","example":{"detail":"Bad request","error_code":"BAD_REQUEST"}},"BinaryInputContent":{"properties":{"type":{"type":"string","const":"binary","title":"Type","default":"binary"},"mimeType":{"type":"string","title":"Mimetype"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"additionalProperties":true,"type":"object","required":["mimeType"],"title":"BinaryInputContent","description":"A deprecated binary payload reference in a multimodal user message."},"Body_continue_agent_run":{"properties":{"tools":{"type":"string","title":"Tools","description":"JSON string of tool call results to continue the paused run","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Optional new user-message text to append to the run before resuming. Use for continuing a COMPLETED run with a follow-up, or adding context to a RUNNING/ERROR resume."},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","description":"When true, clone the run with a new ``run_id`` before resuming. The original is untouched; the clone becomes a sibling within the same session, with ``forked_from_run_id`` set.","default":false},"regenerate":{"type":"boolean","title":"Regenerate","description":"Sugar: regenerate the last response of this run. Auto-computes ``continue_from='last_user'`` to land just after the last user message. Pair with ``additional_instructions`` to steer the new output. By default the original response is hidden from history (replaced); pass ``replace_original=false`` to keep both the original and the regenerated response visible side by side.","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original","description":"Only valid with ``regenerate=true``. Controls history visibility of the original response; the original run is always retained in storage. Defaults to true: the original is marked REGENERATED and hidden from history so the new response replaces it. Pass false to keep both the original and regenerated responses visible."},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions","description":"Only valid with ``regenerate=true``: extra guidance appended as a user message before re-generation. Friendly alias for ``input``."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run continue in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false}},"type":"object","title":"Body_continue_agent_run"},"Body_continue_team_run":{"properties":{"requirements":{"type":"string","title":"Requirements","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input"},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","default":false},"regenerate":{"type":"boolean","title":"Regenerate","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original"},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"stream":{"type":"boolean","title":"Stream","default":true},"background":{"type":"boolean","title":"Background","default":false}},"type":"object","title":"Body_continue_team_run"},"Body_continue_workflow_run":{"properties":{"step_requirements":{"type":"string","title":"Step Requirements","description":"JSON string of step requirement objects with resolution status","default":""},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}},"type":"object","title":"Body_continue_workflow_run"},"Body_create_agent_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the agent"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Agent version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic agent construction"}},"type":"object","required":["message"],"title":"Body_create_agent_run"},"Body_create_team_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the team"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"monitor":{"type":"boolean","title":"Monitor","description":"Enable monitoring and logging for this run","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Team version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic team construction"}},"type":"object","required":["message"],"title":"Body_create_team_run"},"Body_create_workflow_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the workflow"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run workflow in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Workflow version to use for this run"},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow construction"}},"type":"object","required":["message"],"title":"Body_create_workflow_run"},"Body_rename_session":{"properties":{"session_name":{"type":"string","title":"Session Name","description":"New name for the session"}},"type":"object","required":["session_name"],"title":"Body_rename_session"},"Body_resume_agent_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_agent_run_stream"},"Body_resume_team_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_team_run_stream"},"Body_resume_workflow_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_workflow_run_stream"},"Body_update_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"Content metadata as JSON string"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"}},"type":"object","title":"Body_update_content"},"Body_upload_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated from file/URL if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description for context"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"URL to fetch content from (JSON array or single URL string)"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object for additional content properties"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File","description":"File to upload for processing"},"text_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Content","description":"Raw text content to process"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for content processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply during processing"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size to use for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap to use for processing"}},"type":"object","title":"Body_upload_content"},"Body_upload_remote_content":{"properties":{"config_id":{"type":"string","title":"Config Id","description":"ID of the configured remote content source (from /knowledge/config)"},"path":{"type":"string","title":"Path","description":"Path to file or folder in the remote source"},"source_params":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Params","description":"JSON object of per-request parameters forwarded to the source's factory. Used for provider-specific routing that shouldn't be baked into the config. Currently supported keys: GitHub accepts 'repo' ('owner/repo'), letting one configured GitHub source serve multiple repositories the credentials can access."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap for processing"}},"type":"object","required":["config_id","path"],"title":"Body_upload_remote_content"},"ChatConfig":{"properties":{"quick_prompts":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Quick Prompts"}},"type":"object","required":["quick_prompts"],"title":"ChatConfig","description":"Configuration for the Chat page of the AgentOS"},"ChunkerSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["key"],"title":"ChunkerSchema"},"ComponentConfigResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"version":{"type":"integer","title":"Version"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"type":"string","title":"Stage"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","version","stage","config","created_at"],"title":"ComponentConfigResponse"},"ComponentCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Display name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id","description":"Unique identifier for the entity. Auto-generated from name if not provided."},"component_type":{"$ref":"#/components/schemas/ComponentType","description":"Type of entity: agent, team, or workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config","description":"Optional configuration"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["name","component_type"],"title":"ComponentCreate"},"ComponentResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"component_type":{"$ref":"#/components/schemas/ComponentType"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","component_type","created_at"],"title":"ComponentResponse"},"ComponentType":{"type":"string","enum":["agent","team","workflow"],"title":"ComponentType"},"ComponentUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"component_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"}},"type":"object","title":"ComponentUpdate"},"ConfigCreate":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config","description":"The configuration data"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Optional version number"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links","description":"Optional links to child components"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["config"],"title":"ConfigCreate"},"ConfigResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the OS instance"},"available_models":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Models","description":"List of available models"},"os_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Database","description":"ID of the database used for the OS instance"},"databases":{"items":{"type":"string"},"type":"array","title":"Databases","description":"List of database IDs used by the components of the OS instance"},"chat":{"anyOf":[{"$ref":"#/components/schemas/ChatConfig"},{"type":"null"}],"description":"Chat configuration"},"manifest":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Manifest"},"type":"object"},{"type":"null"}],"title":"Manifest","description":"Per-entity UI metadata keyed by agent/team/workflow id"},"session":{"anyOf":[{"$ref":"#/components/schemas/SessionConfig"},{"type":"null"}],"description":"Session configuration"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/MetricsConfig"},{"type":"null"}],"description":"Metrics configuration"},"memory":{"anyOf":[{"$ref":"#/components/schemas/MemoryConfig"},{"type":"null"}],"description":"Memory configuration"},"learning":{"anyOf":[{"$ref":"#/components/schemas/LearningConfig"},{"type":"null"}],"description":"Learning configuration"},"knowledge":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeConfig"},{"type":"null"}],"description":"Knowledge configuration"},"evals":{"anyOf":[{"$ref":"#/components/schemas/EvalsConfig"},{"type":"null"}],"description":"Evaluations configuration"},"traces":{"anyOf":[{"$ref":"#/components/schemas/TracesConfig"},{"type":"null"}],"description":"Traces configuration"},"agents":{"items":{"$ref":"#/components/schemas/AgentSummaryResponse"},"type":"array","title":"Agents","description":"List of registered agents"},"teams":{"items":{"$ref":"#/components/schemas/TeamSummaryResponse"},"type":"array","title":"Teams","description":"List of registered teams"},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Workflows","description":"List of registered workflows"},"interfaces":{"items":{"$ref":"#/components/schemas/InterfaceResponse"},"type":"array","title":"Interfaces","description":"List of available interfaces"}},"type":"object","required":["os_id","databases","agents","teams","workflows","interfaces"],"title":"ConfigResponse","description":"Response schema for the general config endpoint"},"ConfigResponseSchema":{"properties":{"readers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ReaderSchema"},"type":"object"},{"type":"null"}],"title":"Readers","description":"Available content readers"},"readersForType":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Readersfortype","description":"Mapping of content types to reader IDs"},"chunkers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ChunkerSchema"},"type":"object"},{"type":"null"}],"title":"Chunkers","description":"Available chunking strategies"},"filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filters","description":"Available filter tags"},"vector_dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/VectorDbSchema"},"type":"array"},{"type":"null"}],"title":"Vector Dbs","description":"Configured vector databases"},"remote_content_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"type":"array"},{"type":"null"}],"title":"Remote Content Sources","description":"Configured remote content sources (S3, GCS, SharePoint, GitHub)"}},"type":"object","title":"ConfigResponseSchema"},"ConfigUpdate":{"properties":{"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","title":"ConfigUpdate"},"ContentResponseSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the content"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"MIME type of the content"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"},"linked_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linked To","description":"ID of related content if linked"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata as key-value pairs"},"access_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Access Count","description":"Number of times content has been accessed"},"status":{"anyOf":[{"$ref":"#/components/schemas/ContentStatus"},{"type":"null"}],"description":"Processing status of the content"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message","description":"Status message or error details"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when content was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when content was last updated"}},"type":"object","required":["id"],"title":"ContentResponseSchema"},"ContentStatus":{"type":"string","enum":["processing","completed","failed"],"title":"ContentStatus","description":"Enumeration of possible content processing statuses."},"ContentStatusResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Content ID"},"status":{"$ref":"#/components/schemas/ContentStatus","description":"Current processing status of the content"},"status_message":{"type":"string","title":"Status Message","description":"Status message or error details","default":""}},"type":"object","required":["status"],"title":"ContentStatusResponse","description":"Response model for content status endpoint."},"Context":{"properties":{"description":{"type":"string","title":"Description"},"value":{"type":"string","title":"Value"}},"additionalProperties":true,"type":"object","required":["description","value"],"title":"Context","description":"Additional context for the agent."},"CreateSessionRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session ID (generated if not provided)"},"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Initial session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"}},"type":"object","title":"CreateSessionRequest"},"DataPart":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data"},"kind":{"type":"string","const":"data","title":"Kind","default":"data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["data"],"title":"DataPart","description":"Represents a structured data segment (e.g., JSON) within a message or artifact."},"DatabaseConfig_EvalsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/EvalsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[EvalsDomainConfig]"},"DatabaseConfig_LearningDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/LearningDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[LearningDomainConfig]"},"DatabaseConfig_MemoryDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MemoryDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MemoryDomainConfig]"},"DatabaseConfig_MetricsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MetricsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MetricsDomainConfig]"},"DatabaseConfig_SessionDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/SessionDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[SessionDomainConfig]"},"DatabaseConfig_TracesDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/TracesDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[TracesDomainConfig]"},"DayAggregatedMetrics":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the metrics record"},"agent_runs_count":{"type":"integer","minimum":0.0,"title":"Agent Runs Count","description":"Total number of agent runs"},"agent_sessions_count":{"type":"integer","minimum":0.0,"title":"Agent Sessions Count","description":"Total number of agent sessions"},"team_runs_count":{"type":"integer","minimum":0.0,"title":"Team Runs Count","description":"Total number of team runs"},"team_sessions_count":{"type":"integer","minimum":0.0,"title":"Team Sessions Count","description":"Total number of team sessions"},"workflow_runs_count":{"type":"integer","minimum":0.0,"title":"Workflow Runs Count","description":"Total number of workflow runs"},"workflow_sessions_count":{"type":"integer","minimum":0.0,"title":"Workflow Sessions Count","description":"Total number of workflow sessions"},"users_count":{"type":"integer","minimum":0.0,"title":"Users Count","description":"Total number of unique users"},"token_metrics":{"additionalProperties":true,"type":"object","title":"Token Metrics","description":"Token usage metrics (input, output, cached, etc.)"},"model_metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Model Metrics","description":"Metrics grouped by model (model_id, provider, count)"},"date":{"type":"string","format":"date-time","title":"Date","description":"Date for which these metrics are aggregated"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when metrics were created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when metrics were last updated"}},"type":"object","required":["id","agent_runs_count","agent_sessions_count","team_runs_count","team_sessions_count","workflow_runs_count","workflow_sessions_count","users_count","token_metrics","model_metrics","date","created_at","updated_at"],"title":"DayAggregatedMetrics","description":"Aggregated metrics for a given day"},"DeleteEvalRunsRequest":{"properties":{"eval_run_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Eval Run Ids","description":"List of evaluation run IDs to delete"}},"type":"object","required":["eval_run_ids"],"title":"DeleteEvalRunsRequest"},"DeleteMemoriesRequest":{"properties":{"memory_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Memory Ids","description":"List of memory IDs to delete"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID to filter memories for deletion"}},"type":"object","required":["memory_ids"],"title":"DeleteMemoriesRequest"},"DeleteSessionRequest":{"properties":{"session_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Session Ids","description":"List of session IDs to delete"},"session_types":{"items":{"$ref":"#/components/schemas/SessionType"},"type":"array","minItems":1,"title":"Session Types","description":"Types of sessions to delete"}},"type":"object","required":["session_ids","session_types"],"title":"DeleteSessionRequest"},"DeveloperMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"developer","title":"Role","default":"developer"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"DeveloperMessage","description":"A developer message."},"DocumentInputContent":{"properties":{"type":{"type":"string","const":"document","title":"Type","default":"document"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"DocumentInputContent","description":"A document input content fragment."},"EvalFilterType":{"type":"string","enum":["agent","team","workflow"],"title":"EvalFilterType"},"EvalRunInput":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID to evaluate"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID to evaluate"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID to use for evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation to run (accuracy, performance, or reliability)"},"input":{"type":"string","minLength":1,"title":"Input","description":"Input text/query for the evaluation"},"additional_guidelines":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Guidelines","description":"Additional guidelines for the evaluation"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for the evaluation"},"num_iterations":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Num Iterations","description":"Number of times to run the evaluation","default":1},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for this evaluation run"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output","description":"Expected output for accuracy evaluation"},"criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criteria","description":"Evaluation criteria for agent-as-judge evaluation"},"scoring_strategy":{"anyOf":[{"type":"string","enum":["numeric","binary"]},{"type":"null"}],"title":"Scoring Strategy","description":"Scoring strategy: 'numeric' (1-10 with threshold) or 'binary' (PASS/FAIL)","default":"binary"},"threshold":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Threshold","description":"Score threshold for pass/fail (1-10), only used with numeric scoring","default":7},"warmup_runs":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Warmup Runs","description":"Number of warmup runs before measuring performance","default":0},"expected_tool_calls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expected Tool Calls","description":"Expected tool calls for reliability evaluation"},"allow_additional_tool_calls":{"type":"boolean","title":"Allow Additional Tool Calls","description":"When True, tool calls not in expected_tool_calls are allowed (subset matching)","default":false},"expected_tool_call_arguments":{"anyOf":[{"additionalProperties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Expected Tool Call Arguments","description":"Expected arguments for specific tool calls, e.g. {\"tool_name\": {\"arg_name\": \"expected_value\"}} or {\"tool_name\": [{\"arg_name\": \"val1\"}, {\"arg_name\": \"val2\"}]}"}},"type":"object","required":["eval_type","input"],"title":"EvalRunInput"},"EvalSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the evaluation run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that was evaluated"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID used in evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that was evaluated"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was evaluated"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the evaluation run"},"evaluated_component_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluated Component Name","description":"Name of the evaluated component"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation (accuracy, performance, or reliability)"},"eval_data":{"additionalProperties":true,"type":"object","title":"Eval Data","description":"Evaluation results and metrics"},"eval_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eval Input","description":"Input parameters used for the evaluation"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when evaluation was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when evaluation was last updated"}},"type":"object","required":["id","eval_type","eval_data"],"title":"EvalSchema"},"EvalType":{"type":"string","enum":["accuracy","agent_as_judge","performance","reliability"],"title":"EvalType"},"EvalsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_EvalsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"EvalsConfig","description":"Configuration for the Evals domain of the AgentOS"},"EvalsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"EvalsDomainConfig","description":"Configuration for the Evals domain of the AgentOS"},"FilePart":{"properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/FileWithBytes"},{"$ref":"#/components/schemas/FileWithUri"}],"title":"File"},"kind":{"type":"string","const":"file","title":"Kind","default":"file"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["file"],"title":"FilePart","description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI."},"FileWithBytes":{"properties":{"bytes":{"type":"string","title":"Bytes"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["bytes"],"title":"FileWithBytes","description":"Represents a file with its content provided directly as a base64-encoded string."},"FileWithUri":{"properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uri":{"type":"string","title":"Uri"}},"type":"object","required":["uri"],"title":"FileWithUri","description":"Represents a file with its content located at a specific URI."},"FilterFieldSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Column/field name used in filter expressions"},"label":{"type":"string","title":"Label","description":"Human-readable display label for the UI"},"type":{"type":"string","title":"Type","description":"Field data type: string, number, datetime, enum"},"operators":{"items":{"type":"string"},"type":"array","title":"Operators","description":"List of valid filter operators for this field"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values","description":"Allowed enum values (for autocomplete/dropdown)"}},"type":"object","required":["key","label","type","operators"],"title":"FilterFieldSchema","description":"Schema describing a single filterable field for the frontend filter bar."},"FilterSchemaResponse":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FilterFieldSchema"},"type":"array","title":"Fields","description":"Available filterable fields"},"logical_operators":{"items":{"type":"string"},"type":"array","title":"Logical Operators","description":"Logical operators for combining filter clauses","default":["AND","OR"]}},"type":"object","required":["fields"],"title":"FilterSchemaResponse","description":"Response for the filter schema endpoint. Tells the FE what fields, operators, and values are available."},"FunctionCall":{"properties":{"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"additionalProperties":true,"type":"object","required":["name","arguments"],"title":"FunctionCall","description":"Name and arguments of a function call."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Health status of the service"},"instantiated_at":{"type":"string","format":"date-time","title":"Instantiated At","description":"Timestamp when service was instantiated"}},"type":"object","required":["status","instantiated_at"],"title":"HealthResponse","example":{"instantiated_at":"2025-06-10T12:00:00Z","status":"ok"}},"ImageInputContent":{"properties":{"type":{"type":"string","const":"image","title":"Type","default":"image"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"ImageInputContent","description":"An image input content fragment."},"InfoResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"agno_version":{"type":"string","title":"Agno Version","description":"Version of the agno framework"},"agent_count":{"type":"integer","title":"Agent Count","description":"Number of agents registered in the OS","default":0},"team_count":{"type":"integer","title":"Team Count","description":"Number of teams registered in the OS","default":0},"workflow_count":{"type":"integer","title":"Workflow Count","description":"Number of workflows registered in the OS","default":0},"mcp":{"$ref":"#/components/schemas/McpInfo","description":"MCP server availability for this OS instance"},"auth_mode":{"type":"string","enum":["none","security_key","jwt"],"title":"Auth Mode","description":"Authentication mode enforced on the REST/WS plane of this OS instance. MCP OAuth, when enabled, is described separately under `mcp.oauth`.","default":"none"}},"type":"object","required":["os_id","agno_version"],"title":"InfoResponse","description":"Response schema for the /info endpoint returning lightweight OS metadata."},"InputContentDataSource":{"properties":{"type":{"type":"string","const":"data","title":"Type","default":"data"},"value":{"type":"string","title":"Value"},"mimeType":{"type":"string","title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value","mimeType"],"title":"InputContentDataSource","description":"Inline base64-encoded source."},"InputContentUrlSource":{"properties":{"type":{"type":"string","const":"url","title":"Type","default":"url"},"value":{"type":"string","title":"Value"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value"],"title":"InputContentUrlSource","description":"URL-referenced source."},"InterfaceResponse":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the interface"},"version":{"type":"string","title":"Version","description":"Version of the interface"},"route":{"type":"string","title":"Route","description":"API route path"}},"type":"object","required":["type","version","route"],"title":"InterfaceResponse"},"InternalServerErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"InternalServerErrorResponse","example":{"detail":"Internal server error","error_code":"INTERNAL_SERVER_ERROR"}},"KnowledgeConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeDatabaseConfig"},"type":"array"},{"type":"null"}],"title":"Dbs"},"knowledge_instances":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeInstanceConfig"},"type":"array"},{"type":"null"}],"title":"Knowledge Instances"}},"type":"object","title":"KnowledgeConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeDatabaseConfig":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeDomainConfig"},{"type":"null"}]},"tables":{"items":{"type":"string"},"type":"array","title":"Tables","default":[]}},"type":"object","required":["db_id"],"title":"KnowledgeDatabaseConfig","description":"Configuration for a knowledge database with its tables"},"KnowledgeDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"KnowledgeDomainConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeInstanceConfig":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"db_id":{"type":"string","title":"Db Id"},"table":{"type":"string","title":"Table"}},"type":"object","required":["id","name","db_id","table"],"title":"KnowledgeInstanceConfig","description":"Configuration for a single knowledge instance"},"LearningConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_LearningDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"LearningConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningCreate":{"properties":{"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"content":{"additionalProperties":true,"type":"object","title":"Content","description":"The learning content payload"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID. When the request is authenticated, must match the JWT subject or be omitted/null (which creates a global / non-user-scoped record)."},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"}},"type":"object","required":["learning_type","content"],"title":"LearningCreate","description":"Request body for creating a learning record."},"LearningDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"LearningDomainConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningResponse":{"properties":{"learning_id":{"type":"string","title":"Learning Id","description":"Unique identifier for the learning record"},"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID (for entity-specific learnings)"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type (e.g. 'person', 'company')"},"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"The learning content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Creation timestamp (Unix epoch seconds)"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp (Unix epoch seconds)"}},"type":"object","required":["learning_id","learning_type"],"title":"LearningResponse","description":"A single learning record as returned by the API."},"LearningUpdate":{"properties":{"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Replacement content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Replacement metadata"}},"type":"object","title":"LearningUpdate","description":"Request body for updating a learning record. Identity fields are immutable."},"LearningUserStats":{"properties":{"user_id":{"type":"string","title":"User Id","description":"The user ID"},"last_learning_updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Learning Updated At","description":"Most recent learning update for this user (Unix epoch seconds)"}},"type":"object","required":["user_id"],"title":"LearningUserStats","description":"A user that owns learning records, with their most recent activity.\n\nUsed as a lightweight index for the per-user view: list users here, then drill into a\nsingle user's records via ``GET /learnings?user_id=...``. No per-user count is returned\n-- the user-scoped stores (``user_profile``, ``user_memory``) keep a single record per\nuser, so a record count would always be 1; the actual memory count lives in that\nrecord's ``content``."},"Manifest":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"},"quick_prompts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quick Prompts"}},"type":"object","title":"Manifest","description":"OS-level UI metadata for an agent/team/workflow.\n\nFields here are AgentOS UI metadata only. ``description`` is unrelated to\n``Agent.description`` / ``Team.description`` / ``Workflow.description``,\nwhich are sent to the model.\n\nRendering surfaces:\n- ``description``, ``labels``: home/landing card\n- ``quick_prompts``: chat page"},"McpInfo":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the MCP server is enabled on this OS instance","default":false},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Path where the MCP server is mounted, null when disabled"},"oauth":{"anyOf":[{"$ref":"#/components/schemas/McpOAuthInfo"},{"type":"null"}],"description":"OAuth discovery details when the MCP endpoint is OAuth-protected, null otherwise"}},"type":"object","title":"McpInfo","description":"MCP server availability for the /info endpoint."},"McpOAuthInfo":{"properties":{"authorization_servers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorization Servers","description":"Issuer URL(s) of the authorization server(s) protecting the MCP endpoint"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource","description":"RFC 9728 resource URL advertised for the MCP endpoint"}},"type":"object","title":"McpOAuthInfo","description":"OAuth discovery details for an MCP endpoint protected by ``AgentOS(mcp_auth=...)``."},"MemoryConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MemoryDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MemoryConfig","description":"Configuration for the Memory domain of the AgentOS"},"MemoryDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MemoryDomainConfig","description":"Configuration for the Memory domain of the AgentOS"},"Message":{"properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"kind":{"type":"string","const":"message","title":"Kind","default":"message"},"messageId":{"type":"string","title":"Messageid"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taskid"}},"type":"object","required":["messageId","parts","role"],"title":"Message","description":"Represents a single message in the conversation between a user and an agent."},"Meta":{"properties":{"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of results per page","default":20},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number","default":1}},"type":"object","title":"Meta","description":"Inline metadata schema for pagination."},"MetricsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MetricsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MetricsConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MetricsDomainConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsResponse":{"properties":{"metrics":{"items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"type":"array","title":"Metrics","description":"List of daily aggregated metrics"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp of the most recent metrics update"}},"type":"object","required":["metrics"],"title":"MetricsResponse"},"Model":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"Model"},"ModelResponse":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the model"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"ModelResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"NotFoundResponse","example":{"detail":"Not found","error_code":"NOT_FOUND"}},"OptimizeMemoriesRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID to optimize memories for"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model to use for optimization in format 'provider:model_id' (e.g., 'openai:gpt-4o-mini', 'anthropic:claude-3-5-sonnet-20241022', 'google:gemini-2.0-flash-exp'). If not specified, uses MemoryManager's default model (gpt-4o)."},"apply":{"type":"boolean","title":"Apply","description":"If True, apply optimization changes to database. If False, return preview only without saving.","default":true}},"type":"object","required":["user_id"],"title":"OptimizeMemoriesRequest","description":"Schema for memory optimization request"},"OptimizeMemoriesResponse":{"properties":{"memories":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Memories","description":"List of optimized memory objects"},"memories_before":{"type":"integer","minimum":0.0,"title":"Memories Before","description":"Number of memories before optimization"},"memories_after":{"type":"integer","minimum":0.0,"title":"Memories After","description":"Number of memories after optimization"},"tokens_before":{"type":"integer","minimum":0.0,"title":"Tokens Before","description":"Token count before optimization"},"tokens_after":{"type":"integer","minimum":0.0,"title":"Tokens After","description":"Token count after optimization"},"tokens_saved":{"type":"integer","minimum":0.0,"title":"Tokens Saved","description":"Number of tokens saved through optimization"},"reduction_percentage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Reduction Percentage","description":"Percentage of token reduction achieved"}},"type":"object","required":["memories","memories_before","memories_after","tokens_before","tokens_after","tokens_saved","reduction_percentage"],"title":"OptimizeMemoriesResponse","description":"Schema for memory optimization response"},"PaginatedResponse_ApprovalResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ApprovalResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ApprovalResponse]"},"PaginatedResponse_ComponentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ComponentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ComponentResponse]"},"PaginatedResponse_ContentResponseSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentResponseSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ContentResponseSchema]"},"PaginatedResponse_EvalSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EvalSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[EvalSchema]"},"PaginatedResponse_LearningResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningResponse]"},"PaginatedResponse_LearningUserStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningUserStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningUserStats]"},"PaginatedResponse_RegistryContentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RegistryContentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[RegistryContentResponse]"},"PaginatedResponse_ScheduleResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleResponse]"},"PaginatedResponse_ScheduleRunResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleRunResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleRunResponse]"},"PaginatedResponse_ServiceAccountResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ServiceAccountResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ServiceAccountResponse]"},"PaginatedResponse_SessionSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SessionSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[SessionSchema]"},"PaginatedResponse_TraceDetail_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceDetail"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceDetail]"},"PaginatedResponse_TraceSessionStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSessionStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSessionStats]"},"PaginatedResponse_TraceSummary_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSummary"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSummary]"},"PaginatedResponse_UserMemorySchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserMemorySchema]"},"PaginatedResponse_UserStatsSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserStatsSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserStatsSchema]"},"PaginatedResponse_VectorSearchResult_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VectorSearchResult"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[VectorSearchResult]"},"PaginationInfo":{"properties":{"page":{"type":"integer","minimum":0.0,"title":"Page","description":"Current page number (0-indexed)","default":0},"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of items per page","default":20},"total_pages":{"type":"integer","minimum":0.0,"title":"Total Pages","description":"Total number of pages","default":0},"total_count":{"type":"integer","minimum":0.0,"title":"Total Count","description":"Total count of items","default":0},"search_time_ms":{"type":"number","minimum":0.0,"title":"Search Time Ms","description":"Search execution time in milliseconds","default":0}},"type":"object","title":"PaginationInfo"},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/DataPart"}],"title":"Part"},"ReaderSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the reader"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the reader"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the reader's capabilities"},"chunkers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chunkers","description":"List of supported chunking strategies"}},"type":"object","required":["id"],"title":"ReaderSchema"},"ReasoningMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"reasoning","title":"Role","default":"reasoning"},"content":{"type":"string","title":"Content"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"ReasoningMessage","description":"A reasoning message containing the agent's internal reasoning process."},"RegistryContentResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/RegistryResourceType"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name","type"],"title":"RegistryContentResponse"},"RegistryResourceType":{"type":"string","enum":["tool","model","db","vector_db","schema","function","agent","team","knowledge","memory_manager","session_summary_manager"],"title":"RegistryResourceType","description":"Types of resources that can be stored in a registry."},"RemoteContentSourceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content source"},"name":{"type":"string","title":"Name","description":"Display name for the content source"},"type":{"type":"string","title":"Type","description":"Type of content source (s3, gcs, sharepoint, github, azureblob)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Default path prefix for this source"}},"type":"object","required":["id","name","type"],"title":"RemoteContentSourceSchema","description":"Schema for remote content source configuration."},"ResumeEntry":{"properties":{"interruptId":{"type":"string","title":"Interruptid"},"status":{"type":"string","enum":["resolved","cancelled"],"title":"Status"},"payload":{"anyOf":[{},{"type":"null"}],"title":"Payload"}},"additionalProperties":true,"type":"object","required":["interruptId","status"],"title":"ResumeEntry","description":"A per-interrupt response in the resume array of a RunAgentInput."},"Role":{"type":"string","enum":["agent","user"],"title":"Role","description":"Identifies the sender of the message. `user` for the client, `agent` for the service."},"RunAgentInput":{"properties":{"threadId":{"type":"string","title":"Threadid"},"runId":{"type":"string","title":"Runid"},"parentRunId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentrunid"},"state":{"title":"State"},"messages":{"items":{"oneOf":[{"$ref":"#/components/schemas/DeveloperMessage"},{"$ref":"#/components/schemas/SystemMessage"},{"$ref":"#/components/schemas/AssistantMessage"},{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/ToolMessage"},{"$ref":"#/components/schemas/ActivityMessage"},{"$ref":"#/components/schemas/ReasoningMessage"}],"discriminator":{"propertyName":"role","mapping":{"activity":"#/components/schemas/ActivityMessage","assistant":"#/components/schemas/AssistantMessage","developer":"#/components/schemas/DeveloperMessage","reasoning":"#/components/schemas/ReasoningMessage","system":"#/components/schemas/SystemMessage","tool":"#/components/schemas/ToolMessage","user":"#/components/schemas/UserMessage"}}},"type":"array","title":"Messages"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","title":"Tools"},"context":{"items":{"$ref":"#/components/schemas/Context"},"type":"array","title":"Context"},"forwardedProps":{"title":"Forwardedprops"},"resume":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResumeEntry"},"type":"array"},{"type":"null"}],"title":"Resume"}},"additionalProperties":true,"type":"object","required":["threadId","runId","state","messages","tools","context","forwardedProps"],"title":"RunAgentInput","description":"Input for running an agent."},"RunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that executed this run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"RunSchema"},"RunStatus":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","PAUSED","CANCELLED","ERROR","REGENERATED"],"title":"RunStatus","description":"State of the main run response"},"ScheduleCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"cron_expr":{"type":"string","maxLength":128,"title":"Cron Expr"},"endpoint":{"type":"string","maxLength":512,"title":"Endpoint"},"method":{"type":"string","maxLength":10,"title":"Method","default":"POST"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"type":"string","maxLength":64,"title":"Timezone","default":"UTC"},"timeout_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Timeout Seconds","default":3600},"max_retries":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Max Retries","default":0},"retry_delay_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Retry Delay Seconds","default":60}},"type":"object","required":["name","cron_expr","endpoint"],"title":"ScheduleCreate"},"ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"cron_expr":{"type":"string","title":"Cron Expr"},"timezone":{"type":"string","title":"Timezone"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"max_retries":{"type":"integer","title":"Max Retries"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","method","endpoint","cron_expr","timezone","timeout_seconds","max_retries","retry_delay_seconds","enabled"],"title":"ScheduleResponse"},"ScheduleRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"schedule_id":{"type":"string","title":"Schedule Id"},"attempt":{"type":"integer","title":"Attempt"},"triggered_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triggered At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"status":{"type":"string","title":"Status"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","schedule_id","attempt","status"],"title":"ScheduleRunResponse"},"ScheduleStateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","enabled"],"title":"ScheduleStateResponse","description":"Trimmed response for state-changing operations (enable/disable)."},"ScheduleUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"cron_expr":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Cron Expr"},"endpoint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Endpoint"},"method":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Method"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Timezone"},"timeout_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":1.0},{"type":"null"}],"title":"Timeout Seconds"},"max_retries":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Max Retries"},"retry_delay_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":1.0},{"type":"null"}],"title":"Retry Delay Seconds"}},"type":"object","title":"ScheduleUpdate"},"ScopeItem":{"properties":{"scope":{"type":"string","title":"Scope","description":"Scope string, e.g. 'agents:*:run'"},"effect":{"type":"string","enum":["allow","deny"],"title":"Effect","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["scope"],"title":"ScopeItem","description":"Write shape for one scope grant — the canonical RBAC payload for every scope-bearing API.\n\nEndpoints that take scopes accept these objects only (a bare string is a validation\nerror). ``effect`` is constrained here so every consumer rejects typos at the model\nlayer; whether ``deny`` is *semantically* legal stays per-endpoint (roles support\ndeny rules, service-account tokens are pure grants and reject it)."},"ScopeSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Scope id (always null here; kept for shape parity with the cloud RBAC API, which addresses scopes individually)"},"raw":{"type":"string","title":"Raw","description":"Original scope string, e.g. 'agents:*:run'"},"namespace":{"type":"string","title":"Namespace","description":"Resource namespace, e.g. 'agents'"},"sub_namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Namespace","description":"Specific resource id or wildcard '*'"},"permission":{"type":"string","title":"Permission","description":"Action, e.g. 'read' / 'run' / 'write'"},"value":{"type":"string","title":"Value","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["raw","namespace","permission"],"title":"ScopeSchema","description":"Read shape for one scope — the parsed RBAC payload shared by every scope-bearing API.\n\nMirrors the cloud RBAC scope shape ({raw, namespace, sub_namespace, permission, value})\nso a frontend renders scopes from any AgentOS API with one integration."},"SendMessageSuccessResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id"},"jsonrpc":{"type":"string","const":"2.0","title":"Jsonrpc","default":"2.0"},"result":{"anyOf":[{"$ref":"#/components/schemas/Task"},{"$ref":"#/components/schemas/Message"}],"title":"Result"}},"type":"object","required":["result"],"title":"SendMessageSuccessResponse","description":"Represents a successful JSON-RPC response for the `message/send` method."},"ServiceAccountCreate":{"properties":{"name":{"type":"string","maxLength":63,"title":"Name","description":"Machine identity name (lowercase slug), e.g. 'claude-code' or 'github-actions'"},"scopes":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScopeItem"},"type":"array"},{"type":"null"}],"title":"Scopes","description":"Scopes granted to the token, as {scope, effect} objects (the shared RBAC write shape; token scopes are grants, so only effect='allow' is accepted). Defaults to run and read scopes: agents:run, teams:run, workflows:run, sessions:read"},"expires_in_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Expires In Days","description":"Days until the token expires (default: 90)","default":90},"never_expires":{"type":"boolean","title":"Never Expires","description":"Mint a non-expiring token. Must be set explicitly; overrides expires_in_days.","default":false},"allow_privileged_scopes":{"type":"boolean","title":"Allow Privileged Scopes","description":"Required to grant privileged scopes: any write or delete action, the admin scope, or any service_accounts scope. Privileged tokens must be deliberate, never accidental.","default":false}},"type":"object","required":["name"],"title":"ServiceAccountCreate"},"ServiceAccountCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"token":{"type":"string","title":"Token","description":"The plaintext token. Shown exactly once - store it securely now."}},"type":"object","required":["id","name","principal","token_prefix","created_at","token"],"title":"ServiceAccountCreateResponse","description":"Returned once, at creation. The token is never retrievable again."},"ServiceAccountResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","name","principal","token_prefix","created_at"],"title":"ServiceAccountResponse","description":"Service account metadata. Never includes the token hash or plaintext."},"SessionConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_SessionDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"SessionConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"SessionDomainConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier for the session"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state data of the session"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when session was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when session was last updated"},"session_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type","description":"Type of session: agent, team, or workflow"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["session_id","session_name"],"title":"SessionSchema"},"SessionType":{"type":"string","enum":["agent","team","workflow"],"title":"SessionType"},"SlackChallengeResponse":{"properties":{"challenge":{"type":"string","title":"Challenge","description":"Challenge string to echo back to Slack"}},"type":"object","required":["challenge"],"title":"SlackChallengeResponse"},"SlackEventResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"}},"type":"object","title":"SlackEventResponse"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"SourceFileSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Full path/key of the file"},"name":{"type":"string","title":"Name","description":"Display name (filename)"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"File size in bytes"},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified","description":"ISO 8601 timestamp of last modification"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"MIME type of the file"}},"type":"object","required":["key","name"],"title":"SourceFileSchema","description":"Schema for a file in a content source."},"SourceFilesResponseSchema":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"ID of the content source"},"source_name":{"type":"string","title":"Source Name","description":"Name of the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Prefix filter that was applied"},"folders":{"items":{"$ref":"#/components/schemas/SourceFolderSchema"},"type":"array","title":"Folders","description":"Subfolders at this level"},"files":{"items":{"$ref":"#/components/schemas/SourceFileSchema"},"type":"array","title":"Files","description":"List of files at this level"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["source_id","source_name","meta"],"title":"SourceFilesResponseSchema","description":"Response schema for listing files in a content source."},"SourceFolderSchema":{"properties":{"prefix":{"type":"string","title":"Prefix","description":"Full prefix to use for navigating into this folder"},"name":{"type":"string","title":"Name","description":"Display name of the folder"},"is_empty":{"type":"boolean","title":"Is Empty","description":"Whether the folder contains any files","default":false}},"type":"object","required":["prefix","name"],"title":"SourceFolderSchema","description":"Schema for a folder in a content source."},"SystemMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"system","title":"Role","default":"system"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"SystemMessage","description":"A system message."},"Task":{"properties":{"artifacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Artifact"},"type":"array"},{"type":"null"}],"title":"Artifacts"},"contextId":{"type":"string","title":"Contextid"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"History"},"id":{"type":"string","title":"Id"},"kind":{"type":"string","const":"task","title":"Kind","default":"task"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"status":{"$ref":"#/components/schemas/TaskStatus"}},"type":"object","required":["contextId","id","status"],"title":"Task","description":"Represents a single, stateful operation or conversation between a client and an agent."},"TaskState":{"type":"string","enum":["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"],"title":"TaskState","description":"Defines the lifecycle states of a Task."},"TaskStatus":{"properties":{"message":{"anyOf":[{"$ref":"#/components/schemas/Message"},{"type":"null"}]},"state":{"$ref":"#/components/schemas/TaskState"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp","examples":["2023-10-27T10:00:00Z"]}},"type":"object","required":["state"],"title":"TaskStatus","description":"Represents the status of a task at a specific point in time."},"TeamResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"members":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"$ref":"#/components/schemas/TeamResponse"}]},"type":"array"},{"type":"null"}],"title":"Members"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"TeamResponse"},"TeamRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the team run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that executed this run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the team run"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this team run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this team run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this team run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this team run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"TeamRunSchema"},"TeamSessionDetailSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID used in this session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of team interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"team_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Team Data","description":"Team-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"}},"type":"object","required":["session_id","session_name"],"title":"TeamSessionDetailSchema"},"TeamSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the team"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the team"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the team"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Team execution mode (coordinate, route, broadcast, tasks)"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the team leader"}},"type":"object","title":"TeamSummaryResponse"},"TelegramStatusResponse":{"properties":{"status":{"type":"string","title":"Status","default":"available"}},"type":"object","title":"TelegramStatusResponse"},"TelegramWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status"}},"type":"object","required":["status"],"title":"TelegramWebhookResponse"},"TextInputContent":{"properties":{"type":{"type":"string","const":"text","title":"Type","default":"text"},"text":{"type":"string","title":"Text"}},"additionalProperties":true,"type":"object","required":["text"],"title":"TextInputContent","description":"A text fragment in a multimodal user message."},"TextPart":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"TextPart","description":"Represents a text segment within a message or artifact."},"Tool":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{},{"type":"null"}],"title":"Parameters"}},"additionalProperties":true,"type":"object","required":["name","description"],"title":"Tool","description":"A tool definition."},"ToolCall":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/FunctionCall"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","function"],"title":"ToolCall","description":"A tool call, modelled after OpenAI tool calls."},"ToolMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"tool","title":"Role","default":"tool"},"content":{"type":"string","title":"Content"},"toolCallId":{"type":"string","title":"Toolcallid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content","toolCallId"],"title":"ToolMessage","description":"A tool result message."},"TraceDetail":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent/workflow"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the agent/workflow"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"},"tree":{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array","title":"Tree","description":"Hierarchical tree of spans (root nodes)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at","tree"],"title":"TraceDetail","description":"Detailed trace information with hierarchical span tree"},"TraceNode":{"properties":{"id":{"type":"string","title":"Id","description":"Span ID"},"name":{"type":"string","title":"Name","description":"Span name (e.g., 'agent.run', 'llm.invoke')"},"type":{"type":"string","title":"Type","description":"Span kind (AGENT, TEAM, WORKFLOW, LLM, TOOL)"},"duration":{"type":"string","title":"Duration","description":"Human-readable duration (e.g., '123ms', '1.5s')"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"End time (Pydantic auto-serializes to ISO 8601)"},"status":{"type":"string","title":"Status","description":"Status code (OK, ERROR)"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the span"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the span"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"spans":{"anyOf":[{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array"},{"type":"null"}],"title":"Spans","description":"Child spans in the trace hierarchy"},"step_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Type","description":"Workflow step type (Step, Condition, function, Agent, Team)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional span attributes and data"},"extra_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Data","description":"Flexible field for custom attributes and additional data"}},"type":"object","required":["id","name","type","duration","start_time","end_time","status"],"title":"TraceNode","description":"Recursive node structure for rendering trace hierarchy in the frontend"},"TraceSearchGroupBy":{"type":"string","enum":["run","session"],"title":"TraceSearchGroupBy","description":"Grouping options for trace search results."},"TraceSearchRequest":{"properties":{"filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter","description":"FilterExpr DSL as JSON dict. Supports operators: EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH, AND, OR, NOT."},"group_by":{"$ref":"#/components/schemas/TraceSearchGroupBy","description":"Grouping mode: 'run' returns individual TraceDetail, 'session' returns aggregated TraceSessionStats.","default":"run"},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number (1-indexed)","default":1},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"Number of traces per page (max 100)","default":20}},"type":"object","title":"TraceSearchRequest","description":"Request body for POST /traces/search with advanced filtering.\n\nThe filter field accepts a FilterExpr DSL dict supporting composable queries\nwith AND/OR/NOT logic and operators like EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH.\n\nExample for run grouping (default):\n {\n \"filter\": {\n \"op\": \"AND\",\n \"conditions\": [\n {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n {\"op\": \"CONTAINS\", \"key\": \"user_id\", \"value\": \"admin\"}\n ]\n },\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n }\n\nExample for session grouping:\n {\n \"filter\": {\"op\": \"EQ\", \"key\": \"agent_id\", \"value\": \"my-agent\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n }"},"TraceSessionStats":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID(s) used in the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID associated with the session"},"total_traces":{"type":"integer","title":"Total Traces","description":"Total number of traces in this session"},"first_trace_at":{"type":"string","format":"date-time","title":"First Trace At","description":"Time of first trace (Pydantic auto-serializes to ISO 8601)"},"last_trace_at":{"type":"string","format":"date-time","title":"Last Trace At","description":"Time of last trace (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["session_id","total_traces","first_trace_at","last_trace_at"],"title":"TraceSessionStats","description":"Aggregated trace statistics grouped by session"},"TraceSummary":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR, UNSET)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at"],"title":"TraceSummary","description":"Summary information for trace list view"},"TracesConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_TracesDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"TracesConfig","description":"Configuration for the Traces domain of the AgentOS"},"TracesDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"TracesDomainConfig","description":"Configuration for the Traces domain of the AgentOS"},"UnauthenticatedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"UnauthenticatedResponse","example":{"detail":"Unauthenticated access","error_code":"UNAUTHENTICATED"}},"UpdateEvalRunRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"New name for the evaluation run"}},"type":"object","required":["name"],"title":"UpdateEvalRunRequest"},"UpdateSessionRequest":{"properties":{"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Updated session name"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Updated session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Updated metadata"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary","description":"Session summary"}},"type":"object","title":"UpdateSessionRequest"},"UserMemoryCreateSchema":{"properties":{"memory":{"type":"string","maxLength":5000,"minLength":1,"title":"Memory","description":"Memory content text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags to categorize the memory"}},"type":"object","required":["memory"],"title":"UserMemoryCreateSchema","description":"Define the payload expected for creating a new user memory"},"UserMemorySchema":{"properties":{"memory_id":{"type":"string","title":"Memory Id","description":"Unique identifier for the memory"},"memory":{"type":"string","title":"Memory","description":"Memory content text"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags associated with the memory"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID associated with this memory"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with this memory"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when memory was last updated"}},"type":"object","required":["memory_id","memory"],"title":"UserMemorySchema"},"UserMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"user","title":"Role","default":"user"},"content":{"anyOf":[{"type":"string"},{"items":{"oneOf":[{"$ref":"#/components/schemas/TextInputContent"},{"$ref":"#/components/schemas/ImageInputContent"},{"$ref":"#/components/schemas/AudioInputContent"},{"$ref":"#/components/schemas/VideoInputContent"},{"$ref":"#/components/schemas/DocumentInputContent"},{"$ref":"#/components/schemas/BinaryInputContent"}],"discriminator":{"propertyName":"type","mapping":{"audio":"#/components/schemas/AudioInputContent","binary":"#/components/schemas/BinaryInputContent","document":"#/components/schemas/DocumentInputContent","image":"#/components/schemas/ImageInputContent","text":"#/components/schemas/TextInputContent","video":"#/components/schemas/VideoInputContent"}}},"type":"array"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"UserMessage","description":"A user message supporting text or multimodal content."},"UserStatsSchema":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"total_memories":{"type":"integer","minimum":0.0,"title":"Total Memories","description":"Total number of memories for this user"},"last_memory_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Memory Updated At","description":"Timestamp of the most recent memory update"}},"type":"object","required":["user_id","total_memories"],"title":"UserStatsSchema","description":"Schema for user memory statistics"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"ValidationErrorResponse","example":{"detail":"Validation error","error_code":"VALIDATION_ERROR"}},"VectorDbSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the vector database"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the vector database"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the vector database"},"search_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Search Types","description":"List of supported search types (vector, keyword, hybrid)"}},"type":"object","required":["id"],"title":"VectorDbSchema"},"VectorSearchRequestSchema":{"properties":{"query":{"type":"string","title":"Query","description":"The search query text"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database ID to search in"},"knowledge_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledge Id","description":"Knowledge base ID to search in"},"vector_db_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vector Db Ids","description":"List of vector database IDs to search in"},"search_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Type","description":"The type of search to perform (vector, keyword, hybrid)"},"max_results":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Max Results","description":"The maximum number of results to return"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Filters to apply to the search results"},"meta":{"anyOf":[{"$ref":"#/components/schemas/Meta"},{"type":"null"}],"description":"Pagination metadata. Limit and page number to return a subset of results."}},"type":"object","required":["query"],"title":"VectorSearchRequestSchema","description":"Schema for vector search request."},"VectorSearchResult":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the search result document"},"content":{"type":"string","title":"Content","description":"Content text of the document"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the document"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Metadata associated with the document"},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"Usage statistics (e.g., token counts)"},"reranking_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reranking Score","description":"Reranking score for relevance"},"content_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Id","description":"ID of the source content"},"content_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Origin","description":"Origin URL or source of the content"},"size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"}},"type":"object","required":["id","content"],"title":"VectorSearchResult","description":"Schema for search result documents."},"VideoInputContent":{"properties":{"type":{"type":"string","const":"video","title":"Type","default":"video"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"VideoInputContent","description":"A video input content fragment."},"WhatsAppWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status","default":"ok"}},"type":"object","title":"WhatsAppWebhookResponse"},"WorkflowResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema","description":"Input schema for the workflow"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps","description":"List of workflow steps"},"agent":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"type":"null"}],"description":"Agent configuration if used"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamResponse"},{"type":"null"}],"description":"Team configuration if used"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"workflow_agent":{"type":"boolean","title":"Workflow Agent","description":"Whether this workflow uses a WorkflowAgent","default":false},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowResponse"},"WorkflowRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the workflow run"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the workflow"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was executed"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the workflow"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"Type of content returned"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status of the workflow run"},"step_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Results","description":"Results from each workflow step"},"step_executor_runs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Executor Runs","description":"Executor runs for each step"},"step_requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Requirements","description":"HITL step requirements (resolved state for historical display)"},"pause_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Kind","description":"Kind of HITL pause: 'step' or 'executor'"},"paused_step_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Step Name","description":"Name of the step that caused the pause"},"paused_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Paused Step Index","description":"Index of the step that caused the pause"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the workflow"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the workflow"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the workflow"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the workflow"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the workflow"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"}},"type":"object","required":["run_id"],"title":"WorkflowRunSchema"},"WorkflowSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID used in this session"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name","description":"Name of the workflow"},"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Data","description":"Complete session data"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current workflow state"},"workflow_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Data","description":"Workflow-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["session_id","session_name"],"title":"WorkflowSessionDetailSchema"},"WorkflowSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowSummaryResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} +{"openapi":"3.1.0","info":{"title":"Agno API Reference","description":"The all-in-one, private, secure agent platform that runs in your cloud.","version":"2.7.4"},"paths":{"/":{"get":{"tags":["Home"],"summary":"API Information","description":"Get basic information about this AgentOS API instance, including:\n\n- API metadata and version\n- Available capabilities overview\n- Links to key endpoints and documentation","operationId":"get_api_info","responses":{"200":{"description":"API information retrieved successfully","content":{"application/json":{"schema":{},"examples":{"home":{"summary":"Example home response","value":{"name":"AgentOS API","id":"demo-os","version":"1.0.0"}}}}}}}}},"/health":{"get":{"tags":["Health"],"summary":"Health Check","description":"Check the health status of the AgentOS API. Returns a simple status indicator.","operationId":"health_check","responses":{"200":{"description":"API is healthy and operational","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"},"example":{"status":"ok","instantiated_at":"2025-06-10T12:00:00Z"}}}}}}},"/info":{"get":{"tags":["Core"],"summary":"Get OS Info","description":"Return lightweight, unauthenticated metadata about this AgentOS instance.","operationId":"get_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoResponse"}}}}}}},"/config":{"get":{"tags":["Core"],"summary":"Get OS Configuration","description":"Retrieve the complete configuration of the AgentOS instance, including:\n\n- Available models and databases\n- Registered agents, teams, and workflows\n- Chat, session, memory, knowledge, and evaluation configurations\n- Available interfaces and their routes","operationId":"get_config","responses":{"200":{"description":"OS configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"},"example":{"description":"Example AgentOS configuration","available_models":[],"databases":["9c884dc4-9066-448c-9074-ef49ec7eb73c"],"session":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Sessions"}}]},"metrics":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Metrics"}}]},"memory":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Memory"}}]},"knowledge":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Knowledge"}}]},"evals":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Evals"}}]},"agents":[{"id":"main-agent","name":"Main Agent","db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c"}],"teams":[],"workflows":[],"interfaces":[],"os_id":"demo"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/models":{"get":{"tags":["Core"],"summary":"Get Available Models","description":"Retrieve a list of all unique models currently used by agents and teams in this OS instance. This includes the model ID and provider information for each model.","operationId":"get_models","responses":{"200":{"description":"List of models retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Response Get Models"},"example":[{"id":"gpt-4","provider":"openai"},{"id":"claude-3-sonnet","provider":"anthropic"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}/runs":{"post":{"tags":["Agents"],"summary":"Create Agent Run","description":"Execute an agent with a message and optional media files. Supports both streaming and non-streaming responses.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_agent_run"}}}},"responses":{"200":{"description":"Agent run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"examples":{"event_stream":{"summary":"Example event stream response","value":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Agents"],"summary":"List Agent Runs","description":"List runs for an agent within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_agent_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/cancel":{"post":{"tags":["Agents"],"summary":"Cancel Agent Run","description":"Cancel a currently executing agent run. This will attempt to stop the agent's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/continue":{"post":{"tags":["Agents"],"summary":"Continue Agent Run","description":"Advance a persisted agent run from its current state. Dispatches on the body shape and the persisted run state (see ADR-003 in specs/agno/features/checkpointing/decisions.md).\n\n**Variants:**\n- PAUSED + tools provided \u2192 apply HITL tool results, resume\n- PAUSED + resolved admin approval (empty tools) \u2192 apply resolution, resume\n- RUNNING / ERROR (no unresolved HITL requirements) \u2192 resume from last persisted state\n- COMPLETED + new tools \u2192 continue with appended messages\n\n**Tools Parameter:**\nJSON string containing array of tool execution objects with results. Optional \u2014 only required when the persisted run has unresolved HITL requirements.","operationId":"continue_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_agent_run"}}}},"responses":{"200":{"description":"Agent run continued successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n"}}},"400":{"description":"Invalid JSON in tools field or invalid tool structure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"403":{"description":"Run has a pending admin approval and cannot be continued by the user yet."}}}},"/agents/{agent_id}/sessions/{session_id}/fork":{"post":{"tags":["Agents"],"summary":"Fork Agent Session","description":"Deep-copy a session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_agent_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents":{"get":{"tags":["Agents"],"summary":"List All Agents","description":"Retrieve a comprehensive list of all agents configured in this OS instance.\n\n**Returns:**\n- Agent metadata (ID, name, description)\n- Model configuration and capabilities\n- Available tools and their configurations\n- Session, knowledge, memory, and reasoning settings\n- Only meaningful (non-default) configurations are included","operationId":"get_agents","responses":{"200":{"description":"List of agents retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentResponse"},"type":"array","title":"Response Get Agents"},"example":[{"id":"main-agent","name":"Main Agent","db_id":"c6bf0644-feb8-4930-a305-380dae5ad6aa","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Details","description":"Retrieve detailed configuration and capabilities of a specific agent.\n\n**Returns comprehensive agent information including:**\n- Model configuration and provider details\n- Complete tool inventory and configurations\n- Session management settings\n- Knowledge base and memory configurations\n- Reasoning capabilities and settings\n- System prompts and response formatting options","operationId":"get_agent","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Agent details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"},"example":{"id":"main-agent","name":"Main Agent","db_id":"9e064c70-6821-4840-a333-ce6230908a70","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Run","description":"Retrieve the status and output of an agent run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Agents"],"summary":"List Agent Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_agent_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Agents"],"summary":"Get Agent Run Checkpoint Snapshot","description":"Return a derived run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_agent_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/resume":{"post":{"tags":["Agents"],"summary":"Resume Agent Run Stream","description":"Resume an SSE stream for an agent run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_agent_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_agent_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"application/json":{"schema":{}},"text/event-stream":{}}},"400":{"description":"Not supported for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs":{"post":{"tags":["Teams"],"summary":"Create Team Run","description":"Execute a team collaboration with multiple agents working together on a task.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_team_run"}}}},"responses":{"200":{"description":"Team run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Teams"],"summary":"List Team Runs","description":"List runs for a team within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_team_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/cancel":{"post":{"tags":["Teams"],"summary":"Cancel Team Run","description":"Cancel a currently executing team run. This will attempt to stop the team's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel team run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/resume":{"post":{"tags":["Teams"],"summary":"Resume Team Run Stream","description":"Resume an SSE stream for a team run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_team_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_team_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{}}},"400":{"description":"Stream resumption is unavailable for remote and factory teams. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/continue":{"post":{"tags":["Teams"],"summary":"Continue Team Run","description":"Continue a paused or incomplete team run with updated requirements.\n\n**Use Cases:**\n- Resume execution after tool approval/rejection\n- Provide manual tool execution results\n- Resume after admin approval (requirements can be empty; resolution fetched from DB)\n\n**Requirements Parameter:**\nJSON string containing array of requirement objects with tool execution results.\nCan be empty when an admin-required approval has been resolved.","operationId":"continue_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_team_run"}}}},"responses":{"200":{"description":"Team run continued successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n"}}},"400":{"description":"Invalid JSON in requirements field or invalid requirement structure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"403":{"description":"Run has a pending admin approval and cannot be continued by the user yet."},"409":{"description":"Run is not paused (e.g. run is already running, continued, or errored). Only PAUSED runs can be continued."}}}},"/teams/{team_id}/sessions/{session_id}/fork":{"post":{"tags":["Teams"],"summary":"Fork Team Session","description":"Deep-copy a team session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_team_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams":{"get":{"tags":["Teams"],"summary":"List All Teams","description":"Retrieve a comprehensive list of all teams configured in this OS instance.\n\n**Returns team information including:**\n- Team metadata (ID, name, description, execution mode)\n- Model configuration for team coordination\n- Team member roster with roles and capabilities\n- Knowledge sharing and memory configurations","operationId":"get_teams","responses":{"200":{"description":"List of teams retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamResponse"},"type":"array","title":"Response Get Teams"},"example":[{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"agno_memories","app_url":"/memory/1","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/teams/{team_id}":{"get":{"tags":["Teams"],"summary":"Get Team Details","description":"Retrieve detailed configuration and member information for a specific team.","operationId":"get_team","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"},"example":{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}":{"get":{"tags":["Teams"],"summary":"Get Team Run","description":"Retrieve the status and output of a team run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Teams"],"summary":"List Team Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored team run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_team_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Teams"],"summary":"Get Team Run Checkpoint Snapshot","description":"Return a derived team run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_team_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows":{"get":{"tags":["Workflows"],"summary":"List All Workflows","description":"Retrieve a comprehensive list of all workflows configured in this OS instance.\n\n**Return Information:**\n- Workflow metadata (ID, name, description)\n- Input schema requirements\n- Step sequence and execution flow\n- Associated agents and teams","operationId":"get_workflows","responses":{"200":{"description":"List of workflows retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Response Get Workflows"},"example":[{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/workflows/{workflow_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Details","description":"Retrieve detailed configuration and step information for a specific workflow.","operationId":"get_workflow","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Workflow version to retrieve","title":"Version"},"description":"Workflow version to retrieve"}],"responses":{"200":{"description":"Workflow details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"},"example":{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs":{"post":{"tags":["Workflows"],"summary":"Execute Workflow","description":"Execute a workflow with the provided input data. Workflows can run in streaming or batch mode.\n\n**Execution Modes:**\n- **Streaming (`stream=true`)**: Real-time step-by-step execution updates via SSE\n- **Non-Streaming (`stream=false`)**: Complete workflow execution with final result\n\n**Workflow Execution Process:**\n1. Input validation against workflow schema\n2. Sequential or parallel step execution based on workflow design\n3. Data flow between steps with transformation\n4. Error handling and automatic retries where configured\n5. Final result compilation and response\n\n**Session Management:**\nWorkflows support session continuity for stateful execution across multiple runs.","operationId":"create_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_run"}}}},"responses":{"200":{"description":"Workflow executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid input data or workflow configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Workflow execution error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"List Workflow Runs","description":"List runs for a workflow within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_workflow_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/continue":{"post":{"tags":["Workflows"],"summary":"Continue Workflow Run","description":"Continue a paused workflow run with resolved requirements.\n\n**Use Cases:**\n- Resume after step-level HITL (confirmation, user input, router selection)\n- Resume after executor-level HITL (agent/team tool confirmation within a step)\n\n**Requirements Parameter:**\nJSON string containing the resolved step requirements.","operationId":"continue_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_workflow_run"}}}},"responses":{"200":{"description":"Workflow run continued successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: StepCompleted\ndata: {\"step_name\": \"step1\"}\n\n"}}},"400":{"description":"Invalid JSON in requirements field","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"409":{"description":"Run is not paused. Only PAUSED runs can be continued."}}}},"/workflows/{workflow_id}/runs/{run_id}/cancel":{"post":{"tags":["Workflows"],"summary":"Cancel Workflow Run","description":"Cancel a currently executing workflow run, stopping all active steps and cleanup.\n**Note:** Complex workflows with multiple parallel steps may take time to fully cancel.","operationId":"cancel_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow not found, or the requested run was not found in the caller's session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel workflow run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/resume":{"post":{"tags":["Workflows"],"summary":"Resume Workflow Run Stream","description":"Resume an SSE stream for a workflow run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_workflow_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_workflow_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"application/json":{"schema":{}},"text/event-stream":{}}},"400":{"description":"Stream resumption is unavailable for remote and factory workflows. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Run","description":"Retrieve the status and output of a workflow run. Use this to poll for run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/slack/events":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Receives incoming Slack events (messages, mentions, thread starts).\n\n**URL Verification:** On first setup, Slack sends a `url_verification` challenge. The endpoint echoes back the challenge string.\n\n**Event Processing:** Normal events are acknowledged immediately with `{\"status\": \"ok\"}` and processed in the background. This prevents Slack's 3-second retry timeout.\n\n**Retry Handling:** Events with `X-Slack-Retry-Num` header are duplicates and return 200 without reprocessing.\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Event Subscriptions > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for creating a Slack App or use the [manifest](/agent-os/interfaces/slack/setup#2-create-the-slack-app) for quick setup.\n","operationId":"slack_events_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SlackChallengeResponse"},{"$ref":"#/components/schemas/SlackEventResponse"}],"title":"Response Slack Events Simple Agent"}}}},"400":{"description":"Missing Slack headers"},"403":{"description":"Invalid Slack signature"}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number (present on retried events)"}]}},"/slack/interactions":{"post":{"tags":["Slack"],"summary":"Slack Interactions","description":"Handles Slack interactive components for Human-in-the-Loop (HITL) workflows.\n\n**Supported Actions:**\n- `row_approve` - Approve a pending tool call\n- `row_reject` - Reject a pending tool call\n- `submit_pause` - Submit form data for a paused workflow\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Interactivity & Shortcuts > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for step-by-step instructions or the [HITL guide](/agent-os/interfaces/slack/hitl) for approval workflows.\n","operationId":"slack_interactions_simple_agent","responses":{"200":{"description":"Interaction accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackEventResponse"}}}},"400":{"description":"Malformed interaction payload"},"403":{"description":"Invalid Slack signature"}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"URL-encoded JSON interaction payload (Slack sends interactive component data as a single form field)"}}}}}}}},"/whatsapp/status":{"get":{"tags":["Whatsapp"],"summary":"Status","operationId":"whatsapp_status_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/whatsapp/webhook":{"get":{"tags":["Whatsapp"],"summary":"Whatsapp Verify","description":"Handle WhatsApp webhook verification","operationId":"whatsapp_verify_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["Whatsapp"],"summary":"Whatsapp Webhook","description":"Process incoming WhatsApp messages","operationId":"whatsapp_webhook_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppWebhookResponse"}}}},"403":{"description":"Invalid webhook signature"}}}},"/telegram/status":{"get":{"tags":["Telegram"],"summary":"Telegram Status","operationId":"telegram_status_simple-agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramStatusResponse"}}}}}}},"/telegram/webhook":{"post":{"tags":["Telegram"],"summary":"Telegram Webhook","operationId":"telegram_webhook_simple-agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramWebhookResponse"}}}},"403":{"description":"Invalid webhook secret token"}}}},"/agui":{"post":{"tags":["AGUI"],"summary":"Run Agent","operationId":"run_agent_agui_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/status":{"get":{"tags":["AGUI"],"summary":"Get Status","operationId":"get_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/a2a/agents/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Agent Card","operationId":"get_agent_card_a2a_agents__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Agent","description":"Send a message to an Agno Agent (non-streaming). The Agent is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"run_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request"},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Agent Task","description":"Get the status and result of an agent task by ID.","operationId":"get_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Agent Task","description":"Cancel a running agent task.","operationId":"cancel_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Agent","description":"Stream a message to an Agno Agent (streaming). The Agent is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Streaming response with task updates","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n"}}},"400":{"description":"Invalid request"},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Team Card","operationId":"get_team_card_a2a_teams__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Team","description":"Send a message to an Agno Team (non-streaming). The Team is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"run_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request"},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Team Task","description":"Get the status and result of a team task by ID.","operationId":"get_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Team Task","description":"Cancel a running team task.","operationId":"cancel_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Team","description":"Stream a message to an Agno Team (streaming). The Team is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Streaming response with task updates","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n"}}},"400":{"description":"Invalid request"},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/workflows/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Workflow Card","operationId":"get_workflow_card_a2a_workflows__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/workflows/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Workflow","description":"Send a message to an Agno Workflow (non-streaming). The Workflow is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"run_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request"},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/workflows/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Workflow","description":"Stream a message to an Agno Workflow (streaming). The Workflow is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Streaming response with task updates","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n"}}},"400":{"description":"Invalid request"},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/message/send":{"post":{"tags":["A2A"],"summary":"Send Message","description":"[DEPRECATED] Send a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"send_message","responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/a2a/message/stream":{"post":{"tags":["A2A"],"summary":"Stream Message","description":"[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message","responses":{"200":{"description":"Streaming response with task updates","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n"}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/sessions":{"get":{"tags":["Sessions"],"summary":"List Sessions","description":"Retrieve paginated list of sessions with filtering and sorting options. Supports filtering by session type (agent, team, workflow), component, user, and name. Sessions represent conversation histories and execution contexts.","operationId":"get_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types.","title":"Type"},"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types."},{"name":"component_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by component ID (agent/team/workflow ID)","title":"Component Id"},"description":"Filter sessions by component ID (agent/team/workflow ID)"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by user ID","title":"User Id"},"description":"Filter sessions by user ID"},{"name":"session_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by name (partial match)","title":"Session Name"},"description":"Filter sessions by name (partial match)"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of sessions to return per page","default":20,"title":"Limit"},"description":"Number of sessions to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort sessions by","default":"created_at","title":"Sort By"},"description":"Field to sort sessions by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query sessions from","title":"Db Id"},"description":"Database ID to query sessions from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Sessions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_SessionSchema_"},"example":{"session_example":{"summary":"Example session response","value":{"data":[{"session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_state":{},"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}]}}}}}},"400":{"description":"Invalid session type or filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in query parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Sessions"],"summary":"Create New Session","description":"Create a new empty session with optional configuration. Useful for pre-creating sessions with specific session_state, metadata, or other properties before running any agent/team/workflow interactions. The session can later be used by providing its session_id in run requests.","operationId":"create_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SessionType","description":"Type of session to create (agent, team, or workflow)","default":"agent"},"description":"Type of session to create (agent, team, or workflow)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to create session in","title":"Db Id"},"description":"Database ID to create session in"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest","description":"Session configuration data","default":{}}}}},"responses":{"201":{"description":"Session created successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Create Session"},"examples":{"agent_session_example":{"summary":"Example created agent session","value":{"user_id":"user-123","agent_session_id":"new-session-id","session_id":"new-session-id","session_name":"New Session","session_state":{"key":"value"},"metadata":{"key":"value"},"agent_id":"agent-1","created_at":"2025-10-21T12:00:00Z","updated_at":"2025-10-21T12:00:00Z"}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"409":{"description":"A session with the supplied session_id already exists"}}},"delete":{"tags":["Sessions"],"summary":"Delete Multiple Sessions","description":"Delete multiple sessions by their IDs in a single operation. This action cannot be undone and will permanently remove all specified sessions and their runs.","operationId":"delete_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSessionRequest"}}}},"responses":{"204":{"description":"Sessions deleted successfully"},"400":{"description":"Invalid request - session IDs and types length mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["Sessions"],"summary":"Get Session by ID","description":"Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow).","operationId":"get_session_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to retrieve","title":"Session Id"},"description":"Session ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query session from","title":"User Id"},"description":"User ID to query session from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query session from","title":"Db Id"},"description":"Database ID to query session from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query session from","title":"Table"},"description":"Table to query session from"}],"responses":{"200":{"description":"Session details retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Get Session By Id"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Session","description":"Permanently delete a specific session and all its associated runs. This action cannot be undone and will remove all conversation history.","operationId":"delete_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to delete","title":"Session Id"},"description":"Session ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Sessions"],"summary":"Update Session","description":"Update session properties such as session_name, session_state, metadata, or summary. Use this endpoint to modify the session name, update state, add metadata, or update the session summary.","operationId":"update_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to update","title":"Session Id"},"description":"Session ID to update"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID","title":"User Id"},"description":"User ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update operation","title":"Db Id"},"description":"Database ID to use for update operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update operation","title":"Table"},"description":"Table to use for update operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest","description":"Session update data"}}}},"responses":{"200":{"description":"Session updated successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Update Session"},"examples":{"update_summary":{"summary":"Update session summary","value":{"summary":{"summary":"The user discussed project planning with the agent.","updated_at":"2025-10-21T14:30:00Z"}}},"update_metadata":{"summary":"Update session metadata","value":{"metadata":{"tags":["planning","project"],"priority":"high"}}},"update_session_name":{"summary":"Update session name","value":{"session_name":"Updated Session Name"}},"update_session_state":{"summary":"Update session state","value":{"session_state":{"step":"completed","context":"Project planning finished","progress":100}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs":{"get":{"tags":["Sessions"],"summary":"Get Session Runs","description":"Retrieve all runs (executions) for a specific session with optional timestamp filtering. Runs represent individual interactions or executions within a session. Response schema varies based on session type.","operationId":"get_session_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get runs from","title":"Session Id"},"description":"Session ID to get runs from"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query runs from","title":"User Id"},"description":"User ID to query runs from"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created after this Unix timestamp (epoch time in seconds)","title":"Created After"},"description":"Filter runs created after this Unix timestamp (epoch time in seconds)"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created before this Unix timestamp (epoch time in seconds)","title":"Created Before"},"description":"Filter runs created before this Unix timestamp (epoch time in seconds)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query runs from","title":"Db Id"},"description":"Database ID to query runs from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query runs from","title":"Table"},"description":"Table to query runs from"}],"responses":{"200":{"description":"Session runs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}]},"title":"Response Get Session Runs"},"examples":{"completed_run":{"summary":"Example completed run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"","run_input":"Which tools do you have access to?","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","run_response_format":"text","reasoning_content":"","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069},"messages":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-08 17:52:10.101003.\n\n\nYou have the capability to retain memories from previous interactions with the user, but have not had any interactions with the user yet.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757346730},{"content":"Which tools do you have access to?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757346730},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138},"created_at":1757346730}],"events":[{"created_at":1757346730,"event":"RunStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","model":"gpt-4o","model_provider":"OpenAI"},{"created_at":1757346733,"event":"MemoryUpdateStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"MemoryUpdateCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"RunCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","content_type":"str","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069}}],"created_at":"2025-09-08T15:52:10Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Session not found or has no runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs/{run_id}":{"get":{"tags":["Sessions"],"summary":"Get Run by ID","description":"Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run).","operationId":"get_session_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get run from","title":"Session Id"},"description":"Session ID to get run from"},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","description":"Run ID to retrieve","title":"Run Id"},"description":"Run ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query run from","title":"User Id"},"description":"User ID to query run from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query run from","title":"Db Id"},"description":"Database ID to query run from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query run from","title":"Table"},"description":"Table to query run from"}],"responses":{"200":{"description":"Run retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}],"title":"Response Get Session Run"},"examples":{"agent_run":{"summary":"Example agent run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"user_123","run_input":"Which tools do you have access to?","content":"I don't have access to external tools.","created_at":1728499200}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Session or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/rename":{"post":{"tags":["Sessions"],"summary":"Rename Session","description":"Update the name of an existing session. Useful for organizing and categorizing sessions with meaningful names for better identification and management.","operationId":"rename_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to rename","title":"Session Id"},"description":"Session ID to rename"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope rename to","title":"User Id"},"description":"User ID to scope rename to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for rename operation","title":"Db Id"},"description":"Database ID to use for rename operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_rename_session"}}}},"responses":{"200":{"description":"Session renamed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Rename Session"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Invalid session name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type or validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories":{"post":{"tags":["Memory"],"summary":"Create Memory","description":"Create a new user memory with content and associated topics. Memories are used to store contextual information for users across conversations.","operationId":"create_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for memory storage","title":"Db Id"},"description":"Database ID to use for memory storage"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for memory storage","title":"Table"},"description":"Table to use for memory storage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"mem-123","memory":"User prefers technical explanations with code examples","topics":["preferences","communication_style","technical"],"user_id":"user-456","created_at":"2024-01-15T10:30:00Z","updated_at":"2024-01-15T10:30:00Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Memory"],"summary":"Delete Multiple Memories","description":"Delete multiple user memories by their IDs in a single operation. This action cannot be undone and all specified memories will be permanently removed.","operationId":"delete_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMemoriesRequest"}}}},"responses":{"204":{"description":"Memories deleted successfully"},"400":{"description":"Invalid request - empty memory_ids list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"List Memories","description":"Retrieve paginated list of user memories with filtering and search capabilities. Filter by user, agent, team, topics, or search within memory content.","operationId":"get_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by user ID","title":"User Id"},"description":"Filter memories by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by agent ID","title":"Agent Id"},"description":"Filter memories by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by team ID","title":"Team Id"},"description":"Filter memories by team ID"},{"name":"search_content","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fuzzy search within memory content","title":"Search Content"},"description":"Fuzzy search within memory content"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of memories to return per page","default":20,"title":"Limit"},"description":"Number of memories to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort memories by","default":"updated_at","title":"Sort By"},"description":"Field to sort memories by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memories from","title":"Db Id"},"description":"Database ID to query memories from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Comma-separated list of topics to filter by","examples":["preferences,technical,communication_style"],"title":"Topics"},"description":"Comma-separated list of topics to filter by"}],"responses":{"200":{"description":"Memories retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserMemorySchema_"},"example":{"data":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories/{memory_id}":{"delete":{"tags":["Memory"],"summary":"Delete Memory","description":"Permanently delete a specific user memory. This action cannot be undone.","operationId":"delete_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to delete","title":"Memory Id"},"description":"Memory ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to delete memory for","title":"User Id"},"description":"User ID to delete memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Memory deleted successfully"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"Get Memory by ID","description":"Retrieve detailed information about a specific user memory by its ID.","operationId":"get_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to retrieve","title":"Memory Id"},"description":"Memory ID to retrieve"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query memory for","title":"User Id"},"description":"User ID to query memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memory from","title":"Db Id"},"description":"Database ID to query memory from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query memory from","title":"Table"},"description":"Table to query memory from"}],"responses":{"200":{"description":"Memory retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Memory"],"summary":"Update Memory","description":"Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values.","operationId":"update_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to update","title":"Memory Id"},"description":"Memory ID to update"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update","title":"Db Id"},"description":"Database ID to use for update"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update","title":"Table"},"description":"Table to use for update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memory_topics":{"get":{"tags":["Memory"],"summary":"Get Memory Topics","description":"Retrieve all unique topics associated with memories in the system. Useful for filtering and categorizing memories by topic.","operationId":"get_memory_topics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter topics for","title":"User Id"},"description":"User ID to filter topics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query topics from","title":"Db Id"},"description":"Database ID to query topics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query topics from","title":"Table"},"description":"Table to query topics from"}],"responses":{"200":{"description":"Memory topics retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Get Memory Topics"},"example":["preferences","communication_style","technical","industry","compliance","code_examples","requirements","healthcare","finance"]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/user_memory_stats":{"get":{"tags":["Memory"],"summary":"Get User Memory Statistics","description":"Retrieve paginated statistics about memory usage by user. Provides insights into user engagement and memory distribution across users.","operationId":"get_user_memory_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of user statistics to return per page","default":20,"title":"Limit"},"description":"Number of user statistics to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter statistics for","title":"User Id"},"description":"User ID to filter statistics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query statistics from","title":"Table"},"description":"Table to query statistics from"}],"responses":{"200":{"description":"User memory statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserStatsSchema_"},"example":{"data":[{"user_id":"123","total_memories":3,"last_memory_updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve user statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/optimize-memories":{"post":{"tags":["Memory"],"summary":"Optimize User Memories","description":"Optimize all memories for a given user using the default summarize strategy. This operation combines all memories into a single comprehensive summary, achieving maximum token reduction while preserving all key information. To use a custom model, specify the model parameter in 'provider:model_id' format (e.g., 'openai:gpt-4o-mini', 'anthropic:claude-3-5-sonnet-20241022'). If not specified, uses MemoryManager's default model (gpt-4o). Set apply=false to preview optimization results without saving to database.","operationId":"optimize_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for optimization","title":"Db Id"},"description":"Database ID to use for optimization"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for optimization","title":"Table"},"description":"Table to use for optimization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesRequest"}}}},"responses":{"200":{"description":"Memories optimized successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesResponse"},"example":{"memories":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User has a 3-year-old golden retriever named Max who loves fetch and walks. Lives in San Francisco's Mission district, works as a product manager in tech. Enjoys hiking Bay Area trails, trying new restaurants (especially Japanese, Thai, Mexican), and learning piano for 1.5 years.","topics":["pets","location","work","hobbies","food_preferences"],"user_id":"user2","updated_at":"2025-11-18T10:30:00Z"}],"memories_before":4,"memories_after":1,"tokens_before":450,"tokens_after":180,"tokens_saved":270,"reduction_percentage":60.0}}}},"400":{"description":"Bad request - User ID is required or invalid model string format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"No memories found for user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to optimize memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings":{"get":{"tags":["Learnings"],"summary":"List Learnings","description":"List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) \u2014 this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`).","operationId":"list_learnings","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by learning type","title":"Learning Type"},"description":"Filter by learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"namespace","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by namespace","title":"Namespace"},"description":"Filter by namespace"},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity ID","title":"Entity Id"},"description":"Filter by entity ID"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity type","title":"Entity Type"},"description":"Filter by entity type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":100,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used).","title":"Sort By"},"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used)."},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Learnings"],"summary":"Create Learning","description":"Create a new learning record. For the identity-keyed learning types (`user_profile`, `user_memory`, `session_context`, `entity_memory`) the record id is derived deterministically from the identity fields so it reconciles with what the agent reads/writes \u2014 provide those fields (else 422), and if a record already exists the request is rejected with 409 (use PATCH to update it). Other types get a generated id. For a scoped (non-admin) caller, the body's `user_id` must be omitted/null or match the caller (mismatch \u2192 403); admins and unscoped callers may set any `user_id`.","operationId":"create_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users":{"get":{"tags":["Learnings"],"summary":"List Learning Users","description":"List the users that own learning records, with a per-user count and last-updated timestamp. Intended as the entry point for a per-user view: list users here, then drill into a single user's learnings via `GET /learnings?user_id=...`. Records with no owner (`user_id IS NULL`) are excluded. Pass `learning_type` to restrict the grouping to a single store (e.g. `user_profile` or `user_memory`). For a scoped (non-admin) caller results are bound to that user; an explicit `user_id` that differs is rejected with 403. Admins and unscoped callers list all users. Sortable by `user_id` or `last_learning_updated_at` (the default).","operationId":"list_learning_users","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the grouping to a single learning type","title":"Learning Type"},"description":"Restrict the grouping to a single learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the result to a single user","title":"User Id"},"description":"Restrict the result to a single user"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by: user_id or last_learning_updated_at (the default)","title":"Sort By"},"description":"Field to sort by: user_id or last_learning_updated_at (the default)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningUserStats_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users/{user_id}":{"delete":{"tags":["Learnings"],"summary":"Delete Learning User","description":"Delete the learning records owned by a user. By default removes every learning type backed by the agno_learnings table (user_profile, user_memory, and any user-scoped entity records); pass `learning_type` to restrict deletion to a single store. Records with no owner (`user_id IS NULL`) are not affected. For a scoped (non-admin) caller, only their own learnings may be deleted; a different `user_id` is rejected with 403. Admins and unscoped callers may delete any user's learnings. Returns 204 even if the user had no matching records.","operationId":"delete_learning_user","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The user whose learnings should be deleted","title":"User Id"},"description":"The user whose learnings should be deleted"},{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings","title":"Learning Type"},"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/{learning_id}":{"get":{"tags":["Learnings"],"summary":"Get Learning","description":"Retrieve a single learning record by its ID.","operationId":"get_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Learnings"],"summary":"Update Learning","description":"Update a learning record. Only `content` and `metadata` may be modified; identity fields (user_id, agent_id, team_id, etc.) are immutable. Provided fields fully replace the existing values. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) are readable by any caller but may only be modified by an admin.","operationId":"update_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Learnings"],"summary":"Delete Learning","description":"Permanently delete a learning record by its ID. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) may only be deleted by an admin.","operationId":"delete_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs":{"get":{"tags":["Evals"],"summary":"List Evaluation Runs","description":"Retrieve paginated evaluation runs with filtering and sorting options. Filter by agent, team, workflow, model, or evaluation type.","operationId":"get_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Workflow ID","title":"Workflow Id"},"description":"Workflow ID"},{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model ID","title":"Model Id"},"description":"Model ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EvalFilterType"},{"type":"null"}],"description":"Filter type","title":"Type"},"description":"Filter type"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of eval runs to return","default":20,"title":"Limit"},"description":"Number of eval runs to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"eval_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)","examples":["accuracy,agent_as_judge,performance,reliability"],"title":"Eval Types"},"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)"}],"responses":{"200":{"description":"Evaluation runs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_EvalSchema_"},"example":{"data":[{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Evals"],"summary":"Delete Evaluation Runs","description":"Delete multiple evaluation runs by their IDs. This action cannot be undone.","operationId":"delete_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvalRunsRequest"}}}},"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Deletion failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Evals"],"summary":"Execute Evaluation","description":"Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both.","operationId":"run_eval","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for evaluation","title":"Db Id"},"description":"Database ID to use for evaluation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for evaluation","title":"Table"},"description":"Table to use for evaluation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRunInput"}}}},"responses":{"200":{"description":"Evaluation executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"f2b2d72f-e9e2-4f0e-8810-0a7e1ff58614","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Invalid request - provide either agent_id or team_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent or team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs/{eval_run_id}":{"get":{"tags":["Evals"],"summary":"Get Evaluation Run","description":"Retrieve detailed results and metrics for a specific evaluation run.","operationId":"get_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query eval run from","title":"Table"},"description":"Table to query eval run from"}],"responses":{"200":{"description":"Evaluation run details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Evals"],"summary":"Update Evaluation Run","description":"Update the name or other properties of an existing evaluation run.","operationId":"update_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvalRunRequest"}}}},"responses":{"200":{"description":"Evaluation run updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update evaluation run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics":{"get":{"tags":["Metrics"],"summary":"Get AgentOS Metrics","description":"Retrieve AgentOS metrics and analytics data for a specified date range. If no date range is specified, returns all available metrics.","operationId":"get_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"starting_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Starting date for metrics range (YYYY-MM-DD format)","title":"Starting Date"},"description":"Starting date for metrics range (YYYY-MM-DD format)"},{"name":"ending_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Ending date for metrics range (YYYY-MM-DD format)","title":"Ending Date"},"description":"Ending date for metrics range (YYYY-MM-DD format)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query metrics from","title":"Db Id"},"description":"Database ID to query metrics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Metrics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"},"example":{"metrics":[{"id":"7bf39658-a00a-484c-8a28-67fd8a9ddb2a","agent_runs_count":5,"agent_sessions_count":5,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":448,"output_tokens":148,"total_tokens":596,"audio_tokens":0,"input_audio_tokens":0,"output_audio_tokens":0,"cached_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":5}],"date":"2025-07-31T00:00:00Z","created_at":"2025-07-31T12:38:52Z","updated_at":"2025-07-31T12:49:01Z"}]}}}},"400":{"description":"Invalid date range parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve metrics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics/refresh":{"post":{"tags":["Metrics"],"summary":"Refresh Metrics","description":"Manually trigger recalculation of system metrics from raw data. This operation analyzes system activity logs and regenerates aggregated metrics. Useful for ensuring metrics are up-to-date or after system maintenance.","operationId":"refresh_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for metrics calculation","title":"Db Id"},"description":"Database ID to use for metrics calculation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for metrics calculation","title":"Table"},"description":"Table to use for metrics calculation"}],"responses":{"200":{"description":"Metrics refreshed successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"title":"Response Refresh Metrics"},"example":[{"id":"e77c9531-818b-47a5-99cd-59fed61e5403","agent_runs_count":2,"agent_sessions_count":2,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":256,"output_tokens":441,"total_tokens":697,"audio_total_tokens":0,"audio_input_tokens":0,"audio_output_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":2}],"date":"2025-08-12T00:00:00Z","created_at":"2025-08-12T08:01:47Z","updated_at":"2025-08-12T08:01:47Z"}]}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Refresh failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content":{"post":{"tags":["Knowledge"],"summary":"Upload Content","description":"Upload content to the knowledge base. Supports file uploads, text content, or URLs. Content is processed asynchronously in the background. Supports custom readers and chunking strategies.","operationId":"upload_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_content"}}}},"responses":{"202":{"description":"Content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-123","name":"example-document.pdf","description":"Sample document for processing","metadata":{"category":"documentation","priority":"high"},"status":"processing"}}}},"400":{"description":"Invalid request - malformed metadata or missing content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in form data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"List Content","description":"Retrieve paginated list of all content in the knowledge base with filtering and sorting options. Filter by status, content type, or metadata properties.","operationId":"get_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of content entries to return","default":20,"title":"Limit"},"description":"Number of content entries to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ContentResponseSchema_"},"example":{"data":[{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}],"meta":{"page":1,"limit":20,"total_pages":1,"total_count":2}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete All Content","description":"Permanently remove all content from the knowledge base. This is a destructive operation that cannot be undone. Use with extreme caution.","operationId":"delete_all_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete all content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/remote-content":{"post":{"tags":["Knowledge"],"summary":"Upload Remote Content","description":"Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.","operationId":"upload_remote_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_upload_remote_content"}}}},"responses":{"202":{"description":"Remote content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-456","name":"reports/q1-2024.pdf","description":"Q1 Report from S3","metadata":{"source":"s3-docs"},"status":"processing"}}}},"400":{"description":"Invalid request - unknown config or missing path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}":{"patch":{"tags":["Knowledge"],"summary":"Update Content","description":"Update content name, description, or metadata without re-uploading it. In Agno 2.7.4, this endpoint accepts `reader_id`. Local knowledge validates the value, but the content patch does not apply or persist the reader change.","operationId":"update_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","description":"Content ID","title":"Content Id"},"description":"Content ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_update_content"}}}},"responses":{"200":{"description":"Content updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Invalid request - malformed metadata or invalid reader_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"Get Content by ID","description":"Retrieve detailed information about a specific content item including processing status and metadata.","operationId":"get_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete Content by ID","description":"Permanently remove a specific content item from the knowledge base. This action cannot be undone.","operationId":"delete_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}/status":{"get":{"tags":["Knowledge"],"summary":"Get Content Status","description":"Retrieve the current processing status of a content item. Useful for monitoring asynchronous content processing progress and identifying any processing errors.","operationId":"get_content_status","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content status retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentStatusResponse"},"examples":{"completed":{"summary":"Example completed content status","value":{"status":"completed","status_message":""}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/search":{"post":{"tags":["Knowledge"],"summary":"Search Knowledge","description":"Search the knowledge base for relevant documents using query, filters and search type.","operationId":"search_knowledge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VectorSearchRequestSchema"}}},"required":true},"responses":{"200":{"description":"Search results retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_VectorSearchResult_"},"example":{"data":[{"id":"doc_123","content":"Jordan Mitchell - Software Engineer with skills in JavaScript, React, Python","name":"cv_1","meta_data":{"page":1,"chunk":1},"usage":{"total_tokens":14},"reranking_score":0.95,"content_id":"content_456"}],"meta":{"page":1,"limit":20,"total_pages":2,"total_count":35}}}}},"400":{"description":"Invalid search parameters"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"No documents found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/knowledge/config":{"get":{"tags":["Knowledge"],"summary":"Get Config","description":"Retrieve available readers, chunkers, and configuration options for content processing. This endpoint provides metadata about supported file types, processing strategies, and filters.","operationId":"get_knowledge_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Knowledge configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponseSchema"},"example":{"readers":{"website":{"id":"website","name":"WebsiteReader","description":"Reads website files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"firecrawl":{"id":"firecrawl","name":"FirecrawlReader","description":"Reads firecrawl files","chunkers":["SemanticChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"youtube":{"id":"youtube","name":"YoutubeReader","description":"Reads youtube files","chunkers":["RecursiveChunker","AgenticChunker","DocumentChunker","SemanticChunker","FixedSizeChunker"]},"web_search":{"id":"web_search","name":"WebSearchReader","description":"Reads web_search files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"arxiv":{"id":"arxiv","name":"ArxivReader","description":"Reads arxiv files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"csv":{"id":"csv","name":"CsvReader","description":"Reads csv files","chunkers":["RowChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"docling":{"id":"docling","name":"DoclingReader","description":"Converts multiple document formats like PDF, DOCX, PPTX, images, HTML, etc. using IBM's Docling library","chunkers":["AgenticChunker","CodeChunker","DocumentChunker","FixedSizeChunker","RecursiveChunker","SemanticChunker"]},"docx":{"id":"docx","name":"DocxReader","description":"Reads docx files","chunkers":["DocumentChunker","FixedSizeChunker","SemanticChunker","AgenticChunker","RecursiveChunker"]},"gcs":{"id":"gcs","name":"GcsReader","description":"Reads gcs files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"json":{"id":"json","name":"JsonReader","description":"Reads json files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"markdown":{"id":"markdown","name":"MarkdownReader","description":"Reads markdown files","chunkers":["MarkdownChunker","DocumentChunker","AgenticChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"pdf":{"id":"pdf","name":"PdfReader","description":"Reads pdf files","chunkers":["DocumentChunker","FixedSizeChunker","AgenticChunker","SemanticChunker","RecursiveChunker"]},"text":{"id":"text","name":"TextReader","description":"Reads text files","chunkers":["CodeChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]}},"readersForType":{"url":["url","website","firecrawl","youtube","web_search","gcs"],"youtube":["youtube"],"text":["web_search"],"topic":["arxiv"],"file":["csv","gcs"],".csv":["csv","field_labeled_csv","docling"],".xlsx":["excel","docling"],".xls":["excel"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["excel"],"application/vnd.ms-excel":["excel"],".docx":["docx","docling"],".dotx":["docling"],".docm":["docling"],".dotm":["docling"],".pptx":["docling","pptx"],".potx":["docling"],".ppsx":["docling"],".pptm":["docling"],".ppsm":["docling"],".potm":["docling"],".doc":["docx"],".json":["json"],".md":["markdown","docling"],".pdf":["pdf","docling"],".txt":["text"],".html":["docling"],".htm":["docling"],".xhtml":["docling"],".xml":["docling"],".nxml":["docling"],".xbrl":["docling"],".adoc":["docling"],".asciidoc":["docling"],".asc":["docling"],".xlsm":["docling"],".tex":["docling"],".latex":["docling"],".tar.gz":["docling"],".vtt":["docling"],".png":["docling"],".jpeg":["docling"],".jpg":["docling"],".tiff":["docling"],".tif":["docling"],".bmp":["docling"],".webp":["docling"],".wav":["docling"],".mp3":["docling"],".m4a":["docling"],".aac":["docling"],".ogg":["docling"],".flac":["docling"],".mp4":["docling"],".avi":["docling"],".mov":["docling"]},"chunkers":{"AgenticChunker":{"key":"AgenticChunker","name":"AgenticChunker","description":"Chunking strategy that uses an LLM to determine natural breakpoints in the text","metadata":{"chunk_size":5000}},"CodeChunker":{"key":"CodeChunker","name":"CodeChunker","description":"The CodeChunker splits code into chunks based on its structure, leveraging Abstract Syntax Trees (ASTs) to create contextually relevant segments","metadata":{"chunk_size":2048}},"DocumentChunker":{"key":"DocumentChunker","name":"DocumentChunker","description":"A chunking strategy that splits text based on document structure like paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"FixedSizeChunker":{"key":"FixedSizeChunker","name":"FixedSizeChunker","description":"Chunking strategy that splits text into fixed-size chunks with optional overlap","metadata":{"chunk_size":5000,"chunk_overlap":0}},"MarkdownChunker":{"key":"MarkdownChunker","name":"MarkdownChunker","description":"A chunking strategy that splits markdown based on structure like headers, paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RecursiveChunker":{"key":"RecursiveChunker","name":"RecursiveChunker","description":"Chunking strategy that recursively splits text into chunks by finding natural break points","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RowChunker":{"key":"RowChunker","name":"RowChunker","description":"RowChunking chunking strategy","metadata":{}},"SemanticChunker":{"key":"SemanticChunker","name":"SemanticChunker","description":"Chunking strategy that splits text into semantic chunks using chonkie","metadata":{"chunk_size":5000}}},"vector_dbs":[{"id":"vector_db_1","name":"Vector DB 1","description":"Vector DB 1 description","search_types":["vector","keyword","hybrid"]}],"filters":["filter_tag_1","filter_tag2"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources":{"get":{"tags":["Knowledge"],"summary":"List Content Sources","description":"List all registered content sources (S3, GCS, SharePoint, GitHub) for the knowledge base.","operationId":"list_content_sources","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Content sources retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"title":"Response List Content Sources"},"example":[{"id":"company-s3","name":"Company Documents","type":"s3","prefix":"documents/"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Knowledge base not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources/{source_id}/files":{"get":{"tags":["Knowledge"],"summary":"List Files in Source","description":"List available files and folders in a specific content source. Supports pagination and folder navigation.","operationId":"list_source_files","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the content source","title":"Source Id"},"description":"ID of the content source"},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Path prefix to filter files","title":"Prefix"},"description":"Path prefix to filter files"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of files per page","default":100,"title":"Limit"},"description":"Number of files per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"delimiter","in":"query","required":false,"schema":{"type":"string","description":"Folder delimiter (enables folder grouping)","default":"/","title":"Delimiter"},"description":"Folder delimiter (enables folder grouping)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Files listed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceFilesResponseSchema"},"example":{"source_id":"company-s3","source_name":"Company Documents","prefix":"reports/","folders":[{"prefix":"reports/2024/","name":"2024","is_empty":false}],"files":[{"key":"reports/annual-summary.pdf","name":"annual-summary.pdf","size":102400,"last_modified":"2024-01-15T10:30:00Z","content_type":"application/pdf"}],"meta":{"page":1,"limit":100,"total_pages":1,"total_count":1}}}}},"400":{"description":"Unsupported source type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Knowledge base or content source not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces":{"get":{"tags":["Traces","Traces"],"summary":"List Traces","description":"Retrieve a paginated list of execution traces with optional filtering.\n\n**Traces provide observability into:**\n- Agent execution flows\n- Model invocations and token usage\n- Tool calls and their results\n- Errors and performance bottlenecks\n\n**Filtering Options:**\n- By run, session, user, or agent ID\n- By status (OK, ERROR)\n- By time range\n\n**Pagination:**\n- Use `page` (1-indexed) and `limit` parameters\n- Response includes pagination metadata (total_pages, total_count, etc.)\n\n**Response Format:**\nReturns summary information for each trace. Use GET `/traces/{trace_id}` for detailed hierarchy.","operationId":"get_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run ID","title":"Run Id"},"description":"Filter by run ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status (OK, ERROR)","title":"Status"},"description":"Filter by status (OK, ERROR)"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of traces per page","default":20,"title":"Limit"},"description":"Number of traces per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"responses":{"200":{"description":"List of traces retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSummary_"},"example":{"data":[{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","total_spans":4,"error_count":0,"input":"What is the stock price of NVDA?","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"agent_stock","created_at":"2025-11-19T10:30:00+00:00"}],"meta":{"page":1,"limit":20,"total_pages":5,"total_count":95}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/filter-schema":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Filter Schema","description":"Returns the available filterable fields, their types, valid operators, and enum values.\n\nThe frontend uses this to dynamically build the filter bar UI:\n- Field dropdown populated from `fields[].key`\n- Operator dropdown changes per field type\n- Value input shows autocomplete for enum fields (e.g., status)\n- Logical operators (AND, OR) for combining clauses","operationId":"get_traces_filter_schema","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterSchemaResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/traces/{trace_id}":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace or Span Detail","description":"Retrieve detailed trace information with hierarchical span tree, or a specific span within the trace.\n\n**Without span_id parameter:**\nReturns the full trace with hierarchical span tree:\n- Trace metadata (ID, status, duration, context)\n- Hierarchical tree of all spans\n- Each span includes timing, status, and type-specific metadata\n\n**With span_id parameter:**\nReturns details for a specific span within the trace:\n- Span metadata (ID, name, type, timing)\n- Status and error information\n- Type-specific attributes (model, tokens, tool params, etc.)\n\n**Span Hierarchy (full trace):**\nThe `tree` field contains root spans, each with potential `children`.\nThis recursive structure represents the execution flow:\n```\nAgent.run (root)\n \u251c\u2500 LLM.invoke\n \u251c\u2500 Tool.execute\n \u2502 \u2514\u2500 LLM.invoke (nested)\n \u2514\u2500 LLM.invoke\n```\n\n**Span Types:**\n- `AGENT`: Agent execution with input/output\n- `LLM`: Model invocations with tokens and prompts\n- `TOOL`: Tool calls with parameters and results","operationId":"get_trace","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}},{"name":"span_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Span ID to retrieve specific span","title":"Span Id"},"description":"Optional: Span ID to retrieve specific span"},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Run ID to retrieve trace for","title":"Run Id"},"description":"Optional: Run ID to retrieve trace for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query trace from","title":"Db Id"},"description":"Database ID to query trace from"}],"responses":{"200":{"description":"Trace or span detail retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TraceDetail"},{"$ref":"#/components/schemas/TraceNode"}],"title":"Response Get Trace"},"examples":{"full_trace":{"summary":"Full trace with hierarchy (no span_id)","value":{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","end_time":"2025-11-19T10:30:01.200000+00:00","total_spans":4,"error_count":0,"input":"What is Tesla stock price?","output":"The current price of Tesla (TSLA) is $245.67.","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"stock_agent","created_at":"2025-11-19T10:30:00+00:00","tree":[{"id":"span1","name":"Stock_Price_Agent.run","type":"AGENT","duration":"1.2s","status":"OK","spans":[]}]}},"single_span":{"summary":"Single span detail (with span_id)","value":{"id":"span2","name":"gpt-4o-mini.invoke","type":"LLM","duration":"800ms","status":"OK","metadata":{"model":"gpt-4o-mini","input_tokens":120}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Trace or span not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/trace_session_stats":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Statistics by Session","description":"Retrieve aggregated trace statistics grouped by session ID with pagination.\n\n**Provides insights into:**\n- Total traces per session\n- First and last trace timestamps per session\n- Associated user and agent information\n\n**Filtering Options:**\n- By user ID\n- By agent ID\n\n**Use Cases:**\n- Monitor session-level activity\n- Track conversation flows\n- Identify high-activity sessions\n- Analyze user engagement patterns","operationId":"get_trace_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of sessions per page","default":20,"title":"Limit"},"description":"Number of sessions per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"}],"responses":{"200":{"description":"Trace statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"},"example":{"data":[{"session_id":"37029bc6-1794-4ba8-a629-1efedc53dcad","user_id":"kaustubh@agno.com","agent_id":"hackernews-agent","total_traces":5,"first_trace_at":"2025-11-19T10:15:16+00:00","last_trace_at":"2025-11-19T10:21:30+00:00"}],"meta":{"page":1,"limit":20,"total_pages":3,"total_count":45}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/search":{"post":{"tags":["Traces","Traces"],"summary":"Search Traces with Advanced Filters","description":"Search traces using the FilterExpr DSL for complex, composable queries.\n\n**Group By Mode:**\n- `run` (default): Returns `PaginatedResponse[TraceDetail]` with full span trees\n- `session`: Returns `PaginatedResponse[TraceSessionStats]` with aggregated session stats\n\n**Supported Operators:**\n- Comparison: `EQ`, `NEQ`, `GT`, `GTE`, `LT`, `LTE`\n- Inclusion: `IN`\n- String matching: `CONTAINS` (case-insensitive substring), `STARTSWITH` (prefix)\n- Logical: `AND`, `OR`, `NOT`\n\n**Filterable Fields:**\ntrace_id, name, status, start_time, end_time, duration_ms, run_id, session_id, user_id, agent_id, team_id, workflow_id, created_at\n\n**Example Request Body (runs):**\n```json\n{\n \"filter\": {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n}\n```\n\n**Example Request Body (sessions):**\n```json\n{\n \"filter\": {\"op\": \"CONTAINS\", \"key\": \"agent_id\", \"value\": \"stock\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n}\n```","operationId":"search_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PaginatedResponse_TraceDetail_"},{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"}],"title":"Response Search Traces"}}}},"400":{"description":"Invalid filter expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/all/migrate":{"post":{"tags":["Database"],"summary":"Migrate All Databases","description":"Migrate all database schemas to the given target version. If a target version is not provided, all databases will be migrated to the latest version.","operationId":"migrate_all_databases","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"All databases migrated successfully","content":{"application/json":{"schema":{},"example":{"message":"All databases migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/{db_id}/migrate":{"post":{"tags":["Database"],"summary":"Migrate Database","description":"Migrate the given database schema to the given target version. If a target version is not provided, the database will be migrated to the latest version.","operationId":"migrate_database","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"Database migrated successfully","content":{"application/json":{"schema":{},"example":{"message":"Database migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Database not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components":{"get":{"tags":["Components"],"summary":"List Components","description":"Retrieve a paginated list of components with optional filtering by type.","operationId":"list_components","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ComponentType"},{"type":"null"}],"description":"Filter by type: agent, team, workflow","title":"Component Type"},"description":"Filter by type: agent, team, workflow"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ComponentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Component","description":"Create a new component (agent, team, or workflow) with initial config.","operationId":"create_component","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}":{"get":{"tags":["Components"],"summary":"Get Component","description":"Retrieve a component by ID.","operationId":"get_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Components"],"summary":"Update Component","description":"Partially update a component by ID.","operationId":"update_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentUpdate","description":"Component fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Component","description":"Soft-delete a component by ID. Component configs and links remain stored.","operationId":"delete_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs":{"get":{"tags":["Components"],"summary":"List Configs","description":"List all configs for a component.","operationId":"list_configs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"include_config","in":"query","required":false,"schema":{"type":"boolean","description":"Include full config blob","default":true,"title":"Include Config"},"description":"Include full config blob"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComponentConfigResponse"},"title":"Response List Configs"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Config Version","description":"Create a new config version for a component.","operationId":"create_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigCreate","description":"Config data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}":{"patch":{"tags":["Components"],"summary":"Update Draft Config","description":"Update an existing draft config. Cannot update published configs.","operationId":"update_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigUpdate","description":"Config fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Components"],"summary":"Get Config Version","description":"Get a specific config version by number.","operationId":"get_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Config Version","description":"Delete a specific draft config version. Cannot delete published or current configs.","operationId":"delete_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/current":{"get":{"tags":["Components"],"summary":"Get Current Config","description":"Get the current config version for a component.","operationId":"get_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}/set-current":{"post":{"tags":["Components"],"summary":"Set Current Config Version","description":"Set a published config version as current (for rollback).","operationId":"set_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/schedules":{"get":{"tags":["Schedules"],"summary":"List Schedules","operationId":"list_schedules_schedules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Schedules"],"summary":"Create Schedule","operationId":"create_schedule_schedules_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule","operationId":"get_schedule_schedules__schedule_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Schedules"],"summary":"Update Schedule","operationId":"update_schedule_schedules__schedule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Schedules"],"summary":"Delete Schedule","operationId":"delete_schedule_schedules__schedule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}/enable":{"post":{"tags":["Schedules"],"summary":"Enable Schedule","operationId":"enable_schedule_schedules__schedule_id__enable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}/disable":{"post":{"tags":["Schedules"],"summary":"Disable Schedule","operationId":"disable_schedule_schedules__schedule_id__disable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}/trigger":{"post":{"tags":["Schedules"],"summary":"Trigger Schedule","operationId":"trigger_schedule_schedules__schedule_id__trigger_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}/runs":{"get":{"tags":["Schedules"],"summary":"List Schedule Runs","operationId":"list_schedule_runs_schedules__schedule_id__runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleRunResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}/runs/{run_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule Run","operationId":"get_schedule_run_schedules__schedule_id__runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals":{"get":{"tags":["Approvals"],"summary":"List Approvals","operationId":"list_approvals_approvals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","approved","rejected","expired","cancelled"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"source_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"}},{"name":"approval_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["required","audit"],"type":"string"},{"type":"null"}],"title":"Approval Type"}},{"name":"pause_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"schedule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"}},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ApprovalResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/count":{"get":{"tags":["Approvals"],"summary":"Get Approval Count","operationId":"get_approval_count_approvals_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalCountResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/{approval_id}/status":{"get":{"tags":["Approvals"],"summary":"Get Approval Status","operationId":"get_approval_status_approvals__approval_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/{approval_id}":{"get":{"tags":["Approvals"],"summary":"Get Approval","operationId":"get_approval_approvals__approval_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Approvals"],"summary":"Delete Approval","operationId":"delete_approval_approvals__approval_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/{approval_id}/resolve":{"post":{"tags":["Approvals"],"summary":"Resolve Approval","operationId":"resolve_approval_approvals__approval_id__resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResolve"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/service-accounts":{"post":{"tags":["Service Accounts"],"summary":"Create Service Account","description":"Mint a service account token. The plaintext token is returned exactly once.","operationId":"create_service_account_service_accounts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Service Accounts"],"summary":"List Service Accounts","description":"List service accounts. Returns metadata and display prefixes only - never hashes or plaintext.","operationId":"list_service_accounts_service_accounts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Revoked"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ServiceAccountResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/service-accounts/{service_account_id}":{"delete":{"tags":["Service Accounts"],"summary":"Revoke Service Account","description":"Revoke an existing service account.\n\nTakes effect immediately on this worker (the local verification cache entry is evicted) and within the cache TTL on other workers.","operationId":"revoke_service_account_service_accounts__service_account_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"service_account_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Service account not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/registry":{"get":{"tags":["Registry"],"summary":"List Registry","description":"List all resources in the registry with optional filtering.","operationId":"list_registry","security":[{"HTTPBearer":[]}],"parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RegistryResourceType"},{"type":"null"}],"description":"Filter by resource type","title":"Resource Type"},"description":"Filter by resource type"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (partial match)","title":"Name"},"description":"Filter by name (partial match)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_RegistryContentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}}},"components":{"schemas":{"ActivityMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"activity","title":"Role","default":"activity"},"activityType":{"type":"string","title":"Activitytype"},"content":{"additionalProperties":true,"type":"object","title":"Content"}},"additionalProperties":true,"type":"object","required":["id","activityType","content"],"title":"ActivityMessage","description":"An activity progress message emitted between chat messages."},"AgentResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"extra_messages":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Messages"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"AgentResponse"},"AgentSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_session_id":{"type":"string","title":"Agent Session Id","description":"Unique agent session identifier"},"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID used in this session"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"agent_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Data","description":"Agent-specific data"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["agent_session_id","session_id","session_name"],"title":"AgentSessionDetailSchema"},"AgentSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the agent"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the agent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the agent"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the agent"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","title":"AgentSummaryResponse"},"ApprovalCountResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"ApprovalCountResponse","description":"Response model for pending approval count."},"ApprovalResolve":{"properties":{"status":{"type":"string","pattern":"^(approved|rejected)$","title":"Status"},"resolved_by":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Resolved By"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"}},"type":"object","required":["status"],"title":"ApprovalResolve","description":"Request body for resolving (approve/reject) an approval."},"ApprovalResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"},"source_type":{"type":"string","title":"Source Type"},"approval_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Type"},"pause_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Args"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"},"schedule_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Run Id"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"},"run_status":{"anyOf":[{"$ref":"#/components/schemas/RunStatus"},{"type":"null"}]}},"type":"object","required":["id","run_id","session_id","status","source_type"],"title":"ApprovalResponse","description":"Response model for a single approval."},"ApprovalStatusResponse":{"properties":{"approval_id":{"type":"string","title":"Approval Id"},"status":{"type":"string","title":"Status"},"run_id":{"type":"string","title":"Run Id"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"}},"type":"object","required":["approval_id","status","run_id"],"title":"ApprovalStatusResponse","description":"Lightweight response model for polling approval status."},"Artifact":{"properties":{"artifactId":{"type":"string","title":"Artifactid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"}},"type":"object","required":["artifactId","parts"],"title":"Artifact","description":"Represents a file, data structure, or other resource generated by an agent during a task."},"AssistantMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"assistant","title":"Role","default":"assistant"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"},"toolCalls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},{"type":"null"}],"title":"Toolcalls"}},"additionalProperties":true,"type":"object","required":["id"],"title":"AssistantMessage","description":"An assistant message."},"AudioInputContent":{"properties":{"type":{"type":"string","const":"audio","title":"Type","default":"audio"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"AudioInputContent","description":"An audio input content fragment."},"BackgroundRunResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the background run."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the background run."},"status":{"type":"string","title":"Status","description":"Initial run status."}},"type":"object","required":["run_id","session_id","status"],"title":"BackgroundRunResponse"},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"BadRequestResponse","example":{"detail":"Bad request","error_code":"BAD_REQUEST"}},"BinaryInputContent":{"properties":{"type":{"type":"string","const":"binary","title":"Type","default":"binary"},"mimeType":{"type":"string","title":"Mimetype"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"additionalProperties":true,"type":"object","required":["mimeType"],"title":"BinaryInputContent","description":"A deprecated binary payload reference in a multimodal user message."},"Body_continue_agent_run":{"properties":{"tools":{"type":"string","title":"Tools","description":"JSON string of tool call results to continue the paused run","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Optional new user-message text to append to the run before resuming. Use for continuing a COMPLETED run with a follow-up, or adding context to a RUNNING/ERROR resume."},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","description":"When true, clone the run with a new ``run_id`` before resuming. The original is untouched; the clone becomes a sibling within the same session, with ``forked_from_run_id`` set.","default":false},"regenerate":{"type":"boolean","title":"Regenerate","description":"Sugar: regenerate the last response of this run. Auto-computes ``continue_from='last_user'`` to land just after the last user message. Pair with ``additional_instructions`` to steer the new output. By default the original response is hidden from history (replaced); pass ``replace_original=false`` to keep both the original and the regenerated response visible side by side.","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original","description":"Only valid with ``regenerate=true``. Controls history visibility of the original response; the original run is always retained in storage. Defaults to true: the original is marked REGENERATED and hidden from history so the new response replaces it. Pass false to keep both the original and regenerated responses visible."},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions","description":"Only valid with ``regenerate=true``: extra guidance appended as a user message before re-generation. Friendly alias for ``input``."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run continue in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false}},"type":"object","title":"Body_continue_agent_run"},"Body_continue_team_run":{"properties":{"requirements":{"type":"string","title":"Requirements","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input"},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","default":false},"regenerate":{"type":"boolean","title":"Regenerate","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original"},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"stream":{"type":"boolean","title":"Stream","default":true},"background":{"type":"boolean","title":"Background","default":false}},"type":"object","title":"Body_continue_team_run"},"Body_continue_workflow_run":{"properties":{"step_requirements":{"type":"string","title":"Step Requirements","description":"JSON string of step requirement objects with resolution status","default":""},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}},"type":"object","title":"Body_continue_workflow_run"},"Body_create_agent_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the agent"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Agent version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic agent construction"}},"type":"object","required":["message"],"title":"Body_create_agent_run"},"Body_create_team_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the team"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"monitor":{"type":"boolean","title":"Monitor","description":"Enable monitoring and logging for this run","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Team version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic team construction"}},"type":"object","required":["message"],"title":"Body_create_team_run"},"Body_create_workflow_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the workflow"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run workflow in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Workflow version to use for this run"},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow construction"}},"type":"object","required":["message"],"title":"Body_create_workflow_run"},"Body_rename_session":{"properties":{"session_name":{"type":"string","title":"Session Name","description":"New name for the session"}},"type":"object","required":["session_name"],"title":"Body_rename_session"},"Body_resume_agent_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_agent_run_stream"},"Body_resume_team_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_team_run_stream"},"Body_resume_workflow_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_workflow_run_stream"},"Body_update_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"Content metadata as JSON string"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"Reader ID. In Agno 2.7.4, local knowledge validates the value, but the content patch does not apply or persist the reader change."}},"type":"object","title":"Body_update_content"},"Body_upload_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated from file/URL if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description for context"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"URL to fetch content from (JSON array or single URL string)"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object for additional content properties"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File","description":"File to upload for processing"},"text_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Content","description":"Raw text content to process"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for content processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply during processing"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size to use for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap to use for processing"}},"type":"object","title":"Body_upload_content"},"Body_upload_remote_content":{"properties":{"config_id":{"type":"string","title":"Config Id","description":"ID of the configured remote content source (from /knowledge/config)"},"path":{"type":"string","title":"Path","description":"Path to file or folder in the remote source"},"source_params":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Params","description":"JSON object of per-request parameters forwarded to the source's factory. Used for provider-specific routing that shouldn't be baked into the config. Currently supported keys: GitHub accepts 'repo' ('owner/repo'), letting one configured GitHub source serve multiple repositories the credentials can access."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap for processing"}},"type":"object","required":["config_id","path"],"title":"Body_upload_remote_content"},"ChatConfig":{"properties":{"quick_prompts":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Quick Prompts"}},"type":"object","required":["quick_prompts"],"title":"ChatConfig","description":"Configuration for the Chat page of the AgentOS"},"ChunkerSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["key"],"title":"ChunkerSchema"},"ComponentConfigResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"version":{"type":"integer","title":"Version"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"type":"string","title":"Stage"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","version","stage","config","created_at"],"title":"ComponentConfigResponse"},"ComponentCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Display name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id","description":"Unique identifier for the entity. Auto-generated from name if not provided."},"component_type":{"$ref":"#/components/schemas/ComponentType","description":"Type of entity: agent, team, or workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config","description":"Optional configuration"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["name","component_type"],"title":"ComponentCreate"},"ComponentResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"component_type":{"$ref":"#/components/schemas/ComponentType"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","component_type","created_at"],"title":"ComponentResponse"},"ComponentType":{"type":"string","enum":["agent","team","workflow"],"title":"ComponentType"},"ComponentUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"component_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"}},"type":"object","title":"ComponentUpdate"},"ConfigCreate":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config","description":"The configuration data"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Optional version number"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links","description":"Optional links to child components"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["config"],"title":"ConfigCreate"},"ConfigResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the OS instance"},"available_models":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Models","description":"List of available models"},"os_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Database","description":"ID of the database used for the OS instance"},"databases":{"items":{"type":"string"},"type":"array","title":"Databases","description":"List of database IDs used by the components of the OS instance"},"chat":{"anyOf":[{"$ref":"#/components/schemas/ChatConfig"},{"type":"null"}],"description":"Chat configuration"},"manifest":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Manifest"},"type":"object"},{"type":"null"}],"title":"Manifest","description":"Per-entity UI metadata keyed by agent/team/workflow id"},"session":{"anyOf":[{"$ref":"#/components/schemas/SessionConfig"},{"type":"null"}],"description":"Session configuration"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/MetricsConfig"},{"type":"null"}],"description":"Metrics configuration"},"memory":{"anyOf":[{"$ref":"#/components/schemas/MemoryConfig"},{"type":"null"}],"description":"Memory configuration"},"learning":{"anyOf":[{"$ref":"#/components/schemas/LearningConfig"},{"type":"null"}],"description":"Learning configuration"},"knowledge":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeConfig"},{"type":"null"}],"description":"Knowledge configuration"},"evals":{"anyOf":[{"$ref":"#/components/schemas/EvalsConfig"},{"type":"null"}],"description":"Evaluations configuration"},"traces":{"anyOf":[{"$ref":"#/components/schemas/TracesConfig"},{"type":"null"}],"description":"Traces configuration"},"agents":{"items":{"$ref":"#/components/schemas/AgentSummaryResponse"},"type":"array","title":"Agents","description":"List of registered agents"},"teams":{"items":{"$ref":"#/components/schemas/TeamSummaryResponse"},"type":"array","title":"Teams","description":"List of registered teams"},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Workflows","description":"List of registered workflows"},"interfaces":{"items":{"$ref":"#/components/schemas/InterfaceResponse"},"type":"array","title":"Interfaces","description":"List of available interfaces"}},"type":"object","required":["os_id","databases","agents","teams","workflows","interfaces"],"title":"ConfigResponse","description":"Response schema for the general config endpoint"},"ConfigResponseSchema":{"properties":{"readers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ReaderSchema"},"type":"object"},{"type":"null"}],"title":"Readers","description":"Available content readers"},"readersForType":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Readersfortype","description":"Mapping of content types to reader IDs"},"chunkers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ChunkerSchema"},"type":"object"},{"type":"null"}],"title":"Chunkers","description":"Available chunking strategies"},"filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filters","description":"Available filter tags"},"vector_dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/VectorDbSchema"},"type":"array"},{"type":"null"}],"title":"Vector Dbs","description":"Configured vector databases"},"remote_content_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"type":"array"},{"type":"null"}],"title":"Remote Content Sources","description":"Configured remote content sources (S3, GCS, SharePoint, GitHub)"}},"type":"object","title":"ConfigResponseSchema"},"ConfigUpdate":{"properties":{"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","title":"ConfigUpdate"},"ContentResponseSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the content"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"MIME type of the content"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"},"linked_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linked To","description":"ID of related content if linked"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata as key-value pairs"},"access_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Access Count","description":"Number of times content has been accessed"},"status":{"anyOf":[{"$ref":"#/components/schemas/ContentStatus"},{"type":"null"}],"description":"Processing status of the content"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message","description":"Status message or error details"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when content was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when content was last updated"}},"type":"object","required":["id"],"title":"ContentResponseSchema"},"ContentStatus":{"type":"string","enum":["processing","completed","failed"],"title":"ContentStatus","description":"Enumeration of possible content processing statuses."},"ContentStatusResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Content ID"},"status":{"$ref":"#/components/schemas/ContentStatus","description":"Current processing status of the content"},"status_message":{"type":"string","title":"Status Message","description":"Status message or error details","default":""}},"type":"object","required":["status"],"title":"ContentStatusResponse","description":"Response model for content status endpoint."},"Context":{"properties":{"description":{"type":"string","title":"Description"},"value":{"type":"string","title":"Value"}},"additionalProperties":true,"type":"object","required":["description","value"],"title":"Context","description":"Additional context for the agent."},"CreateSessionRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session ID (generated if not provided)"},"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Initial session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"}},"type":"object","title":"CreateSessionRequest"},"DataPart":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data"},"kind":{"type":"string","const":"data","title":"Kind","default":"data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["data"],"title":"DataPart","description":"Represents a structured data segment (e.g., JSON) within a message or artifact."},"DatabaseConfig_EvalsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/EvalsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[EvalsDomainConfig]"},"DatabaseConfig_LearningDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/LearningDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[LearningDomainConfig]"},"DatabaseConfig_MemoryDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MemoryDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MemoryDomainConfig]"},"DatabaseConfig_MetricsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MetricsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MetricsDomainConfig]"},"DatabaseConfig_SessionDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/SessionDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[SessionDomainConfig]"},"DatabaseConfig_TracesDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/TracesDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[TracesDomainConfig]"},"DayAggregatedMetrics":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the metrics record"},"agent_runs_count":{"type":"integer","minimum":0.0,"title":"Agent Runs Count","description":"Total number of agent runs"},"agent_sessions_count":{"type":"integer","minimum":0.0,"title":"Agent Sessions Count","description":"Total number of agent sessions"},"team_runs_count":{"type":"integer","minimum":0.0,"title":"Team Runs Count","description":"Total number of team runs"},"team_sessions_count":{"type":"integer","minimum":0.0,"title":"Team Sessions Count","description":"Total number of team sessions"},"workflow_runs_count":{"type":"integer","minimum":0.0,"title":"Workflow Runs Count","description":"Total number of workflow runs"},"workflow_sessions_count":{"type":"integer","minimum":0.0,"title":"Workflow Sessions Count","description":"Total number of workflow sessions"},"users_count":{"type":"integer","minimum":0.0,"title":"Users Count","description":"Total number of unique users"},"token_metrics":{"additionalProperties":true,"type":"object","title":"Token Metrics","description":"Token usage metrics (input, output, cached, etc.)"},"model_metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Model Metrics","description":"Metrics grouped by model (model_id, provider, count)"},"date":{"type":"string","format":"date-time","title":"Date","description":"Date for which these metrics are aggregated"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when metrics were created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when metrics were last updated"}},"type":"object","required":["id","agent_runs_count","agent_sessions_count","team_runs_count","team_sessions_count","workflow_runs_count","workflow_sessions_count","users_count","token_metrics","model_metrics","date","created_at","updated_at"],"title":"DayAggregatedMetrics","description":"Aggregated metrics for a given day"},"DeleteEvalRunsRequest":{"properties":{"eval_run_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Eval Run Ids","description":"List of evaluation run IDs to delete"}},"type":"object","required":["eval_run_ids"],"title":"DeleteEvalRunsRequest"},"DeleteMemoriesRequest":{"properties":{"memory_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Memory Ids","description":"List of memory IDs to delete"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID to filter memories for deletion"}},"type":"object","required":["memory_ids"],"title":"DeleteMemoriesRequest"},"DeleteSessionRequest":{"properties":{"session_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Session Ids","description":"List of session IDs to delete"},"session_types":{"items":{"$ref":"#/components/schemas/SessionType"},"type":"array","minItems":1,"title":"Session Types","description":"Types of sessions to delete"}},"type":"object","required":["session_ids","session_types"],"title":"DeleteSessionRequest"},"DeveloperMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"developer","title":"Role","default":"developer"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"DeveloperMessage","description":"A developer message."},"DocumentInputContent":{"properties":{"type":{"type":"string","const":"document","title":"Type","default":"document"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"DocumentInputContent","description":"A document input content fragment."},"EvalFilterType":{"type":"string","enum":["agent","team","workflow"],"title":"EvalFilterType"},"EvalRunInput":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID to evaluate"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID to evaluate"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID to use for evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation to run (accuracy, performance, or reliability)"},"input":{"type":"string","minLength":1,"title":"Input","description":"Input text/query for the evaluation"},"additional_guidelines":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Guidelines","description":"Additional guidelines for the evaluation"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for the evaluation"},"num_iterations":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Num Iterations","description":"Number of times to run the evaluation","default":1},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for this evaluation run"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output","description":"Expected output for accuracy evaluation"},"criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criteria","description":"Evaluation criteria for agent-as-judge evaluation"},"scoring_strategy":{"anyOf":[{"type":"string","enum":["numeric","binary"]},{"type":"null"}],"title":"Scoring Strategy","description":"Scoring strategy: 'numeric' (1-10 with threshold) or 'binary' (PASS/FAIL)","default":"binary"},"threshold":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Threshold","description":"Score threshold for pass/fail (1-10), only used with numeric scoring","default":7},"warmup_runs":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Warmup Runs","description":"Number of warmup runs before measuring performance","default":0},"expected_tool_calls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expected Tool Calls","description":"Expected tool calls for reliability evaluation"},"allow_additional_tool_calls":{"type":"boolean","title":"Allow Additional Tool Calls","description":"When True, tool calls not in expected_tool_calls are allowed (subset matching)","default":false},"expected_tool_call_arguments":{"anyOf":[{"additionalProperties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Expected Tool Call Arguments","description":"Expected arguments for specific tool calls, e.g. {\"tool_name\": {\"arg_name\": \"expected_value\"}} or {\"tool_name\": [{\"arg_name\": \"val1\"}, {\"arg_name\": \"val2\"}]}"}},"type":"object","required":["eval_type","input"],"title":"EvalRunInput"},"EvalSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the evaluation run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that was evaluated"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID used in evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that was evaluated"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was evaluated"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the evaluation run"},"evaluated_component_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluated Component Name","description":"Name of the evaluated component"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation (accuracy, performance, or reliability)"},"eval_data":{"additionalProperties":true,"type":"object","title":"Eval Data","description":"Evaluation results and metrics"},"eval_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eval Input","description":"Input parameters used for the evaluation"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when evaluation was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when evaluation was last updated"}},"type":"object","required":["id","eval_type","eval_data"],"title":"EvalSchema"},"EvalType":{"type":"string","enum":["accuracy","agent_as_judge","performance","reliability"],"title":"EvalType"},"EvalsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_EvalsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"EvalsConfig","description":"Configuration for the Evals domain of the AgentOS"},"EvalsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"EvalsDomainConfig","description":"Configuration for the Evals domain of the AgentOS"},"FilePart":{"properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/FileWithBytes"},{"$ref":"#/components/schemas/FileWithUri"}],"title":"File"},"kind":{"type":"string","const":"file","title":"Kind","default":"file"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["file"],"title":"FilePart","description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI."},"FileWithBytes":{"properties":{"bytes":{"type":"string","title":"Bytes"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["bytes"],"title":"FileWithBytes","description":"Represents a file with its content provided directly as a base64-encoded string."},"FileWithUri":{"properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uri":{"type":"string","title":"Uri"}},"type":"object","required":["uri"],"title":"FileWithUri","description":"Represents a file with its content located at a specific URI."},"FilterFieldSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Column/field name used in filter expressions"},"label":{"type":"string","title":"Label","description":"Human-readable display label for the UI"},"type":{"type":"string","title":"Type","description":"Field data type: string, number, datetime, enum"},"operators":{"items":{"type":"string"},"type":"array","title":"Operators","description":"List of valid filter operators for this field"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values","description":"Allowed enum values (for autocomplete/dropdown)"}},"type":"object","required":["key","label","type","operators"],"title":"FilterFieldSchema","description":"Schema describing a single filterable field for the frontend filter bar."},"FilterSchemaResponse":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FilterFieldSchema"},"type":"array","title":"Fields","description":"Available filterable fields"},"logical_operators":{"items":{"type":"string"},"type":"array","title":"Logical Operators","description":"Logical operators for combining filter clauses","default":["AND","OR"]}},"type":"object","required":["fields"],"title":"FilterSchemaResponse","description":"Response for the filter schema endpoint. Tells the FE what fields, operators, and values are available."},"FunctionCall":{"properties":{"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"additionalProperties":true,"type":"object","required":["name","arguments"],"title":"FunctionCall","description":"Name and arguments of a function call."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Health status of the service"},"instantiated_at":{"type":"string","format":"date-time","title":"Instantiated At","description":"Timestamp when service was instantiated"}},"type":"object","required":["status","instantiated_at"],"title":"HealthResponse","example":{"instantiated_at":"2025-06-10T12:00:00Z","status":"ok"}},"ImageInputContent":{"properties":{"type":{"type":"string","const":"image","title":"Type","default":"image"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"ImageInputContent","description":"An image input content fragment."},"InfoResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"agno_version":{"type":"string","title":"Agno Version","description":"Version of the agno framework"},"agent_count":{"type":"integer","title":"Agent Count","description":"Number of agents registered in the OS","default":0},"team_count":{"type":"integer","title":"Team Count","description":"Number of teams registered in the OS","default":0},"workflow_count":{"type":"integer","title":"Workflow Count","description":"Number of workflows registered in the OS","default":0},"mcp":{"$ref":"#/components/schemas/McpInfo","description":"MCP server availability for this OS instance"},"auth_mode":{"type":"string","enum":["none","security_key","jwt"],"title":"Auth Mode","description":"Authentication mode enforced on the REST/WS plane of this OS instance. MCP OAuth, when enabled, is described separately under `mcp.oauth`.","default":"none"}},"type":"object","required":["os_id","agno_version"],"title":"InfoResponse","description":"Response schema for the /info endpoint returning lightweight OS metadata."},"InputContentDataSource":{"properties":{"type":{"type":"string","const":"data","title":"Type","default":"data"},"value":{"type":"string","title":"Value"},"mimeType":{"type":"string","title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value","mimeType"],"title":"InputContentDataSource","description":"Inline base64-encoded source."},"InputContentUrlSource":{"properties":{"type":{"type":"string","const":"url","title":"Type","default":"url"},"value":{"type":"string","title":"Value"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value"],"title":"InputContentUrlSource","description":"URL-referenced source."},"InterfaceResponse":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the interface"},"version":{"type":"string","title":"Version","description":"Version of the interface"},"route":{"type":"string","title":"Route","description":"API route path"}},"type":"object","required":["type","version","route"],"title":"InterfaceResponse"},"InternalServerErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"InternalServerErrorResponse","example":{"detail":"Internal server error","error_code":"INTERNAL_SERVER_ERROR"}},"KnowledgeConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeDatabaseConfig"},"type":"array"},{"type":"null"}],"title":"Dbs"},"knowledge_instances":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeInstanceConfig"},"type":"array"},{"type":"null"}],"title":"Knowledge Instances"}},"type":"object","title":"KnowledgeConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeDatabaseConfig":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeDomainConfig"},{"type":"null"}]},"tables":{"items":{"type":"string"},"type":"array","title":"Tables","default":[]}},"type":"object","required":["db_id"],"title":"KnowledgeDatabaseConfig","description":"Configuration for a knowledge database with its tables"},"KnowledgeDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"KnowledgeDomainConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeInstanceConfig":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"db_id":{"type":"string","title":"Db Id"},"table":{"type":"string","title":"Table"}},"type":"object","required":["id","name","db_id","table"],"title":"KnowledgeInstanceConfig","description":"Configuration for a single knowledge instance"},"LearningConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_LearningDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"LearningConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningCreate":{"properties":{"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"content":{"additionalProperties":true,"type":"object","title":"Content","description":"The learning content payload"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID. When the request is authenticated, must match the JWT subject or be omitted/null (which creates a global / non-user-scoped record)."},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"}},"type":"object","required":["learning_type","content"],"title":"LearningCreate","description":"Request body for creating a learning record."},"LearningDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"LearningDomainConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningResponse":{"properties":{"learning_id":{"type":"string","title":"Learning Id","description":"Unique identifier for the learning record"},"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID (for entity-specific learnings)"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type (e.g. 'person', 'company')"},"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"The learning content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Creation timestamp (Unix epoch seconds)"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp (Unix epoch seconds)"}},"type":"object","required":["learning_id","learning_type"],"title":"LearningResponse","description":"A single learning record as returned by the API."},"LearningUpdate":{"properties":{"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Replacement content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Replacement metadata"}},"type":"object","title":"LearningUpdate","description":"Request body for updating a learning record. Identity fields are immutable."},"LearningUserStats":{"properties":{"user_id":{"type":"string","title":"User Id","description":"The user ID"},"last_learning_updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Learning Updated At","description":"Most recent learning update for this user (Unix epoch seconds)"}},"type":"object","required":["user_id"],"title":"LearningUserStats","description":"A user that owns learning records, with their most recent activity.\n\nUsed as a lightweight index for the per-user view: list users here, then drill into a\nsingle user's records via ``GET /learnings?user_id=...``. No per-user count is returned\n-- the user-scoped stores (``user_profile``, ``user_memory``) keep a single record per\nuser, so a record count would always be 1; the actual memory count lives in that\nrecord's ``content``."},"Manifest":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"},"quick_prompts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quick Prompts"}},"type":"object","title":"Manifest","description":"OS-level UI metadata for an agent/team/workflow.\n\nFields here are AgentOS UI metadata only. ``description`` is unrelated to\n``Agent.description`` / ``Team.description`` / ``Workflow.description``,\nwhich are sent to the model.\n\nRendering surfaces:\n- ``description``, ``labels``: home/landing card\n- ``quick_prompts``: chat page"},"McpInfo":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the MCP server is enabled on this OS instance","default":false},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Path where the MCP server is mounted, null when disabled"},"oauth":{"anyOf":[{"$ref":"#/components/schemas/McpOAuthInfo"},{"type":"null"}],"description":"OAuth discovery details when the MCP endpoint is OAuth-protected, null otherwise"}},"type":"object","title":"McpInfo","description":"MCP server availability for the /info endpoint."},"McpOAuthInfo":{"properties":{"authorization_servers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorization Servers","description":"Issuer URL(s) of the authorization server(s) protecting the MCP endpoint"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource","description":"RFC 9728 resource URL advertised for the MCP endpoint"}},"type":"object","title":"McpOAuthInfo","description":"OAuth discovery details for an MCP endpoint protected by ``AgentOS(mcp_auth=...)``."},"MemoryConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MemoryDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MemoryConfig","description":"Configuration for the Memory domain of the AgentOS"},"MemoryDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MemoryDomainConfig","description":"Configuration for the Memory domain of the AgentOS"},"Message":{"properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"kind":{"type":"string","const":"message","title":"Kind","default":"message"},"messageId":{"type":"string","title":"Messageid"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taskid"}},"type":"object","required":["messageId","parts","role"],"title":"Message","description":"Represents a single message in the conversation between a user and an agent."},"Meta":{"properties":{"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of results per page","default":20},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number","default":1}},"type":"object","title":"Meta","description":"Inline metadata schema for pagination."},"MetricsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MetricsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MetricsConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MetricsDomainConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsResponse":{"properties":{"metrics":{"items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"type":"array","title":"Metrics","description":"List of daily aggregated metrics"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp of the most recent metrics update"}},"type":"object","required":["metrics"],"title":"MetricsResponse"},"Model":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"Model"},"ModelResponse":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the model"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"ModelResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"NotFoundResponse","example":{"detail":"Not found","error_code":"NOT_FOUND"}},"OptimizeMemoriesRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID to optimize memories for"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model to use for optimization in format 'provider:model_id' (e.g., 'openai:gpt-4o-mini', 'anthropic:claude-3-5-sonnet-20241022', 'google:gemini-2.0-flash-exp'). If not specified, uses MemoryManager's default model (gpt-4o)."},"apply":{"type":"boolean","title":"Apply","description":"If True, apply optimization changes to database. If False, return preview only without saving.","default":true}},"type":"object","required":["user_id"],"title":"OptimizeMemoriesRequest","description":"Schema for memory optimization request"},"OptimizeMemoriesResponse":{"properties":{"memories":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Memories","description":"List of optimized memory objects"},"memories_before":{"type":"integer","minimum":0.0,"title":"Memories Before","description":"Number of memories before optimization"},"memories_after":{"type":"integer","minimum":0.0,"title":"Memories After","description":"Number of memories after optimization"},"tokens_before":{"type":"integer","minimum":0.0,"title":"Tokens Before","description":"Token count before optimization"},"tokens_after":{"type":"integer","minimum":0.0,"title":"Tokens After","description":"Token count after optimization"},"tokens_saved":{"type":"integer","minimum":0.0,"title":"Tokens Saved","description":"Number of tokens saved through optimization"},"reduction_percentage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Reduction Percentage","description":"Percentage of token reduction achieved"}},"type":"object","required":["memories","memories_before","memories_after","tokens_before","tokens_after","tokens_saved","reduction_percentage"],"title":"OptimizeMemoriesResponse","description":"Schema for memory optimization response"},"PaginatedResponse_ApprovalResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ApprovalResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ApprovalResponse]"},"PaginatedResponse_ComponentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ComponentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ComponentResponse]"},"PaginatedResponse_ContentResponseSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentResponseSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ContentResponseSchema]"},"PaginatedResponse_EvalSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EvalSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[EvalSchema]"},"PaginatedResponse_LearningResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningResponse]"},"PaginatedResponse_LearningUserStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningUserStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningUserStats]"},"PaginatedResponse_RegistryContentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RegistryContentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[RegistryContentResponse]"},"PaginatedResponse_ScheduleResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleResponse]"},"PaginatedResponse_ScheduleRunResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleRunResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleRunResponse]"},"PaginatedResponse_ServiceAccountResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ServiceAccountResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ServiceAccountResponse]"},"PaginatedResponse_SessionSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SessionSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[SessionSchema]"},"PaginatedResponse_TraceDetail_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceDetail"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceDetail]"},"PaginatedResponse_TraceSessionStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSessionStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSessionStats]"},"PaginatedResponse_TraceSummary_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSummary"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSummary]"},"PaginatedResponse_UserMemorySchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserMemorySchema]"},"PaginatedResponse_UserStatsSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserStatsSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserStatsSchema]"},"PaginatedResponse_VectorSearchResult_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VectorSearchResult"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[VectorSearchResult]"},"PaginationInfo":{"properties":{"page":{"type":"integer","minimum":0.0,"title":"Page","description":"Current page number (0-indexed)","default":0},"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of items per page","default":20},"total_pages":{"type":"integer","minimum":0.0,"title":"Total Pages","description":"Total number of pages","default":0},"total_count":{"type":"integer","minimum":0.0,"title":"Total Count","description":"Total count of items","default":0},"search_time_ms":{"type":"number","minimum":0.0,"title":"Search Time Ms","description":"Search execution time in milliseconds","default":0}},"type":"object","title":"PaginationInfo"},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/DataPart"}],"title":"Part"},"ReaderSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the reader"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the reader"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the reader's capabilities"},"chunkers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chunkers","description":"List of supported chunking strategies"}},"type":"object","required":["id"],"title":"ReaderSchema"},"ReasoningMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"reasoning","title":"Role","default":"reasoning"},"content":{"type":"string","title":"Content"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"ReasoningMessage","description":"A reasoning message containing the agent's internal reasoning process."},"RegistryContentResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/RegistryResourceType"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name","type"],"title":"RegistryContentResponse"},"RegistryResourceType":{"type":"string","enum":["tool","model","db","vector_db","schema","function","agent","team","knowledge","memory_manager","session_summary_manager"],"title":"RegistryResourceType","description":"Types of resources that can be stored in a registry."},"RemoteContentSourceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content source"},"name":{"type":"string","title":"Name","description":"Display name for the content source"},"type":{"type":"string","title":"Type","description":"Type of content source (s3, gcs, sharepoint, github, azureblob)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Default path prefix for this source"}},"type":"object","required":["id","name","type"],"title":"RemoteContentSourceSchema","description":"Schema for remote content source configuration."},"ResumeEntry":{"properties":{"interruptId":{"type":"string","title":"Interruptid"},"status":{"type":"string","enum":["resolved","cancelled"],"title":"Status"},"payload":{"anyOf":[{},{"type":"null"}],"title":"Payload"}},"additionalProperties":true,"type":"object","required":["interruptId","status"],"title":"ResumeEntry","description":"A per-interrupt response in the resume array of a RunAgentInput."},"Role":{"type":"string","enum":["agent","user"],"title":"Role","description":"Identifies the sender of the message. `user` for the client, `agent` for the service."},"RunAgentInput":{"properties":{"threadId":{"type":"string","title":"Threadid"},"runId":{"type":"string","title":"Runid"},"parentRunId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentrunid"},"state":{"title":"State"},"messages":{"items":{"oneOf":[{"$ref":"#/components/schemas/DeveloperMessage"},{"$ref":"#/components/schemas/SystemMessage"},{"$ref":"#/components/schemas/AssistantMessage"},{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/ToolMessage"},{"$ref":"#/components/schemas/ActivityMessage"},{"$ref":"#/components/schemas/ReasoningMessage"}],"discriminator":{"propertyName":"role","mapping":{"activity":"#/components/schemas/ActivityMessage","assistant":"#/components/schemas/AssistantMessage","developer":"#/components/schemas/DeveloperMessage","reasoning":"#/components/schemas/ReasoningMessage","system":"#/components/schemas/SystemMessage","tool":"#/components/schemas/ToolMessage","user":"#/components/schemas/UserMessage"}}},"type":"array","title":"Messages"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","title":"Tools"},"context":{"items":{"$ref":"#/components/schemas/Context"},"type":"array","title":"Context"},"forwardedProps":{"title":"Forwardedprops"},"resume":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResumeEntry"},"type":"array"},{"type":"null"}],"title":"Resume"}},"additionalProperties":true,"type":"object","required":["threadId","runId","state","messages","tools","context","forwardedProps"],"title":"RunAgentInput","description":"Input for running an agent."},"RunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that executed this run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"RunSchema"},"RunStatus":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","PAUSED","CANCELLED","ERROR","REGENERATED"],"title":"RunStatus","description":"State of the main run response"},"ScheduleCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"cron_expr":{"type":"string","maxLength":128,"title":"Cron Expr"},"endpoint":{"type":"string","maxLength":512,"title":"Endpoint"},"method":{"type":"string","maxLength":10,"title":"Method","default":"POST"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"type":"string","maxLength":64,"title":"Timezone","default":"UTC"},"timeout_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Timeout Seconds","default":3600},"max_retries":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Max Retries","default":0},"retry_delay_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Retry Delay Seconds","default":60}},"type":"object","required":["name","cron_expr","endpoint"],"title":"ScheduleCreate"},"ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"cron_expr":{"type":"string","title":"Cron Expr"},"timezone":{"type":"string","title":"Timezone"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"max_retries":{"type":"integer","title":"Max Retries"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","method","endpoint","cron_expr","timezone","timeout_seconds","max_retries","retry_delay_seconds","enabled"],"title":"ScheduleResponse"},"ScheduleRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"schedule_id":{"type":"string","title":"Schedule Id"},"attempt":{"type":"integer","title":"Attempt"},"triggered_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triggered At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"status":{"type":"string","title":"Status"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","schedule_id","attempt","status"],"title":"ScheduleRunResponse"},"ScheduleStateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","enabled"],"title":"ScheduleStateResponse","description":"Trimmed response for state-changing operations (enable/disable)."},"ScheduleUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"cron_expr":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Cron Expr"},"endpoint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Endpoint"},"method":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Method"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Timezone"},"timeout_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":1.0},{"type":"null"}],"title":"Timeout Seconds"},"max_retries":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Max Retries"},"retry_delay_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":1.0},{"type":"null"}],"title":"Retry Delay Seconds"}},"type":"object","title":"ScheduleUpdate"},"ScopeItem":{"properties":{"scope":{"type":"string","title":"Scope","description":"Scope string, e.g. 'agents:*:run'"},"effect":{"type":"string","enum":["allow","deny"],"title":"Effect","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["scope"],"title":"ScopeItem","description":"Write shape for one scope grant \u2014 the canonical RBAC payload for every scope-bearing API.\n\nEndpoints that take scopes accept these objects only (a bare string is a validation\nerror). ``effect`` is constrained here so every consumer rejects typos at the model\nlayer; whether ``deny`` is *semantically* legal stays per-endpoint (roles support\ndeny rules, service-account tokens are pure grants and reject it)."},"ScopeSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Scope id (always null here; kept for shape parity with the cloud RBAC API, which addresses scopes individually)"},"raw":{"type":"string","title":"Raw","description":"Original scope string, e.g. 'agents:*:run'"},"namespace":{"type":"string","title":"Namespace","description":"Resource namespace, e.g. 'agents'"},"sub_namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Namespace","description":"Specific resource id or wildcard '*'"},"permission":{"type":"string","title":"Permission","description":"Action, e.g. 'read' / 'run' / 'write'"},"value":{"type":"string","title":"Value","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["raw","namespace","permission"],"title":"ScopeSchema","description":"Read shape for one scope \u2014 the parsed RBAC payload shared by every scope-bearing API.\n\nMirrors the cloud RBAC scope shape ({raw, namespace, sub_namespace, permission, value})\nso a frontend renders scopes from any AgentOS API with one integration."},"SendMessageSuccessResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id"},"jsonrpc":{"type":"string","const":"2.0","title":"Jsonrpc","default":"2.0"},"result":{"anyOf":[{"$ref":"#/components/schemas/Task"},{"$ref":"#/components/schemas/Message"}],"title":"Result"}},"type":"object","required":["result"],"title":"SendMessageSuccessResponse","description":"Represents a successful JSON-RPC response for the `message/send` method."},"ServiceAccountCreate":{"properties":{"name":{"type":"string","maxLength":63,"title":"Name","description":"Machine identity name (lowercase slug), e.g. 'claude-code' or 'github-actions'"},"scopes":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScopeItem"},"type":"array"},{"type":"null"}],"title":"Scopes","description":"Scopes granted to the token, as {scope, effect} objects (the shared RBAC write shape; token scopes are grants, so only effect='allow' is accepted). Defaults to run and read scopes: agents:run, teams:run, workflows:run, sessions:read"},"expires_in_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Expires In Days","description":"Days until the token expires (default: 90)","default":90},"never_expires":{"type":"boolean","title":"Never Expires","description":"Mint a non-expiring token. Must be set explicitly; overrides expires_in_days.","default":false},"allow_privileged_scopes":{"type":"boolean","title":"Allow Privileged Scopes","description":"Required to grant privileged scopes: any write or delete action, the admin scope, or any service_accounts scope. Privileged tokens must be deliberate, never accidental.","default":false}},"type":"object","required":["name"],"title":"ServiceAccountCreate"},"ServiceAccountCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"token":{"type":"string","title":"Token","description":"The plaintext token. Shown exactly once - store it securely now."}},"type":"object","required":["id","name","principal","token_prefix","created_at","token"],"title":"ServiceAccountCreateResponse","description":"Returned once, at creation. The token is never retrievable again."},"ServiceAccountResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","name","principal","token_prefix","created_at"],"title":"ServiceAccountResponse","description":"Service account metadata. Never includes the token hash or plaintext."},"ServiceUnavailableResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ServiceUnavailableResponse","example":{"detail":"Service accounts not supported by the configured database"}},"SessionConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_SessionDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"SessionConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"SessionDomainConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier for the session"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state data of the session"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when session was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when session was last updated"},"session_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type","description":"Type of session: agent, team, or workflow"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["session_id","session_name"],"title":"SessionSchema"},"SessionType":{"type":"string","enum":["agent","team","workflow"],"title":"SessionType"},"SlackChallengeResponse":{"properties":{"challenge":{"type":"string","title":"Challenge","description":"Challenge string to echo back to Slack"}},"type":"object","required":["challenge"],"title":"SlackChallengeResponse"},"SlackEventResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"}},"type":"object","title":"SlackEventResponse"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"SourceFileSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Full path/key of the file"},"name":{"type":"string","title":"Name","description":"Display name (filename)"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"File size in bytes"},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified","description":"ISO 8601 timestamp of last modification"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"MIME type of the file"}},"type":"object","required":["key","name"],"title":"SourceFileSchema","description":"Schema for a file in a content source."},"SourceFilesResponseSchema":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"ID of the content source"},"source_name":{"type":"string","title":"Source Name","description":"Name of the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Prefix filter that was applied"},"folders":{"items":{"$ref":"#/components/schemas/SourceFolderSchema"},"type":"array","title":"Folders","description":"Subfolders at this level"},"files":{"items":{"$ref":"#/components/schemas/SourceFileSchema"},"type":"array","title":"Files","description":"List of files at this level"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["source_id","source_name","meta"],"title":"SourceFilesResponseSchema","description":"Response schema for listing files in a content source."},"SourceFolderSchema":{"properties":{"prefix":{"type":"string","title":"Prefix","description":"Full prefix to use for navigating into this folder"},"name":{"type":"string","title":"Name","description":"Display name of the folder"},"is_empty":{"type":"boolean","title":"Is Empty","description":"Whether the folder contains any files","default":false}},"type":"object","required":["prefix","name"],"title":"SourceFolderSchema","description":"Schema for a folder in a content source."},"SystemMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"system","title":"Role","default":"system"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"SystemMessage","description":"A system message."},"Task":{"properties":{"artifacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Artifact"},"type":"array"},{"type":"null"}],"title":"Artifacts"},"contextId":{"type":"string","title":"Contextid"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"History"},"id":{"type":"string","title":"Id"},"kind":{"type":"string","const":"task","title":"Kind","default":"task"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"status":{"$ref":"#/components/schemas/TaskStatus"}},"type":"object","required":["contextId","id","status"],"title":"Task","description":"Represents a single, stateful operation or conversation between a client and an agent."},"TaskState":{"type":"string","enum":["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"],"title":"TaskState","description":"Defines the lifecycle states of a Task."},"TaskStatus":{"properties":{"message":{"anyOf":[{"$ref":"#/components/schemas/Message"},{"type":"null"}]},"state":{"$ref":"#/components/schemas/TaskState"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp","examples":["2023-10-27T10:00:00Z"]}},"type":"object","required":["state"],"title":"TaskStatus","description":"Represents the status of a task at a specific point in time."},"TeamResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"members":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"$ref":"#/components/schemas/TeamResponse"}]},"type":"array"},{"type":"null"}],"title":"Members"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"TeamResponse"},"TeamRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the team run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that executed this run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the team run"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this team run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this team run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this team run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this team run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"TeamRunSchema"},"TeamSessionDetailSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID used in this session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of team interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"team_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Team Data","description":"Team-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"}},"type":"object","required":["session_id","session_name"],"title":"TeamSessionDetailSchema"},"TeamSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the team"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the team"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the team"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Team execution mode (coordinate, route, broadcast, tasks)"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the team leader"}},"type":"object","title":"TeamSummaryResponse"},"TelegramStatusResponse":{"properties":{"status":{"type":"string","title":"Status","default":"available"}},"type":"object","title":"TelegramStatusResponse"},"TelegramWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status"}},"type":"object","required":["status"],"title":"TelegramWebhookResponse"},"TextInputContent":{"properties":{"type":{"type":"string","const":"text","title":"Type","default":"text"},"text":{"type":"string","title":"Text"}},"additionalProperties":true,"type":"object","required":["text"],"title":"TextInputContent","description":"A text fragment in a multimodal user message."},"TextPart":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"TextPart","description":"Represents a text segment within a message or artifact."},"Tool":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{},{"type":"null"}],"title":"Parameters"}},"additionalProperties":true,"type":"object","required":["name","description"],"title":"Tool","description":"A tool definition."},"ToolCall":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/FunctionCall"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","function"],"title":"ToolCall","description":"A tool call, modelled after OpenAI tool calls."},"ToolMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"tool","title":"Role","default":"tool"},"content":{"type":"string","title":"Content"},"toolCallId":{"type":"string","title":"Toolcallid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content","toolCallId"],"title":"ToolMessage","description":"A tool result message."},"TraceDetail":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent/workflow"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the agent/workflow"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"},"tree":{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array","title":"Tree","description":"Hierarchical tree of spans (root nodes)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at","tree"],"title":"TraceDetail","description":"Detailed trace information with hierarchical span tree"},"TraceNode":{"properties":{"id":{"type":"string","title":"Id","description":"Span ID"},"name":{"type":"string","title":"Name","description":"Span name (e.g., 'agent.run', 'llm.invoke')"},"type":{"type":"string","title":"Type","description":"Span kind (AGENT, TEAM, WORKFLOW, LLM, TOOL)"},"duration":{"type":"string","title":"Duration","description":"Human-readable duration (e.g., '123ms', '1.5s')"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"End time (Pydantic auto-serializes to ISO 8601)"},"status":{"type":"string","title":"Status","description":"Status code (OK, ERROR)"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the span"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the span"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"spans":{"anyOf":[{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array"},{"type":"null"}],"title":"Spans","description":"Child spans in the trace hierarchy"},"step_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Type","description":"Workflow step type (Step, Condition, function, Agent, Team)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional span attributes and data"},"extra_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Data","description":"Flexible field for custom attributes and additional data"}},"type":"object","required":["id","name","type","duration","start_time","end_time","status"],"title":"TraceNode","description":"Recursive node structure for rendering trace hierarchy in the frontend"},"TraceSearchGroupBy":{"type":"string","enum":["run","session"],"title":"TraceSearchGroupBy","description":"Grouping options for trace search results."},"TraceSearchRequest":{"properties":{"filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter","description":"FilterExpr DSL as JSON dict. Supports operators: EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH, AND, OR, NOT."},"group_by":{"$ref":"#/components/schemas/TraceSearchGroupBy","description":"Grouping mode: 'run' returns individual TraceDetail, 'session' returns aggregated TraceSessionStats.","default":"run"},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number (1-indexed)","default":1},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"Number of traces per page (max 100)","default":20}},"type":"object","title":"TraceSearchRequest","description":"Request body for POST /traces/search with advanced filtering.\n\nThe filter field accepts a FilterExpr DSL dict supporting composable queries\nwith AND/OR/NOT logic and operators like EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH.\n\nExample for run grouping (default):\n {\n \"filter\": {\n \"op\": \"AND\",\n \"conditions\": [\n {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n {\"op\": \"CONTAINS\", \"key\": \"user_id\", \"value\": \"admin\"}\n ]\n },\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n }\n\nExample for session grouping:\n {\n \"filter\": {\"op\": \"EQ\", \"key\": \"agent_id\", \"value\": \"my-agent\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n }"},"TraceSessionStats":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID(s) used in the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID associated with the session"},"total_traces":{"type":"integer","title":"Total Traces","description":"Total number of traces in this session"},"first_trace_at":{"type":"string","format":"date-time","title":"First Trace At","description":"Time of first trace (Pydantic auto-serializes to ISO 8601)"},"last_trace_at":{"type":"string","format":"date-time","title":"Last Trace At","description":"Time of last trace (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["session_id","total_traces","first_trace_at","last_trace_at"],"title":"TraceSessionStats","description":"Aggregated trace statistics grouped by session"},"TraceSummary":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR, UNSET)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at"],"title":"TraceSummary","description":"Summary information for trace list view"},"TracesConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_TracesDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"TracesConfig","description":"Configuration for the Traces domain of the AgentOS"},"TracesDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"TracesDomainConfig","description":"Configuration for the Traces domain of the AgentOS"},"UnauthenticatedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"UnauthenticatedResponse","example":{"detail":"Unauthenticated access","error_code":"UNAUTHENTICATED"}},"UpdateEvalRunRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"New name for the evaluation run"}},"type":"object","required":["name"],"title":"UpdateEvalRunRequest"},"UpdateSessionRequest":{"properties":{"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Updated session name"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Updated session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Updated metadata"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary","description":"Session summary"}},"type":"object","title":"UpdateSessionRequest"},"UserMemoryCreateSchema":{"properties":{"memory":{"type":"string","maxLength":5000,"minLength":1,"title":"Memory","description":"Memory content text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags to categorize the memory"}},"type":"object","required":["memory"],"title":"UserMemoryCreateSchema","description":"Define the payload expected for creating a new user memory"},"UserMemorySchema":{"properties":{"memory_id":{"type":"string","title":"Memory Id","description":"Unique identifier for the memory"},"memory":{"type":"string","title":"Memory","description":"Memory content text"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags associated with the memory"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID associated with this memory"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with this memory"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when memory was last updated"}},"type":"object","required":["memory_id","memory"],"title":"UserMemorySchema"},"UserMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"user","title":"Role","default":"user"},"content":{"anyOf":[{"type":"string"},{"items":{"oneOf":[{"$ref":"#/components/schemas/TextInputContent"},{"$ref":"#/components/schemas/ImageInputContent"},{"$ref":"#/components/schemas/AudioInputContent"},{"$ref":"#/components/schemas/VideoInputContent"},{"$ref":"#/components/schemas/DocumentInputContent"},{"$ref":"#/components/schemas/BinaryInputContent"}],"discriminator":{"propertyName":"type","mapping":{"audio":"#/components/schemas/AudioInputContent","binary":"#/components/schemas/BinaryInputContent","document":"#/components/schemas/DocumentInputContent","image":"#/components/schemas/ImageInputContent","text":"#/components/schemas/TextInputContent","video":"#/components/schemas/VideoInputContent"}}},"type":"array"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"UserMessage","description":"A user message supporting text or multimodal content."},"UserStatsSchema":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"total_memories":{"type":"integer","minimum":0.0,"title":"Total Memories","description":"Total number of memories for this user"},"last_memory_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Memory Updated At","description":"Timestamp of the most recent memory update"}},"type":"object","required":["user_id","total_memories"],"title":"UserStatsSchema","description":"Schema for user memory statistics"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"ValidationErrorResponse","example":{"detail":"Validation error","error_code":"VALIDATION_ERROR"}},"VectorDbSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the vector database"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the vector database"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the vector database"},"search_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Search Types","description":"List of supported search types (vector, keyword, hybrid)"}},"type":"object","required":["id"],"title":"VectorDbSchema"},"VectorSearchRequestSchema":{"properties":{"query":{"type":"string","title":"Query","description":"The search query text"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database ID to search in"},"knowledge_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledge Id","description":"Knowledge base ID to search in"},"vector_db_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vector Db Ids","description":"List of vector database IDs to search in"},"search_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Type","description":"The type of search to perform (vector, keyword, hybrid)"},"max_results":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Max Results","description":"The maximum number of results to return"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Filters to apply to the search results"},"meta":{"anyOf":[{"$ref":"#/components/schemas/Meta"},{"type":"null"}],"description":"Pagination metadata. Limit and page number to return a subset of results."}},"type":"object","required":["query"],"title":"VectorSearchRequestSchema","description":"Schema for vector search request."},"VectorSearchResult":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the search result document"},"content":{"type":"string","title":"Content","description":"Content text of the document"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the document"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Metadata associated with the document"},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"Usage statistics (e.g., token counts)"},"reranking_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reranking Score","description":"Reranking score for relevance"},"content_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Id","description":"ID of the source content"},"content_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Origin","description":"Origin URL or source of the content"},"size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"}},"type":"object","required":["id","content"],"title":"VectorSearchResult","description":"Schema for search result documents."},"VideoInputContent":{"properties":{"type":{"type":"string","const":"video","title":"Type","default":"video"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"VideoInputContent","description":"A video input content fragment."},"WhatsAppWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status","default":"ok"}},"type":"object","title":"WhatsAppWebhookResponse"},"WorkflowResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema","description":"Input schema for the workflow"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps","description":"List of workflow steps"},"agent":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"type":"null"}],"description":"Agent configuration if used"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamResponse"},{"type":"null"}],"description":"Team configuration if used"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"workflow_agent":{"type":"boolean","title":"Workflow Agent","description":"Whether this workflow uses a WorkflowAgent","default":false},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowResponse"},"WorkflowRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the workflow run"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the workflow"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was executed"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the workflow"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"Type of content returned"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status of the workflow run"},"step_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Results","description":"Results from each workflow step"},"step_executor_runs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Executor Runs","description":"Executor runs for each step"},"step_requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Requirements","description":"HITL step requirements (resolved state for historical display)"},"pause_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Kind","description":"Kind of HITL pause: 'step' or 'executor'"},"paused_step_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Step Name","description":"Name of the step that caused the pause"},"paused_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Paused Step Index","description":"Index of the step that caused the pause"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the workflow"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the workflow"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the workflow"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the workflow"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the workflow"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"}},"type":"object","required":["run_id"],"title":"WorkflowRunSchema"},"WorkflowSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID used in this session"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name","description":"Name of the workflow"},"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Data","description":"Complete session data"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current workflow state"},"workflow_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Data","description":"Workflow-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["session_id","session_name"],"title":"WorkflowSessionDetailSchema"},"WorkflowSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowSummaryResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} diff --git a/reference-api/openapi.yaml b/reference-api/openapi.yaml index a322a15c5..1692dc2d0 100644 --- a/reference-api/openapi.yaml +++ b/reference-api/openapi.yaml @@ -242,7 +242,8 @@ paths: description: Agent run executed successfully content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/RunSchema' text/event-stream: examples: event_stream: @@ -251,6 +252,12 @@ paths: event: RunStarted data: {"content": "Hello!", "run_id": "123..."} + '202': + description: Background run accepted when `background=true` and `stream=false`. + content: + application/json: + schema: + $ref: '#/components/schemas/BackgroundRunResponse' '400': description: Invalid request or unsupported file type content: @@ -774,7 +781,8 @@ paths: description: Run output retrieved successfully content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/RunSchema' '400': description: Bad Request content: @@ -1056,12 +1064,19 @@ paths: description: Team run executed successfully content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/TeamRunSchema' text/event-stream: example: |+ event: RunStarted data: {"content": "Hello!", "run_id": "123..."} + '202': + description: Background run accepted when `background=true` and `stream=false`. + content: + application/json: + schema: + $ref: '#/components/schemas/BackgroundRunResponse' '400': description: Invalid request or unsupported file type content: @@ -1277,11 +1292,9 @@ paths: '200': description: SSE stream of catch-up and/or live events content: - application/json: - schema: {} text/event-stream: {} '400': - description: Not supported for remote teams + description: Stream resumption is unavailable for remote and factory teams. Non-admin callers must provide `session_id`. content: application/json: schema: @@ -1293,7 +1306,7 @@ paths: schema: $ref: '#/components/schemas/UnauthenticatedResponse' '404': - description: Team not found + description: Team or run not found content: application/json: schema: @@ -1731,7 +1744,8 @@ paths: description: Run output retrieved successfully content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/TeamRunSchema' '400': description: Bad Request content: @@ -2071,12 +2085,19 @@ paths: description: Workflow executed successfully content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/WorkflowRunSchema' text/event-stream: example: |+ event: RunStarted data: {"content": "Hello!", "run_id": "123..."} + '202': + description: Background run accepted when `background=true` and `stream=false`. + content: + application/json: + schema: + $ref: '#/components/schemas/BackgroundRunResponse' '400': description: Invalid input data or workflow configuration content: @@ -2320,7 +2341,7 @@ paths: schema: $ref: '#/components/schemas/UnauthenticatedResponse' '404': - description: Workflow or run not found + description: Workflow not found, or the requested run was not found in the caller's session content: application/json: schema: @@ -2460,7 +2481,8 @@ paths: description: Run output retrieved successfully content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/WorkflowRunSchema' '400': description: Bad Request content: @@ -4773,12 +4795,6 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' - '404': - description: Memory not found - content: - application/json: - schema: - $ref: '#/components/schemas/NotFoundResponse' '422': description: Validation Error content: @@ -6183,24 +6199,12 @@ paths: responses: '204': description: Successful Response - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/BadRequestResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/NotFoundResponse' '422': description: Validation Error content: @@ -6208,7 +6212,7 @@ paths: schema: $ref: '#/components/schemas/ValidationErrorResponse' '500': - description: Failed to delete evaluation runs + description: Deletion failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses. content: application/json: schema: @@ -6665,24 +6669,12 @@ paths: date: '2025-08-12T00:00:00Z' created_at: '2025-08-12T08:01:47Z' updated_at: '2025-08-12T08:01:47Z' - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/BadRequestResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/NotFoundResponse' '422': description: Validation Error content: @@ -6690,7 +6682,7 @@ paths: schema: $ref: '#/components/schemas/ValidationErrorResponse' '500': - description: Failed to refresh metrics + description: Refresh failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses. content: application/json: schema: @@ -7055,7 +7047,7 @@ paths: tags: - Knowledge summary: Update Content - description: Update content properties such as name, description, metadata, or processing configuration. Allows modification of existing content without re-uploading. + description: Update content name, description, or metadata without re-uploading it. In Agno 2.7.4, this endpoint accepts `reader_id`. Local knowledge validates the value, but the content patch does not apply or persist the reader change. operationId: update_content security: - HTTPBearer: [] @@ -10248,10 +10240,9 @@ paths: - Service Accounts summary: Revoke Service Account description: |- - Revoke a service account. Idempotent. + Revoke an existing service account. - Takes effect immediately on this worker (the local verification cache entry is - evicted) and within the cache TTL on other workers. + Takes effect immediately on this worker (the local verification cache entry is evicted) and within the cache TTL on other workers. operationId: revoke_service_account_service_accounts__service_account_id__delete security: - HTTPBearer: [] @@ -10265,12 +10256,36 @@ paths: responses: '204': description: Successful Response + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '404': + description: Service account not found + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + '500': + description: Service account could not be revoked + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerErrorResponse' + '503': + description: Service accounts are not supported by the configured database + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' /registry: get: tags: @@ -10953,6 +10968,26 @@ components: - source title: AudioInputContent description: An audio input content fragment. + BackgroundRunResponse: + properties: + run_id: + type: string + title: Run Id + description: Unique identifier for the background run. + session_id: + type: string + title: Session Id + description: Session that contains the background run. + status: + type: string + title: Status + description: Initial run status. + type: object + required: + - run_id + - session_id + - status + title: BackgroundRunResponse BadRequestResponse: properties: detail: @@ -11396,7 +11431,7 @@ components: - type: string - type: 'null' title: Reader Id - description: ID of the reader to use for processing + description: Reader ID. In Agno 2.7.4, local knowledge validates the value, but the content patch does not apply or persist the reader change. type: object title: Body_update_content Body_upload_content: @@ -15082,6 +15117,18 @@ components: - created_at title: ServiceAccountResponse description: Service account metadata. Never includes the token hash or plaintext. + ServiceUnavailableResponse: + properties: + detail: + type: string + title: Detail + description: Error detail message + type: object + required: + - detail + title: ServiceUnavailableResponse + example: + detail: Service accounts not supported by the configured database SessionConfig: properties: display_name: diff --git a/scripts/make_openapi.py b/scripts/make_openapi.py index 4c9821b05..1f2d04b6e 100644 --- a/scripts/make_openapi.py +++ b/scripts/make_openapi.py @@ -197,6 +197,8 @@ def build_app(): def apply_runtime_description_enrichments(spec: dict) -> dict: """Document runtime branches that the pinned route metadata omits.""" + schemas = spec["components"]["schemas"] + config_example = spec["paths"]["/config"]["get"]["responses"]["200"]["content"]["application/json"][ "example" ] @@ -209,6 +211,188 @@ def apply_runtime_description_enrichments(spec: dict) -> dict: "Soft-delete a component by ID. Component configs and links remain stored." ) + assert "BackgroundRunResponse" not in schemas + schemas["BackgroundRunResponse"] = { + "properties": { + "run_id": { + "type": "string", + "title": "Run Id", + "description": "Unique identifier for the background run.", + }, + "session_id": { + "type": "string", + "title": "Session Id", + "description": "Session that contains the background run.", + }, + "status": { + "type": "string", + "title": "Status", + "description": "Initial run status.", + }, + }, + "type": "object", + "required": ["run_id", "session_id", "status"], + "title": "BackgroundRunResponse", + } + + run_endpoints = ( + ("agents", "agent_id", "RunSchema"), + ("teams", "team_id", "TeamRunSchema"), + ("workflows", "workflow_id", "WorkflowRunSchema"), + ) + for component, id_parameter, run_schema in run_endpoints: + assert run_schema in schemas + + create_run = spec["paths"][f"/{component}/{{{id_parameter}}}/runs"]["post"] + create_responses = create_run["responses"] + create_json_schema = create_responses["200"]["content"]["application/json"]["schema"] + assert create_json_schema == {} + create_json_schema["$ref"] = f"#/components/schemas/{run_schema}" + assert "202" not in create_responses + create_responses["202"] = { + "description": "Background run accepted when `background=true` and `stream=false`.", + "content": { + "application/json": { + "schema": {"$ref": "#/components/schemas/BackgroundRunResponse"}, + } + }, + } + create_run["responses"] = dict(sorted(create_responses.items(), key=lambda item: int(item[0]))) + + get_run = spec["paths"][f"/{component}/{{{id_parameter}}}/runs/{{run_id}}"]["get"] + get_json_schema = get_run["responses"]["200"]["content"]["application/json"]["schema"] + assert get_json_schema == {} + get_json_schema["$ref"] = f"#/components/schemas/{run_schema}" + + update_content = spec["paths"]["/knowledge/content/{content_id}"]["patch"] + assert update_content["description"] == ( + "Update content properties such as name, description, metadata, or processing configuration. " + "Allows modification of existing content without re-uploading." + ) + update_content["description"] = ( + "Update content name, description, or metadata without re-uploading it. " + "In Agno 2.7.4, this endpoint accepts `reader_id`. Local knowledge validates the value, " + "but the content patch does not apply or persist the reader change." + ) + reader_id = schemas["Body_update_content"]["properties"]["reader_id"] + assert reader_id["description"] == "ID of the reader to use for processing" + reader_id["description"] = ( + "Reader ID. In Agno 2.7.4, local knowledge validates the value, but the content patch " + "does not apply or persist the reader change." + ) + + delete_eval_runs = spec["paths"]["/eval-runs"]["delete"] + eval_responses = delete_eval_runs["responses"] + assert eval_responses["400"]["description"] == "Bad Request" + assert eval_responses["404"]["description"] == "Not Found" + del eval_responses["400"] + del eval_responses["404"] + assert eval_responses["500"]["description"] == "Failed to delete evaluation runs" + eval_responses["500"]["description"] = ( + "Deletion failed. In Agno 2.7.4, failures including invalid database or table selections " + "surface as 500 responses." + ) + + refresh_metrics = spec["paths"]["/metrics/refresh"]["post"] + metrics_responses = refresh_metrics["responses"] + assert metrics_responses["400"]["description"] == "Bad Request" + assert metrics_responses["404"]["description"] == "Not Found" + del metrics_responses["400"] + del metrics_responses["404"] + assert metrics_responses["500"]["description"] == "Failed to refresh metrics" + metrics_responses["500"]["description"] = ( + "Refresh failed. In Agno 2.7.4, failures including invalid database or table selections " + "surface as 500 responses." + ) + + revoke_service_account = spec["paths"]["/service-accounts/{service_account_id}"]["delete"] + assert revoke_service_account["description"] == ( + "Revoke a service account. Idempotent.\n\n" + "Takes effect immediately on this worker (the local verification cache entry is\n" + "evicted) and within the cache TTL on other workers." + ) + revoke_service_account["description"] = ( + "Revoke an existing service account.\n\n" + "Takes effect immediately on this worker (the local verification cache entry is " + "evicted) and within the cache TTL on other workers." + ) + assert "ServiceUnavailableResponse" not in schemas + schemas["ServiceUnavailableResponse"] = { + "properties": { + "detail": { + "type": "string", + "title": "Detail", + "description": "Error detail message", + }, + }, + "type": "object", + "required": ["detail"], + "title": "ServiceUnavailableResponse", + "example": {"detail": "Service accounts not supported by the configured database"}, + } + revoke_responses = revoke_service_account["responses"] + assert set(revoke_responses) == {"204", "422"} + revoke_responses.update( + { + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": {"$ref": "#/components/schemas/UnauthenticatedResponse"}, + } + }, + }, + "404": { + "description": "Service account not found", + "content": { + "application/json": { + "schema": {"$ref": "#/components/schemas/NotFoundResponse"}, + } + }, + }, + "500": { + "description": "Service account could not be revoked", + "content": { + "application/json": { + "schema": {"$ref": "#/components/schemas/InternalServerErrorResponse"}, + } + }, + }, + "503": { + "description": "Service accounts are not supported by the configured database", + "content": { + "application/json": { + "schema": {"$ref": "#/components/schemas/ServiceUnavailableResponse"}, + } + }, + }, + } + ) + revoke_service_account["responses"] = dict(sorted(revoke_responses.items(), key=lambda item: int(item[0]))) + + resume_team = spec["paths"]["/teams/{team_id}/runs/{run_id}/resume"]["post"] + team_success_content = resume_team["responses"]["200"]["content"] + assert team_success_content["application/json"]["schema"] == {} + assert "text/event-stream" in team_success_content + del team_success_content["application/json"] + assert resume_team["responses"]["400"]["description"] == "Not supported for remote teams" + resume_team["responses"]["400"]["description"] = ( + "Stream resumption is unavailable for remote and factory teams. " + "Non-admin callers must provide `session_id`." + ) + assert resume_team["responses"]["404"]["description"] == "Team not found" + resume_team["responses"]["404"]["description"] = "Team or run not found" + + cancel_workflow = spec["paths"]["/workflows/{workflow_id}/runs/{run_id}/cancel"]["post"] + assert cancel_workflow["responses"]["404"]["description"] == "Workflow or run not found" + cancel_workflow["responses"]["404"]["description"] = ( + "Workflow not found, or the requested run was not found in the caller's session" + ) + + delete_memory = spec["paths"]["/memories/{memory_id}"]["delete"] + assert delete_memory["responses"]["404"]["description"] == "Memory not found" + del delete_memory["responses"]["404"] + resume_workflow = spec["paths"]["/workflows/{workflow_id}/runs/{run_id}/resume"]["post"] bad_request = resume_workflow["responses"]["400"] assert bad_request["description"] == "Not supported for remote workflows" @@ -240,6 +424,8 @@ def apply_runtime_description_enrichments(spec: dict) -> dict: ]["200"]["content"]["application/json"]["schema"] assert response_schema == {} response_schema.update(deepcopy(fork_response_schema)) + + spec["components"]["schemas"] = dict(sorted(schemas.items())) return spec @@ -435,7 +621,7 @@ def main() -> int: spec = apply_runtime_description_enrichments(app.openapi()) spec = preserve_curated_slack_metadata(spec) - NEW_JSON.write_text(json.dumps(spec, indent=2) + "\n") + NEW_JSON.write_text(json.dumps(spec, separators=(",", ":")) + "\n") dump_yaml(spec, NEW_YAML) old = yaml.safe_load(OLD_YAML.read_text()) From cada37b6fbfb932434f940a17af88b364cfaa209 Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 04:35:48 +0100 Subject: [PATCH 14/47] docs: fix deployment reference snippets --- deploy/templates/aws/reference.mdx | 4 ++-- deploy/templates/azure/reference.mdx | 4 ++-- deploy/templates/docker/reference.mdx | 4 ++-- deploy/templates/fly/reference.mdx | 4 ++-- deploy/templates/gcp/reference.mdx | 4 ++-- deploy/templates/helm/reference.mdx | 4 ++-- deploy/templates/modal/reference.mdx | 4 ++-- deploy/templates/railway/reference.mdx | 4 ++-- deploy/templates/render/reference.mdx | 4 ++-- 9 files changed, 18 insertions(+), 18 deletions(-) diff --git a/deploy/templates/aws/reference.mdx b/deploy/templates/aws/reference.mdx index f538b726e..05cb6e01e 100644 --- a/deploy/templates/aws/reference.mdx +++ b/deploy/templates/aws/reference.mdx @@ -71,7 +71,7 @@ Register it in `app/main.py`: from agents.my_agent import my_agent agent_os = AgentOS( - ... + ..., agents=[agent_builder, platform_manager, web_search, my_agent], ) ``` @@ -111,7 +111,7 @@ Agno ships 100+ toolkits. See [Toolkits](/tools/toolkits/overview). from agno.tools.slack import SlackTools my_agent = Agent( - ... + ..., tools=[SlackTools()], ) ``` diff --git a/deploy/templates/azure/reference.mdx b/deploy/templates/azure/reference.mdx index ef1c83be1..ac1f35e70 100644 --- a/deploy/templates/azure/reference.mdx +++ b/deploy/templates/azure/reference.mdx @@ -72,7 +72,7 @@ Register it in `app/main.py`: from agents.my_agent import my_agent agent_os = AgentOS( - ... + ..., agents=[agent_builder, platform_manager, web_search, my_agent], ) ``` @@ -111,7 +111,7 @@ Agno ships 100+ toolkits. See [Toolkits](/tools/toolkits/overview). from agno.tools.slack import SlackTools my_agent = Agent( - ... + ..., tools=[SlackTools()], ) ``` diff --git a/deploy/templates/docker/reference.mdx b/deploy/templates/docker/reference.mdx index 7c86ff375..f09812f76 100644 --- a/deploy/templates/docker/reference.mdx +++ b/deploy/templates/docker/reference.mdx @@ -65,7 +65,7 @@ Register it in `app/main.py`: from agents.my_agent import my_agent agent_os = AgentOS( - ... + ..., agents=[agent_builder, platform_manager, web_search, my_agent], ) ``` @@ -103,7 +103,7 @@ Agno ships 100+ toolkits. See [Toolkits](/tools/toolkits/overview). from agno.tools.slack import SlackTools my_agent = Agent( - ... + ..., tools=[SlackTools()], ) ``` diff --git a/deploy/templates/fly/reference.mdx b/deploy/templates/fly/reference.mdx index a83631571..d6996cf65 100644 --- a/deploy/templates/fly/reference.mdx +++ b/deploy/templates/fly/reference.mdx @@ -67,7 +67,7 @@ Register it in `app/main.py`: from agents.my_agent import my_agent agent_os = AgentOS( - ... + ..., agents=[agent_builder, platform_manager, web_search, my_agent], ) ``` @@ -106,7 +106,7 @@ Agno ships 100+ toolkits. See [Toolkits](/tools/toolkits/overview). from agno.tools.slack import SlackTools my_agent = Agent( - ... + ..., tools=[SlackTools()], ) ``` diff --git a/deploy/templates/gcp/reference.mdx b/deploy/templates/gcp/reference.mdx index 13c546336..b5f76fb51 100644 --- a/deploy/templates/gcp/reference.mdx +++ b/deploy/templates/gcp/reference.mdx @@ -69,7 +69,7 @@ Register it in `app/main.py`: from agents.my_agent import my_agent agent_os = AgentOS( - ... + ..., agents=[agent_builder, platform_manager, web_search, my_agent], ) ``` @@ -108,7 +108,7 @@ Agno ships 100+ toolkits. See [Toolkits](/tools/toolkits/overview). from agno.tools.slack import SlackTools my_agent = Agent( - ... + ..., tools=[SlackTools()], ) ``` diff --git a/deploy/templates/helm/reference.mdx b/deploy/templates/helm/reference.mdx index 96fb184c1..8b306d691 100644 --- a/deploy/templates/helm/reference.mdx +++ b/deploy/templates/helm/reference.mdx @@ -71,7 +71,7 @@ Register it in `app/main.py`: from agents.my_agent import my_agent agent_os = AgentOS( - ... + ..., agents=[agent_builder, platform_manager, web_search, my_agent], ) ``` @@ -112,7 +112,7 @@ Agno ships 100+ toolkits. See [Toolkits](/tools/toolkits/overview). from agno.tools.slack import SlackTools my_agent = Agent( - ... + ..., tools=[SlackTools()], ) ``` diff --git a/deploy/templates/modal/reference.mdx b/deploy/templates/modal/reference.mdx index 6a8a005d2..0be775082 100644 --- a/deploy/templates/modal/reference.mdx +++ b/deploy/templates/modal/reference.mdx @@ -77,7 +77,7 @@ Register it in `app/main.py`: from agents.my_agent import my_agent agent_os = AgentOS( - ... + ..., agents=[agent_builder, platform_manager, web_search, my_agent], ) ``` @@ -117,7 +117,7 @@ Agno ships 100+ toolkits. See [Toolkits](/tools/toolkits/overview). from agno.tools.slack import SlackTools my_agent = Agent( - ... + ..., tools=[SlackTools()], ) ``` diff --git a/deploy/templates/railway/reference.mdx b/deploy/templates/railway/reference.mdx index c8d1335c2..4ddb713fb 100644 --- a/deploy/templates/railway/reference.mdx +++ b/deploy/templates/railway/reference.mdx @@ -73,7 +73,7 @@ Register it in `app/main.py`: from agents.my_agent import my_agent agent_os = AgentOS( - ... + ..., agents=[agent_builder, platform_manager, web_search, my_agent], ) ``` @@ -112,7 +112,7 @@ Agno ships 100+ toolkits. See [Toolkits](/tools/toolkits/overview). from agno.tools.slack import SlackTools my_agent = Agent( - ... + ..., tools=[SlackTools()], ) ``` diff --git a/deploy/templates/render/reference.mdx b/deploy/templates/render/reference.mdx index 71bd892da..f4a5836fb 100644 --- a/deploy/templates/render/reference.mdx +++ b/deploy/templates/render/reference.mdx @@ -77,7 +77,7 @@ Register it in `app/main.py`: from agents.my_agent import my_agent agent_os = AgentOS( - ... + ..., agents=[agent_builder, platform_manager, web_search, my_agent], ) ``` @@ -116,7 +116,7 @@ Agno ships 100+ toolkits. See [Toolkits](/tools/toolkits/overview). from agno.tools.slack import SlackTools my_agent = Agent( - ... + ..., tools=[SlackTools()], ) ``` From 13264a1b01aeb88d5904b676161d329b9da53148 Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 04:35:56 +0100 Subject: [PATCH 15/47] docs: close final source accuracy gaps --- _snippets/chunking-document.mdx | 2 +- agent-os/security/authorization/scopes.mdx | 79 +++++++++---------- deploy/introduction.mdx | 2 +- deploy/templates/dash/overview.mdx | 2 +- learning/learning-modes.mdx | 2 +- models/providers/gateways/groq/overview.mdx | 20 ++--- .../gateways/groq/usage/image-agent.mdx | 6 +- .../usage/models/groq/groq-plus-claude.mdx | 8 +- reasoning/usage/models/groq/groq.mdx | 8 +- .../usage/tools/groq-reasoning-tools.mdx | 10 +-- reference/knowledge/chunking/document.mdx | 5 +- telemetry.mdx | 25 +++--- .../usage/condition-steps-workflow-stream.mdx | 14 ++++ 13 files changed, 96 insertions(+), 87 deletions(-) diff --git a/_snippets/chunking-document.mdx b/_snippets/chunking-document.mdx index b90d794e7..68e34f184 100644 --- a/_snippets/chunking-document.mdx +++ b/_snippets/chunking-document.mdx @@ -1,4 +1,4 @@ | Parameter | Type | Default | Description | | --------- | ---- | ------- | ----------- | -| `chunk_size` | `int` | `5000` | The maximum size of each chunk. | +| `chunk_size` | `int` | `5000` | Target size before overlap. A single long sentence or added overlap can produce a larger chunk. | | `overlap` | `int` | `0` | The number of characters to overlap between chunks. | diff --git a/agent-os/security/authorization/scopes.mdx b/agent-os/security/authorization/scopes.mdx index aac6f210f..27befe8c7 100644 --- a/agent-os/security/authorization/scopes.mdx +++ b/agent-os/security/authorization/scopes.mdx @@ -1,10 +1,10 @@ --- title: "Scopes" sidebarTitle: "Scopes" -description: "Scope format and the full permission reference for every AgentOS endpoint." +description: "Scope formats and built-in permission mappings for AgentOS routes." --- -Scopes are permission strings carried by the caller's credential: the JWT `scopes` claim, or the stored scopes of a [service account](/agent-os/security/authorization/service-accounts) token. Each AgentOS endpoint requires one or more scopes; requests with insufficient scopes return `403 Forbidden`. +Scopes are permission strings carried by the caller's credential: the JWT `scopes` claim, or the stored scopes of a [service account](/agent-os/security/authorization/service-accounts) token. When authorization is enabled, protected routes compare these scopes with their permission requirements. Requests with insufficient scopes return `403 Forbidden`. ## Scope Format @@ -15,19 +15,21 @@ Scopes are hierarchical: | `resource:action` | `agents:read` | Access all resources of a type | | `resource::action` | `agents:my-agent:run` | Access a specific resource | | `resource:*:action` | `agents:*:read` | Wildcard (equivalent to global) | -| `agent_os:admin` | - | Full access to all endpoints | +| `agent_os:admin` | - | Satisfies every required AgentOS scope | ## Scope Reference -Scopes are enforced at two layers. Control plane scopes are enforced by the AgentOS control plane at `os.agno.com`. AgentOS scopes are enforced by your deployed AgentOS service on every API request. +Scopes are enforced at two layers. Control plane scopes are enforced by the AgentOS control plane at `os.agno.com`. AgentOS scopes are enforced by your deployed AgentOS service on protected API requests. -Any `agents:action`, `teams:action`, or `workflows:action` scope also accepts a `resource::action` form to limit access to a specific resource. For example, `agents:web-agent:run` grants run access only to the `web-agent`. Use `*` as the id (`agents:*:run`) to match every resource of that type. See [Scope Format](#scope-format). +The tables below summarize the built-in mappings for public AgentOS routes in Agno 2.7.4. Interfaces, custom routes, and custom prefixes can add mappings. Check `/openapi.json` on your deployed AgentOS for its active route list. + +The `agents:read`, `agents:run`, `teams:read`, `teams:run`, `workflows:read`, and `workflows:run` scopes also accept a `resource::action` form. For example, `agents:web-agent:run` grants run access only to the `web-agent`. Use `*` as the ID (`agents:*:run`) to match every resource of that type. See [Scope Format](#scope-format). **Per-resource scoping applies to `agents`, `teams`, and `workflows` only.** All other resource types (sessions, memories, knowledge, traces, etc.) use global scopes only. The `resource::action` form is not honored for them. -The `agent_os:admin` scope grants full access to every AgentOS endpoint below. +The `agent_os:admin` scope satisfies every required AgentOS scope below. ### AgentOS Control Plane Scopes @@ -68,6 +70,8 @@ The `agent_os:admin` scope grants full access to every AgentOS endpoint below. + Studio stores agent, team, and workflow definitions and their config versions through `/components`. Use these scopes for stored component CRUD. The `/agents`, `/teams`, and `/workflows` routes expose registered resources and run operations. + | Scope | Endpoint | Description | |-------|----------|-------------| | `components:read` | `GET /components` | List components | @@ -84,43 +88,32 @@ The `agent_os:admin` scope grants full access to every AgentOS endpoint below. | `components:delete` | `DELETE /components/*/configs/*` | Delete a component config | - - | Scope | Endpoint | Description | - |-------|----------|-------------| - | `agents:read` | `GET /agents` | List agents | - | `agents:read` | `GET /agents/*` | View an agent | - | `agents:write` | `POST /agents` | Create an agent | - | `agents:write` | `PATCH /agents/*` | Update an agent | - | `agents:delete` | `DELETE /agents/*` | Delete an agent | - | `agents:run` | `POST /agents/*/runs` | Run an agent | - | `agents:run` | `POST /agents/*/runs/*/continue` | Continue a paused run | - | `agents:run` | `POST /agents/*/runs/*/cancel` | Cancel a run | - - - - | Scope | Endpoint | Description | - |-------|----------|-------------| - | `teams:read` | `GET /teams` | List teams | - | `teams:read` | `GET /teams/*` | View a team | - | `teams:write` | `POST /teams` | Create a team | - | `teams:write` | `PATCH /teams/*` | Update a team | - | `teams:delete` | `DELETE /teams/*` | Delete a team | - | `teams:run` | `POST /teams/*/runs` | Run a team | - | `teams:run` | `POST /teams/*/runs/*/continue` | Continue a paused run | - | `teams:run` | `POST /teams/*/runs/*/cancel` | Cancel a run | - - - - | Scope | Endpoint | Description | - |-------|----------|-------------| - | `workflows:read` | `GET /workflows` | List workflows | - | `workflows:read` | `GET /workflows/*` | View a workflow | - | `workflows:write` | `POST /workflows` | Create a workflow | - | `workflows:write` | `PATCH /workflows/*` | Update a workflow | - | `workflows:delete` | `DELETE /workflows/*` | Delete a workflow | - | `workflows:run` | `POST /workflows/*/runs` | Run a workflow | - | `workflows:run` | `POST /workflows/*/runs/*/continue` | Continue a paused run | - | `workflows:run` | `POST /workflows/*/runs/*/cancel` | Cancel a run | + + These routes discover registered resources and execute them. Stored component CRUD uses `/components`. + + | Resource | Scope | Operation | Endpoint pattern | + |----------|-------|-----------|------------------| + | Agents | `agents:read` | List agents | `GET /agents` | + | Agents | `agents:read` | Get agent details | `GET /agents/{agent_id}` | + | Agents | `agents:run` | Create a run | `POST /agents/{agent_id}/runs` | + | Agents | `agents:read` and `agents:run` | List or get runs | `GET /agents/{agent_id}/runs`, `GET /agents/{agent_id}/runs/{run_id}` | + | Agents | `agents:read` and `agents:run` | List checkpoints or get a checkpoint snapshot | `GET /agents/{agent_id}/runs/{run_id}/checkpoints`, `GET /agents/{agent_id}/runs/{run_id}/checkpoints/{message_index}` | + | Agents | `agents:run` | Cancel, continue, or resume a run | `POST /agents/{agent_id}/runs/{run_id}/cancel`, `POST /agents/{agent_id}/runs/{run_id}/continue`, `POST /agents/{agent_id}/runs/{run_id}/resume` | + | Agents | `agents:run` | Fork a session | `POST /agents/{agent_id}/sessions/{session_id}/fork` | + | Teams | `teams:read` | List teams | `GET /teams` | + | Teams | `teams:read` | Get team details | `GET /teams/{team_id}` | + | Teams | `teams:run` | Create a run | `POST /teams/{team_id}/runs` | + | Teams | `teams:read` and `teams:run` | List or get runs | `GET /teams/{team_id}/runs`, `GET /teams/{team_id}/runs/{run_id}` | + | Teams | `teams:read` and `teams:run` | List checkpoints or get a checkpoint snapshot | `GET /teams/{team_id}/runs/{run_id}/checkpoints`, `GET /teams/{team_id}/runs/{run_id}/checkpoints/{message_index}` | + | Teams | `teams:run` | Cancel, continue, or resume a run | `POST /teams/{team_id}/runs/{run_id}/cancel`, `POST /teams/{team_id}/runs/{run_id}/continue`, `POST /teams/{team_id}/runs/{run_id}/resume` | + | Teams | `teams:run` | Fork a session | `POST /teams/{team_id}/sessions/{session_id}/fork` | + | Workflows | `workflows:read` | List workflows | `GET /workflows` | + | Workflows | `workflows:read` | Get workflow details | `GET /workflows/{workflow_id}` | + | Workflows | `workflows:run` | Create a run | `POST /workflows/{workflow_id}/runs` | + | Workflows | `workflows:read` and `workflows:run` | List or get runs | `GET /workflows/{workflow_id}/runs`, `GET /workflows/{workflow_id}/runs/{run_id}` | + | Workflows | `workflows:run` | Cancel, continue, or resume a run | `POST /workflows/{workflow_id}/runs/{run_id}/cancel`, `POST /workflows/{workflow_id}/runs/{run_id}/continue`, `POST /workflows/{workflow_id}/runs/{run_id}/resume` | + + The nested `GET` run and checkpoint routes have a `:run` route dependency. The default `GET /agents/*`, `GET /teams/*`, and `GET /workflows/*` middleware mappings also apply the matching `:read` scope, so the table lists both requirements for those routes. diff --git a/deploy/introduction.mdx b/deploy/introduction.mdx index c018eeffa..50b143040 100644 --- a/deploy/introduction.mdx +++ b/deploy/introduction.mdx @@ -62,7 +62,7 @@ Every starter template comes with a common platform core, along with cloud-speci - Self-learning data agent with 6 layers of context. + Self-learning data agent with five layers of context. Code companion that lives in Slack. diff --git a/deploy/templates/dash/overview.mdx b/deploy/templates/dash/overview.mdx index 016a6eb3f..caa178b40 100644 --- a/deploy/templates/dash/overview.mdx +++ b/deploy/templates/dash/overview.mdx @@ -6,7 +6,7 @@ description: "Data agent that grounds SQL analysis in five context layers and ca **Dash is a data agent that grounds SQL analysis in five context layers and can save fixes as learnings.** -Ask a question in English and get a correct, meaningful answer. That's the goal. But raw LLMs writing SQL hit a wall fast: schemas lack meaning, types are misleading, tribal knowledge is missing, there's no way to learn from mistakes, and results lack interpretation. The root cause is missing context and missing memory. Dash solves this with six layers of grounded context, a self-learning loop that captures every fix, and a focus on delivering insights you can act on. +Ask a question in English and get a correct, meaningful answer. That's the goal. But raw LLMs writing SQL hit a wall fast: schemas lack meaning, types are misleading, tribal knowledge is missing, there's no way to learn from mistakes, and results lack interpretation. The root cause is missing context and missing memory. Dash solves this with five layers of grounded context, a self-learning loop that captures every fix, and a focus on delivering insights you can act on. Chat with Dash in Slack, the terminal, or the [AgentOS UI](https://os.agno.com). The code is public at [agno-agi/dash](https://github.com/agno-agi/dash). diff --git a/learning/learning-modes.mdx b/learning/learning-modes.mdx index d9f416135..aa471a9d6 100644 --- a/learning/learning-modes.mdx +++ b/learning/learning-modes.mdx @@ -15,7 +15,7 @@ Learning modes control when and how a Learning Machine captures information. Eac ## Always Mode -Extraction happens automatically in the background. No agent tools involved. +Extraction happens automatically in the background and does not depend on an agent tool call. Stores such as Learned Knowledge and Decision Log can still expose tools when `enable_agent_tools=True`. Extraction starts concurrently with the model call, not after it. It sees the conversation up to the current user message, not the assistant's response or tool calls from that same turn. diff --git a/models/providers/gateways/groq/overview.mdx b/models/providers/gateways/groq/overview.mdx index 96dc7654a..66d77ad78 100644 --- a/models/providers/gateways/groq/overview.mdx +++ b/models/providers/gateways/groq/overview.mdx @@ -1,16 +1,18 @@ --- title: Groq sidebarTitle: Overview -description: Use Groq's fast inference API with Agno agents. +description: Run Groq-hosted text and vision models with Agno agents. --- Groq provides fast inference endpoints for large language models. -See all Groq-supported models [here](https://console.groq.com/docs/models). +See [Groq's supported models](https://console.groq.com/docs/models) for the current catalog. -- We recommend using `llama-3.3-70b-versatile` for general use. -- We recommend using `llama-3.1-8b-instant` for faster results. -- We recommend using `meta-llama/llama-4-scout-17b-16e-instruct` for image understanding. +| Task | Model | +|------|-------| +| General text generation | `openai/gpt-oss-120b` | +| Faster text generation | `openai/gpt-oss-20b` | +| Image understanding | `qwen/qwen3.6-27b` | ## Multimodal Support @@ -18,16 +20,16 @@ With Groq we support `Image` as input. ## Authentication -Set your `GROQ_API_KEY` environment variable. Get your key from [here](https://console.groq.com/keys). +Set your `GROQ_API_KEY` environment variable. Create a key in the [Groq console](https://console.groq.com/keys). -```bash Mac +```bash Mac/Linux export GROQ_API_KEY=*** ``` ```bash Windows -setx GROQ_API_KEY *** +$Env:GROQ_API_KEY="***" ``` @@ -49,7 +51,7 @@ from agno.agent import Agent from agno.models.groq import Groq agent = Agent( - model=Groq(id="llama-3.3-70b-versatile"), + model=Groq(id="openai/gpt-oss-120b"), markdown=True ) diff --git a/models/providers/gateways/groq/usage/image-agent.mdx b/models/providers/gateways/groq/usage/image-agent.mdx index b7824c010..6a567367a 100644 --- a/models/providers/gateways/groq/usage/image-agent.mdx +++ b/models/providers/gateways/groq/usage/image-agent.mdx @@ -3,7 +3,7 @@ title: Image Agent description: Send an image to a Groq vision model and stream the description. --- -Pass an `Image` to `print_response()` and use a vision-capable model such as `meta-llama/llama-4-scout-17b-16e-instruct`. +Pass an `Image` to `print_response()` with the vision-capable `qwen/qwen3.6-27b` model. ## Code @@ -12,7 +12,7 @@ from agno.agent import Agent from agno.media import Image from agno.models.groq import Groq -agent = Agent(model=Groq(id="meta-llama/llama-4-scout-17b-16e-instruct")) +agent = Agent(model=Groq(id="qwen/qwen3.6-27b")) agent.print_response( "Tell me about this image", @@ -50,4 +50,4 @@ agent.print_response( ## Developer Resources -- [Image input](/multimodal/agent/usage/image-input) \ No newline at end of file +- [Image input](/multimodal/agent/usage/image-input) diff --git a/reasoning/usage/models/groq/groq-plus-claude.mdx b/reasoning/usage/models/groq/groq-plus-claude.mdx index a719eb15f..51cb667c5 100644 --- a/reasoning/usage/models/groq/groq-plus-claude.mdx +++ b/reasoning/usage/models/groq/groq-plus-claude.mdx @@ -1,6 +1,6 @@ --- -title: Claude + Groq Qwen3 -description: "Pair Claude Sonnet 4.5 with Groq's Qwen3 32B as a reasoning model to compare 9.11 and 9.9." +title: Claude + Groq Qwen 3.6 +description: "Pair Claude Sonnet 4.5 with Groq's Qwen 3.6 27B as a reasoning model." --- @@ -14,7 +14,7 @@ description: "Pair Claude Sonnet 4.5 with Groq's Qwen3 32B as a reasoning model reasoning_agent = Agent( model=Claude(id="claude-sonnet-4-5"), reasoning_model=Groq( - id="qwen/qwen3-32b", temperature=0.6, max_tokens=1024, top_p=0.95 + id="qwen/qwen3.6-27b", temperature=0.6, max_tokens=1024, top_p=0.95 ), ) reasoning_agent.print_response("9.11 and 9.9 -- which is bigger?", stream=True) @@ -50,4 +50,4 @@ description: "Pair Claude Sonnet 4.5 with Groq's Qwen3 32B as a reasoning model ``` - \ No newline at end of file + diff --git a/reasoning/usage/models/groq/groq.mdx b/reasoning/usage/models/groq/groq.mdx index cf10da3d1..d1594ec6f 100644 --- a/reasoning/usage/models/groq/groq.mdx +++ b/reasoning/usage/models/groq/groq.mdx @@ -1,6 +1,6 @@ --- -title: Groq Qwen3 32B -description: "Enable reasoning on Groq's Qwen3 32B model to compare 9.11 and 9.9 with full reasoning output." +title: Groq Qwen 3.6 27B +description: "Enable reasoning on Groq's Qwen 3.6 27B model and display the reasoning output." --- @@ -12,7 +12,7 @@ description: "Enable reasoning on Groq's Qwen3 32B model to compare 9.11 and 9.9 agent = Agent( model=Groq( - id="qwen/qwen3-32b", temperature=0.6, max_tokens=1024, top_p=0.95 + id="qwen/qwen3.6-27b", temperature=0.6, max_tokens=1024, top_p=0.95 ), reasoning=True, markdown=True, @@ -50,4 +50,4 @@ description: "Enable reasoning on Groq's Qwen3 32B model to compare 9.11 and 9.9 ``` - \ No newline at end of file + diff --git a/reasoning/usage/tools/groq-reasoning-tools.mdx b/reasoning/usage/tools/groq-reasoning-tools.mdx index b63e807d6..0c0d8a3c1 100644 --- a/reasoning/usage/tools/groq-reasoning-tools.mdx +++ b/reasoning/usage/tools/groq-reasoning-tools.mdx @@ -1,6 +1,6 @@ --- title: Groq with Reasoning Tools -description: "Run Llama 4 Scout on Groq with ReasoningTools and WebSearchTools to compare NVDA and TSLA." +description: "Run Qwen 3.6 27B on Groq with ReasoningTools and WebSearchTools." --- @@ -19,8 +19,8 @@ description: "Run Llama 4 Scout on Groq with ReasoningTools and WebSearchTools t from agno.tools.reasoning import ReasoningTools from agno.tools.websearch import WebSearchTools - thinking_llama = Agent( - model=Groq(id="meta-llama/llama-4-scout-17b-16e-instruct"), + thinking_agent = Agent( + model=Groq(id="qwen/qwen3.6-27b"), tools=[ ReasoningTools(), WebSearchTools(), @@ -41,7 +41,7 @@ description: "Run Llama 4 Scout on Groq with ReasoningTools and WebSearchTools t """), markdown=True, ) - thinking_llama.print_response("Write a report comparing NVDA to TSLA", stream=True) + thinking_agent.print_response("Write a report comparing NVDA to TSLA", stream=True) ``` @@ -72,4 +72,4 @@ description: "Run Llama 4 Scout on Groq with ReasoningTools and WebSearchTools t ``` - \ No newline at end of file + diff --git a/reference/knowledge/chunking/document.mdx b/reference/knowledge/chunking/document.mdx index e861fd28d..7a7812688 100644 --- a/reference/knowledge/chunking/document.mdx +++ b/reference/knowledge/chunking/document.mdx @@ -1,9 +1,8 @@ --- title: Document Chunking sidebarTitle: Document -description: "DocumentChunking splits documents on structural boundaries like paragraphs and sections." +description: "DocumentChunking splits documents on paragraph and sentence boundaries." --- -Document chunking is a method of splitting documents into smaller chunks based on document structure like paragraphs and sections. -It analyzes natural document boundaries rather than splitting at fixed character counts. This is useful when you want to process large documents while preserving semantic meaning and context. +`DocumentChunking` first splits text at blank-line paragraph boundaries. It splits paragraphs above the target `chunk_size` at sentence boundaries, then prepends the configured overlap. diff --git a/telemetry.mdx b/telemetry.mdx index 5be1583cc..9ef40a1bd 100644 --- a/telemetry.mdx +++ b/telemetry.mdx @@ -1,28 +1,29 @@ --- title: Agno Telemetry sidebarTitle: Telemetry -description: Control what usage data Agno collects -keywords: telemetry, privacy, data collection, usage tracking, disable telemetry, anonymous data +description: Review Agno telemetry payloads and disable telemetry by component. +keywords: telemetry, privacy, data collection, usage tracking, disable telemetry, usage metadata --- -Agno collects anonymous usage data about agents, teams, workflows, evals, and AgentOS configurations to help improve the platform and provide better support. +When telemetry is enabled, Agno sends per-event usage metadata to `https://os-api.agno.com` by default. Agents, teams, and workflows send an event for each run. Evals send an event for each evaluation, and AgentOS sends an event when it launches. -**Privacy First:** No sensitive data (prompts, responses, user data, or API keys) is ever collected. All telemetry is anonymous and aggregated. +Telemetry payloads do not include prompts, responses, or API keys. They include raw component, session, and run IDs. Your application can supply these IDs, so do not encode sensitive data in them. -## What Data is Collected? +## Data Collected -Agno collects basic usage metrics for: -- **Agent runs** - Model providers, database types, feature usage -- **Team runs** - Multi-agent coordination patterns -- **Workflow runs** - Orchestration and execution patterns -- **Eval runs** - Eval type, model, and run configuration -- **AgentOS launches** - Platform usage and configurations +| Event | Metadata | +|-------|----------| +| Agent run | Session, run, and agent IDs; SDK version; database class; model identifiers; feature flags | +| Team run | Session, run, and team IDs; SDK version; model identifiers; member count; feature flags | +| Workflow run | Session, run, and workflow IDs; SDK version; database class; input-schema flag | +| Eval run | Eval run ID and type; SDK version; model or component identifiers; evaluation configuration counts and flags | +| AgentOS launch | AgentOS ID; SDK version; registered agent, team, and workflow IDs; interface types | ### Example Telemetry Payload -Here's what an agent run telemetry payload looks like: +An agent run telemetry payload has this shape: ```json { "session_id": "123", diff --git a/workflows/usage/condition-steps-workflow-stream.mdx b/workflows/usage/condition-steps-workflow-stream.mdx index 93759d9cf..323e586d4 100644 --- a/workflows/usage/condition-steps-workflow-stream.mdx +++ b/workflows/usage/condition-steps-workflow-stream.mdx @@ -17,6 +17,20 @@ Install dependencies: uv pip install agno openai ``` +Set the API key used by the agents' default OpenAI model: + + + +```bash Mac/Linux +export OPENAI_API_KEY="your_openai_api_key_here" +``` + +```bash Windows +$Env:OPENAI_API_KEY="your_openai_api_key_here" +``` + + + ```python condition_steps_workflow_stream.py from agno.agent import Agent from agno.tools.hackernews import HackerNewsTools From 6812354501e71d2b9201f71a8d9139d13906c86d Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 05:16:38 +0100 Subject: [PATCH 16/47] docs: correct runnable example guidance --- deploy/templates/docker/deploy.mdx | 4 +++- deploy/templates/modal/reference.mdx | 2 +- .../interfaces/agui/tool-confirmation.mdx | 7 ++----- examples/tools/dalle-tools.mdx | 9 +++++---- examples/tools/evm-tools.mdx | 10 +++++++--- first-agent.mdx | 4 ++-- knowledge/vector-stores/clickhouse/overview.mdx | 16 +++++++++------- scripts/examples_sync/apply_oneoffs.py | 4 ++-- scripts/examples_sync/generate.py | 3 +++ tools/toolkits/models/openai.mdx | 2 +- 10 files changed, 35 insertions(+), 26 deletions(-) diff --git a/deploy/templates/docker/deploy.mdx b/deploy/templates/docker/deploy.mdx index 8b0d65a3a..37bdc5e92 100644 --- a/deploy/templates/docker/deploy.mdx +++ b/deploy/templates/docker/deploy.mdx @@ -154,9 +154,11 @@ For claude.ai and ChatGPT on the web: add `https:///mcp` as a c ```bash curl https:///health # 200: /health and /docs stay public -curl https:///agents # 401: everything else wants a token +curl https:///agents # 401: protected API routes require a token ``` +Webhook interfaces verify their own signatures. + Logs, when something looks off: ```bash diff --git a/deploy/templates/modal/reference.mdx b/deploy/templates/modal/reference.mdx index 0be775082..f39205126 100644 --- a/deploy/templates/modal/reference.mdx +++ b/deploy/templates/modal/reference.mdx @@ -16,7 +16,7 @@ The Modal app is `agentos`, served as one always-warm container. Configuration l |------|---------| | Deploy code changes | `./scripts/modal/redeploy.sh` | | Sync env variables | `./scripts/modal/env-sync.sh` (defaults to `.env.production`; pass `.env` to sync that instead) | -| Tail logs | `modal app logs agentos` | +| Tail logs | `modal app logs agentos --follow` | | List apps and status | `modal app list` | | Tear down | `./scripts/modal/down.sh` | diff --git a/examples/agent-os/interfaces/agui/tool-confirmation.mdx b/examples/agent-os/interfaces/agui/tool-confirmation.mdx index e28323166..31dea821d 100644 --- a/examples/agent-os/interfaces/agui/tool-confirmation.mdx +++ b/examples/agent-os/interfaces/agui/tool-confirmation.mdx @@ -80,11 +80,8 @@ After user confirms or rejects: - - Save the code above as `tool_confirmation.py`, then run: - ```bash - python tool_confirmation.py - ``` + + This helper is imported by [AG-UI Showcase](/examples/agent-os/interfaces/agui/showcase), which mounts it at `/tool_confirmation` and serves on port 9001. Run the showcase entry point instead. diff --git a/examples/tools/dalle-tools.mdx b/examples/tools/dalle-tools.mdx index 60caebcd7..a6fab6c3f 100644 --- a/examples/tools/dalle-tools.mdx +++ b/examples/tools/dalle-tools.mdx @@ -1,19 +1,20 @@ --- title: "Dalle" -description: "Legacy DalleTools reference for configuring deprecated DALL-E models." +description: "Legacy DalleTools reference for DALL-E models removed from the OpenAI API." --- This page preserves the v2.7.4 `DalleTools` example as a legacy reference. -DALL-E models are deprecated. This `DalleTools` example is retained as a legacy reference and no longer runs against the current OpenAI API. Use `OpenAITools` with GPT Image 2 in [Image Generation Agent](/models/providers/native/openai/responses/usage/image-generation-agent). +DALL-E 2 and DALL-E 3 were removed from the OpenAI API on May 12, 2026. See [OpenAI API deprecations](https://developers.openai.com/api/docs/deprecations#2025-11-14-dalle-model-snapshots). This `DalleTools` example is retained as a legacy reference. Use `OpenAITools` with GPT Image 2 in [Image Generation Agent](/models/providers/native/openai/responses/usage/image-generation-agent). ## Legacy Source -This example expected the `openai` package and an `OPENAI_API_KEY`. Its `DalleTools` calls no longer run against the current OpenAI API. +This example expected the `openai` package and an `OPENAI_API_KEY`. Its `DalleTools` calls no longer run because DALL-E 2 and DALL-E 3 were removed from the OpenAI API on May 12, 2026. ```python +"""Run `uv pip install openai` to install dependencies.""" from pathlib import Path @@ -76,4 +77,4 @@ if __name__ == "__main__": Follow [Image Generation Agent](/models/providers/native/openai/responses/usage/image-generation-agent) to generate and save images with `OpenAITools` and GPT Image 2. -For details, see [Dalle cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/dalle_tools.py). +For details, see [Dalle cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/dalle_tools.py). diff --git a/examples/tools/evm-tools.mdx b/examples/tools/evm-tools.mdx index 861b247f0..b2ab70b3e 100644 --- a/examples/tools/evm-tools.mdx +++ b/examples/tools/evm-tools.mdx @@ -1,8 +1,12 @@ --- title: "EVM" -description: "Send ETH transactions on any EVM-compatible chain with EvmTools using an RPC URL and private key." +description: "Send ETH transactions on an EIP-1559-compatible chain with EvmTools using an RPC URL and private key." --- -Enable Agno agents to integrate with EVM to send ETH transactions on any EVM-compatible blockchain. +Enable Agno agents to send ETH transactions on EIP-1559-compatible blockchains. + + +Use a funded Sepolia test wallet and Sepolia RPC endpoint only. Running this example sends 0.001 ETH to the hard-coded address. `EvmTools` requires an EIP-1559-compatible chain. + ## Prerequisites @@ -68,4 +72,4 @@ source .venvs/demo/bin/activate python cookbook/91_tools/evm_tools.py ``` -For details, see [EVM cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/evm_tools.py). +For details, see [EVM cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/evm_tools.py). diff --git a/first-agent.mdx b/first-agent.mdx index 75c505e0e..a9970ffcc 100644 --- a/first-agent.mdx +++ b/first-agent.mdx @@ -1,6 +1,6 @@ --- title: Build Your First Agent -description: "Build and run your first agent in 20 lines of code." +description: "Build and run an agent that inventories and organizes a folder." keywords: [agno, agent, quickstart, tutorial] --- @@ -130,7 +130,7 @@ Install new dependencies and run your Agent as a Service: -20 lines of code and you have: +The service gives you: - A stateful agent served as a production API - Session storage and conversation history - Tracing on every run diff --git a/knowledge/vector-stores/clickhouse/overview.mdx b/knowledge/vector-stores/clickhouse/overview.mdx index 2e24cd998..182fb5dbe 100644 --- a/knowledge/vector-stores/clickhouse/overview.mdx +++ b/knowledge/vector-stores/clickhouse/overview.mdx @@ -99,23 +99,25 @@ agent.print_response("What was my last question?", stream=True) read_chat_history=True, ) - if __name__ == "__main__": + async def main(): # Comment out after first run - asyncio.run(agent.knowledge.ainsert( - url="https://agno-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf" - ) + await agent.knowledge.ainsert( + url="https://agno-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf", ) # Create and use the agent - asyncio.run(agent.aprint_response("How to make Tom Kha Gai", markdown=True)) + await agent.aprint_response("How to make Tom Kha Gai", markdown=True) + + if __name__ == "__main__": + asyncio.run(main()) ``` - Use ainsert() and aprint_response() methods with asyncio.run() for non-blocking operations in high-throughput applications. + Use ainsert() and aprint_response() to integrate these operations into an async application. Await both in the same event loop. ## ClickHouse Params - \ No newline at end of file + diff --git a/scripts/examples_sync/apply_oneoffs.py b/scripts/examples_sync/apply_oneoffs.py index 52249356c..c4b8ffe1d 100644 --- a/scripts/examples_sync/apply_oneoffs.py +++ b/scripts/examples_sync/apply_oneoffs.py @@ -2186,7 +2186,7 @@ def main() -> None: root_sub( "examples/tools/dalle-tools.mdx", "The pinned source expected the `openai` package and an `OPENAI_API_KEY`. Its `DalleTools` calls no longer run against the current OpenAI API.", - "This example expected the `openai` package and an `OPENAI_API_KEY`. Its `DalleTools` calls no longer run against the current OpenAI API.", + "This example expected the `openai` package and an `OPENAI_API_KEY`. Its `DalleTools` calls no longer run because DALL-E 2 and DALL-E 3 were removed from the OpenAI API on May 12, 2026.", ) root_sub( "tools/toolkits/models/azure-openai.mdx", @@ -2939,8 +2939,8 @@ def main() -> None: root_sub( "deploy/templates/modal/reference.mdx", - "| Tail logs | `modal app logs agentos --follow` |", "| Tail logs | `modal app logs agentos` |", + "| Tail logs | `modal app logs agentos --follow` |", ) root_sub( "deploy/templates/modal/reference.mdx", diff --git a/scripts/examples_sync/generate.py b/scripts/examples_sync/generate.py index 22449f88f..f09d6a4dc 100644 --- a/scripts/examples_sync/generate.py +++ b/scripts/examples_sync/generate.py @@ -2082,6 +2082,9 @@ "05_agent_os/interfaces/agui/reasoning_agent.py": { "source_link_ref": "pinned-tag", }, + "05_agent_os/interfaces/agui/tool_confirmation.py": { + "run_note": "This helper is imported by [AG-UI Showcase](/examples/agent-os/interfaces/agui/showcase), which mounts it at `/tool_confirmation` and serves on port 9001. Run the showcase entry point instead.", + }, "05_agent_os/interfaces/telegram/reasoning_agent.py": { "intro_override": "Run a Telegram bot with structured reasoning, DuckDuckGo web search, and SQLite session persistence.", }, diff --git a/tools/toolkits/models/openai.mdx b/tools/toolkits/models/openai.mdx index 45be8f485..cc39f1a1a 100644 --- a/tools/toolkits/models/openai.mdx +++ b/tools/toolkits/models/openai.mdx @@ -6,7 +6,7 @@ description: "OpenAITools gives an agent access to OpenAI's audio transcription, OpenAITools allow an Agent to interact with OpenAI models for performing audio transcription, image generation, and text-to-speech. -In Agno v2.7.4, `image_model` still defaults to the deprecated `dall-e-3`. Set `image_model="gpt-image-2"` for the current OpenAI image model. +In Agno v2.7.4, `image_model` still defaults to `dall-e-3`, which was removed from the OpenAI API. The default no longer works. Set `image_model="gpt-image-2"` for the current OpenAI image model. See [OpenAI API deprecations](https://developers.openai.com/api/docs/deprecations#2025-11-14-dalle-model-snapshots). ## Prerequisites From d220832323e0ac0d895c4e829eb0921df40ff4f1 Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 05:16:42 +0100 Subject: [PATCH 17/47] docs: complete v2.7.4 interface contracts --- reference-api/openapi.json | 2 +- reference-api/openapi.yaml | 1942 ++++++++++++++++++++++++++++++++---- scripts/make_openapi.py | 425 +++++++- 3 files changed, 2160 insertions(+), 209 deletions(-) diff --git a/reference-api/openapi.json b/reference-api/openapi.json index 37e47aa1e..ac19eb2c9 100644 --- a/reference-api/openapi.json +++ b/reference-api/openapi.json @@ -1 +1 @@ -{"openapi":"3.1.0","info":{"title":"Agno API Reference","description":"The all-in-one, private, secure agent platform that runs in your cloud.","version":"2.7.4"},"paths":{"/":{"get":{"tags":["Home"],"summary":"API Information","description":"Get basic information about this AgentOS API instance, including:\n\n- API metadata and version\n- Available capabilities overview\n- Links to key endpoints and documentation","operationId":"get_api_info","responses":{"200":{"description":"API information retrieved successfully","content":{"application/json":{"schema":{},"examples":{"home":{"summary":"Example home response","value":{"name":"AgentOS API","id":"demo-os","version":"1.0.0"}}}}}}}}},"/health":{"get":{"tags":["Health"],"summary":"Health Check","description":"Check the health status of the AgentOS API. Returns a simple status indicator.","operationId":"health_check","responses":{"200":{"description":"API is healthy and operational","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"},"example":{"status":"ok","instantiated_at":"2025-06-10T12:00:00Z"}}}}}}},"/info":{"get":{"tags":["Core"],"summary":"Get OS Info","description":"Return lightweight, unauthenticated metadata about this AgentOS instance.","operationId":"get_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoResponse"}}}}}}},"/config":{"get":{"tags":["Core"],"summary":"Get OS Configuration","description":"Retrieve the complete configuration of the AgentOS instance, including:\n\n- Available models and databases\n- Registered agents, teams, and workflows\n- Chat, session, memory, knowledge, and evaluation configurations\n- Available interfaces and their routes","operationId":"get_config","responses":{"200":{"description":"OS configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"},"example":{"description":"Example AgentOS configuration","available_models":[],"databases":["9c884dc4-9066-448c-9074-ef49ec7eb73c"],"session":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Sessions"}}]},"metrics":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Metrics"}}]},"memory":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Memory"}}]},"knowledge":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Knowledge"}}]},"evals":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Evals"}}]},"agents":[{"id":"main-agent","name":"Main Agent","db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c"}],"teams":[],"workflows":[],"interfaces":[],"os_id":"demo"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/models":{"get":{"tags":["Core"],"summary":"Get Available Models","description":"Retrieve a list of all unique models currently used by agents and teams in this OS instance. This includes the model ID and provider information for each model.","operationId":"get_models","responses":{"200":{"description":"List of models retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Response Get Models"},"example":[{"id":"gpt-4","provider":"openai"},{"id":"claude-3-sonnet","provider":"anthropic"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}/runs":{"post":{"tags":["Agents"],"summary":"Create Agent Run","description":"Execute an agent with a message and optional media files. Supports both streaming and non-streaming responses.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_agent_run"}}}},"responses":{"200":{"description":"Agent run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"examples":{"event_stream":{"summary":"Example event stream response","value":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Agents"],"summary":"List Agent Runs","description":"List runs for an agent within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_agent_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/cancel":{"post":{"tags":["Agents"],"summary":"Cancel Agent Run","description":"Cancel a currently executing agent run. This will attempt to stop the agent's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/continue":{"post":{"tags":["Agents"],"summary":"Continue Agent Run","description":"Advance a persisted agent run from its current state. Dispatches on the body shape and the persisted run state (see ADR-003 in specs/agno/features/checkpointing/decisions.md).\n\n**Variants:**\n- PAUSED + tools provided \u2192 apply HITL tool results, resume\n- PAUSED + resolved admin approval (empty tools) \u2192 apply resolution, resume\n- RUNNING / ERROR (no unresolved HITL requirements) \u2192 resume from last persisted state\n- COMPLETED + new tools \u2192 continue with appended messages\n\n**Tools Parameter:**\nJSON string containing array of tool execution objects with results. Optional \u2014 only required when the persisted run has unresolved HITL requirements.","operationId":"continue_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_agent_run"}}}},"responses":{"200":{"description":"Agent run continued successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n"}}},"400":{"description":"Invalid JSON in tools field or invalid tool structure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"403":{"description":"Run has a pending admin approval and cannot be continued by the user yet."}}}},"/agents/{agent_id}/sessions/{session_id}/fork":{"post":{"tags":["Agents"],"summary":"Fork Agent Session","description":"Deep-copy a session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_agent_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents":{"get":{"tags":["Agents"],"summary":"List All Agents","description":"Retrieve a comprehensive list of all agents configured in this OS instance.\n\n**Returns:**\n- Agent metadata (ID, name, description)\n- Model configuration and capabilities\n- Available tools and their configurations\n- Session, knowledge, memory, and reasoning settings\n- Only meaningful (non-default) configurations are included","operationId":"get_agents","responses":{"200":{"description":"List of agents retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentResponse"},"type":"array","title":"Response Get Agents"},"example":[{"id":"main-agent","name":"Main Agent","db_id":"c6bf0644-feb8-4930-a305-380dae5ad6aa","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Details","description":"Retrieve detailed configuration and capabilities of a specific agent.\n\n**Returns comprehensive agent information including:**\n- Model configuration and provider details\n- Complete tool inventory and configurations\n- Session management settings\n- Knowledge base and memory configurations\n- Reasoning capabilities and settings\n- System prompts and response formatting options","operationId":"get_agent","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Agent details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"},"example":{"id":"main-agent","name":"Main Agent","db_id":"9e064c70-6821-4840-a333-ce6230908a70","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Run","description":"Retrieve the status and output of an agent run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Agents"],"summary":"List Agent Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_agent_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Agents"],"summary":"Get Agent Run Checkpoint Snapshot","description":"Return a derived run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_agent_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/resume":{"post":{"tags":["Agents"],"summary":"Resume Agent Run Stream","description":"Resume an SSE stream for an agent run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_agent_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_agent_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"application/json":{"schema":{}},"text/event-stream":{}}},"400":{"description":"Not supported for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs":{"post":{"tags":["Teams"],"summary":"Create Team Run","description":"Execute a team collaboration with multiple agents working together on a task.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_team_run"}}}},"responses":{"200":{"description":"Team run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Teams"],"summary":"List Team Runs","description":"List runs for a team within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_team_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/cancel":{"post":{"tags":["Teams"],"summary":"Cancel Team Run","description":"Cancel a currently executing team run. This will attempt to stop the team's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel team run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/resume":{"post":{"tags":["Teams"],"summary":"Resume Team Run Stream","description":"Resume an SSE stream for a team run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_team_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_team_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{}}},"400":{"description":"Stream resumption is unavailable for remote and factory teams. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/continue":{"post":{"tags":["Teams"],"summary":"Continue Team Run","description":"Continue a paused or incomplete team run with updated requirements.\n\n**Use Cases:**\n- Resume execution after tool approval/rejection\n- Provide manual tool execution results\n- Resume after admin approval (requirements can be empty; resolution fetched from DB)\n\n**Requirements Parameter:**\nJSON string containing array of requirement objects with tool execution results.\nCan be empty when an admin-required approval has been resolved.","operationId":"continue_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_team_run"}}}},"responses":{"200":{"description":"Team run continued successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n"}}},"400":{"description":"Invalid JSON in requirements field or invalid requirement structure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"403":{"description":"Run has a pending admin approval and cannot be continued by the user yet."},"409":{"description":"Run is not paused (e.g. run is already running, continued, or errored). Only PAUSED runs can be continued."}}}},"/teams/{team_id}/sessions/{session_id}/fork":{"post":{"tags":["Teams"],"summary":"Fork Team Session","description":"Deep-copy a team session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_team_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams":{"get":{"tags":["Teams"],"summary":"List All Teams","description":"Retrieve a comprehensive list of all teams configured in this OS instance.\n\n**Returns team information including:**\n- Team metadata (ID, name, description, execution mode)\n- Model configuration for team coordination\n- Team member roster with roles and capabilities\n- Knowledge sharing and memory configurations","operationId":"get_teams","responses":{"200":{"description":"List of teams retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamResponse"},"type":"array","title":"Response Get Teams"},"example":[{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"agno_memories","app_url":"/memory/1","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/teams/{team_id}":{"get":{"tags":["Teams"],"summary":"Get Team Details","description":"Retrieve detailed configuration and member information for a specific team.","operationId":"get_team","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"},"example":{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}":{"get":{"tags":["Teams"],"summary":"Get Team Run","description":"Retrieve the status and output of a team run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Teams"],"summary":"List Team Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored team run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_team_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Teams"],"summary":"Get Team Run Checkpoint Snapshot","description":"Return a derived team run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_team_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows":{"get":{"tags":["Workflows"],"summary":"List All Workflows","description":"Retrieve a comprehensive list of all workflows configured in this OS instance.\n\n**Return Information:**\n- Workflow metadata (ID, name, description)\n- Input schema requirements\n- Step sequence and execution flow\n- Associated agents and teams","operationId":"get_workflows","responses":{"200":{"description":"List of workflows retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Response Get Workflows"},"example":[{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/workflows/{workflow_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Details","description":"Retrieve detailed configuration and step information for a specific workflow.","operationId":"get_workflow","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Workflow version to retrieve","title":"Version"},"description":"Workflow version to retrieve"}],"responses":{"200":{"description":"Workflow details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"},"example":{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs":{"post":{"tags":["Workflows"],"summary":"Execute Workflow","description":"Execute a workflow with the provided input data. Workflows can run in streaming or batch mode.\n\n**Execution Modes:**\n- **Streaming (`stream=true`)**: Real-time step-by-step execution updates via SSE\n- **Non-Streaming (`stream=false`)**: Complete workflow execution with final result\n\n**Workflow Execution Process:**\n1. Input validation against workflow schema\n2. Sequential or parallel step execution based on workflow design\n3. Data flow between steps with transformation\n4. Error handling and automatic retries where configured\n5. Final result compilation and response\n\n**Session Management:**\nWorkflows support session continuity for stateful execution across multiple runs.","operationId":"create_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_run"}}}},"responses":{"200":{"description":"Workflow executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid input data or workflow configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Workflow execution error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"List Workflow Runs","description":"List runs for a workflow within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_workflow_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/continue":{"post":{"tags":["Workflows"],"summary":"Continue Workflow Run","description":"Continue a paused workflow run with resolved requirements.\n\n**Use Cases:**\n- Resume after step-level HITL (confirmation, user input, router selection)\n- Resume after executor-level HITL (agent/team tool confirmation within a step)\n\n**Requirements Parameter:**\nJSON string containing the resolved step requirements.","operationId":"continue_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_workflow_run"}}}},"responses":{"200":{"description":"Workflow run continued successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: StepCompleted\ndata: {\"step_name\": \"step1\"}\n\n"}}},"400":{"description":"Invalid JSON in requirements field","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"409":{"description":"Run is not paused. Only PAUSED runs can be continued."}}}},"/workflows/{workflow_id}/runs/{run_id}/cancel":{"post":{"tags":["Workflows"],"summary":"Cancel Workflow Run","description":"Cancel a currently executing workflow run, stopping all active steps and cleanup.\n**Note:** Complex workflows with multiple parallel steps may take time to fully cancel.","operationId":"cancel_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow not found, or the requested run was not found in the caller's session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel workflow run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/resume":{"post":{"tags":["Workflows"],"summary":"Resume Workflow Run Stream","description":"Resume an SSE stream for a workflow run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_workflow_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_workflow_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"application/json":{"schema":{}},"text/event-stream":{}}},"400":{"description":"Stream resumption is unavailable for remote and factory workflows. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Run","description":"Retrieve the status and output of a workflow run. Use this to poll for run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/slack/events":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Receives incoming Slack events (messages, mentions, thread starts).\n\n**URL Verification:** On first setup, Slack sends a `url_verification` challenge. The endpoint echoes back the challenge string.\n\n**Event Processing:** Normal events are acknowledged immediately with `{\"status\": \"ok\"}` and processed in the background. This prevents Slack's 3-second retry timeout.\n\n**Retry Handling:** Events with `X-Slack-Retry-Num` header are duplicates and return 200 without reprocessing.\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Event Subscriptions > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for creating a Slack App or use the [manifest](/agent-os/interfaces/slack/setup#2-create-the-slack-app) for quick setup.\n","operationId":"slack_events_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SlackChallengeResponse"},{"$ref":"#/components/schemas/SlackEventResponse"}],"title":"Response Slack Events Simple Agent"}}}},"400":{"description":"Missing Slack headers"},"403":{"description":"Invalid Slack signature"}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number (present on retried events)"}]}},"/slack/interactions":{"post":{"tags":["Slack"],"summary":"Slack Interactions","description":"Handles Slack interactive components for Human-in-the-Loop (HITL) workflows.\n\n**Supported Actions:**\n- `row_approve` - Approve a pending tool call\n- `row_reject` - Reject a pending tool call\n- `submit_pause` - Submit form data for a paused workflow\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Interactivity & Shortcuts > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for step-by-step instructions or the [HITL guide](/agent-os/interfaces/slack/hitl) for approval workflows.\n","operationId":"slack_interactions_simple_agent","responses":{"200":{"description":"Interaction accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackEventResponse"}}}},"400":{"description":"Malformed interaction payload"},"403":{"description":"Invalid Slack signature"}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"URL-encoded JSON interaction payload (Slack sends interactive component data as a single form field)"}}}}}}}},"/whatsapp/status":{"get":{"tags":["Whatsapp"],"summary":"Status","operationId":"whatsapp_status_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/whatsapp/webhook":{"get":{"tags":["Whatsapp"],"summary":"Whatsapp Verify","description":"Handle WhatsApp webhook verification","operationId":"whatsapp_verify_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["Whatsapp"],"summary":"Whatsapp Webhook","description":"Process incoming WhatsApp messages","operationId":"whatsapp_webhook_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppWebhookResponse"}}}},"403":{"description":"Invalid webhook signature"}}}},"/telegram/status":{"get":{"tags":["Telegram"],"summary":"Telegram Status","operationId":"telegram_status_simple-agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramStatusResponse"}}}}}}},"/telegram/webhook":{"post":{"tags":["Telegram"],"summary":"Telegram Webhook","operationId":"telegram_webhook_simple-agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramWebhookResponse"}}}},"403":{"description":"Invalid webhook secret token"}}}},"/agui":{"post":{"tags":["AGUI"],"summary":"Run Agent","operationId":"run_agent_agui_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/status":{"get":{"tags":["AGUI"],"summary":"Get Status","operationId":"get_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/a2a/agents/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Agent Card","operationId":"get_agent_card_a2a_agents__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Agent","description":"Send a message to an Agno Agent (non-streaming). The Agent is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"run_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request"},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Agent Task","description":"Get the status and result of an agent task by ID.","operationId":"get_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Agent Task","description":"Cancel a running agent task.","operationId":"cancel_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Agent","description":"Stream a message to an Agno Agent (streaming). The Agent is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Streaming response with task updates","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n"}}},"400":{"description":"Invalid request"},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Team Card","operationId":"get_team_card_a2a_teams__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Team","description":"Send a message to an Agno Team (non-streaming). The Team is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"run_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request"},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Team Task","description":"Get the status and result of a team task by ID.","operationId":"get_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Team Task","description":"Cancel a running team task.","operationId":"cancel_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Team","description":"Stream a message to an Agno Team (streaming). The Team is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Streaming response with task updates","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n"}}},"400":{"description":"Invalid request"},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/workflows/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Workflow Card","operationId":"get_workflow_card_a2a_workflows__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/workflows/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Workflow","description":"Send a message to an Agno Workflow (non-streaming). The Workflow is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"run_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request"},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/workflows/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Workflow","description":"Stream a message to an Agno Workflow (streaming). The Workflow is identified via the path parameter '{id}'. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Streaming response with task updates","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n"}}},"400":{"description":"Invalid request"},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/message/send":{"post":{"tags":["A2A"],"summary":"Send Message","description":"[DEPRECATED] Send a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"send_message","responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/a2a/message/stream":{"post":{"tags":["A2A"],"summary":"Stream Message","description":"[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message","responses":{"200":{"description":"Streaming response with task updates","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n"}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/sessions":{"get":{"tags":["Sessions"],"summary":"List Sessions","description":"Retrieve paginated list of sessions with filtering and sorting options. Supports filtering by session type (agent, team, workflow), component, user, and name. Sessions represent conversation histories and execution contexts.","operationId":"get_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types.","title":"Type"},"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types."},{"name":"component_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by component ID (agent/team/workflow ID)","title":"Component Id"},"description":"Filter sessions by component ID (agent/team/workflow ID)"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by user ID","title":"User Id"},"description":"Filter sessions by user ID"},{"name":"session_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by name (partial match)","title":"Session Name"},"description":"Filter sessions by name (partial match)"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of sessions to return per page","default":20,"title":"Limit"},"description":"Number of sessions to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort sessions by","default":"created_at","title":"Sort By"},"description":"Field to sort sessions by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query sessions from","title":"Db Id"},"description":"Database ID to query sessions from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Sessions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_SessionSchema_"},"example":{"session_example":{"summary":"Example session response","value":{"data":[{"session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_state":{},"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}]}}}}}},"400":{"description":"Invalid session type or filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in query parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Sessions"],"summary":"Create New Session","description":"Create a new empty session with optional configuration. Useful for pre-creating sessions with specific session_state, metadata, or other properties before running any agent/team/workflow interactions. The session can later be used by providing its session_id in run requests.","operationId":"create_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SessionType","description":"Type of session to create (agent, team, or workflow)","default":"agent"},"description":"Type of session to create (agent, team, or workflow)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to create session in","title":"Db Id"},"description":"Database ID to create session in"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest","description":"Session configuration data","default":{}}}}},"responses":{"201":{"description":"Session created successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Create Session"},"examples":{"agent_session_example":{"summary":"Example created agent session","value":{"user_id":"user-123","agent_session_id":"new-session-id","session_id":"new-session-id","session_name":"New Session","session_state":{"key":"value"},"metadata":{"key":"value"},"agent_id":"agent-1","created_at":"2025-10-21T12:00:00Z","updated_at":"2025-10-21T12:00:00Z"}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"409":{"description":"A session with the supplied session_id already exists"}}},"delete":{"tags":["Sessions"],"summary":"Delete Multiple Sessions","description":"Delete multiple sessions by their IDs in a single operation. This action cannot be undone and will permanently remove all specified sessions and their runs.","operationId":"delete_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSessionRequest"}}}},"responses":{"204":{"description":"Sessions deleted successfully"},"400":{"description":"Invalid request - session IDs and types length mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["Sessions"],"summary":"Get Session by ID","description":"Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow).","operationId":"get_session_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to retrieve","title":"Session Id"},"description":"Session ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query session from","title":"User Id"},"description":"User ID to query session from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query session from","title":"Db Id"},"description":"Database ID to query session from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query session from","title":"Table"},"description":"Table to query session from"}],"responses":{"200":{"description":"Session details retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Get Session By Id"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Session","description":"Permanently delete a specific session and all its associated runs. This action cannot be undone and will remove all conversation history.","operationId":"delete_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to delete","title":"Session Id"},"description":"Session ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Sessions"],"summary":"Update Session","description":"Update session properties such as session_name, session_state, metadata, or summary. Use this endpoint to modify the session name, update state, add metadata, or update the session summary.","operationId":"update_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to update","title":"Session Id"},"description":"Session ID to update"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID","title":"User Id"},"description":"User ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update operation","title":"Db Id"},"description":"Database ID to use for update operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update operation","title":"Table"},"description":"Table to use for update operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest","description":"Session update data"}}}},"responses":{"200":{"description":"Session updated successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Update Session"},"examples":{"update_summary":{"summary":"Update session summary","value":{"summary":{"summary":"The user discussed project planning with the agent.","updated_at":"2025-10-21T14:30:00Z"}}},"update_metadata":{"summary":"Update session metadata","value":{"metadata":{"tags":["planning","project"],"priority":"high"}}},"update_session_name":{"summary":"Update session name","value":{"session_name":"Updated Session Name"}},"update_session_state":{"summary":"Update session state","value":{"session_state":{"step":"completed","context":"Project planning finished","progress":100}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs":{"get":{"tags":["Sessions"],"summary":"Get Session Runs","description":"Retrieve all runs (executions) for a specific session with optional timestamp filtering. Runs represent individual interactions or executions within a session. Response schema varies based on session type.","operationId":"get_session_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get runs from","title":"Session Id"},"description":"Session ID to get runs from"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query runs from","title":"User Id"},"description":"User ID to query runs from"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created after this Unix timestamp (epoch time in seconds)","title":"Created After"},"description":"Filter runs created after this Unix timestamp (epoch time in seconds)"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created before this Unix timestamp (epoch time in seconds)","title":"Created Before"},"description":"Filter runs created before this Unix timestamp (epoch time in seconds)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query runs from","title":"Db Id"},"description":"Database ID to query runs from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query runs from","title":"Table"},"description":"Table to query runs from"}],"responses":{"200":{"description":"Session runs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}]},"title":"Response Get Session Runs"},"examples":{"completed_run":{"summary":"Example completed run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"","run_input":"Which tools do you have access to?","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","run_response_format":"text","reasoning_content":"","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069},"messages":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-08 17:52:10.101003.\n\n\nYou have the capability to retain memories from previous interactions with the user, but have not had any interactions with the user yet.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757346730},{"content":"Which tools do you have access to?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757346730},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138},"created_at":1757346730}],"events":[{"created_at":1757346730,"event":"RunStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","model":"gpt-4o","model_provider":"OpenAI"},{"created_at":1757346733,"event":"MemoryUpdateStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"MemoryUpdateCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"RunCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","content_type":"str","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069}}],"created_at":"2025-09-08T15:52:10Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Session not found or has no runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs/{run_id}":{"get":{"tags":["Sessions"],"summary":"Get Run by ID","description":"Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run).","operationId":"get_session_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get run from","title":"Session Id"},"description":"Session ID to get run from"},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","description":"Run ID to retrieve","title":"Run Id"},"description":"Run ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query run from","title":"User Id"},"description":"User ID to query run from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query run from","title":"Db Id"},"description":"Database ID to query run from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query run from","title":"Table"},"description":"Table to query run from"}],"responses":{"200":{"description":"Run retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}],"title":"Response Get Session Run"},"examples":{"agent_run":{"summary":"Example agent run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"user_123","run_input":"Which tools do you have access to?","content":"I don't have access to external tools.","created_at":1728499200}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Session or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/rename":{"post":{"tags":["Sessions"],"summary":"Rename Session","description":"Update the name of an existing session. Useful for organizing and categorizing sessions with meaningful names for better identification and management.","operationId":"rename_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to rename","title":"Session Id"},"description":"Session ID to rename"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope rename to","title":"User Id"},"description":"User ID to scope rename to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for rename operation","title":"Db Id"},"description":"Database ID to use for rename operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_rename_session"}}}},"responses":{"200":{"description":"Session renamed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Rename Session"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Invalid session name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type or validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories":{"post":{"tags":["Memory"],"summary":"Create Memory","description":"Create a new user memory with content and associated topics. Memories are used to store contextual information for users across conversations.","operationId":"create_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for memory storage","title":"Db Id"},"description":"Database ID to use for memory storage"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for memory storage","title":"Table"},"description":"Table to use for memory storage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"mem-123","memory":"User prefers technical explanations with code examples","topics":["preferences","communication_style","technical"],"user_id":"user-456","created_at":"2024-01-15T10:30:00Z","updated_at":"2024-01-15T10:30:00Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Memory"],"summary":"Delete Multiple Memories","description":"Delete multiple user memories by their IDs in a single operation. This action cannot be undone and all specified memories will be permanently removed.","operationId":"delete_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMemoriesRequest"}}}},"responses":{"204":{"description":"Memories deleted successfully"},"400":{"description":"Invalid request - empty memory_ids list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"List Memories","description":"Retrieve paginated list of user memories with filtering and search capabilities. Filter by user, agent, team, topics, or search within memory content.","operationId":"get_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by user ID","title":"User Id"},"description":"Filter memories by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by agent ID","title":"Agent Id"},"description":"Filter memories by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by team ID","title":"Team Id"},"description":"Filter memories by team ID"},{"name":"search_content","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fuzzy search within memory content","title":"Search Content"},"description":"Fuzzy search within memory content"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of memories to return per page","default":20,"title":"Limit"},"description":"Number of memories to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort memories by","default":"updated_at","title":"Sort By"},"description":"Field to sort memories by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memories from","title":"Db Id"},"description":"Database ID to query memories from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Comma-separated list of topics to filter by","examples":["preferences,technical,communication_style"],"title":"Topics"},"description":"Comma-separated list of topics to filter by"}],"responses":{"200":{"description":"Memories retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserMemorySchema_"},"example":{"data":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories/{memory_id}":{"delete":{"tags":["Memory"],"summary":"Delete Memory","description":"Permanently delete a specific user memory. This action cannot be undone.","operationId":"delete_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to delete","title":"Memory Id"},"description":"Memory ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to delete memory for","title":"User Id"},"description":"User ID to delete memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Memory deleted successfully"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"Get Memory by ID","description":"Retrieve detailed information about a specific user memory by its ID.","operationId":"get_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to retrieve","title":"Memory Id"},"description":"Memory ID to retrieve"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query memory for","title":"User Id"},"description":"User ID to query memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memory from","title":"Db Id"},"description":"Database ID to query memory from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query memory from","title":"Table"},"description":"Table to query memory from"}],"responses":{"200":{"description":"Memory retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Memory"],"summary":"Update Memory","description":"Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values.","operationId":"update_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to update","title":"Memory Id"},"description":"Memory ID to update"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update","title":"Db Id"},"description":"Database ID to use for update"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update","title":"Table"},"description":"Table to use for update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memory_topics":{"get":{"tags":["Memory"],"summary":"Get Memory Topics","description":"Retrieve all unique topics associated with memories in the system. Useful for filtering and categorizing memories by topic.","operationId":"get_memory_topics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter topics for","title":"User Id"},"description":"User ID to filter topics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query topics from","title":"Db Id"},"description":"Database ID to query topics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query topics from","title":"Table"},"description":"Table to query topics from"}],"responses":{"200":{"description":"Memory topics retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Get Memory Topics"},"example":["preferences","communication_style","technical","industry","compliance","code_examples","requirements","healthcare","finance"]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/user_memory_stats":{"get":{"tags":["Memory"],"summary":"Get User Memory Statistics","description":"Retrieve paginated statistics about memory usage by user. Provides insights into user engagement and memory distribution across users.","operationId":"get_user_memory_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of user statistics to return per page","default":20,"title":"Limit"},"description":"Number of user statistics to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter statistics for","title":"User Id"},"description":"User ID to filter statistics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query statistics from","title":"Table"},"description":"Table to query statistics from"}],"responses":{"200":{"description":"User memory statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserStatsSchema_"},"example":{"data":[{"user_id":"123","total_memories":3,"last_memory_updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve user statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/optimize-memories":{"post":{"tags":["Memory"],"summary":"Optimize User Memories","description":"Optimize all memories for a given user using the default summarize strategy. This operation combines all memories into a single comprehensive summary, achieving maximum token reduction while preserving all key information. To use a custom model, specify the model parameter in 'provider:model_id' format (e.g., 'openai:gpt-4o-mini', 'anthropic:claude-3-5-sonnet-20241022'). If not specified, uses MemoryManager's default model (gpt-4o). Set apply=false to preview optimization results without saving to database.","operationId":"optimize_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for optimization","title":"Db Id"},"description":"Database ID to use for optimization"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for optimization","title":"Table"},"description":"Table to use for optimization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesRequest"}}}},"responses":{"200":{"description":"Memories optimized successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesResponse"},"example":{"memories":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User has a 3-year-old golden retriever named Max who loves fetch and walks. Lives in San Francisco's Mission district, works as a product manager in tech. Enjoys hiking Bay Area trails, trying new restaurants (especially Japanese, Thai, Mexican), and learning piano for 1.5 years.","topics":["pets","location","work","hobbies","food_preferences"],"user_id":"user2","updated_at":"2025-11-18T10:30:00Z"}],"memories_before":4,"memories_after":1,"tokens_before":450,"tokens_after":180,"tokens_saved":270,"reduction_percentage":60.0}}}},"400":{"description":"Bad request - User ID is required or invalid model string format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"No memories found for user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to optimize memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings":{"get":{"tags":["Learnings"],"summary":"List Learnings","description":"List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) \u2014 this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`).","operationId":"list_learnings","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by learning type","title":"Learning Type"},"description":"Filter by learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"namespace","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by namespace","title":"Namespace"},"description":"Filter by namespace"},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity ID","title":"Entity Id"},"description":"Filter by entity ID"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity type","title":"Entity Type"},"description":"Filter by entity type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":100,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used).","title":"Sort By"},"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used)."},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Learnings"],"summary":"Create Learning","description":"Create a new learning record. For the identity-keyed learning types (`user_profile`, `user_memory`, `session_context`, `entity_memory`) the record id is derived deterministically from the identity fields so it reconciles with what the agent reads/writes \u2014 provide those fields (else 422), and if a record already exists the request is rejected with 409 (use PATCH to update it). Other types get a generated id. For a scoped (non-admin) caller, the body's `user_id` must be omitted/null or match the caller (mismatch \u2192 403); admins and unscoped callers may set any `user_id`.","operationId":"create_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users":{"get":{"tags":["Learnings"],"summary":"List Learning Users","description":"List the users that own learning records, with a per-user count and last-updated timestamp. Intended as the entry point for a per-user view: list users here, then drill into a single user's learnings via `GET /learnings?user_id=...`. Records with no owner (`user_id IS NULL`) are excluded. Pass `learning_type` to restrict the grouping to a single store (e.g. `user_profile` or `user_memory`). For a scoped (non-admin) caller results are bound to that user; an explicit `user_id` that differs is rejected with 403. Admins and unscoped callers list all users. Sortable by `user_id` or `last_learning_updated_at` (the default).","operationId":"list_learning_users","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the grouping to a single learning type","title":"Learning Type"},"description":"Restrict the grouping to a single learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the result to a single user","title":"User Id"},"description":"Restrict the result to a single user"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by: user_id or last_learning_updated_at (the default)","title":"Sort By"},"description":"Field to sort by: user_id or last_learning_updated_at (the default)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningUserStats_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users/{user_id}":{"delete":{"tags":["Learnings"],"summary":"Delete Learning User","description":"Delete the learning records owned by a user. By default removes every learning type backed by the agno_learnings table (user_profile, user_memory, and any user-scoped entity records); pass `learning_type` to restrict deletion to a single store. Records with no owner (`user_id IS NULL`) are not affected. For a scoped (non-admin) caller, only their own learnings may be deleted; a different `user_id` is rejected with 403. Admins and unscoped callers may delete any user's learnings. Returns 204 even if the user had no matching records.","operationId":"delete_learning_user","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The user whose learnings should be deleted","title":"User Id"},"description":"The user whose learnings should be deleted"},{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings","title":"Learning Type"},"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/{learning_id}":{"get":{"tags":["Learnings"],"summary":"Get Learning","description":"Retrieve a single learning record by its ID.","operationId":"get_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Learnings"],"summary":"Update Learning","description":"Update a learning record. Only `content` and `metadata` may be modified; identity fields (user_id, agent_id, team_id, etc.) are immutable. Provided fields fully replace the existing values. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) are readable by any caller but may only be modified by an admin.","operationId":"update_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Learnings"],"summary":"Delete Learning","description":"Permanently delete a learning record by its ID. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) may only be deleted by an admin.","operationId":"delete_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs":{"get":{"tags":["Evals"],"summary":"List Evaluation Runs","description":"Retrieve paginated evaluation runs with filtering and sorting options. Filter by agent, team, workflow, model, or evaluation type.","operationId":"get_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Workflow ID","title":"Workflow Id"},"description":"Workflow ID"},{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model ID","title":"Model Id"},"description":"Model ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EvalFilterType"},{"type":"null"}],"description":"Filter type","title":"Type"},"description":"Filter type"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of eval runs to return","default":20,"title":"Limit"},"description":"Number of eval runs to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"eval_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)","examples":["accuracy,agent_as_judge,performance,reliability"],"title":"Eval Types"},"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)"}],"responses":{"200":{"description":"Evaluation runs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_EvalSchema_"},"example":{"data":[{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Evals"],"summary":"Delete Evaluation Runs","description":"Delete multiple evaluation runs by their IDs. This action cannot be undone.","operationId":"delete_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvalRunsRequest"}}}},"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Deletion failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Evals"],"summary":"Execute Evaluation","description":"Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both.","operationId":"run_eval","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for evaluation","title":"Db Id"},"description":"Database ID to use for evaluation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for evaluation","title":"Table"},"description":"Table to use for evaluation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRunInput"}}}},"responses":{"200":{"description":"Evaluation executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"f2b2d72f-e9e2-4f0e-8810-0a7e1ff58614","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Invalid request - provide either agent_id or team_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Agent or team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs/{eval_run_id}":{"get":{"tags":["Evals"],"summary":"Get Evaluation Run","description":"Retrieve detailed results and metrics for a specific evaluation run.","operationId":"get_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query eval run from","title":"Table"},"description":"Table to query eval run from"}],"responses":{"200":{"description":"Evaluation run details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Evals"],"summary":"Update Evaluation Run","description":"Update the name or other properties of an existing evaluation run.","operationId":"update_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvalRunRequest"}}}},"responses":{"200":{"description":"Evaluation run updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update evaluation run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics":{"get":{"tags":["Metrics"],"summary":"Get AgentOS Metrics","description":"Retrieve AgentOS metrics and analytics data for a specified date range. If no date range is specified, returns all available metrics.","operationId":"get_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"starting_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Starting date for metrics range (YYYY-MM-DD format)","title":"Starting Date"},"description":"Starting date for metrics range (YYYY-MM-DD format)"},{"name":"ending_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Ending date for metrics range (YYYY-MM-DD format)","title":"Ending Date"},"description":"Ending date for metrics range (YYYY-MM-DD format)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query metrics from","title":"Db Id"},"description":"Database ID to query metrics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Metrics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"},"example":{"metrics":[{"id":"7bf39658-a00a-484c-8a28-67fd8a9ddb2a","agent_runs_count":5,"agent_sessions_count":5,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":448,"output_tokens":148,"total_tokens":596,"audio_tokens":0,"input_audio_tokens":0,"output_audio_tokens":0,"cached_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":5}],"date":"2025-07-31T00:00:00Z","created_at":"2025-07-31T12:38:52Z","updated_at":"2025-07-31T12:49:01Z"}]}}}},"400":{"description":"Invalid date range parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve metrics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics/refresh":{"post":{"tags":["Metrics"],"summary":"Refresh Metrics","description":"Manually trigger recalculation of system metrics from raw data. This operation analyzes system activity logs and regenerates aggregated metrics. Useful for ensuring metrics are up-to-date or after system maintenance.","operationId":"refresh_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for metrics calculation","title":"Db Id"},"description":"Database ID to use for metrics calculation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for metrics calculation","title":"Table"},"description":"Table to use for metrics calculation"}],"responses":{"200":{"description":"Metrics refreshed successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"title":"Response Refresh Metrics"},"example":[{"id":"e77c9531-818b-47a5-99cd-59fed61e5403","agent_runs_count":2,"agent_sessions_count":2,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":256,"output_tokens":441,"total_tokens":697,"audio_total_tokens":0,"audio_input_tokens":0,"audio_output_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":2}],"date":"2025-08-12T00:00:00Z","created_at":"2025-08-12T08:01:47Z","updated_at":"2025-08-12T08:01:47Z"}]}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Refresh failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content":{"post":{"tags":["Knowledge"],"summary":"Upload Content","description":"Upload content to the knowledge base. Supports file uploads, text content, or URLs. Content is processed asynchronously in the background. Supports custom readers and chunking strategies.","operationId":"upload_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_content"}}}},"responses":{"202":{"description":"Content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-123","name":"example-document.pdf","description":"Sample document for processing","metadata":{"category":"documentation","priority":"high"},"status":"processing"}}}},"400":{"description":"Invalid request - malformed metadata or missing content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in form data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"List Content","description":"Retrieve paginated list of all content in the knowledge base with filtering and sorting options. Filter by status, content type, or metadata properties.","operationId":"get_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of content entries to return","default":20,"title":"Limit"},"description":"Number of content entries to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ContentResponseSchema_"},"example":{"data":[{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}],"meta":{"page":1,"limit":20,"total_pages":1,"total_count":2}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete All Content","description":"Permanently remove all content from the knowledge base. This is a destructive operation that cannot be undone. Use with extreme caution.","operationId":"delete_all_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete all content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/remote-content":{"post":{"tags":["Knowledge"],"summary":"Upload Remote Content","description":"Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.","operationId":"upload_remote_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_upload_remote_content"}}}},"responses":{"202":{"description":"Remote content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-456","name":"reports/q1-2024.pdf","description":"Q1 Report from S3","metadata":{"source":"s3-docs"},"status":"processing"}}}},"400":{"description":"Invalid request - unknown config or missing path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}":{"patch":{"tags":["Knowledge"],"summary":"Update Content","description":"Update content name, description, or metadata without re-uploading it. In Agno 2.7.4, this endpoint accepts `reader_id`. Local knowledge validates the value, but the content patch does not apply or persist the reader change.","operationId":"update_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","description":"Content ID","title":"Content Id"},"description":"Content ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_update_content"}}}},"responses":{"200":{"description":"Content updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Invalid request - malformed metadata or invalid reader_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"Get Content by ID","description":"Retrieve detailed information about a specific content item including processing status and metadata.","operationId":"get_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete Content by ID","description":"Permanently remove a specific content item from the knowledge base. This action cannot be undone.","operationId":"delete_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}/status":{"get":{"tags":["Knowledge"],"summary":"Get Content Status","description":"Retrieve the current processing status of a content item. Useful for monitoring asynchronous content processing progress and identifying any processing errors.","operationId":"get_content_status","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content status retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentStatusResponse"},"examples":{"completed":{"summary":"Example completed content status","value":{"status":"completed","status_message":""}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/search":{"post":{"tags":["Knowledge"],"summary":"Search Knowledge","description":"Search the knowledge base for relevant documents using query, filters and search type.","operationId":"search_knowledge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VectorSearchRequestSchema"}}},"required":true},"responses":{"200":{"description":"Search results retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_VectorSearchResult_"},"example":{"data":[{"id":"doc_123","content":"Jordan Mitchell - Software Engineer with skills in JavaScript, React, Python","name":"cv_1","meta_data":{"page":1,"chunk":1},"usage":{"total_tokens":14},"reranking_score":0.95,"content_id":"content_456"}],"meta":{"page":1,"limit":20,"total_pages":2,"total_count":35}}}}},"400":{"description":"Invalid search parameters"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"No documents found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/knowledge/config":{"get":{"tags":["Knowledge"],"summary":"Get Config","description":"Retrieve available readers, chunkers, and configuration options for content processing. This endpoint provides metadata about supported file types, processing strategies, and filters.","operationId":"get_knowledge_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Knowledge configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponseSchema"},"example":{"readers":{"website":{"id":"website","name":"WebsiteReader","description":"Reads website files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"firecrawl":{"id":"firecrawl","name":"FirecrawlReader","description":"Reads firecrawl files","chunkers":["SemanticChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"youtube":{"id":"youtube","name":"YoutubeReader","description":"Reads youtube files","chunkers":["RecursiveChunker","AgenticChunker","DocumentChunker","SemanticChunker","FixedSizeChunker"]},"web_search":{"id":"web_search","name":"WebSearchReader","description":"Reads web_search files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"arxiv":{"id":"arxiv","name":"ArxivReader","description":"Reads arxiv files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"csv":{"id":"csv","name":"CsvReader","description":"Reads csv files","chunkers":["RowChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"docling":{"id":"docling","name":"DoclingReader","description":"Converts multiple document formats like PDF, DOCX, PPTX, images, HTML, etc. using IBM's Docling library","chunkers":["AgenticChunker","CodeChunker","DocumentChunker","FixedSizeChunker","RecursiveChunker","SemanticChunker"]},"docx":{"id":"docx","name":"DocxReader","description":"Reads docx files","chunkers":["DocumentChunker","FixedSizeChunker","SemanticChunker","AgenticChunker","RecursiveChunker"]},"gcs":{"id":"gcs","name":"GcsReader","description":"Reads gcs files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"json":{"id":"json","name":"JsonReader","description":"Reads json files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"markdown":{"id":"markdown","name":"MarkdownReader","description":"Reads markdown files","chunkers":["MarkdownChunker","DocumentChunker","AgenticChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"pdf":{"id":"pdf","name":"PdfReader","description":"Reads pdf files","chunkers":["DocumentChunker","FixedSizeChunker","AgenticChunker","SemanticChunker","RecursiveChunker"]},"text":{"id":"text","name":"TextReader","description":"Reads text files","chunkers":["CodeChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]}},"readersForType":{"url":["url","website","firecrawl","youtube","web_search","gcs"],"youtube":["youtube"],"text":["web_search"],"topic":["arxiv"],"file":["csv","gcs"],".csv":["csv","field_labeled_csv","docling"],".xlsx":["excel","docling"],".xls":["excel"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["excel"],"application/vnd.ms-excel":["excel"],".docx":["docx","docling"],".dotx":["docling"],".docm":["docling"],".dotm":["docling"],".pptx":["docling","pptx"],".potx":["docling"],".ppsx":["docling"],".pptm":["docling"],".ppsm":["docling"],".potm":["docling"],".doc":["docx"],".json":["json"],".md":["markdown","docling"],".pdf":["pdf","docling"],".txt":["text"],".html":["docling"],".htm":["docling"],".xhtml":["docling"],".xml":["docling"],".nxml":["docling"],".xbrl":["docling"],".adoc":["docling"],".asciidoc":["docling"],".asc":["docling"],".xlsm":["docling"],".tex":["docling"],".latex":["docling"],".tar.gz":["docling"],".vtt":["docling"],".png":["docling"],".jpeg":["docling"],".jpg":["docling"],".tiff":["docling"],".tif":["docling"],".bmp":["docling"],".webp":["docling"],".wav":["docling"],".mp3":["docling"],".m4a":["docling"],".aac":["docling"],".ogg":["docling"],".flac":["docling"],".mp4":["docling"],".avi":["docling"],".mov":["docling"]},"chunkers":{"AgenticChunker":{"key":"AgenticChunker","name":"AgenticChunker","description":"Chunking strategy that uses an LLM to determine natural breakpoints in the text","metadata":{"chunk_size":5000}},"CodeChunker":{"key":"CodeChunker","name":"CodeChunker","description":"The CodeChunker splits code into chunks based on its structure, leveraging Abstract Syntax Trees (ASTs) to create contextually relevant segments","metadata":{"chunk_size":2048}},"DocumentChunker":{"key":"DocumentChunker","name":"DocumentChunker","description":"A chunking strategy that splits text based on document structure like paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"FixedSizeChunker":{"key":"FixedSizeChunker","name":"FixedSizeChunker","description":"Chunking strategy that splits text into fixed-size chunks with optional overlap","metadata":{"chunk_size":5000,"chunk_overlap":0}},"MarkdownChunker":{"key":"MarkdownChunker","name":"MarkdownChunker","description":"A chunking strategy that splits markdown based on structure like headers, paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RecursiveChunker":{"key":"RecursiveChunker","name":"RecursiveChunker","description":"Chunking strategy that recursively splits text into chunks by finding natural break points","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RowChunker":{"key":"RowChunker","name":"RowChunker","description":"RowChunking chunking strategy","metadata":{}},"SemanticChunker":{"key":"SemanticChunker","name":"SemanticChunker","description":"Chunking strategy that splits text into semantic chunks using chonkie","metadata":{"chunk_size":5000}}},"vector_dbs":[{"id":"vector_db_1","name":"Vector DB 1","description":"Vector DB 1 description","search_types":["vector","keyword","hybrid"]}],"filters":["filter_tag_1","filter_tag2"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources":{"get":{"tags":["Knowledge"],"summary":"List Content Sources","description":"List all registered content sources (S3, GCS, SharePoint, GitHub) for the knowledge base.","operationId":"list_content_sources","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Content sources retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"title":"Response List Content Sources"},"example":[{"id":"company-s3","name":"Company Documents","type":"s3","prefix":"documents/"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Knowledge base not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources/{source_id}/files":{"get":{"tags":["Knowledge"],"summary":"List Files in Source","description":"List available files and folders in a specific content source. Supports pagination and folder navigation.","operationId":"list_source_files","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the content source","title":"Source Id"},"description":"ID of the content source"},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Path prefix to filter files","title":"Prefix"},"description":"Path prefix to filter files"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of files per page","default":100,"title":"Limit"},"description":"Number of files per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"delimiter","in":"query","required":false,"schema":{"type":"string","description":"Folder delimiter (enables folder grouping)","default":"/","title":"Delimiter"},"description":"Folder delimiter (enables folder grouping)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Files listed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceFilesResponseSchema"},"example":{"source_id":"company-s3","source_name":"Company Documents","prefix":"reports/","folders":[{"prefix":"reports/2024/","name":"2024","is_empty":false}],"files":[{"key":"reports/annual-summary.pdf","name":"annual-summary.pdf","size":102400,"last_modified":"2024-01-15T10:30:00Z","content_type":"application/pdf"}],"meta":{"page":1,"limit":100,"total_pages":1,"total_count":1}}}}},"400":{"description":"Unsupported source type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Knowledge base or content source not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces":{"get":{"tags":["Traces","Traces"],"summary":"List Traces","description":"Retrieve a paginated list of execution traces with optional filtering.\n\n**Traces provide observability into:**\n- Agent execution flows\n- Model invocations and token usage\n- Tool calls and their results\n- Errors and performance bottlenecks\n\n**Filtering Options:**\n- By run, session, user, or agent ID\n- By status (OK, ERROR)\n- By time range\n\n**Pagination:**\n- Use `page` (1-indexed) and `limit` parameters\n- Response includes pagination metadata (total_pages, total_count, etc.)\n\n**Response Format:**\nReturns summary information for each trace. Use GET `/traces/{trace_id}` for detailed hierarchy.","operationId":"get_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run ID","title":"Run Id"},"description":"Filter by run ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status (OK, ERROR)","title":"Status"},"description":"Filter by status (OK, ERROR)"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of traces per page","default":20,"title":"Limit"},"description":"Number of traces per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"responses":{"200":{"description":"List of traces retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSummary_"},"example":{"data":[{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","total_spans":4,"error_count":0,"input":"What is the stock price of NVDA?","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"agent_stock","created_at":"2025-11-19T10:30:00+00:00"}],"meta":{"page":1,"limit":20,"total_pages":5,"total_count":95}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/filter-schema":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Filter Schema","description":"Returns the available filterable fields, their types, valid operators, and enum values.\n\nThe frontend uses this to dynamically build the filter bar UI:\n- Field dropdown populated from `fields[].key`\n- Operator dropdown changes per field type\n- Value input shows autocomplete for enum fields (e.g., status)\n- Logical operators (AND, OR) for combining clauses","operationId":"get_traces_filter_schema","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterSchemaResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/traces/{trace_id}":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace or Span Detail","description":"Retrieve detailed trace information with hierarchical span tree, or a specific span within the trace.\n\n**Without span_id parameter:**\nReturns the full trace with hierarchical span tree:\n- Trace metadata (ID, status, duration, context)\n- Hierarchical tree of all spans\n- Each span includes timing, status, and type-specific metadata\n\n**With span_id parameter:**\nReturns details for a specific span within the trace:\n- Span metadata (ID, name, type, timing)\n- Status and error information\n- Type-specific attributes (model, tokens, tool params, etc.)\n\n**Span Hierarchy (full trace):**\nThe `tree` field contains root spans, each with potential `children`.\nThis recursive structure represents the execution flow:\n```\nAgent.run (root)\n \u251c\u2500 LLM.invoke\n \u251c\u2500 Tool.execute\n \u2502 \u2514\u2500 LLM.invoke (nested)\n \u2514\u2500 LLM.invoke\n```\n\n**Span Types:**\n- `AGENT`: Agent execution with input/output\n- `LLM`: Model invocations with tokens and prompts\n- `TOOL`: Tool calls with parameters and results","operationId":"get_trace","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}},{"name":"span_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Span ID to retrieve specific span","title":"Span Id"},"description":"Optional: Span ID to retrieve specific span"},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Run ID to retrieve trace for","title":"Run Id"},"description":"Optional: Run ID to retrieve trace for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query trace from","title":"Db Id"},"description":"Database ID to query trace from"}],"responses":{"200":{"description":"Trace or span detail retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TraceDetail"},{"$ref":"#/components/schemas/TraceNode"}],"title":"Response Get Trace"},"examples":{"full_trace":{"summary":"Full trace with hierarchy (no span_id)","value":{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","end_time":"2025-11-19T10:30:01.200000+00:00","total_spans":4,"error_count":0,"input":"What is Tesla stock price?","output":"The current price of Tesla (TSLA) is $245.67.","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"stock_agent","created_at":"2025-11-19T10:30:00+00:00","tree":[{"id":"span1","name":"Stock_Price_Agent.run","type":"AGENT","duration":"1.2s","status":"OK","spans":[]}]}},"single_span":{"summary":"Single span detail (with span_id)","value":{"id":"span2","name":"gpt-4o-mini.invoke","type":"LLM","duration":"800ms","status":"OK","metadata":{"model":"gpt-4o-mini","input_tokens":120}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Trace or span not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/trace_session_stats":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Statistics by Session","description":"Retrieve aggregated trace statistics grouped by session ID with pagination.\n\n**Provides insights into:**\n- Total traces per session\n- First and last trace timestamps per session\n- Associated user and agent information\n\n**Filtering Options:**\n- By user ID\n- By agent ID\n\n**Use Cases:**\n- Monitor session-level activity\n- Track conversation flows\n- Identify high-activity sessions\n- Analyze user engagement patterns","operationId":"get_trace_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of sessions per page","default":20,"title":"Limit"},"description":"Number of sessions per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"}],"responses":{"200":{"description":"Trace statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"},"example":{"data":[{"session_id":"37029bc6-1794-4ba8-a629-1efedc53dcad","user_id":"kaustubh@agno.com","agent_id":"hackernews-agent","total_traces":5,"first_trace_at":"2025-11-19T10:15:16+00:00","last_trace_at":"2025-11-19T10:21:30+00:00"}],"meta":{"page":1,"limit":20,"total_pages":3,"total_count":45}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/search":{"post":{"tags":["Traces","Traces"],"summary":"Search Traces with Advanced Filters","description":"Search traces using the FilterExpr DSL for complex, composable queries.\n\n**Group By Mode:**\n- `run` (default): Returns `PaginatedResponse[TraceDetail]` with full span trees\n- `session`: Returns `PaginatedResponse[TraceSessionStats]` with aggregated session stats\n\n**Supported Operators:**\n- Comparison: `EQ`, `NEQ`, `GT`, `GTE`, `LT`, `LTE`\n- Inclusion: `IN`\n- String matching: `CONTAINS` (case-insensitive substring), `STARTSWITH` (prefix)\n- Logical: `AND`, `OR`, `NOT`\n\n**Filterable Fields:**\ntrace_id, name, status, start_time, end_time, duration_ms, run_id, session_id, user_id, agent_id, team_id, workflow_id, created_at\n\n**Example Request Body (runs):**\n```json\n{\n \"filter\": {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n}\n```\n\n**Example Request Body (sessions):**\n```json\n{\n \"filter\": {\"op\": \"CONTAINS\", \"key\": \"agent_id\", \"value\": \"stock\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n}\n```","operationId":"search_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PaginatedResponse_TraceDetail_"},{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"}],"title":"Response Search Traces"}}}},"400":{"description":"Invalid filter expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/all/migrate":{"post":{"tags":["Database"],"summary":"Migrate All Databases","description":"Migrate all database schemas to the given target version. If a target version is not provided, all databases will be migrated to the latest version.","operationId":"migrate_all_databases","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"All databases migrated successfully","content":{"application/json":{"schema":{},"example":{"message":"All databases migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/{db_id}/migrate":{"post":{"tags":["Database"],"summary":"Migrate Database","description":"Migrate the given database schema to the given target version. If a target version is not provided, the database will be migrated to the latest version.","operationId":"migrate_database","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"Database migrated successfully","content":{"application/json":{"schema":{},"example":{"message":"Database migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Database not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components":{"get":{"tags":["Components"],"summary":"List Components","description":"Retrieve a paginated list of components with optional filtering by type.","operationId":"list_components","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ComponentType"},{"type":"null"}],"description":"Filter by type: agent, team, workflow","title":"Component Type"},"description":"Filter by type: agent, team, workflow"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ComponentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Component","description":"Create a new component (agent, team, or workflow) with initial config.","operationId":"create_component","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}":{"get":{"tags":["Components"],"summary":"Get Component","description":"Retrieve a component by ID.","operationId":"get_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Components"],"summary":"Update Component","description":"Partially update a component by ID.","operationId":"update_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentUpdate","description":"Component fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Component","description":"Soft-delete a component by ID. Component configs and links remain stored.","operationId":"delete_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs":{"get":{"tags":["Components"],"summary":"List Configs","description":"List all configs for a component.","operationId":"list_configs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"include_config","in":"query","required":false,"schema":{"type":"boolean","description":"Include full config blob","default":true,"title":"Include Config"},"description":"Include full config blob"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComponentConfigResponse"},"title":"Response List Configs"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Config Version","description":"Create a new config version for a component.","operationId":"create_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigCreate","description":"Config data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}":{"patch":{"tags":["Components"],"summary":"Update Draft Config","description":"Update an existing draft config. Cannot update published configs.","operationId":"update_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigUpdate","description":"Config fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Components"],"summary":"Get Config Version","description":"Get a specific config version by number.","operationId":"get_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Config Version","description":"Delete a specific draft config version. Cannot delete published or current configs.","operationId":"delete_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/current":{"get":{"tags":["Components"],"summary":"Get Current Config","description":"Get the current config version for a component.","operationId":"get_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}/set-current":{"post":{"tags":["Components"],"summary":"Set Current Config Version","description":"Set a published config version as current (for rollback).","operationId":"set_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/schedules":{"get":{"tags":["Schedules"],"summary":"List Schedules","operationId":"list_schedules_schedules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Schedules"],"summary":"Create Schedule","operationId":"create_schedule_schedules_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule","operationId":"get_schedule_schedules__schedule_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Schedules"],"summary":"Update Schedule","operationId":"update_schedule_schedules__schedule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Schedules"],"summary":"Delete Schedule","operationId":"delete_schedule_schedules__schedule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}/enable":{"post":{"tags":["Schedules"],"summary":"Enable Schedule","operationId":"enable_schedule_schedules__schedule_id__enable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}/disable":{"post":{"tags":["Schedules"],"summary":"Disable Schedule","operationId":"disable_schedule_schedules__schedule_id__disable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}/trigger":{"post":{"tags":["Schedules"],"summary":"Trigger Schedule","operationId":"trigger_schedule_schedules__schedule_id__trigger_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}/runs":{"get":{"tags":["Schedules"],"summary":"List Schedule Runs","operationId":"list_schedule_runs_schedules__schedule_id__runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleRunResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/schedules/{schedule_id}/runs/{run_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule Run","operationId":"get_schedule_run_schedules__schedule_id__runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals":{"get":{"tags":["Approvals"],"summary":"List Approvals","operationId":"list_approvals_approvals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","approved","rejected","expired","cancelled"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"source_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"}},{"name":"approval_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["required","audit"],"type":"string"},{"type":"null"}],"title":"Approval Type"}},{"name":"pause_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"schedule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"}},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ApprovalResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/count":{"get":{"tags":["Approvals"],"summary":"Get Approval Count","operationId":"get_approval_count_approvals_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalCountResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/{approval_id}/status":{"get":{"tags":["Approvals"],"summary":"Get Approval Status","operationId":"get_approval_status_approvals__approval_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/{approval_id}":{"get":{"tags":["Approvals"],"summary":"Get Approval","operationId":"get_approval_approvals__approval_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Approvals"],"summary":"Delete Approval","operationId":"delete_approval_approvals__approval_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/{approval_id}/resolve":{"post":{"tags":["Approvals"],"summary":"Resolve Approval","operationId":"resolve_approval_approvals__approval_id__resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResolve"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/service-accounts":{"post":{"tags":["Service Accounts"],"summary":"Create Service Account","description":"Mint a service account token. The plaintext token is returned exactly once.","operationId":"create_service_account_service_accounts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Service Accounts"],"summary":"List Service Accounts","description":"List service accounts. Returns metadata and display prefixes only - never hashes or plaintext.","operationId":"list_service_accounts_service_accounts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Revoked"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ServiceAccountResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/service-accounts/{service_account_id}":{"delete":{"tags":["Service Accounts"],"summary":"Revoke Service Account","description":"Revoke an existing service account.\n\nTakes effect immediately on this worker (the local verification cache entry is evicted) and within the cache TTL on other workers.","operationId":"revoke_service_account_service_accounts__service_account_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"service_account_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Service account not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/registry":{"get":{"tags":["Registry"],"summary":"List Registry","description":"List all resources in the registry with optional filtering.","operationId":"list_registry","security":[{"HTTPBearer":[]}],"parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RegistryResourceType"},{"type":"null"}],"description":"Filter by resource type","title":"Resource Type"},"description":"Filter by resource type"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (partial match)","title":"Name"},"description":"Filter by name (partial match)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_RegistryContentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}}},"components":{"schemas":{"ActivityMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"activity","title":"Role","default":"activity"},"activityType":{"type":"string","title":"Activitytype"},"content":{"additionalProperties":true,"type":"object","title":"Content"}},"additionalProperties":true,"type":"object","required":["id","activityType","content"],"title":"ActivityMessage","description":"An activity progress message emitted between chat messages."},"AgentResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"extra_messages":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Messages"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"AgentResponse"},"AgentSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_session_id":{"type":"string","title":"Agent Session Id","description":"Unique agent session identifier"},"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID used in this session"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"agent_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Data","description":"Agent-specific data"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["agent_session_id","session_id","session_name"],"title":"AgentSessionDetailSchema"},"AgentSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the agent"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the agent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the agent"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the agent"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","title":"AgentSummaryResponse"},"ApprovalCountResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"ApprovalCountResponse","description":"Response model for pending approval count."},"ApprovalResolve":{"properties":{"status":{"type":"string","pattern":"^(approved|rejected)$","title":"Status"},"resolved_by":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Resolved By"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"}},"type":"object","required":["status"],"title":"ApprovalResolve","description":"Request body for resolving (approve/reject) an approval."},"ApprovalResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"},"source_type":{"type":"string","title":"Source Type"},"approval_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Type"},"pause_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Args"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"},"schedule_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Run Id"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"},"run_status":{"anyOf":[{"$ref":"#/components/schemas/RunStatus"},{"type":"null"}]}},"type":"object","required":["id","run_id","session_id","status","source_type"],"title":"ApprovalResponse","description":"Response model for a single approval."},"ApprovalStatusResponse":{"properties":{"approval_id":{"type":"string","title":"Approval Id"},"status":{"type":"string","title":"Status"},"run_id":{"type":"string","title":"Run Id"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"}},"type":"object","required":["approval_id","status","run_id"],"title":"ApprovalStatusResponse","description":"Lightweight response model for polling approval status."},"Artifact":{"properties":{"artifactId":{"type":"string","title":"Artifactid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"}},"type":"object","required":["artifactId","parts"],"title":"Artifact","description":"Represents a file, data structure, or other resource generated by an agent during a task."},"AssistantMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"assistant","title":"Role","default":"assistant"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"},"toolCalls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},{"type":"null"}],"title":"Toolcalls"}},"additionalProperties":true,"type":"object","required":["id"],"title":"AssistantMessage","description":"An assistant message."},"AudioInputContent":{"properties":{"type":{"type":"string","const":"audio","title":"Type","default":"audio"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"AudioInputContent","description":"An audio input content fragment."},"BackgroundRunResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the background run."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the background run."},"status":{"type":"string","title":"Status","description":"Initial run status."}},"type":"object","required":["run_id","session_id","status"],"title":"BackgroundRunResponse"},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"BadRequestResponse","example":{"detail":"Bad request","error_code":"BAD_REQUEST"}},"BinaryInputContent":{"properties":{"type":{"type":"string","const":"binary","title":"Type","default":"binary"},"mimeType":{"type":"string","title":"Mimetype"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"additionalProperties":true,"type":"object","required":["mimeType"],"title":"BinaryInputContent","description":"A deprecated binary payload reference in a multimodal user message."},"Body_continue_agent_run":{"properties":{"tools":{"type":"string","title":"Tools","description":"JSON string of tool call results to continue the paused run","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Optional new user-message text to append to the run before resuming. Use for continuing a COMPLETED run with a follow-up, or adding context to a RUNNING/ERROR resume."},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","description":"When true, clone the run with a new ``run_id`` before resuming. The original is untouched; the clone becomes a sibling within the same session, with ``forked_from_run_id`` set.","default":false},"regenerate":{"type":"boolean","title":"Regenerate","description":"Sugar: regenerate the last response of this run. Auto-computes ``continue_from='last_user'`` to land just after the last user message. Pair with ``additional_instructions`` to steer the new output. By default the original response is hidden from history (replaced); pass ``replace_original=false`` to keep both the original and the regenerated response visible side by side.","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original","description":"Only valid with ``regenerate=true``. Controls history visibility of the original response; the original run is always retained in storage. Defaults to true: the original is marked REGENERATED and hidden from history so the new response replaces it. Pass false to keep both the original and regenerated responses visible."},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions","description":"Only valid with ``regenerate=true``: extra guidance appended as a user message before re-generation. Friendly alias for ``input``."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run continue in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false}},"type":"object","title":"Body_continue_agent_run"},"Body_continue_team_run":{"properties":{"requirements":{"type":"string","title":"Requirements","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input"},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","default":false},"regenerate":{"type":"boolean","title":"Regenerate","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original"},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"stream":{"type":"boolean","title":"Stream","default":true},"background":{"type":"boolean","title":"Background","default":false}},"type":"object","title":"Body_continue_team_run"},"Body_continue_workflow_run":{"properties":{"step_requirements":{"type":"string","title":"Step Requirements","description":"JSON string of step requirement objects with resolution status","default":""},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}},"type":"object","title":"Body_continue_workflow_run"},"Body_create_agent_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the agent"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Agent version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic agent construction"}},"type":"object","required":["message"],"title":"Body_create_agent_run"},"Body_create_team_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the team"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"monitor":{"type":"boolean","title":"Monitor","description":"Enable monitoring and logging for this run","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Team version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic team construction"}},"type":"object","required":["message"],"title":"Body_create_team_run"},"Body_create_workflow_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the workflow"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run workflow in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Workflow version to use for this run"},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow construction"}},"type":"object","required":["message"],"title":"Body_create_workflow_run"},"Body_rename_session":{"properties":{"session_name":{"type":"string","title":"Session Name","description":"New name for the session"}},"type":"object","required":["session_name"],"title":"Body_rename_session"},"Body_resume_agent_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_agent_run_stream"},"Body_resume_team_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_team_run_stream"},"Body_resume_workflow_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_workflow_run_stream"},"Body_update_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"Content metadata as JSON string"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"Reader ID. In Agno 2.7.4, local knowledge validates the value, but the content patch does not apply or persist the reader change."}},"type":"object","title":"Body_update_content"},"Body_upload_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated from file/URL if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description for context"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"URL to fetch content from (JSON array or single URL string)"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object for additional content properties"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File","description":"File to upload for processing"},"text_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Content","description":"Raw text content to process"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for content processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply during processing"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size to use for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap to use for processing"}},"type":"object","title":"Body_upload_content"},"Body_upload_remote_content":{"properties":{"config_id":{"type":"string","title":"Config Id","description":"ID of the configured remote content source (from /knowledge/config)"},"path":{"type":"string","title":"Path","description":"Path to file or folder in the remote source"},"source_params":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Params","description":"JSON object of per-request parameters forwarded to the source's factory. Used for provider-specific routing that shouldn't be baked into the config. Currently supported keys: GitHub accepts 'repo' ('owner/repo'), letting one configured GitHub source serve multiple repositories the credentials can access."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap for processing"}},"type":"object","required":["config_id","path"],"title":"Body_upload_remote_content"},"ChatConfig":{"properties":{"quick_prompts":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Quick Prompts"}},"type":"object","required":["quick_prompts"],"title":"ChatConfig","description":"Configuration for the Chat page of the AgentOS"},"ChunkerSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["key"],"title":"ChunkerSchema"},"ComponentConfigResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"version":{"type":"integer","title":"Version"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"type":"string","title":"Stage"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","version","stage","config","created_at"],"title":"ComponentConfigResponse"},"ComponentCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Display name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id","description":"Unique identifier for the entity. Auto-generated from name if not provided."},"component_type":{"$ref":"#/components/schemas/ComponentType","description":"Type of entity: agent, team, or workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config","description":"Optional configuration"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["name","component_type"],"title":"ComponentCreate"},"ComponentResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"component_type":{"$ref":"#/components/schemas/ComponentType"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","component_type","created_at"],"title":"ComponentResponse"},"ComponentType":{"type":"string","enum":["agent","team","workflow"],"title":"ComponentType"},"ComponentUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"component_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"}},"type":"object","title":"ComponentUpdate"},"ConfigCreate":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config","description":"The configuration data"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Optional version number"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links","description":"Optional links to child components"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["config"],"title":"ConfigCreate"},"ConfigResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the OS instance"},"available_models":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Models","description":"List of available models"},"os_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Database","description":"ID of the database used for the OS instance"},"databases":{"items":{"type":"string"},"type":"array","title":"Databases","description":"List of database IDs used by the components of the OS instance"},"chat":{"anyOf":[{"$ref":"#/components/schemas/ChatConfig"},{"type":"null"}],"description":"Chat configuration"},"manifest":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Manifest"},"type":"object"},{"type":"null"}],"title":"Manifest","description":"Per-entity UI metadata keyed by agent/team/workflow id"},"session":{"anyOf":[{"$ref":"#/components/schemas/SessionConfig"},{"type":"null"}],"description":"Session configuration"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/MetricsConfig"},{"type":"null"}],"description":"Metrics configuration"},"memory":{"anyOf":[{"$ref":"#/components/schemas/MemoryConfig"},{"type":"null"}],"description":"Memory configuration"},"learning":{"anyOf":[{"$ref":"#/components/schemas/LearningConfig"},{"type":"null"}],"description":"Learning configuration"},"knowledge":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeConfig"},{"type":"null"}],"description":"Knowledge configuration"},"evals":{"anyOf":[{"$ref":"#/components/schemas/EvalsConfig"},{"type":"null"}],"description":"Evaluations configuration"},"traces":{"anyOf":[{"$ref":"#/components/schemas/TracesConfig"},{"type":"null"}],"description":"Traces configuration"},"agents":{"items":{"$ref":"#/components/schemas/AgentSummaryResponse"},"type":"array","title":"Agents","description":"List of registered agents"},"teams":{"items":{"$ref":"#/components/schemas/TeamSummaryResponse"},"type":"array","title":"Teams","description":"List of registered teams"},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Workflows","description":"List of registered workflows"},"interfaces":{"items":{"$ref":"#/components/schemas/InterfaceResponse"},"type":"array","title":"Interfaces","description":"List of available interfaces"}},"type":"object","required":["os_id","databases","agents","teams","workflows","interfaces"],"title":"ConfigResponse","description":"Response schema for the general config endpoint"},"ConfigResponseSchema":{"properties":{"readers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ReaderSchema"},"type":"object"},{"type":"null"}],"title":"Readers","description":"Available content readers"},"readersForType":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Readersfortype","description":"Mapping of content types to reader IDs"},"chunkers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ChunkerSchema"},"type":"object"},{"type":"null"}],"title":"Chunkers","description":"Available chunking strategies"},"filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filters","description":"Available filter tags"},"vector_dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/VectorDbSchema"},"type":"array"},{"type":"null"}],"title":"Vector Dbs","description":"Configured vector databases"},"remote_content_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"type":"array"},{"type":"null"}],"title":"Remote Content Sources","description":"Configured remote content sources (S3, GCS, SharePoint, GitHub)"}},"type":"object","title":"ConfigResponseSchema"},"ConfigUpdate":{"properties":{"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","title":"ConfigUpdate"},"ContentResponseSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the content"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"MIME type of the content"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"},"linked_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linked To","description":"ID of related content if linked"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata as key-value pairs"},"access_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Access Count","description":"Number of times content has been accessed"},"status":{"anyOf":[{"$ref":"#/components/schemas/ContentStatus"},{"type":"null"}],"description":"Processing status of the content"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message","description":"Status message or error details"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when content was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when content was last updated"}},"type":"object","required":["id"],"title":"ContentResponseSchema"},"ContentStatus":{"type":"string","enum":["processing","completed","failed"],"title":"ContentStatus","description":"Enumeration of possible content processing statuses."},"ContentStatusResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Content ID"},"status":{"$ref":"#/components/schemas/ContentStatus","description":"Current processing status of the content"},"status_message":{"type":"string","title":"Status Message","description":"Status message or error details","default":""}},"type":"object","required":["status"],"title":"ContentStatusResponse","description":"Response model for content status endpoint."},"Context":{"properties":{"description":{"type":"string","title":"Description"},"value":{"type":"string","title":"Value"}},"additionalProperties":true,"type":"object","required":["description","value"],"title":"Context","description":"Additional context for the agent."},"CreateSessionRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session ID (generated if not provided)"},"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Initial session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"}},"type":"object","title":"CreateSessionRequest"},"DataPart":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data"},"kind":{"type":"string","const":"data","title":"Kind","default":"data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["data"],"title":"DataPart","description":"Represents a structured data segment (e.g., JSON) within a message or artifact."},"DatabaseConfig_EvalsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/EvalsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[EvalsDomainConfig]"},"DatabaseConfig_LearningDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/LearningDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[LearningDomainConfig]"},"DatabaseConfig_MemoryDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MemoryDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MemoryDomainConfig]"},"DatabaseConfig_MetricsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MetricsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MetricsDomainConfig]"},"DatabaseConfig_SessionDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/SessionDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[SessionDomainConfig]"},"DatabaseConfig_TracesDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/TracesDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[TracesDomainConfig]"},"DayAggregatedMetrics":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the metrics record"},"agent_runs_count":{"type":"integer","minimum":0.0,"title":"Agent Runs Count","description":"Total number of agent runs"},"agent_sessions_count":{"type":"integer","minimum":0.0,"title":"Agent Sessions Count","description":"Total number of agent sessions"},"team_runs_count":{"type":"integer","minimum":0.0,"title":"Team Runs Count","description":"Total number of team runs"},"team_sessions_count":{"type":"integer","minimum":0.0,"title":"Team Sessions Count","description":"Total number of team sessions"},"workflow_runs_count":{"type":"integer","minimum":0.0,"title":"Workflow Runs Count","description":"Total number of workflow runs"},"workflow_sessions_count":{"type":"integer","minimum":0.0,"title":"Workflow Sessions Count","description":"Total number of workflow sessions"},"users_count":{"type":"integer","minimum":0.0,"title":"Users Count","description":"Total number of unique users"},"token_metrics":{"additionalProperties":true,"type":"object","title":"Token Metrics","description":"Token usage metrics (input, output, cached, etc.)"},"model_metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Model Metrics","description":"Metrics grouped by model (model_id, provider, count)"},"date":{"type":"string","format":"date-time","title":"Date","description":"Date for which these metrics are aggregated"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when metrics were created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when metrics were last updated"}},"type":"object","required":["id","agent_runs_count","agent_sessions_count","team_runs_count","team_sessions_count","workflow_runs_count","workflow_sessions_count","users_count","token_metrics","model_metrics","date","created_at","updated_at"],"title":"DayAggregatedMetrics","description":"Aggregated metrics for a given day"},"DeleteEvalRunsRequest":{"properties":{"eval_run_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Eval Run Ids","description":"List of evaluation run IDs to delete"}},"type":"object","required":["eval_run_ids"],"title":"DeleteEvalRunsRequest"},"DeleteMemoriesRequest":{"properties":{"memory_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Memory Ids","description":"List of memory IDs to delete"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID to filter memories for deletion"}},"type":"object","required":["memory_ids"],"title":"DeleteMemoriesRequest"},"DeleteSessionRequest":{"properties":{"session_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Session Ids","description":"List of session IDs to delete"},"session_types":{"items":{"$ref":"#/components/schemas/SessionType"},"type":"array","minItems":1,"title":"Session Types","description":"Types of sessions to delete"}},"type":"object","required":["session_ids","session_types"],"title":"DeleteSessionRequest"},"DeveloperMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"developer","title":"Role","default":"developer"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"DeveloperMessage","description":"A developer message."},"DocumentInputContent":{"properties":{"type":{"type":"string","const":"document","title":"Type","default":"document"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"DocumentInputContent","description":"A document input content fragment."},"EvalFilterType":{"type":"string","enum":["agent","team","workflow"],"title":"EvalFilterType"},"EvalRunInput":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID to evaluate"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID to evaluate"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID to use for evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation to run (accuracy, performance, or reliability)"},"input":{"type":"string","minLength":1,"title":"Input","description":"Input text/query for the evaluation"},"additional_guidelines":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Guidelines","description":"Additional guidelines for the evaluation"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for the evaluation"},"num_iterations":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Num Iterations","description":"Number of times to run the evaluation","default":1},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for this evaluation run"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output","description":"Expected output for accuracy evaluation"},"criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criteria","description":"Evaluation criteria for agent-as-judge evaluation"},"scoring_strategy":{"anyOf":[{"type":"string","enum":["numeric","binary"]},{"type":"null"}],"title":"Scoring Strategy","description":"Scoring strategy: 'numeric' (1-10 with threshold) or 'binary' (PASS/FAIL)","default":"binary"},"threshold":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Threshold","description":"Score threshold for pass/fail (1-10), only used with numeric scoring","default":7},"warmup_runs":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Warmup Runs","description":"Number of warmup runs before measuring performance","default":0},"expected_tool_calls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expected Tool Calls","description":"Expected tool calls for reliability evaluation"},"allow_additional_tool_calls":{"type":"boolean","title":"Allow Additional Tool Calls","description":"When True, tool calls not in expected_tool_calls are allowed (subset matching)","default":false},"expected_tool_call_arguments":{"anyOf":[{"additionalProperties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Expected Tool Call Arguments","description":"Expected arguments for specific tool calls, e.g. {\"tool_name\": {\"arg_name\": \"expected_value\"}} or {\"tool_name\": [{\"arg_name\": \"val1\"}, {\"arg_name\": \"val2\"}]}"}},"type":"object","required":["eval_type","input"],"title":"EvalRunInput"},"EvalSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the evaluation run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that was evaluated"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID used in evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that was evaluated"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was evaluated"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the evaluation run"},"evaluated_component_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluated Component Name","description":"Name of the evaluated component"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation (accuracy, performance, or reliability)"},"eval_data":{"additionalProperties":true,"type":"object","title":"Eval Data","description":"Evaluation results and metrics"},"eval_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eval Input","description":"Input parameters used for the evaluation"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when evaluation was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when evaluation was last updated"}},"type":"object","required":["id","eval_type","eval_data"],"title":"EvalSchema"},"EvalType":{"type":"string","enum":["accuracy","agent_as_judge","performance","reliability"],"title":"EvalType"},"EvalsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_EvalsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"EvalsConfig","description":"Configuration for the Evals domain of the AgentOS"},"EvalsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"EvalsDomainConfig","description":"Configuration for the Evals domain of the AgentOS"},"FilePart":{"properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/FileWithBytes"},{"$ref":"#/components/schemas/FileWithUri"}],"title":"File"},"kind":{"type":"string","const":"file","title":"Kind","default":"file"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["file"],"title":"FilePart","description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI."},"FileWithBytes":{"properties":{"bytes":{"type":"string","title":"Bytes"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["bytes"],"title":"FileWithBytes","description":"Represents a file with its content provided directly as a base64-encoded string."},"FileWithUri":{"properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uri":{"type":"string","title":"Uri"}},"type":"object","required":["uri"],"title":"FileWithUri","description":"Represents a file with its content located at a specific URI."},"FilterFieldSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Column/field name used in filter expressions"},"label":{"type":"string","title":"Label","description":"Human-readable display label for the UI"},"type":{"type":"string","title":"Type","description":"Field data type: string, number, datetime, enum"},"operators":{"items":{"type":"string"},"type":"array","title":"Operators","description":"List of valid filter operators for this field"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values","description":"Allowed enum values (for autocomplete/dropdown)"}},"type":"object","required":["key","label","type","operators"],"title":"FilterFieldSchema","description":"Schema describing a single filterable field for the frontend filter bar."},"FilterSchemaResponse":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FilterFieldSchema"},"type":"array","title":"Fields","description":"Available filterable fields"},"logical_operators":{"items":{"type":"string"},"type":"array","title":"Logical Operators","description":"Logical operators for combining filter clauses","default":["AND","OR"]}},"type":"object","required":["fields"],"title":"FilterSchemaResponse","description":"Response for the filter schema endpoint. Tells the FE what fields, operators, and values are available."},"FunctionCall":{"properties":{"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"additionalProperties":true,"type":"object","required":["name","arguments"],"title":"FunctionCall","description":"Name and arguments of a function call."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Health status of the service"},"instantiated_at":{"type":"string","format":"date-time","title":"Instantiated At","description":"Timestamp when service was instantiated"}},"type":"object","required":["status","instantiated_at"],"title":"HealthResponse","example":{"instantiated_at":"2025-06-10T12:00:00Z","status":"ok"}},"ImageInputContent":{"properties":{"type":{"type":"string","const":"image","title":"Type","default":"image"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"ImageInputContent","description":"An image input content fragment."},"InfoResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"agno_version":{"type":"string","title":"Agno Version","description":"Version of the agno framework"},"agent_count":{"type":"integer","title":"Agent Count","description":"Number of agents registered in the OS","default":0},"team_count":{"type":"integer","title":"Team Count","description":"Number of teams registered in the OS","default":0},"workflow_count":{"type":"integer","title":"Workflow Count","description":"Number of workflows registered in the OS","default":0},"mcp":{"$ref":"#/components/schemas/McpInfo","description":"MCP server availability for this OS instance"},"auth_mode":{"type":"string","enum":["none","security_key","jwt"],"title":"Auth Mode","description":"Authentication mode enforced on the REST/WS plane of this OS instance. MCP OAuth, when enabled, is described separately under `mcp.oauth`.","default":"none"}},"type":"object","required":["os_id","agno_version"],"title":"InfoResponse","description":"Response schema for the /info endpoint returning lightweight OS metadata."},"InputContentDataSource":{"properties":{"type":{"type":"string","const":"data","title":"Type","default":"data"},"value":{"type":"string","title":"Value"},"mimeType":{"type":"string","title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value","mimeType"],"title":"InputContentDataSource","description":"Inline base64-encoded source."},"InputContentUrlSource":{"properties":{"type":{"type":"string","const":"url","title":"Type","default":"url"},"value":{"type":"string","title":"Value"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value"],"title":"InputContentUrlSource","description":"URL-referenced source."},"InterfaceResponse":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the interface"},"version":{"type":"string","title":"Version","description":"Version of the interface"},"route":{"type":"string","title":"Route","description":"API route path"}},"type":"object","required":["type","version","route"],"title":"InterfaceResponse"},"InternalServerErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"InternalServerErrorResponse","example":{"detail":"Internal server error","error_code":"INTERNAL_SERVER_ERROR"}},"KnowledgeConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeDatabaseConfig"},"type":"array"},{"type":"null"}],"title":"Dbs"},"knowledge_instances":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeInstanceConfig"},"type":"array"},{"type":"null"}],"title":"Knowledge Instances"}},"type":"object","title":"KnowledgeConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeDatabaseConfig":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeDomainConfig"},{"type":"null"}]},"tables":{"items":{"type":"string"},"type":"array","title":"Tables","default":[]}},"type":"object","required":["db_id"],"title":"KnowledgeDatabaseConfig","description":"Configuration for a knowledge database with its tables"},"KnowledgeDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"KnowledgeDomainConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeInstanceConfig":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"db_id":{"type":"string","title":"Db Id"},"table":{"type":"string","title":"Table"}},"type":"object","required":["id","name","db_id","table"],"title":"KnowledgeInstanceConfig","description":"Configuration for a single knowledge instance"},"LearningConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_LearningDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"LearningConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningCreate":{"properties":{"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"content":{"additionalProperties":true,"type":"object","title":"Content","description":"The learning content payload"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID. When the request is authenticated, must match the JWT subject or be omitted/null (which creates a global / non-user-scoped record)."},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"}},"type":"object","required":["learning_type","content"],"title":"LearningCreate","description":"Request body for creating a learning record."},"LearningDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"LearningDomainConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningResponse":{"properties":{"learning_id":{"type":"string","title":"Learning Id","description":"Unique identifier for the learning record"},"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID (for entity-specific learnings)"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type (e.g. 'person', 'company')"},"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"The learning content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Creation timestamp (Unix epoch seconds)"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp (Unix epoch seconds)"}},"type":"object","required":["learning_id","learning_type"],"title":"LearningResponse","description":"A single learning record as returned by the API."},"LearningUpdate":{"properties":{"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Replacement content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Replacement metadata"}},"type":"object","title":"LearningUpdate","description":"Request body for updating a learning record. Identity fields are immutable."},"LearningUserStats":{"properties":{"user_id":{"type":"string","title":"User Id","description":"The user ID"},"last_learning_updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Learning Updated At","description":"Most recent learning update for this user (Unix epoch seconds)"}},"type":"object","required":["user_id"],"title":"LearningUserStats","description":"A user that owns learning records, with their most recent activity.\n\nUsed as a lightweight index for the per-user view: list users here, then drill into a\nsingle user's records via ``GET /learnings?user_id=...``. No per-user count is returned\n-- the user-scoped stores (``user_profile``, ``user_memory``) keep a single record per\nuser, so a record count would always be 1; the actual memory count lives in that\nrecord's ``content``."},"Manifest":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"},"quick_prompts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quick Prompts"}},"type":"object","title":"Manifest","description":"OS-level UI metadata for an agent/team/workflow.\n\nFields here are AgentOS UI metadata only. ``description`` is unrelated to\n``Agent.description`` / ``Team.description`` / ``Workflow.description``,\nwhich are sent to the model.\n\nRendering surfaces:\n- ``description``, ``labels``: home/landing card\n- ``quick_prompts``: chat page"},"McpInfo":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the MCP server is enabled on this OS instance","default":false},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Path where the MCP server is mounted, null when disabled"},"oauth":{"anyOf":[{"$ref":"#/components/schemas/McpOAuthInfo"},{"type":"null"}],"description":"OAuth discovery details when the MCP endpoint is OAuth-protected, null otherwise"}},"type":"object","title":"McpInfo","description":"MCP server availability for the /info endpoint."},"McpOAuthInfo":{"properties":{"authorization_servers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorization Servers","description":"Issuer URL(s) of the authorization server(s) protecting the MCP endpoint"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource","description":"RFC 9728 resource URL advertised for the MCP endpoint"}},"type":"object","title":"McpOAuthInfo","description":"OAuth discovery details for an MCP endpoint protected by ``AgentOS(mcp_auth=...)``."},"MemoryConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MemoryDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MemoryConfig","description":"Configuration for the Memory domain of the AgentOS"},"MemoryDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MemoryDomainConfig","description":"Configuration for the Memory domain of the AgentOS"},"Message":{"properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"kind":{"type":"string","const":"message","title":"Kind","default":"message"},"messageId":{"type":"string","title":"Messageid"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taskid"}},"type":"object","required":["messageId","parts","role"],"title":"Message","description":"Represents a single message in the conversation between a user and an agent."},"Meta":{"properties":{"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of results per page","default":20},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number","default":1}},"type":"object","title":"Meta","description":"Inline metadata schema for pagination."},"MetricsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MetricsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MetricsConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MetricsDomainConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsResponse":{"properties":{"metrics":{"items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"type":"array","title":"Metrics","description":"List of daily aggregated metrics"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp of the most recent metrics update"}},"type":"object","required":["metrics"],"title":"MetricsResponse"},"Model":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"Model"},"ModelResponse":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the model"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"ModelResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"NotFoundResponse","example":{"detail":"Not found","error_code":"NOT_FOUND"}},"OptimizeMemoriesRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID to optimize memories for"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model to use for optimization in format 'provider:model_id' (e.g., 'openai:gpt-4o-mini', 'anthropic:claude-3-5-sonnet-20241022', 'google:gemini-2.0-flash-exp'). If not specified, uses MemoryManager's default model (gpt-4o)."},"apply":{"type":"boolean","title":"Apply","description":"If True, apply optimization changes to database. If False, return preview only without saving.","default":true}},"type":"object","required":["user_id"],"title":"OptimizeMemoriesRequest","description":"Schema for memory optimization request"},"OptimizeMemoriesResponse":{"properties":{"memories":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Memories","description":"List of optimized memory objects"},"memories_before":{"type":"integer","minimum":0.0,"title":"Memories Before","description":"Number of memories before optimization"},"memories_after":{"type":"integer","minimum":0.0,"title":"Memories After","description":"Number of memories after optimization"},"tokens_before":{"type":"integer","minimum":0.0,"title":"Tokens Before","description":"Token count before optimization"},"tokens_after":{"type":"integer","minimum":0.0,"title":"Tokens After","description":"Token count after optimization"},"tokens_saved":{"type":"integer","minimum":0.0,"title":"Tokens Saved","description":"Number of tokens saved through optimization"},"reduction_percentage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Reduction Percentage","description":"Percentage of token reduction achieved"}},"type":"object","required":["memories","memories_before","memories_after","tokens_before","tokens_after","tokens_saved","reduction_percentage"],"title":"OptimizeMemoriesResponse","description":"Schema for memory optimization response"},"PaginatedResponse_ApprovalResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ApprovalResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ApprovalResponse]"},"PaginatedResponse_ComponentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ComponentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ComponentResponse]"},"PaginatedResponse_ContentResponseSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentResponseSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ContentResponseSchema]"},"PaginatedResponse_EvalSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EvalSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[EvalSchema]"},"PaginatedResponse_LearningResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningResponse]"},"PaginatedResponse_LearningUserStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningUserStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningUserStats]"},"PaginatedResponse_RegistryContentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RegistryContentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[RegistryContentResponse]"},"PaginatedResponse_ScheduleResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleResponse]"},"PaginatedResponse_ScheduleRunResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleRunResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleRunResponse]"},"PaginatedResponse_ServiceAccountResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ServiceAccountResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ServiceAccountResponse]"},"PaginatedResponse_SessionSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SessionSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[SessionSchema]"},"PaginatedResponse_TraceDetail_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceDetail"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceDetail]"},"PaginatedResponse_TraceSessionStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSessionStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSessionStats]"},"PaginatedResponse_TraceSummary_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSummary"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSummary]"},"PaginatedResponse_UserMemorySchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserMemorySchema]"},"PaginatedResponse_UserStatsSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserStatsSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserStatsSchema]"},"PaginatedResponse_VectorSearchResult_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VectorSearchResult"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[VectorSearchResult]"},"PaginationInfo":{"properties":{"page":{"type":"integer","minimum":0.0,"title":"Page","description":"Current page number (0-indexed)","default":0},"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of items per page","default":20},"total_pages":{"type":"integer","minimum":0.0,"title":"Total Pages","description":"Total number of pages","default":0},"total_count":{"type":"integer","minimum":0.0,"title":"Total Count","description":"Total count of items","default":0},"search_time_ms":{"type":"number","minimum":0.0,"title":"Search Time Ms","description":"Search execution time in milliseconds","default":0}},"type":"object","title":"PaginationInfo"},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/DataPart"}],"title":"Part"},"ReaderSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the reader"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the reader"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the reader's capabilities"},"chunkers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chunkers","description":"List of supported chunking strategies"}},"type":"object","required":["id"],"title":"ReaderSchema"},"ReasoningMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"reasoning","title":"Role","default":"reasoning"},"content":{"type":"string","title":"Content"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"ReasoningMessage","description":"A reasoning message containing the agent's internal reasoning process."},"RegistryContentResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/RegistryResourceType"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name","type"],"title":"RegistryContentResponse"},"RegistryResourceType":{"type":"string","enum":["tool","model","db","vector_db","schema","function","agent","team","knowledge","memory_manager","session_summary_manager"],"title":"RegistryResourceType","description":"Types of resources that can be stored in a registry."},"RemoteContentSourceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content source"},"name":{"type":"string","title":"Name","description":"Display name for the content source"},"type":{"type":"string","title":"Type","description":"Type of content source (s3, gcs, sharepoint, github, azureblob)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Default path prefix for this source"}},"type":"object","required":["id","name","type"],"title":"RemoteContentSourceSchema","description":"Schema for remote content source configuration."},"ResumeEntry":{"properties":{"interruptId":{"type":"string","title":"Interruptid"},"status":{"type":"string","enum":["resolved","cancelled"],"title":"Status"},"payload":{"anyOf":[{},{"type":"null"}],"title":"Payload"}},"additionalProperties":true,"type":"object","required":["interruptId","status"],"title":"ResumeEntry","description":"A per-interrupt response in the resume array of a RunAgentInput."},"Role":{"type":"string","enum":["agent","user"],"title":"Role","description":"Identifies the sender of the message. `user` for the client, `agent` for the service."},"RunAgentInput":{"properties":{"threadId":{"type":"string","title":"Threadid"},"runId":{"type":"string","title":"Runid"},"parentRunId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentrunid"},"state":{"title":"State"},"messages":{"items":{"oneOf":[{"$ref":"#/components/schemas/DeveloperMessage"},{"$ref":"#/components/schemas/SystemMessage"},{"$ref":"#/components/schemas/AssistantMessage"},{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/ToolMessage"},{"$ref":"#/components/schemas/ActivityMessage"},{"$ref":"#/components/schemas/ReasoningMessage"}],"discriminator":{"propertyName":"role","mapping":{"activity":"#/components/schemas/ActivityMessage","assistant":"#/components/schemas/AssistantMessage","developer":"#/components/schemas/DeveloperMessage","reasoning":"#/components/schemas/ReasoningMessage","system":"#/components/schemas/SystemMessage","tool":"#/components/schemas/ToolMessage","user":"#/components/schemas/UserMessage"}}},"type":"array","title":"Messages"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","title":"Tools"},"context":{"items":{"$ref":"#/components/schemas/Context"},"type":"array","title":"Context"},"forwardedProps":{"title":"Forwardedprops"},"resume":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResumeEntry"},"type":"array"},{"type":"null"}],"title":"Resume"}},"additionalProperties":true,"type":"object","required":["threadId","runId","state","messages","tools","context","forwardedProps"],"title":"RunAgentInput","description":"Input for running an agent."},"RunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that executed this run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"RunSchema"},"RunStatus":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","PAUSED","CANCELLED","ERROR","REGENERATED"],"title":"RunStatus","description":"State of the main run response"},"ScheduleCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"cron_expr":{"type":"string","maxLength":128,"title":"Cron Expr"},"endpoint":{"type":"string","maxLength":512,"title":"Endpoint"},"method":{"type":"string","maxLength":10,"title":"Method","default":"POST"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"type":"string","maxLength":64,"title":"Timezone","default":"UTC"},"timeout_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Timeout Seconds","default":3600},"max_retries":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Max Retries","default":0},"retry_delay_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Retry Delay Seconds","default":60}},"type":"object","required":["name","cron_expr","endpoint"],"title":"ScheduleCreate"},"ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"cron_expr":{"type":"string","title":"Cron Expr"},"timezone":{"type":"string","title":"Timezone"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"max_retries":{"type":"integer","title":"Max Retries"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","method","endpoint","cron_expr","timezone","timeout_seconds","max_retries","retry_delay_seconds","enabled"],"title":"ScheduleResponse"},"ScheduleRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"schedule_id":{"type":"string","title":"Schedule Id"},"attempt":{"type":"integer","title":"Attempt"},"triggered_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triggered At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"status":{"type":"string","title":"Status"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","schedule_id","attempt","status"],"title":"ScheduleRunResponse"},"ScheduleStateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","enabled"],"title":"ScheduleStateResponse","description":"Trimmed response for state-changing operations (enable/disable)."},"ScheduleUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"cron_expr":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Cron Expr"},"endpoint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Endpoint"},"method":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Method"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Timezone"},"timeout_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":1.0},{"type":"null"}],"title":"Timeout Seconds"},"max_retries":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Max Retries"},"retry_delay_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":1.0},{"type":"null"}],"title":"Retry Delay Seconds"}},"type":"object","title":"ScheduleUpdate"},"ScopeItem":{"properties":{"scope":{"type":"string","title":"Scope","description":"Scope string, e.g. 'agents:*:run'"},"effect":{"type":"string","enum":["allow","deny"],"title":"Effect","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["scope"],"title":"ScopeItem","description":"Write shape for one scope grant \u2014 the canonical RBAC payload for every scope-bearing API.\n\nEndpoints that take scopes accept these objects only (a bare string is a validation\nerror). ``effect`` is constrained here so every consumer rejects typos at the model\nlayer; whether ``deny`` is *semantically* legal stays per-endpoint (roles support\ndeny rules, service-account tokens are pure grants and reject it)."},"ScopeSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Scope id (always null here; kept for shape parity with the cloud RBAC API, which addresses scopes individually)"},"raw":{"type":"string","title":"Raw","description":"Original scope string, e.g. 'agents:*:run'"},"namespace":{"type":"string","title":"Namespace","description":"Resource namespace, e.g. 'agents'"},"sub_namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Namespace","description":"Specific resource id or wildcard '*'"},"permission":{"type":"string","title":"Permission","description":"Action, e.g. 'read' / 'run' / 'write'"},"value":{"type":"string","title":"Value","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["raw","namespace","permission"],"title":"ScopeSchema","description":"Read shape for one scope \u2014 the parsed RBAC payload shared by every scope-bearing API.\n\nMirrors the cloud RBAC scope shape ({raw, namespace, sub_namespace, permission, value})\nso a frontend renders scopes from any AgentOS API with one integration."},"SendMessageSuccessResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id"},"jsonrpc":{"type":"string","const":"2.0","title":"Jsonrpc","default":"2.0"},"result":{"anyOf":[{"$ref":"#/components/schemas/Task"},{"$ref":"#/components/schemas/Message"}],"title":"Result"}},"type":"object","required":["result"],"title":"SendMessageSuccessResponse","description":"Represents a successful JSON-RPC response for the `message/send` method."},"ServiceAccountCreate":{"properties":{"name":{"type":"string","maxLength":63,"title":"Name","description":"Machine identity name (lowercase slug), e.g. 'claude-code' or 'github-actions'"},"scopes":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScopeItem"},"type":"array"},{"type":"null"}],"title":"Scopes","description":"Scopes granted to the token, as {scope, effect} objects (the shared RBAC write shape; token scopes are grants, so only effect='allow' is accepted). Defaults to run and read scopes: agents:run, teams:run, workflows:run, sessions:read"},"expires_in_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Expires In Days","description":"Days until the token expires (default: 90)","default":90},"never_expires":{"type":"boolean","title":"Never Expires","description":"Mint a non-expiring token. Must be set explicitly; overrides expires_in_days.","default":false},"allow_privileged_scopes":{"type":"boolean","title":"Allow Privileged Scopes","description":"Required to grant privileged scopes: any write or delete action, the admin scope, or any service_accounts scope. Privileged tokens must be deliberate, never accidental.","default":false}},"type":"object","required":["name"],"title":"ServiceAccountCreate"},"ServiceAccountCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"token":{"type":"string","title":"Token","description":"The plaintext token. Shown exactly once - store it securely now."}},"type":"object","required":["id","name","principal","token_prefix","created_at","token"],"title":"ServiceAccountCreateResponse","description":"Returned once, at creation. The token is never retrievable again."},"ServiceAccountResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","name","principal","token_prefix","created_at"],"title":"ServiceAccountResponse","description":"Service account metadata. Never includes the token hash or plaintext."},"ServiceUnavailableResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ServiceUnavailableResponse","example":{"detail":"Service accounts not supported by the configured database"}},"SessionConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_SessionDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"SessionConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"SessionDomainConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier for the session"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state data of the session"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when session was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when session was last updated"},"session_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type","description":"Type of session: agent, team, or workflow"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["session_id","session_name"],"title":"SessionSchema"},"SessionType":{"type":"string","enum":["agent","team","workflow"],"title":"SessionType"},"SlackChallengeResponse":{"properties":{"challenge":{"type":"string","title":"Challenge","description":"Challenge string to echo back to Slack"}},"type":"object","required":["challenge"],"title":"SlackChallengeResponse"},"SlackEventResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"}},"type":"object","title":"SlackEventResponse"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"SourceFileSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Full path/key of the file"},"name":{"type":"string","title":"Name","description":"Display name (filename)"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"File size in bytes"},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified","description":"ISO 8601 timestamp of last modification"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"MIME type of the file"}},"type":"object","required":["key","name"],"title":"SourceFileSchema","description":"Schema for a file in a content source."},"SourceFilesResponseSchema":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"ID of the content source"},"source_name":{"type":"string","title":"Source Name","description":"Name of the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Prefix filter that was applied"},"folders":{"items":{"$ref":"#/components/schemas/SourceFolderSchema"},"type":"array","title":"Folders","description":"Subfolders at this level"},"files":{"items":{"$ref":"#/components/schemas/SourceFileSchema"},"type":"array","title":"Files","description":"List of files at this level"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["source_id","source_name","meta"],"title":"SourceFilesResponseSchema","description":"Response schema for listing files in a content source."},"SourceFolderSchema":{"properties":{"prefix":{"type":"string","title":"Prefix","description":"Full prefix to use for navigating into this folder"},"name":{"type":"string","title":"Name","description":"Display name of the folder"},"is_empty":{"type":"boolean","title":"Is Empty","description":"Whether the folder contains any files","default":false}},"type":"object","required":["prefix","name"],"title":"SourceFolderSchema","description":"Schema for a folder in a content source."},"SystemMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"system","title":"Role","default":"system"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"SystemMessage","description":"A system message."},"Task":{"properties":{"artifacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Artifact"},"type":"array"},{"type":"null"}],"title":"Artifacts"},"contextId":{"type":"string","title":"Contextid"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"History"},"id":{"type":"string","title":"Id"},"kind":{"type":"string","const":"task","title":"Kind","default":"task"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"status":{"$ref":"#/components/schemas/TaskStatus"}},"type":"object","required":["contextId","id","status"],"title":"Task","description":"Represents a single, stateful operation or conversation between a client and an agent."},"TaskState":{"type":"string","enum":["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"],"title":"TaskState","description":"Defines the lifecycle states of a Task."},"TaskStatus":{"properties":{"message":{"anyOf":[{"$ref":"#/components/schemas/Message"},{"type":"null"}]},"state":{"$ref":"#/components/schemas/TaskState"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp","examples":["2023-10-27T10:00:00Z"]}},"type":"object","required":["state"],"title":"TaskStatus","description":"Represents the status of a task at a specific point in time."},"TeamResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"members":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"$ref":"#/components/schemas/TeamResponse"}]},"type":"array"},{"type":"null"}],"title":"Members"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"TeamResponse"},"TeamRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the team run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that executed this run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the team run"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this team run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this team run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this team run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this team run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"TeamRunSchema"},"TeamSessionDetailSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID used in this session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of team interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"team_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Team Data","description":"Team-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"}},"type":"object","required":["session_id","session_name"],"title":"TeamSessionDetailSchema"},"TeamSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the team"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the team"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the team"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Team execution mode (coordinate, route, broadcast, tasks)"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the team leader"}},"type":"object","title":"TeamSummaryResponse"},"TelegramStatusResponse":{"properties":{"status":{"type":"string","title":"Status","default":"available"}},"type":"object","title":"TelegramStatusResponse"},"TelegramWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status"}},"type":"object","required":["status"],"title":"TelegramWebhookResponse"},"TextInputContent":{"properties":{"type":{"type":"string","const":"text","title":"Type","default":"text"},"text":{"type":"string","title":"Text"}},"additionalProperties":true,"type":"object","required":["text"],"title":"TextInputContent","description":"A text fragment in a multimodal user message."},"TextPart":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"TextPart","description":"Represents a text segment within a message or artifact."},"Tool":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{},{"type":"null"}],"title":"Parameters"}},"additionalProperties":true,"type":"object","required":["name","description"],"title":"Tool","description":"A tool definition."},"ToolCall":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/FunctionCall"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","function"],"title":"ToolCall","description":"A tool call, modelled after OpenAI tool calls."},"ToolMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"tool","title":"Role","default":"tool"},"content":{"type":"string","title":"Content"},"toolCallId":{"type":"string","title":"Toolcallid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content","toolCallId"],"title":"ToolMessage","description":"A tool result message."},"TraceDetail":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent/workflow"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the agent/workflow"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"},"tree":{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array","title":"Tree","description":"Hierarchical tree of spans (root nodes)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at","tree"],"title":"TraceDetail","description":"Detailed trace information with hierarchical span tree"},"TraceNode":{"properties":{"id":{"type":"string","title":"Id","description":"Span ID"},"name":{"type":"string","title":"Name","description":"Span name (e.g., 'agent.run', 'llm.invoke')"},"type":{"type":"string","title":"Type","description":"Span kind (AGENT, TEAM, WORKFLOW, LLM, TOOL)"},"duration":{"type":"string","title":"Duration","description":"Human-readable duration (e.g., '123ms', '1.5s')"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"End time (Pydantic auto-serializes to ISO 8601)"},"status":{"type":"string","title":"Status","description":"Status code (OK, ERROR)"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the span"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the span"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"spans":{"anyOf":[{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array"},{"type":"null"}],"title":"Spans","description":"Child spans in the trace hierarchy"},"step_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Type","description":"Workflow step type (Step, Condition, function, Agent, Team)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional span attributes and data"},"extra_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Data","description":"Flexible field for custom attributes and additional data"}},"type":"object","required":["id","name","type","duration","start_time","end_time","status"],"title":"TraceNode","description":"Recursive node structure for rendering trace hierarchy in the frontend"},"TraceSearchGroupBy":{"type":"string","enum":["run","session"],"title":"TraceSearchGroupBy","description":"Grouping options for trace search results."},"TraceSearchRequest":{"properties":{"filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter","description":"FilterExpr DSL as JSON dict. Supports operators: EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH, AND, OR, NOT."},"group_by":{"$ref":"#/components/schemas/TraceSearchGroupBy","description":"Grouping mode: 'run' returns individual TraceDetail, 'session' returns aggregated TraceSessionStats.","default":"run"},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number (1-indexed)","default":1},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"Number of traces per page (max 100)","default":20}},"type":"object","title":"TraceSearchRequest","description":"Request body for POST /traces/search with advanced filtering.\n\nThe filter field accepts a FilterExpr DSL dict supporting composable queries\nwith AND/OR/NOT logic and operators like EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH.\n\nExample for run grouping (default):\n {\n \"filter\": {\n \"op\": \"AND\",\n \"conditions\": [\n {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n {\"op\": \"CONTAINS\", \"key\": \"user_id\", \"value\": \"admin\"}\n ]\n },\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n }\n\nExample for session grouping:\n {\n \"filter\": {\"op\": \"EQ\", \"key\": \"agent_id\", \"value\": \"my-agent\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n }"},"TraceSessionStats":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID(s) used in the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID associated with the session"},"total_traces":{"type":"integer","title":"Total Traces","description":"Total number of traces in this session"},"first_trace_at":{"type":"string","format":"date-time","title":"First Trace At","description":"Time of first trace (Pydantic auto-serializes to ISO 8601)"},"last_trace_at":{"type":"string","format":"date-time","title":"Last Trace At","description":"Time of last trace (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["session_id","total_traces","first_trace_at","last_trace_at"],"title":"TraceSessionStats","description":"Aggregated trace statistics grouped by session"},"TraceSummary":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR, UNSET)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at"],"title":"TraceSummary","description":"Summary information for trace list view"},"TracesConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_TracesDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"TracesConfig","description":"Configuration for the Traces domain of the AgentOS"},"TracesDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"TracesDomainConfig","description":"Configuration for the Traces domain of the AgentOS"},"UnauthenticatedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"UnauthenticatedResponse","example":{"detail":"Unauthenticated access","error_code":"UNAUTHENTICATED"}},"UpdateEvalRunRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"New name for the evaluation run"}},"type":"object","required":["name"],"title":"UpdateEvalRunRequest"},"UpdateSessionRequest":{"properties":{"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Updated session name"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Updated session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Updated metadata"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary","description":"Session summary"}},"type":"object","title":"UpdateSessionRequest"},"UserMemoryCreateSchema":{"properties":{"memory":{"type":"string","maxLength":5000,"minLength":1,"title":"Memory","description":"Memory content text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags to categorize the memory"}},"type":"object","required":["memory"],"title":"UserMemoryCreateSchema","description":"Define the payload expected for creating a new user memory"},"UserMemorySchema":{"properties":{"memory_id":{"type":"string","title":"Memory Id","description":"Unique identifier for the memory"},"memory":{"type":"string","title":"Memory","description":"Memory content text"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags associated with the memory"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID associated with this memory"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with this memory"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when memory was last updated"}},"type":"object","required":["memory_id","memory"],"title":"UserMemorySchema"},"UserMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"user","title":"Role","default":"user"},"content":{"anyOf":[{"type":"string"},{"items":{"oneOf":[{"$ref":"#/components/schemas/TextInputContent"},{"$ref":"#/components/schemas/ImageInputContent"},{"$ref":"#/components/schemas/AudioInputContent"},{"$ref":"#/components/schemas/VideoInputContent"},{"$ref":"#/components/schemas/DocumentInputContent"},{"$ref":"#/components/schemas/BinaryInputContent"}],"discriminator":{"propertyName":"type","mapping":{"audio":"#/components/schemas/AudioInputContent","binary":"#/components/schemas/BinaryInputContent","document":"#/components/schemas/DocumentInputContent","image":"#/components/schemas/ImageInputContent","text":"#/components/schemas/TextInputContent","video":"#/components/schemas/VideoInputContent"}}},"type":"array"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"UserMessage","description":"A user message supporting text or multimodal content."},"UserStatsSchema":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"total_memories":{"type":"integer","minimum":0.0,"title":"Total Memories","description":"Total number of memories for this user"},"last_memory_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Memory Updated At","description":"Timestamp of the most recent memory update"}},"type":"object","required":["user_id","total_memories"],"title":"UserStatsSchema","description":"Schema for user memory statistics"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"ValidationErrorResponse","example":{"detail":"Validation error","error_code":"VALIDATION_ERROR"}},"VectorDbSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the vector database"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the vector database"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the vector database"},"search_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Search Types","description":"List of supported search types (vector, keyword, hybrid)"}},"type":"object","required":["id"],"title":"VectorDbSchema"},"VectorSearchRequestSchema":{"properties":{"query":{"type":"string","title":"Query","description":"The search query text"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database ID to search in"},"knowledge_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledge Id","description":"Knowledge base ID to search in"},"vector_db_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vector Db Ids","description":"List of vector database IDs to search in"},"search_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Type","description":"The type of search to perform (vector, keyword, hybrid)"},"max_results":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Max Results","description":"The maximum number of results to return"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Filters to apply to the search results"},"meta":{"anyOf":[{"$ref":"#/components/schemas/Meta"},{"type":"null"}],"description":"Pagination metadata. Limit and page number to return a subset of results."}},"type":"object","required":["query"],"title":"VectorSearchRequestSchema","description":"Schema for vector search request."},"VectorSearchResult":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the search result document"},"content":{"type":"string","title":"Content","description":"Content text of the document"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the document"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Metadata associated with the document"},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"Usage statistics (e.g., token counts)"},"reranking_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reranking Score","description":"Reranking score for relevance"},"content_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Id","description":"ID of the source content"},"content_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Origin","description":"Origin URL or source of the content"},"size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"}},"type":"object","required":["id","content"],"title":"VectorSearchResult","description":"Schema for search result documents."},"VideoInputContent":{"properties":{"type":{"type":"string","const":"video","title":"Type","default":"video"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"VideoInputContent","description":"A video input content fragment."},"WhatsAppWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status","default":"ok"}},"type":"object","title":"WhatsAppWebhookResponse"},"WorkflowResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema","description":"Input schema for the workflow"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps","description":"List of workflow steps"},"agent":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"type":"null"}],"description":"Agent configuration if used"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamResponse"},{"type":"null"}],"description":"Team configuration if used"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"workflow_agent":{"type":"boolean","title":"Workflow Agent","description":"Whether this workflow uses a WorkflowAgent","default":false},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowResponse"},"WorkflowRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the workflow run"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the workflow"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was executed"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the workflow"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"Type of content returned"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status of the workflow run"},"step_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Results","description":"Results from each workflow step"},"step_executor_runs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Executor Runs","description":"Executor runs for each step"},"step_requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Requirements","description":"HITL step requirements (resolved state for historical display)"},"pause_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Kind","description":"Kind of HITL pause: 'step' or 'executor'"},"paused_step_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Step Name","description":"Name of the step that caused the pause"},"paused_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Paused Step Index","description":"Index of the step that caused the pause"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the workflow"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the workflow"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the workflow"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the workflow"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the workflow"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"}},"type":"object","required":["run_id"],"title":"WorkflowRunSchema"},"WorkflowSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID used in this session"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name","description":"Name of the workflow"},"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Data","description":"Complete session data"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current workflow state"},"workflow_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Data","description":"Workflow-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["session_id","session_name"],"title":"WorkflowSessionDetailSchema"},"WorkflowSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowSummaryResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} +{"openapi":"3.1.0","info":{"title":"Agno API Reference","description":"The all-in-one, private, secure agent platform that runs in your cloud.","version":"2.7.4"},"paths":{"/":{"get":{"tags":["Home"],"summary":"API Information","description":"Get basic information about this AgentOS API instance, including:\n\n- API metadata and version\n- Available capabilities overview\n- Links to key endpoints and documentation","operationId":"get_api_info","responses":{"200":{"description":"API information retrieved successfully","content":{"application/json":{"schema":{},"examples":{"home":{"summary":"Example home response","value":{"name":"AgentOS API","id":"demo-os","version":"1.0.0"}}}}}}}}},"/health":{"get":{"tags":["Health"],"summary":"Health Check","description":"Check the health status of the AgentOS API. Returns a simple status indicator.","operationId":"health_check","responses":{"200":{"description":"API is healthy and operational","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"},"example":{"status":"ok","instantiated_at":"2025-06-10T12:00:00Z"}}}}}}},"/info":{"get":{"tags":["Core"],"summary":"Get OS Info","description":"Return lightweight, unauthenticated metadata about this AgentOS instance.","operationId":"get_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoResponse"}}}}}}},"/config":{"get":{"tags":["Core"],"summary":"Get OS Configuration","description":"Retrieve the complete configuration of the AgentOS instance, including:\n\n- Available models and databases\n- Registered agents, teams, and workflows\n- Chat, session, memory, knowledge, and evaluation configurations\n- Available interfaces and their routes","operationId":"get_config","responses":{"200":{"description":"OS configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"},"example":{"description":"Example AgentOS configuration","available_models":[],"databases":["9c884dc4-9066-448c-9074-ef49ec7eb73c"],"session":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Sessions"}}]},"metrics":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Metrics"}}]},"memory":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Memory"}}]},"knowledge":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Knowledge"}}]},"evals":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Evals"}}]},"agents":[{"id":"main-agent","name":"Main Agent","db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c"}],"teams":[],"workflows":[],"interfaces":[],"os_id":"demo"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/models":{"get":{"tags":["Core"],"summary":"Get Available Models","description":"Retrieve a list of all unique models currently used by agents and teams in this OS instance. This includes the model ID and provider information for each model.","operationId":"get_models","responses":{"200":{"description":"List of models retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Response Get Models"},"example":[{"id":"gpt-4","provider":"openai"},{"id":"claude-3-sonnet","provider":"anthropic"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}/runs":{"post":{"tags":["Agents"],"summary":"Create Agent Run","description":"Execute an agent with a message and optional media files. Supports both streaming and non-streaming responses.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_agent_run"}}}},"responses":{"200":{"description":"Agent run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"examples":{"event_stream":{"summary":"Example event stream response","value":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Agents"],"summary":"List Agent Runs","description":"List runs for an agent within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_agent_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/cancel":{"post":{"tags":["Agents"],"summary":"Cancel Agent Run","description":"Cancel a currently executing agent run. This will attempt to stop the agent's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/continue":{"post":{"tags":["Agents"],"summary":"Continue Agent Run","description":"Advance a persisted agent run from its current state. Dispatches on the body shape and the persisted run state (see ADR-003 in specs/agno/features/checkpointing/decisions.md).\n\n**Variants:**\n- PAUSED + tools provided \u2192 apply HITL tool results, resume\n- PAUSED + resolved admin approval (empty tools) \u2192 apply resolution, resume\n- RUNNING / ERROR (no unresolved HITL requirements) \u2192 resume from last persisted state\n- COMPLETED + new tools \u2192 continue with appended messages\n\n**Tools Parameter:**\nJSON string containing array of tool execution objects with results. Optional \u2014 only required when the persisted run has unresolved HITL requirements.","operationId":"continue_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_agent_run"}}}},"responses":{"200":{"description":"Agent run continued successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n"}}},"400":{"description":"Invalid JSON in tools field or invalid tool structure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Run has a pending admin approval and cannot be continued by the user yet."},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/sessions/{session_id}/fork":{"post":{"tags":["Agents"],"summary":"Fork Agent Session","description":"Deep-copy a session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_agent_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents":{"get":{"tags":["Agents"],"summary":"List All Agents","description":"Retrieve a comprehensive list of all agents configured in this OS instance.\n\n**Returns:**\n- Agent metadata (ID, name, description)\n- Model configuration and capabilities\n- Available tools and their configurations\n- Session, knowledge, memory, and reasoning settings\n- Only meaningful (non-default) configurations are included","operationId":"get_agents","responses":{"200":{"description":"List of agents retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentResponse"},"type":"array","title":"Response Get Agents"},"example":[{"id":"main-agent","name":"Main Agent","db_id":"c6bf0644-feb8-4930-a305-380dae5ad6aa","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Details","description":"Retrieve detailed configuration and capabilities of a specific agent.\n\n**Returns comprehensive agent information including:**\n- Model configuration and provider details\n- Complete tool inventory and configurations\n- Session management settings\n- Knowledge base and memory configurations\n- Reasoning capabilities and settings\n- System prompts and response formatting options","operationId":"get_agent","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Agent details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"},"example":{"id":"main-agent","name":"Main Agent","db_id":"9e064c70-6821-4840-a333-ce6230908a70","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Run","description":"Retrieve the status and output of an agent run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Agents"],"summary":"List Agent Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_agent_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Agents"],"summary":"Get Agent Run Checkpoint Snapshot","description":"Return a derived run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_agent_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/resume":{"post":{"tags":["Agents"],"summary":"Resume Agent Run Stream","description":"Resume an SSE stream for an agent run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_agent_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_agent_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"application/json":{"schema":{}},"text/event-stream":{}}},"400":{"description":"Not supported for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs":{"post":{"tags":["Teams"],"summary":"Create Team Run","description":"Execute a team collaboration with multiple agents working together on a task.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_team_run"}}}},"responses":{"200":{"description":"Team run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Teams"],"summary":"List Team Runs","description":"List runs for a team within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_team_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/cancel":{"post":{"tags":["Teams"],"summary":"Cancel Team Run","description":"Cancel a currently executing team run. This will attempt to stop the team's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel team run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/resume":{"post":{"tags":["Teams"],"summary":"Resume Team Run Stream","description":"Resume an SSE stream for a team run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_team_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_team_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{}}},"400":{"description":"Stream resumption is unavailable for remote and factory teams. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/continue":{"post":{"tags":["Teams"],"summary":"Continue Team Run","description":"Continue a paused or incomplete team run with updated requirements.\n\n**Use Cases:**\n- Resume execution after tool approval/rejection\n- Provide manual tool execution results\n- Resume after admin approval (requirements can be empty; resolution fetched from DB)\n\n**Requirements Parameter:**\nJSON string containing array of requirement objects with tool execution results.\nCan be empty when an admin-required approval has been resolved.","operationId":"continue_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_team_run"}}}},"responses":{"200":{"description":"Team run continued successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n"}}},"400":{"description":"Invalid JSON in requirements field or invalid requirement structure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Run has a pending admin approval and cannot be continued by the user yet."},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is not paused (e.g. run is already running, continued, or errored). Only PAUSED runs can be continued."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/sessions/{session_id}/fork":{"post":{"tags":["Teams"],"summary":"Fork Team Session","description":"Deep-copy a team session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_team_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams":{"get":{"tags":["Teams"],"summary":"List All Teams","description":"Retrieve a comprehensive list of all teams configured in this OS instance.\n\n**Returns team information including:**\n- Team metadata (ID, name, description, execution mode)\n- Model configuration for team coordination\n- Team member roster with roles and capabilities\n- Knowledge sharing and memory configurations","operationId":"get_teams","responses":{"200":{"description":"List of teams retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamResponse"},"type":"array","title":"Response Get Teams"},"example":[{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"agno_memories","app_url":"/memory/1","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/teams/{team_id}":{"get":{"tags":["Teams"],"summary":"Get Team Details","description":"Retrieve detailed configuration and member information for a specific team.","operationId":"get_team","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"},"example":{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}":{"get":{"tags":["Teams"],"summary":"Get Team Run","description":"Retrieve the status and output of a team run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Teams"],"summary":"List Team Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored team run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_team_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Teams"],"summary":"Get Team Run Checkpoint Snapshot","description":"Return a derived team run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_team_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows":{"get":{"tags":["Workflows"],"summary":"List All Workflows","description":"Retrieve a comprehensive list of all workflows configured in this OS instance.\n\n**Return Information:**\n- Workflow metadata (ID, name, description)\n- Input schema requirements\n- Step sequence and execution flow\n- Associated agents and teams","operationId":"get_workflows","responses":{"200":{"description":"List of workflows retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Response Get Workflows"},"example":[{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/workflows/{workflow_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Details","description":"Retrieve detailed configuration and step information for a specific workflow.","operationId":"get_workflow","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Workflow version to retrieve","title":"Version"},"description":"Workflow version to retrieve"}],"responses":{"200":{"description":"Workflow details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"},"example":{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs":{"post":{"tags":["Workflows"],"summary":"Execute Workflow","description":"Execute a workflow with the provided input data. Workflows can run in streaming or batch mode.\n\n**Execution Modes:**\n- **Streaming (`stream=true`)**: Real-time step-by-step execution updates via SSE\n- **Non-Streaming (`stream=false`)**: Complete workflow execution with final result\n\n**Workflow Execution Process:**\n1. Input validation against workflow schema\n2. Sequential or parallel step execution based on workflow design\n3. Data flow between steps with transformation\n4. Error handling and automatic retries where configured\n5. Final result compilation and response\n\n**Session Management:**\nWorkflows support session continuity for stateful execution across multiple runs.","operationId":"create_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_run"}}}},"responses":{"200":{"description":"Workflow executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid input data or workflow configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Workflow execution error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"List Workflow Runs","description":"List runs for a workflow within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_workflow_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/continue":{"post":{"tags":["Workflows"],"summary":"Continue Workflow Run","description":"Continue a paused workflow run with resolved requirements.\n\n**Use Cases:**\n- Resume after step-level HITL (confirmation, user input, router selection)\n- Resume after executor-level HITL (agent/team tool confirmation within a step)\n\n**Requirements Parameter:**\nJSON string containing the resolved step requirements.","operationId":"continue_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_workflow_run"}}}},"responses":{"200":{"description":"Workflow run continued successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: StepCompleted\ndata: {\"step_name\": \"step1\"}\n\n"}}},"400":{"description":"Invalid JSON in requirements field","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is not paused. Only PAUSED runs can be continued."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/cancel":{"post":{"tags":["Workflows"],"summary":"Cancel Workflow Run","description":"Cancel a currently executing workflow run, stopping all active steps and cleanup.\n**Note:** Complex workflows with multiple parallel steps may take time to fully cancel.","operationId":"cancel_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found, or the requested run was not found in the caller's session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel workflow run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/resume":{"post":{"tags":["Workflows"],"summary":"Resume Workflow Run Stream","description":"Resume an SSE stream for a workflow run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_workflow_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_workflow_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"application/json":{"schema":{}},"text/event-stream":{}}},"400":{"description":"Stream resumption is unavailable for remote and factory workflows. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Run","description":"Retrieve the status and output of a workflow run. Use this to poll for run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/slack/events":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Receives incoming Slack events (messages, mentions, thread starts).\n\n**URL Verification:** On first setup, Slack sends a `url_verification` challenge. The endpoint echoes back the challenge string.\n\n**Event Processing:** Normal events are acknowledged immediately with `{\"status\": \"ok\"}` and processed in the background. This prevents Slack's 3-second retry timeout.\n\n**Retry Handling:** Events with `X-Slack-Retry-Num` header are duplicates and return 200 without reprocessing.\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Event Subscriptions > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for creating a Slack App or use the [manifest](/agent-os/interfaces/slack/setup#2-create-the-slack-app) for quick setup.\n","operationId":"slack_events_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SlackChallengeResponse"},{"$ref":"#/components/schemas/SlackEventResponse"}],"title":"Response Slack Events Simple Agent"}}}},"400":{"description":"Missing Slack headers"},"403":{"description":"Invalid Slack signature"}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number (present on retried events)"}]}},"/slack/interactions":{"post":{"tags":["Slack"],"summary":"Slack Interactions","description":"Handles Slack interactive components for Human-in-the-Loop (HITL) workflows.\n\n**Supported Actions:**\n- `row_approve` - Approve a pending tool call\n- `row_reject` - Reject a pending tool call\n- `submit_pause` - Submit form data for a paused workflow\n- `check_status` - Check an admin approval and resume an approved run\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Interactivity & Shortcuts > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for step-by-step instructions or the [HITL guide](/agent-os/interfaces/slack/hitl) for approval workflows.\n","operationId":"slack_interactions_simple_agent","responses":{"200":{"description":"Interaction accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackEventResponse"}}}},"400":{"description":"Malformed interaction payload"},"403":{"description":"Invalid Slack signature"}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"URL-encoded JSON interaction payload (Slack sends interactive component data as a single form field)"}}}}}}}},"/whatsapp/status":{"get":{"tags":["Whatsapp"],"summary":"Status","operationId":"whatsapp_status_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/whatsapp/webhook":{"get":{"tags":["Whatsapp"],"summary":"Whatsapp Verify","description":"Handle WhatsApp webhook verification","operationId":"whatsapp_verify_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["Whatsapp"],"summary":"Whatsapp Webhook","description":"Process incoming WhatsApp messages","operationId":"whatsapp_webhook_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppWebhookResponse"}}}},"403":{"description":"Invalid webhook signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Signature validation is not configured, or the JSON body is malformed or is not an object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Hub-Signature-256","in":"header","required":true,"schema":{"type":"string"},"description":"SHA-256 HMAC signature for the raw request body, prefixed with `sha256=`"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}},"/telegram/status":{"get":{"tags":["Telegram"],"summary":"Telegram Status","operationId":"telegram_status_simple-agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramStatusResponse"}}}}}}},"/telegram/webhook":{"post":{"tags":["Telegram"],"summary":"Telegram Webhook","operationId":"telegram_webhook_simple-agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramWebhookResponse"}}}},"403":{"description":"Invalid webhook secret token"}}}},"/agui":{"post":{"tags":["AGUI"],"summary":"Run Agent","operationId":"run_agent_agui_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentInput"}}},"required":true},"responses":{"200":{"description":"Server-sent event stream","content":{"text/event-stream":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/status":{"get":{"tags":["AGUI"],"summary":"Get Status","operationId":"get_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/a2a/agents/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Agent Card","operationId":"get_agent_card_a2a_agents__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Agent","description":"Send a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"A2A is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/agents/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Agent Task","description":"Get the status and result of an agent task by ID.","operationId":"get_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Agent Task","description":"Cancel a running agent task.","operationId":"cancel_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Agent","description":"Stream a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/teams/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Team Card","operationId":"get_team_card_a2a_teams__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Team","description":"Send a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/teams/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Team Task","description":"Get the status and result of a team task by ID.","operationId":"get_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Team Task","description":"Cancel a running team task.","operationId":"cancel_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Team","description":"Stream a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/workflows/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Workflow Card","operationId":"get_workflow_card_a2a_workflows__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/workflows/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Workflow","description":"Send a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/workflows/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Workflow","description":"Stream a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/message/send":{"post":{"tags":["A2A"],"summary":"Send Message","description":"[DEPRECATED] Send a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"send_message","responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/a2a/message/stream":{"post":{"tags":["A2A"],"summary":"Stream Message","description":"[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message","responses":{"200":{"description":"Streaming response with task updates","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n"}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/sessions":{"get":{"tags":["Sessions"],"summary":"List Sessions","description":"Retrieve paginated list of sessions with filtering and sorting options. Supports filtering by session type (agent, team, workflow), component, user, and name. Sessions represent conversation histories and execution contexts.","operationId":"get_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types.","title":"Type"},"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types."},{"name":"component_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by component ID (agent/team/workflow ID)","title":"Component Id"},"description":"Filter sessions by component ID (agent/team/workflow ID)"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by user ID","title":"User Id"},"description":"Filter sessions by user ID"},{"name":"session_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by name (partial match)","title":"Session Name"},"description":"Filter sessions by name (partial match)"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of sessions to return per page","default":20,"title":"Limit"},"description":"Number of sessions to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort sessions by","default":"created_at","title":"Sort By"},"description":"Field to sort sessions by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query sessions from","title":"Db Id"},"description":"Database ID to query sessions from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Sessions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_SessionSchema_"},"example":{"session_example":{"summary":"Example session response","value":{"data":[{"session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_state":{},"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}]}}}}}},"400":{"description":"Invalid session type or filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in query parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Sessions"],"summary":"Create New Session","description":"Create a new empty session with optional configuration. Useful for pre-creating sessions with specific session_state, metadata, or other properties before running any agent/team/workflow interactions. The session can later be used by providing its session_id in run requests.","operationId":"create_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SessionType","description":"Type of session to create (agent, team, or workflow)","default":"agent"},"description":"Type of session to create (agent, team, or workflow)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to create session in","title":"Db Id"},"description":"Database ID to create session in"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest","description":"Session configuration data","default":{}}}}},"responses":{"201":{"description":"Session created successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Create Session"},"examples":{"agent_session_example":{"summary":"Example created agent session","value":{"user_id":"user-123","agent_session_id":"new-session-id","session_id":"new-session-id","session_name":"New Session","session_state":{"key":"value"},"metadata":{"key":"value"},"agent_id":"agent-1","created_at":"2025-10-21T12:00:00Z","updated_at":"2025-10-21T12:00:00Z"}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A session with the supplied session_id already exists"},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Multiple Sessions","description":"Delete multiple sessions by their IDs in a single operation. This action cannot be undone and will permanently remove all specified sessions and their runs.","operationId":"delete_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSessionRequest"}}}},"responses":{"204":{"description":"Sessions deleted successfully"},"400":{"description":"Invalid request - session IDs and types length mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["Sessions"],"summary":"Get Session by ID","description":"Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow).","operationId":"get_session_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to retrieve","title":"Session Id"},"description":"Session ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query session from","title":"User Id"},"description":"User ID to query session from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query session from","title":"Db Id"},"description":"Database ID to query session from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query session from","title":"Table"},"description":"Table to query session from"}],"responses":{"200":{"description":"Session details retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Get Session By Id"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Session","description":"Permanently delete a specific session and all its associated runs. This action cannot be undone and will remove all conversation history.","operationId":"delete_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to delete","title":"Session Id"},"description":"Session ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Sessions"],"summary":"Update Session","description":"Update session properties such as session_name, session_state, metadata, or summary. Use this endpoint to modify the session name, update state, add metadata, or update the session summary.","operationId":"update_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to update","title":"Session Id"},"description":"Session ID to update"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID","title":"User Id"},"description":"User ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update operation","title":"Db Id"},"description":"Database ID to use for update operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update operation","title":"Table"},"description":"Table to use for update operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest","description":"Session update data"}}}},"responses":{"200":{"description":"Session updated successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Update Session"},"examples":{"update_summary":{"summary":"Update session summary","value":{"summary":{"summary":"The user discussed project planning with the agent.","updated_at":"2025-10-21T14:30:00Z"}}},"update_metadata":{"summary":"Update session metadata","value":{"metadata":{"tags":["planning","project"],"priority":"high"}}},"update_session_name":{"summary":"Update session name","value":{"session_name":"Updated Session Name"}},"update_session_state":{"summary":"Update session state","value":{"session_state":{"step":"completed","context":"Project planning finished","progress":100}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs":{"get":{"tags":["Sessions"],"summary":"Get Session Runs","description":"Retrieve all runs (executions) for a specific session with optional timestamp filtering. Runs represent individual interactions or executions within a session. Response schema varies based on session type.","operationId":"get_session_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get runs from","title":"Session Id"},"description":"Session ID to get runs from"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query runs from","title":"User Id"},"description":"User ID to query runs from"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created after this Unix timestamp (epoch time in seconds)","title":"Created After"},"description":"Filter runs created after this Unix timestamp (epoch time in seconds)"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created before this Unix timestamp (epoch time in seconds)","title":"Created Before"},"description":"Filter runs created before this Unix timestamp (epoch time in seconds)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query runs from","title":"Db Id"},"description":"Database ID to query runs from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query runs from","title":"Table"},"description":"Table to query runs from"}],"responses":{"200":{"description":"Session runs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}]},"title":"Response Get Session Runs"},"examples":{"completed_run":{"summary":"Example completed run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"","run_input":"Which tools do you have access to?","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","run_response_format":"text","reasoning_content":"","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069},"messages":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-08 17:52:10.101003.\n\n\nYou have the capability to retain memories from previous interactions with the user, but have not had any interactions with the user yet.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757346730},{"content":"Which tools do you have access to?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757346730},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138},"created_at":1757346730}],"events":[{"created_at":1757346730,"event":"RunStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","model":"gpt-4o","model_provider":"OpenAI"},{"created_at":1757346733,"event":"MemoryUpdateStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"MemoryUpdateCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"RunCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","content_type":"str","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069}}],"created_at":"2025-09-08T15:52:10Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found or has no runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs/{run_id}":{"get":{"tags":["Sessions"],"summary":"Get Run by ID","description":"Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run).","operationId":"get_session_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get run from","title":"Session Id"},"description":"Session ID to get run from"},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","description":"Run ID to retrieve","title":"Run Id"},"description":"Run ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query run from","title":"User Id"},"description":"User ID to query run from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query run from","title":"Db Id"},"description":"Database ID to query run from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query run from","title":"Table"},"description":"Table to query run from"}],"responses":{"200":{"description":"Run retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}],"title":"Response Get Session Run"},"examples":{"agent_run":{"summary":"Example agent run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"user_123","run_input":"Which tools do you have access to?","content":"I don't have access to external tools.","created_at":1728499200}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/rename":{"post":{"tags":["Sessions"],"summary":"Rename Session","description":"Update the name of an existing session. Useful for organizing and categorizing sessions with meaningful names for better identification and management.","operationId":"rename_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to rename","title":"Session Id"},"description":"Session ID to rename"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope rename to","title":"User Id"},"description":"User ID to scope rename to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for rename operation","title":"Db Id"},"description":"Database ID to use for rename operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_rename_session"}}}},"responses":{"200":{"description":"Session renamed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Rename Session"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Invalid session name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type or validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories":{"post":{"tags":["Memory"],"summary":"Create Memory","description":"Create a new user memory with content and associated topics. Memories are used to store contextual information for users across conversations.","operationId":"create_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for memory storage","title":"Db Id"},"description":"Database ID to use for memory storage"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for memory storage","title":"Table"},"description":"Table to use for memory storage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"mem-123","memory":"User prefers technical explanations with code examples","topics":["preferences","communication_style","technical"],"user_id":"user-456","created_at":"2024-01-15T10:30:00Z","updated_at":"2024-01-15T10:30:00Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Memory"],"summary":"Delete Multiple Memories","description":"Delete multiple user memories by their IDs in a single operation. This action cannot be undone and all specified memories will be permanently removed.","operationId":"delete_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMemoriesRequest"}}}},"responses":{"204":{"description":"Memories deleted successfully"},"400":{"description":"Invalid request - empty memory_ids list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"List Memories","description":"Retrieve paginated list of user memories with filtering and search capabilities. Filter by user, agent, team, topics, or search within memory content.","operationId":"get_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by user ID","title":"User Id"},"description":"Filter memories by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by agent ID","title":"Agent Id"},"description":"Filter memories by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by team ID","title":"Team Id"},"description":"Filter memories by team ID"},{"name":"search_content","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fuzzy search within memory content","title":"Search Content"},"description":"Fuzzy search within memory content"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of memories to return per page","default":20,"title":"Limit"},"description":"Number of memories to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort memories by","default":"updated_at","title":"Sort By"},"description":"Field to sort memories by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memories from","title":"Db Id"},"description":"Database ID to query memories from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Comma-separated list of topics to filter by","examples":["preferences,technical,communication_style"],"title":"Topics"},"description":"Comma-separated list of topics to filter by"}],"responses":{"200":{"description":"Memories retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserMemorySchema_"},"example":{"data":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories/{memory_id}":{"delete":{"tags":["Memory"],"summary":"Delete Memory","description":"Permanently delete a specific user memory. This action cannot be undone.","operationId":"delete_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to delete","title":"Memory Id"},"description":"Memory ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to delete memory for","title":"User Id"},"description":"User ID to delete memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Memory deleted successfully"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"Get Memory by ID","description":"Retrieve detailed information about a specific user memory by its ID.","operationId":"get_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to retrieve","title":"Memory Id"},"description":"Memory ID to retrieve"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query memory for","title":"User Id"},"description":"User ID to query memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memory from","title":"Db Id"},"description":"Database ID to query memory from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query memory from","title":"Table"},"description":"Table to query memory from"}],"responses":{"200":{"description":"Memory retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Memory"],"summary":"Update Memory","description":"Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values.","operationId":"update_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to update","title":"Memory Id"},"description":"Memory ID to update"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update","title":"Db Id"},"description":"Database ID to use for update"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update","title":"Table"},"description":"Table to use for update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memory_topics":{"get":{"tags":["Memory"],"summary":"Get Memory Topics","description":"Retrieve all unique topics associated with memories in the system. Useful for filtering and categorizing memories by topic.","operationId":"get_memory_topics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter topics for","title":"User Id"},"description":"User ID to filter topics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query topics from","title":"Db Id"},"description":"Database ID to query topics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query topics from","title":"Table"},"description":"Table to query topics from"}],"responses":{"200":{"description":"Memory topics retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Get Memory Topics"},"example":["preferences","communication_style","technical","industry","compliance","code_examples","requirements","healthcare","finance"]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/user_memory_stats":{"get":{"tags":["Memory"],"summary":"Get User Memory Statistics","description":"Retrieve paginated statistics about memory usage by user. Provides insights into user engagement and memory distribution across users.","operationId":"get_user_memory_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of user statistics to return per page","default":20,"title":"Limit"},"description":"Number of user statistics to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter statistics for","title":"User Id"},"description":"User ID to filter statistics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query statistics from","title":"Table"},"description":"Table to query statistics from"}],"responses":{"200":{"description":"User memory statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserStatsSchema_"},"example":{"data":[{"user_id":"123","total_memories":3,"last_memory_updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve user statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/optimize-memories":{"post":{"tags":["Memory"],"summary":"Optimize User Memories","description":"Optimize all memories for a user with the summarize strategy. The operation combines the user's memories into one summary. Set `apply=false` to preview the result without saving it. Specify a custom model as `provider:model_id`, for example `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, or `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`.","operationId":"optimize_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for optimization","title":"Db Id"},"description":"Database ID to use for optimization"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for optimization","title":"Table"},"description":"Table to use for optimization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesRequest"}}}},"responses":{"200":{"description":"Memories optimized successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesResponse"},"example":{"memories":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User has a 3-year-old golden retriever named Max who loves fetch and walks. Lives in San Francisco's Mission district, works as a product manager in tech. Enjoys hiking Bay Area trails, trying new restaurants (especially Japanese, Thai, Mexican), and learning piano for 1.5 years.","topics":["pets","location","work","hobbies","food_preferences"],"user_id":"user2","updated_at":"2025-11-18T10:30:00Z"}],"memories_before":4,"memories_after":1,"tokens_before":450,"tokens_after":180,"tokens_saved":270,"reduction_percentage":60.0}}}},"400":{"description":"Bad request - User ID is required or invalid model string format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No memories found for user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to optimize memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings":{"get":{"tags":["Learnings"],"summary":"List Learnings","description":"List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) \u2014 this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`).","operationId":"list_learnings","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by learning type","title":"Learning Type"},"description":"Filter by learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"namespace","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by namespace","title":"Namespace"},"description":"Filter by namespace"},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity ID","title":"Entity Id"},"description":"Filter by entity ID"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity type","title":"Entity Type"},"description":"Filter by entity type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":100,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used).","title":"Sort By"},"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used)."},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Learnings"],"summary":"Create Learning","description":"Create a new learning record. For the identity-keyed learning types (`user_profile`, `user_memory`, `session_context`, `entity_memory`) the record id is derived deterministically from the identity fields so it reconciles with what the agent reads/writes \u2014 provide those fields (else 422), and if a record already exists the request is rejected with 409 (use PATCH to update it). Other types get a generated id. For a scoped (non-admin) caller, the body's `user_id` must be omitted/null or match the caller (mismatch \u2192 403); admins and unscoped callers may set any `user_id`.","operationId":"create_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users":{"get":{"tags":["Learnings"],"summary":"List Learning Users","description":"List the users that own learning records, with a per-user count and last-updated timestamp. Intended as the entry point for a per-user view: list users here, then drill into a single user's learnings via `GET /learnings?user_id=...`. Records with no owner (`user_id IS NULL`) are excluded. Pass `learning_type` to restrict the grouping to a single store (e.g. `user_profile` or `user_memory`). For a scoped (non-admin) caller results are bound to that user; an explicit `user_id` that differs is rejected with 403. Admins and unscoped callers list all users. Sortable by `user_id` or `last_learning_updated_at` (the default).","operationId":"list_learning_users","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the grouping to a single learning type","title":"Learning Type"},"description":"Restrict the grouping to a single learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the result to a single user","title":"User Id"},"description":"Restrict the result to a single user"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by: user_id or last_learning_updated_at (the default)","title":"Sort By"},"description":"Field to sort by: user_id or last_learning_updated_at (the default)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningUserStats_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users/{user_id}":{"delete":{"tags":["Learnings"],"summary":"Delete Learning User","description":"Delete the learning records owned by a user. By default removes every learning type backed by the agno_learnings table (user_profile, user_memory, and any user-scoped entity records); pass `learning_type` to restrict deletion to a single store. Records with no owner (`user_id IS NULL`) are not affected. For a scoped (non-admin) caller, only their own learnings may be deleted; a different `user_id` is rejected with 403. Admins and unscoped callers may delete any user's learnings. Returns 204 even if the user had no matching records.","operationId":"delete_learning_user","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The user whose learnings should be deleted","title":"User Id"},"description":"The user whose learnings should be deleted"},{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings","title":"Learning Type"},"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/{learning_id}":{"get":{"tags":["Learnings"],"summary":"Get Learning","description":"Retrieve a single learning record by its ID.","operationId":"get_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Learnings"],"summary":"Update Learning","description":"Update a learning record. Only `content` and `metadata` may be modified; identity fields (user_id, agent_id, team_id, etc.) are immutable. Provided fields fully replace the existing values. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) are readable by any caller but may only be modified by an admin.","operationId":"update_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Learnings"],"summary":"Delete Learning","description":"Permanently delete a learning record by its ID. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) may only be deleted by an admin.","operationId":"delete_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs":{"get":{"tags":["Evals"],"summary":"List Evaluation Runs","description":"Retrieve paginated evaluation runs with filtering and sorting options. Filter by agent, team, workflow, model, or evaluation type.","operationId":"get_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Workflow ID","title":"Workflow Id"},"description":"Workflow ID"},{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model ID","title":"Model Id"},"description":"Model ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EvalFilterType"},{"type":"null"}],"description":"Filter type","title":"Type"},"description":"Filter type"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of eval runs to return","default":20,"title":"Limit"},"description":"Number of eval runs to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"eval_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)","examples":["accuracy,agent_as_judge,performance,reliability"],"title":"Eval Types"},"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)"}],"responses":{"200":{"description":"Evaluation runs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_EvalSchema_"},"example":{"data":[{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Evals"],"summary":"Delete Evaluation Runs","description":"Delete multiple evaluation runs by their IDs. This action cannot be undone.","operationId":"delete_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvalRunsRequest"}}}},"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Deletion failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Evals"],"summary":"Execute Evaluation","description":"Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both.","operationId":"run_eval","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for evaluation","title":"Db Id"},"description":"Database ID to use for evaluation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for evaluation","title":"Table"},"description":"Table to use for evaluation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRunInput"}}}},"responses":{"200":{"description":"Evaluation executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"f2b2d72f-e9e2-4f0e-8810-0a7e1ff58614","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Invalid request - provide either agent_id or team_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs/{eval_run_id}":{"get":{"tags":["Evals"],"summary":"Get Evaluation Run","description":"Retrieve detailed results and metrics for a specific evaluation run.","operationId":"get_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query eval run from","title":"Table"},"description":"Table to query eval run from"}],"responses":{"200":{"description":"Evaluation run details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Evals"],"summary":"Update Evaluation Run","description":"Update the name or other properties of an existing evaluation run.","operationId":"update_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvalRunRequest"}}}},"responses":{"200":{"description":"Evaluation run updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update evaluation run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics":{"get":{"tags":["Metrics"],"summary":"Get AgentOS Metrics","description":"Retrieve AgentOS metrics and analytics data for a specified date range. If no date range is specified, returns all available metrics.","operationId":"get_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"starting_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Starting date for metrics range (YYYY-MM-DD format)","title":"Starting Date"},"description":"Starting date for metrics range (YYYY-MM-DD format)"},{"name":"ending_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Ending date for metrics range (YYYY-MM-DD format)","title":"Ending Date"},"description":"Ending date for metrics range (YYYY-MM-DD format)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query metrics from","title":"Db Id"},"description":"Database ID to query metrics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Metrics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"},"example":{"metrics":[{"id":"7bf39658-a00a-484c-8a28-67fd8a9ddb2a","agent_runs_count":5,"agent_sessions_count":5,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":448,"output_tokens":148,"total_tokens":596,"audio_tokens":0,"input_audio_tokens":0,"output_audio_tokens":0,"cached_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":5}],"date":"2025-07-31T00:00:00Z","created_at":"2025-07-31T12:38:52Z","updated_at":"2025-07-31T12:49:01Z"}]}}}},"400":{"description":"Invalid date range parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve metrics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics/refresh":{"post":{"tags":["Metrics"],"summary":"Refresh Metrics","description":"Manually trigger recalculation of system metrics from raw data. This operation analyzes system activity logs and regenerates aggregated metrics. Useful for ensuring metrics are up-to-date or after system maintenance.","operationId":"refresh_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for metrics calculation","title":"Db Id"},"description":"Database ID to use for metrics calculation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for metrics calculation","title":"Table"},"description":"Table to use for metrics calculation"}],"responses":{"200":{"description":"Metrics refreshed successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"title":"Response Refresh Metrics"},"example":[{"id":"e77c9531-818b-47a5-99cd-59fed61e5403","agent_runs_count":2,"agent_sessions_count":2,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":256,"output_tokens":441,"total_tokens":697,"audio_total_tokens":0,"audio_input_tokens":0,"audio_output_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":2}],"date":"2025-08-12T00:00:00Z","created_at":"2025-08-12T08:01:47Z","updated_at":"2025-08-12T08:01:47Z"}]}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Refresh failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content":{"post":{"tags":["Knowledge"],"summary":"Upload Content","description":"Upload content to the knowledge base. Supports file uploads, text content, or URLs. Content is processed asynchronously in the background. Supports custom readers and chunking strategies.","operationId":"upload_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_content"}}}},"responses":{"202":{"description":"Content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-123","name":"example-document.pdf","description":"Sample document for processing","metadata":{"category":"documentation","priority":"high"},"status":"processing"}}}},"400":{"description":"Invalid request - malformed metadata or missing content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in form data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"List Content","description":"Retrieve paginated list of all content in the knowledge base with filtering and sorting options. Filter by status, content type, or metadata properties.","operationId":"get_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of content entries to return","default":20,"title":"Limit"},"description":"Number of content entries to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ContentResponseSchema_"},"example":{"data":[{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}],"meta":{"page":1,"limit":20,"total_pages":1,"total_count":2}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete All Content","description":"Permanently remove all content from the knowledge base. This is a destructive operation that cannot be undone. Use with extreme caution.","operationId":"delete_all_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete all content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/remote-content":{"post":{"tags":["Knowledge"],"summary":"Upload Remote Content","description":"Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.","operationId":"upload_remote_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_upload_remote_content"}}}},"responses":{"202":{"description":"Remote content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-456","name":"reports/q1-2024.pdf","description":"Q1 Report from S3","metadata":{"source":"s3-docs"},"status":"processing"}}}},"400":{"description":"Invalid request - unknown config or missing path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}":{"patch":{"tags":["Knowledge"],"summary":"Update Content","description":"Update content name, description, or metadata without re-uploading it. In Agno 2.7.4, this endpoint accepts `reader_id`. Local knowledge validates the value, but the content patch does not apply or persist the reader change.","operationId":"update_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","description":"Content ID","title":"Content Id"},"description":"Content ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_update_content"}}}},"responses":{"200":{"description":"Content updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Invalid request - malformed metadata or invalid reader_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"Get Content by ID","description":"Retrieve detailed information about a specific content item including processing status and metadata.","operationId":"get_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete Content by ID","description":"Permanently remove a specific content item from the knowledge base. This action cannot be undone.","operationId":"delete_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}/status":{"get":{"tags":["Knowledge"],"summary":"Get Content Status","description":"Retrieve the current processing status of a content item. Useful for monitoring asynchronous content processing progress and identifying any processing errors.","operationId":"get_content_status","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content status retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentStatusResponse"},"examples":{"completed":{"summary":"Example completed content status","value":{"status":"completed","status_message":""}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/search":{"post":{"tags":["Knowledge"],"summary":"Search Knowledge","description":"Search the knowledge base for relevant documents using query, filters and search type.","operationId":"search_knowledge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VectorSearchRequestSchema"}}},"required":true},"responses":{"200":{"description":"Search results retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_VectorSearchResult_"},"example":{"data":[{"id":"doc_123","content":"Jordan Mitchell - Software Engineer with skills in JavaScript, React, Python","name":"cv_1","meta_data":{"page":1,"chunk":1},"usage":{"total_tokens":14},"reranking_score":0.95,"content_id":"content_456"}],"meta":{"page":1,"limit":20,"total_pages":2,"total_count":35}}}}},"400":{"description":"Invalid search parameters"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No documents found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/knowledge/config":{"get":{"tags":["Knowledge"],"summary":"Get Config","description":"Retrieve available readers, chunkers, and configuration options for content processing. This endpoint provides metadata about supported file types, processing strategies, and filters.","operationId":"get_knowledge_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Knowledge configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponseSchema"},"example":{"readers":{"website":{"id":"website","name":"WebsiteReader","description":"Reads website files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"firecrawl":{"id":"firecrawl","name":"FirecrawlReader","description":"Reads firecrawl files","chunkers":["SemanticChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"youtube":{"id":"youtube","name":"YoutubeReader","description":"Reads youtube files","chunkers":["RecursiveChunker","AgenticChunker","DocumentChunker","SemanticChunker","FixedSizeChunker"]},"web_search":{"id":"web_search","name":"WebSearchReader","description":"Reads web_search files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"arxiv":{"id":"arxiv","name":"ArxivReader","description":"Reads arxiv files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"csv":{"id":"csv","name":"CsvReader","description":"Reads csv files","chunkers":["RowChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"docling":{"id":"docling","name":"DoclingReader","description":"Converts multiple document formats like PDF, DOCX, PPTX, images, HTML, etc. using IBM's Docling library","chunkers":["AgenticChunker","CodeChunker","DocumentChunker","FixedSizeChunker","RecursiveChunker","SemanticChunker"]},"docx":{"id":"docx","name":"DocxReader","description":"Reads docx files","chunkers":["DocumentChunker","FixedSizeChunker","SemanticChunker","AgenticChunker","RecursiveChunker"]},"gcs":{"id":"gcs","name":"GcsReader","description":"Reads gcs files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"json":{"id":"json","name":"JsonReader","description":"Reads json files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"markdown":{"id":"markdown","name":"MarkdownReader","description":"Reads markdown files","chunkers":["MarkdownChunker","DocumentChunker","AgenticChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"pdf":{"id":"pdf","name":"PdfReader","description":"Reads pdf files","chunkers":["DocumentChunker","FixedSizeChunker","AgenticChunker","SemanticChunker","RecursiveChunker"]},"text":{"id":"text","name":"TextReader","description":"Reads text files","chunkers":["CodeChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]}},"readersForType":{"url":["url","website","firecrawl","youtube","web_search","gcs"],"youtube":["youtube"],"text":["web_search"],"topic":["arxiv"],"file":["csv","gcs"],".csv":["csv","field_labeled_csv","docling"],".xlsx":["excel","docling"],".xls":["excel"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["excel"],"application/vnd.ms-excel":["excel"],".docx":["docx","docling"],".dotx":["docling"],".docm":["docling"],".dotm":["docling"],".pptx":["docling","pptx"],".potx":["docling"],".ppsx":["docling"],".pptm":["docling"],".ppsm":["docling"],".potm":["docling"],".doc":["docx"],".json":["json"],".md":["markdown","docling"],".pdf":["pdf","docling"],".txt":["text"],".html":["docling"],".htm":["docling"],".xhtml":["docling"],".xml":["docling"],".nxml":["docling"],".xbrl":["docling"],".adoc":["docling"],".asciidoc":["docling"],".asc":["docling"],".xlsm":["docling"],".tex":["docling"],".latex":["docling"],".tar.gz":["docling"],".vtt":["docling"],".png":["docling"],".jpeg":["docling"],".jpg":["docling"],".tiff":["docling"],".tif":["docling"],".bmp":["docling"],".webp":["docling"],".wav":["docling"],".mp3":["docling"],".m4a":["docling"],".aac":["docling"],".ogg":["docling"],".flac":["docling"],".mp4":["docling"],".avi":["docling"],".mov":["docling"]},"chunkers":{"AgenticChunker":{"key":"AgenticChunker","name":"AgenticChunker","description":"Chunking strategy that uses an LLM to determine natural breakpoints in the text","metadata":{"chunk_size":5000}},"CodeChunker":{"key":"CodeChunker","name":"CodeChunker","description":"The CodeChunker splits code into chunks based on its structure, leveraging Abstract Syntax Trees (ASTs) to create contextually relevant segments","metadata":{"chunk_size":2048}},"DocumentChunker":{"key":"DocumentChunker","name":"DocumentChunker","description":"A chunking strategy that splits text based on document structure like paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"FixedSizeChunker":{"key":"FixedSizeChunker","name":"FixedSizeChunker","description":"Chunking strategy that splits text into fixed-size chunks with optional overlap","metadata":{"chunk_size":5000,"chunk_overlap":0}},"MarkdownChunker":{"key":"MarkdownChunker","name":"MarkdownChunker","description":"A chunking strategy that splits markdown based on structure like headers, paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RecursiveChunker":{"key":"RecursiveChunker","name":"RecursiveChunker","description":"Chunking strategy that recursively splits text into chunks by finding natural break points","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RowChunker":{"key":"RowChunker","name":"RowChunker","description":"RowChunking chunking strategy","metadata":{}},"SemanticChunker":{"key":"SemanticChunker","name":"SemanticChunker","description":"Chunking strategy that splits text into semantic chunks using chonkie","metadata":{"chunk_size":5000}}},"vector_dbs":[{"id":"vector_db_1","name":"Vector DB 1","description":"Vector DB 1 description","search_types":["vector","keyword","hybrid"]}],"filters":["filter_tag_1","filter_tag2"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources":{"get":{"tags":["Knowledge"],"summary":"List Content Sources","description":"List all registered content sources (S3, GCS, SharePoint, GitHub) for the knowledge base.","operationId":"list_content_sources","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Content sources retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"title":"Response List Content Sources"},"example":[{"id":"company-s3","name":"Company Documents","type":"s3","prefix":"documents/"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources/{source_id}/files":{"get":{"tags":["Knowledge"],"summary":"List Files in Source","description":"List available files and folders in a specific content source. Supports pagination and folder navigation.","operationId":"list_source_files","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the content source","title":"Source Id"},"description":"ID of the content source"},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Path prefix to filter files","title":"Prefix"},"description":"Path prefix to filter files"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of files per page","default":100,"title":"Limit"},"description":"Number of files per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"delimiter","in":"query","required":false,"schema":{"type":"string","description":"Folder delimiter (enables folder grouping)","default":"/","title":"Delimiter"},"description":"Folder delimiter (enables folder grouping)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Files listed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceFilesResponseSchema"},"example":{"source_id":"company-s3","source_name":"Company Documents","prefix":"reports/","folders":[{"prefix":"reports/2024/","name":"2024","is_empty":false}],"files":[{"key":"reports/annual-summary.pdf","name":"annual-summary.pdf","size":102400,"last_modified":"2024-01-15T10:30:00Z","content_type":"application/pdf"}],"meta":{"page":1,"limit":100,"total_pages":1,"total_count":1}}}}},"400":{"description":"Unsupported source type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base or content source not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces":{"get":{"tags":["Traces","Traces"],"summary":"List Traces","description":"Retrieve a paginated list of execution traces with optional filtering.\n\n**Traces provide observability into:**\n- Agent execution flows\n- Model invocations and token usage\n- Tool calls and their results\n- Errors and performance bottlenecks\n\n**Filtering Options:**\n- By run, session, user, or agent ID\n- By status (OK, ERROR)\n- By time range\n\n**Pagination:**\n- Use `page` (1-indexed) and `limit` parameters\n- Response includes pagination metadata (total_pages, total_count, etc.)\n\n**Response Format:**\nReturns summary information for each trace. Use GET `/traces/{trace_id}` for detailed hierarchy.","operationId":"get_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run ID","title":"Run Id"},"description":"Filter by run ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status (OK, ERROR)","title":"Status"},"description":"Filter by status (OK, ERROR)"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of traces per page","default":20,"title":"Limit"},"description":"Number of traces per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"responses":{"200":{"description":"List of traces retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSummary_"},"example":{"data":[{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","total_spans":4,"error_count":0,"input":"What is the stock price of NVDA?","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"agent_stock","created_at":"2025-11-19T10:30:00+00:00"}],"meta":{"page":1,"limit":20,"total_pages":5,"total_count":95}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/filter-schema":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Filter Schema","description":"Returns the available filterable fields, their types, valid operators, and enum values.\n\nThe frontend uses this to dynamically build the filter bar UI:\n- Field dropdown populated from `fields[].key`\n- Operator dropdown changes per field type\n- Value input shows autocomplete for enum fields (e.g., status)\n- Logical operators (AND, OR) for combining clauses","operationId":"get_traces_filter_schema","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterSchemaResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/traces/{trace_id}":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace or Span Detail","description":"Retrieve detailed trace information with hierarchical span tree, or a specific span within the trace.\n\n**Without span_id parameter:**\nReturns the full trace with hierarchical span tree:\n- Trace metadata (ID, status, duration, context)\n- Hierarchical tree of all spans\n- Each span includes timing, status, and type-specific metadata\n\n**With span_id parameter:**\nReturns details for a specific span within the trace:\n- Span metadata (ID, name, type, timing)\n- Status and error information\n- Type-specific attributes (model, tokens, tool params, etc.)\n\n**Span Hierarchy (full trace):**\nThe `tree` field contains root spans, each with potential `children`.\nThis recursive structure represents the execution flow:\n```\nAgent.run (root)\n \u251c\u2500 LLM.invoke\n \u251c\u2500 Tool.execute\n \u2502 \u2514\u2500 LLM.invoke (nested)\n \u2514\u2500 LLM.invoke\n```\n\n**Span Types:**\n- `AGENT`: Agent execution with input/output\n- `LLM`: Model invocations with tokens and prompts\n- `TOOL`: Tool calls with parameters and results","operationId":"get_trace","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}},{"name":"span_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Span ID to retrieve specific span","title":"Span Id"},"description":"Optional: Span ID to retrieve specific span"},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Run ID to retrieve trace for","title":"Run Id"},"description":"Optional: Run ID to retrieve trace for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query trace from","title":"Db Id"},"description":"Database ID to query trace from"}],"responses":{"200":{"description":"Trace or span detail retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TraceDetail"},{"$ref":"#/components/schemas/TraceNode"}],"title":"Response Get Trace"},"examples":{"full_trace":{"summary":"Full trace with hierarchy (no span_id)","value":{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","end_time":"2025-11-19T10:30:01.200000+00:00","total_spans":4,"error_count":0,"input":"What is Tesla stock price?","output":"The current price of Tesla (TSLA) is $245.67.","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"stock_agent","created_at":"2025-11-19T10:30:00+00:00","tree":[{"id":"span1","name":"Stock_Price_Agent.run","type":"AGENT","duration":"1.2s","status":"OK","spans":[]}]}},"single_span":{"summary":"Single span detail (with span_id)","value":{"id":"span2","name":"gpt-4o-mini.invoke","type":"LLM","duration":"800ms","status":"OK","metadata":{"model":"gpt-4o-mini","input_tokens":120}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Trace or span not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/trace_session_stats":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Statistics by Session","description":"Retrieve aggregated trace statistics grouped by session ID with pagination.\n\n**Provides insights into:**\n- Total traces per session\n- First and last trace timestamps per session\n- Associated user and agent information\n\n**Filtering Options:**\n- By user ID\n- By agent ID\n\n**Use Cases:**\n- Monitor session-level activity\n- Track conversation flows\n- Identify high-activity sessions\n- Analyze user engagement patterns","operationId":"get_trace_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of sessions per page","default":20,"title":"Limit"},"description":"Number of sessions per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"}],"responses":{"200":{"description":"Trace statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"},"example":{"data":[{"session_id":"37029bc6-1794-4ba8-a629-1efedc53dcad","user_id":"kaustubh@agno.com","agent_id":"hackernews-agent","total_traces":5,"first_trace_at":"2025-11-19T10:15:16+00:00","last_trace_at":"2025-11-19T10:21:30+00:00"}],"meta":{"page":1,"limit":20,"total_pages":3,"total_count":45}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/search":{"post":{"tags":["Traces","Traces"],"summary":"Search Traces with Advanced Filters","description":"Search traces using the FilterExpr DSL for complex, composable queries.\n\n**Group By Mode:**\n- `run` (default): Returns `PaginatedResponse[TraceDetail]` with full span trees\n- `session`: Returns `PaginatedResponse[TraceSessionStats]` with aggregated session stats\n\n**Supported Operators:**\n- Comparison: `EQ`, `NEQ`, `GT`, `GTE`, `LT`, `LTE`\n- Inclusion: `IN`\n- String matching: `CONTAINS` (case-insensitive substring), `STARTSWITH` (prefix)\n- Logical: `AND`, `OR`, `NOT`\n\n**Filterable Fields:**\ntrace_id, name, status, start_time, end_time, duration_ms, run_id, session_id, user_id, agent_id, team_id, workflow_id, created_at\n\n**Example Request Body (runs):**\n```json\n{\n \"filter\": {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n}\n```\n\n**Example Request Body (sessions):**\n```json\n{\n \"filter\": {\"op\": \"CONTAINS\", \"key\": \"agent_id\", \"value\": \"stock\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n}\n```","operationId":"search_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PaginatedResponse_TraceDetail_"},{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"}],"title":"Response Search Traces"}}}},"400":{"description":"Invalid filter expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/all/migrate":{"post":{"tags":["Database"],"summary":"Migrate All Databases","description":"Migrate all database schemas to the given target version. If a target version is not provided, all databases will be migrated to the latest version.","operationId":"migrate_all_databases","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"All databases migrated successfully","content":{"application/json":{"schema":{},"example":{"message":"All databases migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/{db_id}/migrate":{"post":{"tags":["Database"],"summary":"Migrate Database","description":"Migrate the given database schema to the given target version. If a target version is not provided, the database will be migrated to the latest version.","operationId":"migrate_database","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"Database migrated successfully","content":{"application/json":{"schema":{},"example":{"message":"Database migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Database not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components":{"get":{"tags":["Components"],"summary":"List Components","description":"Retrieve a paginated list of components with optional filtering by type.","operationId":"list_components","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ComponentType"},{"type":"null"}],"description":"Filter by type: agent, team, workflow","title":"Component Type"},"description":"Filter by type: agent, team, workflow"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ComponentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Component","description":"Create a new component (agent, team, or workflow) with initial config.","operationId":"create_component","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}":{"get":{"tags":["Components"],"summary":"Get Component","description":"Retrieve a component by ID.","operationId":"get_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Components"],"summary":"Update Component","description":"Partially update a component by ID.","operationId":"update_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentUpdate","description":"Component fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Component","description":"Soft-delete a component by ID. Component configs and links remain stored.","operationId":"delete_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs":{"get":{"tags":["Components"],"summary":"List Configs","description":"List all configs for a component.","operationId":"list_configs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"include_config","in":"query","required":false,"schema":{"type":"boolean","description":"Include full config blob","default":true,"title":"Include Config"},"description":"Include full config blob"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComponentConfigResponse"},"title":"Response List Configs"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Config Version","description":"Create a new config version for a component.","operationId":"create_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigCreate","description":"Config data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}":{"patch":{"tags":["Components"],"summary":"Update Draft Config","description":"Update an existing draft config. Cannot update published configs.","operationId":"update_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigUpdate","description":"Config fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Components"],"summary":"Get Config Version","description":"Get a specific config version by number.","operationId":"get_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Config Version","description":"Delete a specific config version. Agno v2.7.4 rejects the current version. Synchronous SQLite and PostgreSQL storage allow deletion of a published non-current version.","operationId":"delete_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/current":{"get":{"tags":["Components"],"summary":"Get Current Config","description":"Get the current config version for a component.","operationId":"get_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}/set-current":{"post":{"tags":["Components"],"summary":"Set Current Config Version","description":"Set a published config version as current (for rollback).","operationId":"set_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/schedules":{"get":{"tags":["Schedules"],"summary":"List Schedules","operationId":"list_schedules_schedules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"post":{"tags":["Schedules"],"summary":"Create Schedule","operationId":"create_schedule_schedules_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule","operationId":"get_schedule_schedules__schedule_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"patch":{"tags":["Schedules"],"summary":"Update Schedule","operationId":"update_schedule_schedules__schedule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Schedules"],"summary":"Delete Schedule","operationId":"delete_schedule_schedules__schedule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/enable":{"post":{"tags":["Schedules"],"summary":"Enable Schedule","operationId":"enable_schedule_schedules__schedule_id__enable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/disable":{"post":{"tags":["Schedules"],"summary":"Disable Schedule","operationId":"disable_schedule_schedules__schedule_id__disable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/trigger":{"post":{"tags":["Schedules"],"summary":"Trigger Schedule","operationId":"trigger_schedule_schedules__schedule_id__trigger_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Schedule is disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler is not running or storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs":{"get":{"tags":["Schedules"],"summary":"List Schedule Runs","operationId":"list_schedule_runs_schedules__schedule_id__runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleRunResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs/{run_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule Run","operationId":"get_schedule_run_schedules__schedule_id__runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals":{"get":{"tags":["Approvals"],"summary":"List Approvals","operationId":"list_approvals_approvals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","approved","rejected","expired","cancelled"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"source_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"}},{"name":"approval_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["required","audit"],"type":"string"},{"type":"null"}],"title":"Approval Type"}},{"name":"pause_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"schedule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"}},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ApprovalResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/count":{"get":{"tags":["Approvals"],"summary":"Get Approval Count","operationId":"get_approval_count_approvals_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalCountResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/{approval_id}/status":{"get":{"tags":["Approvals"],"summary":"Get Approval Status","operationId":"get_approval_status_approvals__approval_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalStatusResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/{approval_id}":{"get":{"tags":["Approvals"],"summary":"Get Approval","operationId":"get_approval_approvals__approval_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Approvals"],"summary":"Delete Approval","operationId":"delete_approval_approvals__approval_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/{approval_id}/resolve":{"post":{"tags":["Approvals"],"summary":"Resolve Approval","operationId":"resolve_approval_approvals__approval_id__resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResolve"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/service-accounts":{"post":{"tags":["Service Accounts"],"summary":"Create Service Account","description":"Mint a service account token. The plaintext token is returned exactly once.","operationId":"create_service_account_service_accounts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreateResponse"}}}},"400":{"description":"Requested scopes are invalid, or privileged scopes were not explicitly allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"An active service account with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"get":{"tags":["Service Accounts"],"summary":"List Service Accounts","description":"List service accounts. Returns metadata and display prefixes only - never hashes or plaintext.","operationId":"list_service_accounts_service_accounts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Revoked"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ServiceAccountResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/service-accounts/{service_account_id}":{"delete":{"tags":["Service Accounts"],"summary":"Revoke Service Account","description":"Revoke an existing service account.\n\nTakes effect immediately on this worker (the local verification cache entry is evicted) and within the cache TTL on other workers.","operationId":"revoke_service_account_service_accounts__service_account_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"service_account_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Service account not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/registry":{"get":{"tags":["Registry"],"summary":"List Registry","description":"List all resources in the registry with optional filtering.","operationId":"list_registry","security":[{"HTTPBearer":[]}],"parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RegistryResourceType"},{"type":"null"}],"description":"Filter by resource type","title":"Resource Type"},"description":"Filter by resource type"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (partial match)","title":"Name"},"description":"Filter by name (partial match)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_RegistryContentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}}},"components":{"schemas":{"A2ARequest_DataPart":{"description":"Represents a structured data segment (e.g., JSON) within a message or artifact.","properties":{"data":{"additionalProperties":true,"title":"Data","type":"object"},"kind":{"const":"data","default":"data","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["data"],"title":"DataPart","type":"object"},"A2ARequest_FilePart":{"description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI.","properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_FileWithBytes"},{"$ref":"#/components/schemas/A2ARequest_FileWithUri"}],"title":"File"},"kind":{"const":"file","default":"file","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["file"],"title":"FilePart","type":"object"},"A2ARequest_FileWithBytes":{"description":"Represents a file with its content provided directly as a base64-encoded string.","properties":{"bytes":{"title":"Bytes","type":"string"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"}},"required":["bytes"],"title":"FileWithBytes","type":"object"},"A2ARequest_FileWithUri":{"description":"Represents a file with its content located at a specific URI.","properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"FileWithUri","type":"object"},"A2ARequest_Message":{"description":"Represents a single message in the conversation between a user and an agent.","properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"kind":{"const":"message","default":"message","title":"Kind","type":"string"},"messageId":{"title":"Messageid","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/A2ARequest_Part"},"title":"Parts","type":"array"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/A2ARequest_Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Taskid"}},"required":["messageId","parts","role"],"title":"Message","type":"object"},"A2ARequest_MessageSendConfiguration":{"description":"Defines configuration options for a `message/send` or `message/stream` request.","properties":{"acceptedOutputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Acceptedoutputmodes"},"blocking":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Blocking"},"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"pushNotificationConfig":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationConfig"},{"type":"null"}],"default":null}},"title":"MessageSendConfiguration","type":"object"},"A2ARequest_MessageSendParams":{"description":"Defines the parameters for a request to send a message to an agent. This can be used\nto create a new task, continue an existing one, or restart a task.","properties":{"configuration":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_MessageSendConfiguration"},{"type":"null"}],"default":null},"message":{"$ref":"#/components/schemas/A2ARequest_Message"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["message"],"title":"MessageSendParams","type":"object"},"A2ARequest_Part":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_TextPart"},{"$ref":"#/components/schemas/A2ARequest_FilePart"},{"$ref":"#/components/schemas/A2ARequest_DataPart"}],"title":"Part"},"A2ARequest_PushNotificationAuthenticationInfo":{"description":"Defines authentication details for a push notification endpoint.","properties":{"credentials":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Credentials"},"schemes":{"items":{"type":"string"},"title":"Schemes","type":"array"}},"required":["schemes"],"title":"PushNotificationAuthenticationInfo","type":"object"},"A2ARequest_PushNotificationConfig":{"description":"Defines the configuration for setting up push notifications for task updates.","properties":{"authentication":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationAuthenticationInfo"},{"type":"null"}],"default":null},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Id"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Token"},"url":{"title":"Url","type":"string"}},"required":["url"],"title":"PushNotificationConfig","type":"object"},"A2ARequest_Role":{"description":"Identifies the sender of the message. `user` for the client, `agent` for the service.","enum":["agent","user"],"title":"Role","type":"string"},"A2ARequest_TextPart":{"description":"Represents a text segment within a message or artifact.","properties":{"kind":{"const":"text","default":"text","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"text":{"title":"Text","type":"string"}},"required":["text"],"title":"TextPart","type":"object"},"ActivityMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"activity","title":"Role","default":"activity"},"activityType":{"type":"string","title":"Activitytype"},"content":{"additionalProperties":true,"type":"object","title":"Content"}},"additionalProperties":true,"type":"object","required":["id","activityType","content"],"title":"ActivityMessage","description":"An activity progress message emitted between chat messages."},"AgentResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"extra_messages":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Messages"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"AgentResponse"},"AgentSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_session_id":{"type":"string","title":"Agent Session Id","description":"Unique agent session identifier"},"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID used in this session"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"agent_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Data","description":"Agent-specific data"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["agent_session_id","session_id","session_name"],"title":"AgentSessionDetailSchema"},"AgentSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the agent"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the agent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the agent"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the agent"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","title":"AgentSummaryResponse"},"ApprovalCountResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"ApprovalCountResponse","description":"Response model for pending approval count."},"ApprovalResolve":{"properties":{"status":{"type":"string","pattern":"^(approved|rejected)$","title":"Status"},"resolved_by":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Resolved By"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"}},"type":"object","required":["status"],"title":"ApprovalResolve","description":"Request body for resolving (approve/reject) an approval."},"ApprovalResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"},"source_type":{"type":"string","title":"Source Type"},"approval_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Type"},"pause_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Args"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"},"schedule_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Run Id"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"},"run_status":{"anyOf":[{"$ref":"#/components/schemas/RunStatus"},{"type":"null"}]}},"type":"object","required":["id","run_id","session_id","status","source_type"],"title":"ApprovalResponse","description":"Response model for a single approval."},"ApprovalStatusResponse":{"properties":{"approval_id":{"type":"string","title":"Approval Id"},"status":{"type":"string","title":"Status"},"run_id":{"type":"string","title":"Run Id"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"}},"type":"object","required":["approval_id","status","run_id"],"title":"ApprovalStatusResponse","description":"Lightweight response model for polling approval status."},"Artifact":{"properties":{"artifactId":{"type":"string","title":"Artifactid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"}},"type":"object","required":["artifactId","parts"],"title":"Artifact","description":"Represents a file, data structure, or other resource generated by an agent during a task."},"AssistantMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"assistant","title":"Role","default":"assistant"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"},"toolCalls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},{"type":"null"}],"title":"Toolcalls"}},"additionalProperties":true,"type":"object","required":["id"],"title":"AssistantMessage","description":"An assistant message."},"AudioInputContent":{"properties":{"type":{"type":"string","const":"audio","title":"Type","default":"audio"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"AudioInputContent","description":"An audio input content fragment."},"BackgroundRunResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the background run."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the background run."},"status":{"type":"string","title":"Status","description":"Initial run status."}},"type":"object","required":["run_id","session_id","status"],"title":"BackgroundRunResponse"},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"BadRequestResponse","example":{"detail":"Bad request","error_code":"BAD_REQUEST"}},"BinaryInputContent":{"properties":{"type":{"type":"string","const":"binary","title":"Type","default":"binary"},"mimeType":{"type":"string","title":"Mimetype"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"additionalProperties":true,"type":"object","required":["mimeType"],"title":"BinaryInputContent","description":"A deprecated binary payload reference in a multimodal user message."},"Body_continue_agent_run":{"properties":{"tools":{"type":"string","title":"Tools","description":"JSON string of tool call results to continue the paused run","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Optional new user-message text to append to the run before resuming. Use for continuing a COMPLETED run with a follow-up, or adding context to a RUNNING/ERROR resume."},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","description":"When true, clone the run with a new ``run_id`` before resuming. The original is untouched; the clone becomes a sibling within the same session, with ``forked_from_run_id`` set.","default":false},"regenerate":{"type":"boolean","title":"Regenerate","description":"Sugar: regenerate the last response of this run. Auto-computes ``continue_from='last_user'`` to land just after the last user message. Pair with ``additional_instructions`` to steer the new output. By default the original response is hidden from history (replaced); pass ``replace_original=false`` to keep both the original and the regenerated response visible side by side.","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original","description":"Only valid with ``regenerate=true``. Controls history visibility of the original response; the original run is always retained in storage. Defaults to true: the original is marked REGENERATED and hidden from history so the new response replaces it. Pass false to keep both the original and regenerated responses visible."},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions","description":"Only valid with ``regenerate=true``: extra guidance appended as a user message before re-generation. Friendly alias for ``input``."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run continue in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false}},"type":"object","title":"Body_continue_agent_run"},"Body_continue_team_run":{"properties":{"requirements":{"type":"string","title":"Requirements","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input"},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","default":false},"regenerate":{"type":"boolean","title":"Regenerate","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original"},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"stream":{"type":"boolean","title":"Stream","default":true},"background":{"type":"boolean","title":"Background","default":false}},"type":"object","title":"Body_continue_team_run"},"Body_continue_workflow_run":{"properties":{"step_requirements":{"type":"string","title":"Step Requirements","description":"JSON string of step requirement objects with resolution status","default":""},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}},"type":"object","title":"Body_continue_workflow_run"},"Body_create_agent_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the agent"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Agent version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic agent construction"}},"type":"object","required":["message"],"title":"Body_create_agent_run"},"Body_create_team_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the team"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"monitor":{"type":"boolean","title":"Monitor","description":"Enable monitoring and logging for this run","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Team version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic team construction"}},"type":"object","required":["message"],"title":"Body_create_team_run"},"Body_create_workflow_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the workflow"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run workflow in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Workflow version to use for this run"},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow construction"}},"type":"object","required":["message"],"title":"Body_create_workflow_run"},"Body_rename_session":{"properties":{"session_name":{"type":"string","title":"Session Name","description":"New name for the session"}},"type":"object","required":["session_name"],"title":"Body_rename_session"},"Body_resume_agent_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_agent_run_stream"},"Body_resume_team_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_team_run_stream"},"Body_resume_workflow_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_workflow_run_stream"},"Body_update_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"Content metadata as JSON string"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"Reader ID. In Agno 2.7.4, local knowledge validates the value, but the content patch does not apply or persist the reader change."}},"type":"object","title":"Body_update_content"},"Body_upload_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated from file/URL if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description for context"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"URL to fetch content from (JSON array or single URL string)"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object for additional content properties"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File","description":"File to upload for processing"},"text_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Content","description":"Raw text content to process"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for content processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply during processing"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size to use for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap to use for processing"}},"type":"object","title":"Body_upload_content"},"Body_upload_remote_content":{"properties":{"config_id":{"type":"string","title":"Config Id","description":"ID of the configured remote content source (from /knowledge/config)"},"path":{"type":"string","title":"Path","description":"Path to file or folder in the remote source"},"source_params":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Params","description":"JSON object of per-request parameters forwarded to the source's factory. Used for provider-specific routing that shouldn't be baked into the config. Currently supported keys: GitHub accepts 'repo' ('owner/repo'), letting one configured GitHub source serve multiple repositories the credentials can access."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap for processing"}},"type":"object","required":["config_id","path"],"title":"Body_upload_remote_content"},"ChatConfig":{"properties":{"quick_prompts":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Quick Prompts"}},"type":"object","required":["quick_prompts"],"title":"ChatConfig","description":"Configuration for the Chat page of the AgentOS"},"ChunkerSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["key"],"title":"ChunkerSchema"},"ComponentConfigResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"version":{"type":"integer","title":"Version"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"type":"string","title":"Stage"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","version","stage","config","created_at"],"title":"ComponentConfigResponse"},"ComponentCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Display name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id","description":"Unique identifier for the entity. Auto-generated from name if not provided."},"component_type":{"$ref":"#/components/schemas/ComponentType","description":"Type of entity: agent, team, or workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config","description":"Optional configuration"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["name","component_type"],"title":"ComponentCreate"},"ComponentResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"component_type":{"$ref":"#/components/schemas/ComponentType"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","component_type","created_at"],"title":"ComponentResponse"},"ComponentType":{"type":"string","enum":["agent","team","workflow"],"title":"ComponentType"},"ComponentUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"component_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"}},"type":"object","title":"ComponentUpdate"},"ConfigCreate":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config","description":"The configuration data"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Optional version number"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links","description":"Optional links to child components"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["config"],"title":"ConfigCreate"},"ConfigResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the OS instance"},"available_models":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Models","description":"List of available models"},"os_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Database","description":"ID of the database used for the OS instance"},"databases":{"items":{"type":"string"},"type":"array","title":"Databases","description":"List of database IDs used by the components of the OS instance"},"chat":{"anyOf":[{"$ref":"#/components/schemas/ChatConfig"},{"type":"null"}],"description":"Chat configuration"},"manifest":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Manifest"},"type":"object"},{"type":"null"}],"title":"Manifest","description":"Per-entity UI metadata keyed by agent/team/workflow id"},"session":{"anyOf":[{"$ref":"#/components/schemas/SessionConfig"},{"type":"null"}],"description":"Session configuration"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/MetricsConfig"},{"type":"null"}],"description":"Metrics configuration"},"memory":{"anyOf":[{"$ref":"#/components/schemas/MemoryConfig"},{"type":"null"}],"description":"Memory configuration"},"learning":{"anyOf":[{"$ref":"#/components/schemas/LearningConfig"},{"type":"null"}],"description":"Learning configuration"},"knowledge":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeConfig"},{"type":"null"}],"description":"Knowledge configuration"},"evals":{"anyOf":[{"$ref":"#/components/schemas/EvalsConfig"},{"type":"null"}],"description":"Evaluations configuration"},"traces":{"anyOf":[{"$ref":"#/components/schemas/TracesConfig"},{"type":"null"}],"description":"Traces configuration"},"agents":{"items":{"$ref":"#/components/schemas/AgentSummaryResponse"},"type":"array","title":"Agents","description":"List of registered agents"},"teams":{"items":{"$ref":"#/components/schemas/TeamSummaryResponse"},"type":"array","title":"Teams","description":"List of registered teams"},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Workflows","description":"List of registered workflows"},"interfaces":{"items":{"$ref":"#/components/schemas/InterfaceResponse"},"type":"array","title":"Interfaces","description":"List of available interfaces"}},"type":"object","required":["os_id","databases","agents","teams","workflows","interfaces"],"title":"ConfigResponse","description":"Response schema for the general config endpoint"},"ConfigResponseSchema":{"properties":{"readers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ReaderSchema"},"type":"object"},{"type":"null"}],"title":"Readers","description":"Available content readers"},"readersForType":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Readersfortype","description":"Mapping of content types to reader IDs"},"chunkers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ChunkerSchema"},"type":"object"},{"type":"null"}],"title":"Chunkers","description":"Available chunking strategies"},"filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filters","description":"Available filter tags"},"vector_dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/VectorDbSchema"},"type":"array"},{"type":"null"}],"title":"Vector Dbs","description":"Configured vector databases"},"remote_content_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"type":"array"},{"type":"null"}],"title":"Remote Content Sources","description":"Configured remote content sources (S3, GCS, SharePoint, GitHub)"}},"type":"object","title":"ConfigResponseSchema"},"ConfigUpdate":{"properties":{"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","title":"ConfigUpdate"},"ConflictResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ConflictResponse","example":{"detail":"Resource conflict"}},"ContentResponseSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the content"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"MIME type of the content"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"},"linked_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linked To","description":"ID of related content if linked"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata as key-value pairs"},"access_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Access Count","description":"Number of times content has been accessed"},"status":{"anyOf":[{"$ref":"#/components/schemas/ContentStatus"},{"type":"null"}],"description":"Processing status of the content"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message","description":"Status message or error details"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when content was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when content was last updated"}},"type":"object","required":["id"],"title":"ContentResponseSchema"},"ContentStatus":{"type":"string","enum":["processing","completed","failed"],"title":"ContentStatus","description":"Enumeration of possible content processing statuses."},"ContentStatusResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Content ID"},"status":{"$ref":"#/components/schemas/ContentStatus","description":"Current processing status of the content"},"status_message":{"type":"string","title":"Status Message","description":"Status message or error details","default":""}},"type":"object","required":["status"],"title":"ContentStatusResponse","description":"Response model for content status endpoint."},"Context":{"properties":{"description":{"type":"string","title":"Description"},"value":{"type":"string","title":"Value"}},"additionalProperties":true,"type":"object","required":["description","value"],"title":"Context","description":"Additional context for the agent."},"CreateSessionRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session ID (generated if not provided)"},"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Initial session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"}},"type":"object","title":"CreateSessionRequest"},"DataPart":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data"},"kind":{"type":"string","const":"data","title":"Kind","default":"data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["data"],"title":"DataPart","description":"Represents a structured data segment (e.g., JSON) within a message or artifact."},"DatabaseConfig_EvalsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/EvalsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[EvalsDomainConfig]"},"DatabaseConfig_LearningDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/LearningDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[LearningDomainConfig]"},"DatabaseConfig_MemoryDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MemoryDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MemoryDomainConfig]"},"DatabaseConfig_MetricsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MetricsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MetricsDomainConfig]"},"DatabaseConfig_SessionDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/SessionDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[SessionDomainConfig]"},"DatabaseConfig_TracesDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/TracesDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[TracesDomainConfig]"},"DayAggregatedMetrics":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the metrics record"},"agent_runs_count":{"type":"integer","minimum":0.0,"title":"Agent Runs Count","description":"Total number of agent runs"},"agent_sessions_count":{"type":"integer","minimum":0.0,"title":"Agent Sessions Count","description":"Total number of agent sessions"},"team_runs_count":{"type":"integer","minimum":0.0,"title":"Team Runs Count","description":"Total number of team runs"},"team_sessions_count":{"type":"integer","minimum":0.0,"title":"Team Sessions Count","description":"Total number of team sessions"},"workflow_runs_count":{"type":"integer","minimum":0.0,"title":"Workflow Runs Count","description":"Total number of workflow runs"},"workflow_sessions_count":{"type":"integer","minimum":0.0,"title":"Workflow Sessions Count","description":"Total number of workflow sessions"},"users_count":{"type":"integer","minimum":0.0,"title":"Users Count","description":"Total number of unique users"},"token_metrics":{"additionalProperties":true,"type":"object","title":"Token Metrics","description":"Token usage metrics (input, output, cached, etc.)"},"model_metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Model Metrics","description":"Metrics grouped by model (model_id, provider, count)"},"date":{"type":"string","format":"date-time","title":"Date","description":"Date for which these metrics are aggregated"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when metrics were created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when metrics were last updated"}},"type":"object","required":["id","agent_runs_count","agent_sessions_count","team_runs_count","team_sessions_count","workflow_runs_count","workflow_sessions_count","users_count","token_metrics","model_metrics","date","created_at","updated_at"],"title":"DayAggregatedMetrics","description":"Aggregated metrics for a given day"},"DeleteEvalRunsRequest":{"properties":{"eval_run_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Eval Run Ids","description":"List of evaluation run IDs to delete"}},"type":"object","required":["eval_run_ids"],"title":"DeleteEvalRunsRequest"},"DeleteMemoriesRequest":{"properties":{"memory_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Memory Ids","description":"List of memory IDs to delete"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID to filter memories for deletion"}},"type":"object","required":["memory_ids"],"title":"DeleteMemoriesRequest"},"DeleteSessionRequest":{"properties":{"session_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Session Ids","description":"List of session IDs to delete"},"session_types":{"items":{"$ref":"#/components/schemas/SessionType"},"type":"array","minItems":1,"title":"Session Types","description":"Types of sessions to delete"}},"type":"object","required":["session_ids","session_types"],"title":"DeleteSessionRequest"},"DeveloperMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"developer","title":"Role","default":"developer"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"DeveloperMessage","description":"A developer message."},"DocumentInputContent":{"properties":{"type":{"type":"string","const":"document","title":"Type","default":"document"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"DocumentInputContent","description":"A document input content fragment."},"EvalFilterType":{"type":"string","enum":["agent","team","workflow"],"title":"EvalFilterType"},"EvalRunInput":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID to evaluate"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID to evaluate"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID to use for evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation to run (accuracy, performance, or reliability)"},"input":{"type":"string","minLength":1,"title":"Input","description":"Input text/query for the evaluation"},"additional_guidelines":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Guidelines","description":"Additional guidelines for the evaluation"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for the evaluation"},"num_iterations":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Num Iterations","description":"Number of times to run the evaluation","default":1},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for this evaluation run"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output","description":"Expected output for accuracy evaluation"},"criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criteria","description":"Evaluation criteria for agent-as-judge evaluation"},"scoring_strategy":{"anyOf":[{"type":"string","enum":["numeric","binary"]},{"type":"null"}],"title":"Scoring Strategy","description":"Scoring strategy: 'numeric' (1-10 with threshold) or 'binary' (PASS/FAIL)","default":"binary"},"threshold":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Threshold","description":"Score threshold for pass/fail (1-10), only used with numeric scoring","default":7},"warmup_runs":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Warmup Runs","description":"Number of warmup runs before measuring performance","default":0},"expected_tool_calls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expected Tool Calls","description":"Expected tool calls for reliability evaluation"},"allow_additional_tool_calls":{"type":"boolean","title":"Allow Additional Tool Calls","description":"When True, tool calls not in expected_tool_calls are allowed (subset matching)","default":false},"expected_tool_call_arguments":{"anyOf":[{"additionalProperties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Expected Tool Call Arguments","description":"Expected arguments for specific tool calls, e.g. {\"tool_name\": {\"arg_name\": \"expected_value\"}} or {\"tool_name\": [{\"arg_name\": \"val1\"}, {\"arg_name\": \"val2\"}]}"}},"type":"object","required":["eval_type","input"],"title":"EvalRunInput"},"EvalSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the evaluation run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that was evaluated"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID used in evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that was evaluated"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was evaluated"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the evaluation run"},"evaluated_component_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluated Component Name","description":"Name of the evaluated component"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation (accuracy, performance, or reliability)"},"eval_data":{"additionalProperties":true,"type":"object","title":"Eval Data","description":"Evaluation results and metrics"},"eval_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eval Input","description":"Input parameters used for the evaluation"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when evaluation was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when evaluation was last updated"}},"type":"object","required":["id","eval_type","eval_data"],"title":"EvalSchema"},"EvalType":{"type":"string","enum":["accuracy","agent_as_judge","performance","reliability"],"title":"EvalType"},"EvalsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_EvalsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"EvalsConfig","description":"Configuration for the Evals domain of the AgentOS"},"EvalsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"EvalsDomainConfig","description":"Configuration for the Evals domain of the AgentOS"},"FilePart":{"properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/FileWithBytes"},{"$ref":"#/components/schemas/FileWithUri"}],"title":"File"},"kind":{"type":"string","const":"file","title":"Kind","default":"file"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["file"],"title":"FilePart","description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI."},"FileWithBytes":{"properties":{"bytes":{"type":"string","title":"Bytes"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["bytes"],"title":"FileWithBytes","description":"Represents a file with its content provided directly as a base64-encoded string."},"FileWithUri":{"properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uri":{"type":"string","title":"Uri"}},"type":"object","required":["uri"],"title":"FileWithUri","description":"Represents a file with its content located at a specific URI."},"FilterFieldSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Column/field name used in filter expressions"},"label":{"type":"string","title":"Label","description":"Human-readable display label for the UI"},"type":{"type":"string","title":"Type","description":"Field data type: string, number, datetime, enum"},"operators":{"items":{"type":"string"},"type":"array","title":"Operators","description":"List of valid filter operators for this field"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values","description":"Allowed enum values (for autocomplete/dropdown)"}},"type":"object","required":["key","label","type","operators"],"title":"FilterFieldSchema","description":"Schema describing a single filterable field for the frontend filter bar."},"FilterSchemaResponse":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FilterFieldSchema"},"type":"array","title":"Fields","description":"Available filterable fields"},"logical_operators":{"items":{"type":"string"},"type":"array","title":"Logical Operators","description":"Logical operators for combining filter clauses","default":["AND","OR"]}},"type":"object","required":["fields"],"title":"FilterSchemaResponse","description":"Response for the filter schema endpoint. Tells the FE what fields, operators, and values are available."},"ForbiddenResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ForbiddenResponse","example":{"detail":"Insufficient permissions"}},"FunctionCall":{"properties":{"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"additionalProperties":true,"type":"object","required":["name","arguments"],"title":"FunctionCall","description":"Name and arguments of a function call."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Health status of the service"},"instantiated_at":{"type":"string","format":"date-time","title":"Instantiated At","description":"Timestamp when service was instantiated"}},"type":"object","required":["status","instantiated_at"],"title":"HealthResponse","example":{"instantiated_at":"2025-06-10T12:00:00Z","status":"ok"}},"ImageInputContent":{"properties":{"type":{"type":"string","const":"image","title":"Type","default":"image"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"ImageInputContent","description":"An image input content fragment."},"InfoResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"agno_version":{"type":"string","title":"Agno Version","description":"Version of the agno framework"},"agent_count":{"type":"integer","title":"Agent Count","description":"Number of agents registered in the OS","default":0},"team_count":{"type":"integer","title":"Team Count","description":"Number of teams registered in the OS","default":0},"workflow_count":{"type":"integer","title":"Workflow Count","description":"Number of workflows registered in the OS","default":0},"mcp":{"$ref":"#/components/schemas/McpInfo","description":"MCP server availability for this OS instance"},"auth_mode":{"type":"string","enum":["none","security_key","jwt"],"title":"Auth Mode","description":"Authentication mode enforced on the REST/WS plane of this OS instance. MCP OAuth, when enabled, is described separately under `mcp.oauth`.","default":"none"}},"type":"object","required":["os_id","agno_version"],"title":"InfoResponse","description":"Response schema for the /info endpoint returning lightweight OS metadata."},"InputContentDataSource":{"properties":{"type":{"type":"string","const":"data","title":"Type","default":"data"},"value":{"type":"string","title":"Value"},"mimeType":{"type":"string","title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value","mimeType"],"title":"InputContentDataSource","description":"Inline base64-encoded source."},"InputContentUrlSource":{"properties":{"type":{"type":"string","const":"url","title":"Type","default":"url"},"value":{"type":"string","title":"Value"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value"],"title":"InputContentUrlSource","description":"URL-referenced source."},"InterfaceResponse":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the interface"},"version":{"type":"string","title":"Version","description":"Version of the interface"},"route":{"type":"string","title":"Route","description":"API route path"}},"type":"object","required":["type","version","route"],"title":"InterfaceResponse"},"InternalServerErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"InternalServerErrorResponse","example":{"detail":"Internal server error","error_code":"INTERNAL_SERVER_ERROR"}},"KnowledgeConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeDatabaseConfig"},"type":"array"},{"type":"null"}],"title":"Dbs"},"knowledge_instances":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeInstanceConfig"},"type":"array"},{"type":"null"}],"title":"Knowledge Instances"}},"type":"object","title":"KnowledgeConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeDatabaseConfig":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeDomainConfig"},{"type":"null"}]},"tables":{"items":{"type":"string"},"type":"array","title":"Tables","default":[]}},"type":"object","required":["db_id"],"title":"KnowledgeDatabaseConfig","description":"Configuration for a knowledge database with its tables"},"KnowledgeDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"KnowledgeDomainConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeInstanceConfig":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"db_id":{"type":"string","title":"Db Id"},"table":{"type":"string","title":"Table"}},"type":"object","required":["id","name","db_id","table"],"title":"KnowledgeInstanceConfig","description":"Configuration for a single knowledge instance"},"LearningConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_LearningDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"LearningConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningCreate":{"properties":{"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"content":{"additionalProperties":true,"type":"object","title":"Content","description":"The learning content payload"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID. When the request is authenticated, must match the JWT subject or be omitted/null (which creates a global / non-user-scoped record)."},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"}},"type":"object","required":["learning_type","content"],"title":"LearningCreate","description":"Request body for creating a learning record."},"LearningDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"LearningDomainConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningResponse":{"properties":{"learning_id":{"type":"string","title":"Learning Id","description":"Unique identifier for the learning record"},"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID (for entity-specific learnings)"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type (e.g. 'person', 'company')"},"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"The learning content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Creation timestamp (Unix epoch seconds)"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp (Unix epoch seconds)"}},"type":"object","required":["learning_id","learning_type"],"title":"LearningResponse","description":"A single learning record as returned by the API."},"LearningUpdate":{"properties":{"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Replacement content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Replacement metadata"}},"type":"object","title":"LearningUpdate","description":"Request body for updating a learning record. Identity fields are immutable."},"LearningUserStats":{"properties":{"user_id":{"type":"string","title":"User Id","description":"The user ID"},"last_learning_updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Learning Updated At","description":"Most recent learning update for this user (Unix epoch seconds)"}},"type":"object","required":["user_id"],"title":"LearningUserStats","description":"A user that owns learning records, with their most recent activity.\n\nUsed as a lightweight index for the per-user view: list users here, then drill into a\nsingle user's records via ``GET /learnings?user_id=...``. No per-user count is returned\n-- the user-scoped stores (``user_profile``, ``user_memory``) keep a single record per\nuser, so a record count would always be 1; the actual memory count lives in that\nrecord's ``content``."},"Manifest":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"},"quick_prompts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quick Prompts"}},"type":"object","title":"Manifest","description":"OS-level UI metadata for an agent/team/workflow.\n\nFields here are AgentOS UI metadata only. ``description`` is unrelated to\n``Agent.description`` / ``Team.description`` / ``Workflow.description``,\nwhich are sent to the model.\n\nRendering surfaces:\n- ``description``, ``labels``: home/landing card\n- ``quick_prompts``: chat page"},"McpInfo":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the MCP server is enabled on this OS instance","default":false},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Path where the MCP server is mounted, null when disabled"},"oauth":{"anyOf":[{"$ref":"#/components/schemas/McpOAuthInfo"},{"type":"null"}],"description":"OAuth discovery details when the MCP endpoint is OAuth-protected, null otherwise"}},"type":"object","title":"McpInfo","description":"MCP server availability for the /info endpoint."},"McpOAuthInfo":{"properties":{"authorization_servers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorization Servers","description":"Issuer URL(s) of the authorization server(s) protecting the MCP endpoint"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource","description":"RFC 9728 resource URL advertised for the MCP endpoint"}},"type":"object","title":"McpOAuthInfo","description":"OAuth discovery details for an MCP endpoint protected by ``AgentOS(mcp_auth=...)``."},"MemoryConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MemoryDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MemoryConfig","description":"Configuration for the Memory domain of the AgentOS"},"MemoryDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MemoryDomainConfig","description":"Configuration for the Memory domain of the AgentOS"},"Message":{"properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"kind":{"type":"string","const":"message","title":"Kind","default":"message"},"messageId":{"type":"string","title":"Messageid"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taskid"}},"type":"object","required":["messageId","parts","role"],"title":"Message","description":"Represents a single message in the conversation between a user and an agent."},"Meta":{"properties":{"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of results per page","default":20},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number","default":1}},"type":"object","title":"Meta","description":"Inline metadata schema for pagination."},"MetricsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MetricsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MetricsConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MetricsDomainConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsResponse":{"properties":{"metrics":{"items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"type":"array","title":"Metrics","description":"List of daily aggregated metrics"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp of the most recent metrics update"}},"type":"object","required":["metrics"],"title":"MetricsResponse"},"Model":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"Model"},"ModelResponse":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the model"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"ModelResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"NotFoundResponse","example":{"detail":"Not found","error_code":"NOT_FOUND"}},"NotImplementedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"NotImplementedResponse","example":{"detail":"Operation not supported for this resource type"}},"OptimizeMemoriesRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID to optimize memories for"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model in `provider:model_id` format. Current examples include `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, and `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`."},"apply":{"type":"boolean","title":"Apply","description":"If True, apply optimization changes to database. If False, return preview only without saving.","default":true}},"type":"object","required":["user_id"],"title":"OptimizeMemoriesRequest","description":"Schema for memory optimization request"},"OptimizeMemoriesResponse":{"properties":{"memories":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Memories","description":"List of optimized memory objects"},"memories_before":{"type":"integer","minimum":0.0,"title":"Memories Before","description":"Number of memories before optimization"},"memories_after":{"type":"integer","minimum":0.0,"title":"Memories After","description":"Number of memories after optimization"},"tokens_before":{"type":"integer","minimum":0.0,"title":"Tokens Before","description":"Token count before optimization"},"tokens_after":{"type":"integer","minimum":0.0,"title":"Tokens After","description":"Token count after optimization"},"tokens_saved":{"type":"integer","minimum":0.0,"title":"Tokens Saved","description":"Number of tokens saved through optimization"},"reduction_percentage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Reduction Percentage","description":"Percentage of token reduction achieved"}},"type":"object","required":["memories","memories_before","memories_after","tokens_before","tokens_after","tokens_saved","reduction_percentage"],"title":"OptimizeMemoriesResponse","description":"Schema for memory optimization response"},"PaginatedResponse_ApprovalResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ApprovalResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ApprovalResponse]"},"PaginatedResponse_ComponentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ComponentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ComponentResponse]"},"PaginatedResponse_ContentResponseSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentResponseSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ContentResponseSchema]"},"PaginatedResponse_EvalSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EvalSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[EvalSchema]"},"PaginatedResponse_LearningResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningResponse]"},"PaginatedResponse_LearningUserStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningUserStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningUserStats]"},"PaginatedResponse_RegistryContentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RegistryContentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[RegistryContentResponse]"},"PaginatedResponse_ScheduleResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleResponse]"},"PaginatedResponse_ScheduleRunResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleRunResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleRunResponse]"},"PaginatedResponse_ServiceAccountResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ServiceAccountResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ServiceAccountResponse]"},"PaginatedResponse_SessionSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SessionSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[SessionSchema]"},"PaginatedResponse_TraceDetail_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceDetail"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceDetail]"},"PaginatedResponse_TraceSessionStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSessionStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSessionStats]"},"PaginatedResponse_TraceSummary_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSummary"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSummary]"},"PaginatedResponse_UserMemorySchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserMemorySchema]"},"PaginatedResponse_UserStatsSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserStatsSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserStatsSchema]"},"PaginatedResponse_VectorSearchResult_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VectorSearchResult"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[VectorSearchResult]"},"PaginationInfo":{"properties":{"page":{"type":"integer","minimum":0.0,"title":"Page","description":"Current page number (0-indexed)","default":0},"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of items per page","default":20},"total_pages":{"type":"integer","minimum":0.0,"title":"Total Pages","description":"Total number of pages","default":0},"total_count":{"type":"integer","minimum":0.0,"title":"Total Count","description":"Total count of items","default":0},"search_time_ms":{"type":"number","minimum":0.0,"title":"Search Time Ms","description":"Search execution time in milliseconds","default":0}},"type":"object","title":"PaginationInfo"},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/DataPart"}],"title":"Part"},"ReaderSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the reader"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the reader"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the reader's capabilities"},"chunkers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chunkers","description":"List of supported chunking strategies"}},"type":"object","required":["id"],"title":"ReaderSchema"},"ReasoningMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"reasoning","title":"Role","default":"reasoning"},"content":{"type":"string","title":"Content"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"ReasoningMessage","description":"A reasoning message containing the agent's internal reasoning process."},"RegistryContentResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/RegistryResourceType"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name","type"],"title":"RegistryContentResponse"},"RegistryResourceType":{"type":"string","enum":["tool","model","db","vector_db","schema","function","agent","team","knowledge","memory_manager","session_summary_manager"],"title":"RegistryResourceType","description":"Types of resources that can be stored in a registry."},"RemoteContentSourceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content source"},"name":{"type":"string","title":"Name","description":"Display name for the content source"},"type":{"type":"string","title":"Type","description":"Type of content source (s3, gcs, sharepoint, github, azureblob)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Default path prefix for this source"}},"type":"object","required":["id","name","type"],"title":"RemoteContentSourceSchema","description":"Schema for remote content source configuration."},"ResumeEntry":{"properties":{"interruptId":{"type":"string","title":"Interruptid"},"status":{"type":"string","enum":["resolved","cancelled"],"title":"Status"},"payload":{"anyOf":[{},{"type":"null"}],"title":"Payload"}},"additionalProperties":true,"type":"object","required":["interruptId","status"],"title":"ResumeEntry","description":"A per-interrupt response in the resume array of a RunAgentInput."},"Role":{"type":"string","enum":["agent","user"],"title":"Role","description":"Identifies the sender of the message. `user` for the client, `agent` for the service."},"RunAgentInput":{"properties":{"threadId":{"type":"string","title":"Threadid"},"runId":{"type":"string","title":"Runid"},"parentRunId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentrunid"},"state":{"title":"State"},"messages":{"items":{"oneOf":[{"$ref":"#/components/schemas/DeveloperMessage"},{"$ref":"#/components/schemas/SystemMessage"},{"$ref":"#/components/schemas/AssistantMessage"},{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/ToolMessage"},{"$ref":"#/components/schemas/ActivityMessage"},{"$ref":"#/components/schemas/ReasoningMessage"}],"discriminator":{"propertyName":"role","mapping":{"activity":"#/components/schemas/ActivityMessage","assistant":"#/components/schemas/AssistantMessage","developer":"#/components/schemas/DeveloperMessage","reasoning":"#/components/schemas/ReasoningMessage","system":"#/components/schemas/SystemMessage","tool":"#/components/schemas/ToolMessage","user":"#/components/schemas/UserMessage"}}},"type":"array","title":"Messages"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","title":"Tools"},"context":{"items":{"$ref":"#/components/schemas/Context"},"type":"array","title":"Context"},"forwardedProps":{"title":"Forwardedprops"},"resume":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResumeEntry"},"type":"array"},{"type":"null"}],"title":"Resume"}},"additionalProperties":true,"type":"object","required":["threadId","runId","state","messages","tools","context","forwardedProps"],"title":"RunAgentInput","description":"Input for running an agent."},"RunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that executed this run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"RunSchema"},"RunStatus":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","PAUSED","CANCELLED","ERROR","REGENERATED"],"title":"RunStatus","description":"State of the main run response"},"ScheduleCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"cron_expr":{"type":"string","maxLength":128,"title":"Cron Expr"},"endpoint":{"type":"string","maxLength":512,"title":"Endpoint"},"method":{"type":"string","maxLength":10,"title":"Method","default":"POST"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"type":"string","maxLength":64,"title":"Timezone","default":"UTC"},"timeout_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Timeout Seconds","default":3600},"max_retries":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Max Retries","default":0},"retry_delay_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Retry Delay Seconds","default":60}},"type":"object","required":["name","cron_expr","endpoint"],"title":"ScheduleCreate"},"ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"cron_expr":{"type":"string","title":"Cron Expr"},"timezone":{"type":"string","title":"Timezone"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"max_retries":{"type":"integer","title":"Max Retries"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","method","endpoint","cron_expr","timezone","timeout_seconds","max_retries","retry_delay_seconds","enabled"],"title":"ScheduleResponse"},"ScheduleRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"schedule_id":{"type":"string","title":"Schedule Id"},"attempt":{"type":"integer","title":"Attempt"},"triggered_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triggered At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"status":{"type":"string","title":"Status"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","schedule_id","attempt","status"],"title":"ScheduleRunResponse"},"ScheduleStateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","enabled"],"title":"ScheduleStateResponse","description":"Trimmed response for state-changing operations (enable/disable)."},"ScheduleUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"cron_expr":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Cron Expr"},"endpoint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Endpoint"},"method":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Method"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Timezone"},"timeout_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":1.0},{"type":"null"}],"title":"Timeout Seconds"},"max_retries":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Max Retries"},"retry_delay_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":1.0},{"type":"null"}],"title":"Retry Delay Seconds"}},"type":"object","title":"ScheduleUpdate"},"ScopeItem":{"properties":{"scope":{"type":"string","title":"Scope","description":"Scope string, e.g. 'agents:*:run'"},"effect":{"type":"string","enum":["allow","deny"],"title":"Effect","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["scope"],"title":"ScopeItem","description":"Write shape for one scope grant \u2014 the canonical RBAC payload for every scope-bearing API.\n\nEndpoints that take scopes accept these objects only (a bare string is a validation\nerror). ``effect`` is constrained here so every consumer rejects typos at the model\nlayer; whether ``deny`` is *semantically* legal stays per-endpoint (roles support\ndeny rules, service-account tokens are pure grants and reject it)."},"ScopeSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Scope id (always null here; kept for shape parity with the cloud RBAC API, which addresses scopes individually)"},"raw":{"type":"string","title":"Raw","description":"Original scope string, e.g. 'agents:*:run'"},"namespace":{"type":"string","title":"Namespace","description":"Resource namespace, e.g. 'agents'"},"sub_namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Namespace","description":"Specific resource id or wildcard '*'"},"permission":{"type":"string","title":"Permission","description":"Action, e.g. 'read' / 'run' / 'write'"},"value":{"type":"string","title":"Value","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["raw","namespace","permission"],"title":"ScopeSchema","description":"Read shape for one scope \u2014 the parsed RBAC payload shared by every scope-bearing API.\n\nMirrors the cloud RBAC scope shape ({raw, namespace, sub_namespace, permission, value})\nso a frontend renders scopes from any AgentOS API with one integration."},"SendMessageRequest":{"description":"Represents a JSON-RPC request for the `message/send` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/send","default":"message/send","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendMessageRequest","type":"object"},"SendMessageSuccessResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id"},"jsonrpc":{"type":"string","const":"2.0","title":"Jsonrpc","default":"2.0"},"result":{"anyOf":[{"$ref":"#/components/schemas/Task"},{"$ref":"#/components/schemas/Message"}],"title":"Result"}},"type":"object","required":["result"],"title":"SendMessageSuccessResponse","description":"Represents a successful JSON-RPC response for the `message/send` method."},"SendStreamingMessageRequest":{"description":"Represents a JSON-RPC request for the `message/stream` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/stream","default":"message/stream","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendStreamingMessageRequest","type":"object"},"ServiceAccountCreate":{"properties":{"name":{"type":"string","maxLength":63,"title":"Name","description":"Machine identity name (lowercase slug), e.g. 'claude-code' or 'github-actions'"},"scopes":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScopeItem"},"type":"array"},{"type":"null"}],"title":"Scopes","description":"Scopes granted to the token, as {scope, effect} objects (the shared RBAC write shape; token scopes are grants, so only effect='allow' is accepted). Defaults to run and read scopes: agents:run, teams:run, workflows:run, sessions:read"},"expires_in_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Expires In Days","description":"Days until the token expires (default: 90)","default":90},"never_expires":{"type":"boolean","title":"Never Expires","description":"Mint a non-expiring token. Must be set explicitly; overrides expires_in_days.","default":false},"allow_privileged_scopes":{"type":"boolean","title":"Allow Privileged Scopes","description":"Required to grant privileged scopes: any write or delete action, the admin scope, or any service_accounts scope. Privileged tokens must be deliberate, never accidental.","default":false}},"type":"object","required":["name"],"title":"ServiceAccountCreate"},"ServiceAccountCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"token":{"type":"string","title":"Token","description":"The plaintext token. Shown exactly once - store it securely now."}},"type":"object","required":["id","name","principal","token_prefix","created_at","token"],"title":"ServiceAccountCreateResponse","description":"Returned once, at creation. The token is never retrievable again."},"ServiceAccountResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","name","principal","token_prefix","created_at"],"title":"ServiceAccountResponse","description":"Service account metadata. Never includes the token hash or plaintext."},"ServiceUnavailableResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ServiceUnavailableResponse","example":{"detail":"Feature not supported by the configured service"}},"SessionConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_SessionDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"SessionConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"SessionDomainConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier for the session"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state data of the session"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when session was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when session was last updated"},"session_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type","description":"Type of session: agent, team, or workflow"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["session_id","session_name"],"title":"SessionSchema"},"SessionType":{"type":"string","enum":["agent","team","workflow"],"title":"SessionType"},"SlackChallengeResponse":{"properties":{"challenge":{"type":"string","title":"Challenge","description":"Challenge string to echo back to Slack"}},"type":"object","required":["challenge"],"title":"SlackChallengeResponse"},"SlackEventResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"}},"type":"object","title":"SlackEventResponse"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"SourceFileSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Full path/key of the file"},"name":{"type":"string","title":"Name","description":"Display name (filename)"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"File size in bytes"},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified","description":"ISO 8601 timestamp of last modification"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"MIME type of the file"}},"type":"object","required":["key","name"],"title":"SourceFileSchema","description":"Schema for a file in a content source."},"SourceFilesResponseSchema":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"ID of the content source"},"source_name":{"type":"string","title":"Source Name","description":"Name of the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Prefix filter that was applied"},"folders":{"items":{"$ref":"#/components/schemas/SourceFolderSchema"},"type":"array","title":"Folders","description":"Subfolders at this level"},"files":{"items":{"$ref":"#/components/schemas/SourceFileSchema"},"type":"array","title":"Files","description":"List of files at this level"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["source_id","source_name","meta"],"title":"SourceFilesResponseSchema","description":"Response schema for listing files in a content source."},"SourceFolderSchema":{"properties":{"prefix":{"type":"string","title":"Prefix","description":"Full prefix to use for navigating into this folder"},"name":{"type":"string","title":"Name","description":"Display name of the folder"},"is_empty":{"type":"boolean","title":"Is Empty","description":"Whether the folder contains any files","default":false}},"type":"object","required":["prefix","name"],"title":"SourceFolderSchema","description":"Schema for a folder in a content source."},"SystemMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"system","title":"Role","default":"system"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"SystemMessage","description":"A system message."},"Task":{"properties":{"artifacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Artifact"},"type":"array"},{"type":"null"}],"title":"Artifacts"},"contextId":{"type":"string","title":"Contextid"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"History"},"id":{"type":"string","title":"Id"},"kind":{"type":"string","const":"task","title":"Kind","default":"task"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"status":{"$ref":"#/components/schemas/TaskStatus"}},"type":"object","required":["contextId","id","status"],"title":"Task","description":"Represents a single, stateful operation or conversation between a client and an agent."},"TaskState":{"type":"string","enum":["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"],"title":"TaskState","description":"Defines the lifecycle states of a Task."},"TaskStatus":{"properties":{"message":{"anyOf":[{"$ref":"#/components/schemas/Message"},{"type":"null"}]},"state":{"$ref":"#/components/schemas/TaskState"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp","examples":["2023-10-27T10:00:00Z"]}},"type":"object","required":["state"],"title":"TaskStatus","description":"Represents the status of a task at a specific point in time."},"TeamResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"members":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"$ref":"#/components/schemas/TeamResponse"}]},"type":"array"},{"type":"null"}],"title":"Members"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"TeamResponse"},"TeamRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the team run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that executed this run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the team run"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this team run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this team run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this team run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this team run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"TeamRunSchema"},"TeamSessionDetailSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID used in this session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of team interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"team_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Team Data","description":"Team-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"}},"type":"object","required":["session_id","session_name"],"title":"TeamSessionDetailSchema"},"TeamSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the team"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the team"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the team"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Team execution mode (coordinate, route, broadcast, tasks)"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the team leader"}},"type":"object","title":"TeamSummaryResponse"},"TelegramStatusResponse":{"properties":{"status":{"type":"string","title":"Status","default":"available"}},"type":"object","title":"TelegramStatusResponse"},"TelegramWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status"}},"type":"object","required":["status"],"title":"TelegramWebhookResponse"},"TextInputContent":{"properties":{"type":{"type":"string","const":"text","title":"Type","default":"text"},"text":{"type":"string","title":"Text"}},"additionalProperties":true,"type":"object","required":["text"],"title":"TextInputContent","description":"A text fragment in a multimodal user message."},"TextPart":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"TextPart","description":"Represents a text segment within a message or artifact."},"Tool":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{},{"type":"null"}],"title":"Parameters"}},"additionalProperties":true,"type":"object","required":["name","description"],"title":"Tool","description":"A tool definition."},"ToolCall":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/FunctionCall"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","function"],"title":"ToolCall","description":"A tool call, modelled after OpenAI tool calls."},"ToolMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"tool","title":"Role","default":"tool"},"content":{"type":"string","title":"Content"},"toolCallId":{"type":"string","title":"Toolcallid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content","toolCallId"],"title":"ToolMessage","description":"A tool result message."},"TraceDetail":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent/workflow"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the agent/workflow"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"},"tree":{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array","title":"Tree","description":"Hierarchical tree of spans (root nodes)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at","tree"],"title":"TraceDetail","description":"Detailed trace information with hierarchical span tree"},"TraceNode":{"properties":{"id":{"type":"string","title":"Id","description":"Span ID"},"name":{"type":"string","title":"Name","description":"Span name (e.g., 'agent.run', 'llm.invoke')"},"type":{"type":"string","title":"Type","description":"Span kind (AGENT, TEAM, WORKFLOW, LLM, TOOL)"},"duration":{"type":"string","title":"Duration","description":"Human-readable duration (e.g., '123ms', '1.5s')"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"End time (Pydantic auto-serializes to ISO 8601)"},"status":{"type":"string","title":"Status","description":"Status code (OK, ERROR)"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the span"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the span"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"spans":{"anyOf":[{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array"},{"type":"null"}],"title":"Spans","description":"Child spans in the trace hierarchy"},"step_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Type","description":"Workflow step type (Step, Condition, function, Agent, Team)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional span attributes and data"},"extra_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Data","description":"Flexible field for custom attributes and additional data"}},"type":"object","required":["id","name","type","duration","start_time","end_time","status"],"title":"TraceNode","description":"Recursive node structure for rendering trace hierarchy in the frontend"},"TraceSearchGroupBy":{"type":"string","enum":["run","session"],"title":"TraceSearchGroupBy","description":"Grouping options for trace search results."},"TraceSearchRequest":{"properties":{"filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter","description":"FilterExpr DSL as JSON dict. Supports operators: EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH, AND, OR, NOT."},"group_by":{"$ref":"#/components/schemas/TraceSearchGroupBy","description":"Grouping mode: 'run' returns individual TraceDetail, 'session' returns aggregated TraceSessionStats.","default":"run"},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number (1-indexed)","default":1},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"Number of traces per page (max 100)","default":20}},"type":"object","title":"TraceSearchRequest","description":"Request body for POST /traces/search with advanced filtering.\n\nThe filter field accepts a FilterExpr DSL dict supporting composable queries\nwith AND/OR/NOT logic and operators like EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH.\n\nExample for run grouping (default):\n {\n \"filter\": {\n \"op\": \"AND\",\n \"conditions\": [\n {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n {\"op\": \"CONTAINS\", \"key\": \"user_id\", \"value\": \"admin\"}\n ]\n },\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n }\n\nExample for session grouping:\n {\n \"filter\": {\"op\": \"EQ\", \"key\": \"agent_id\", \"value\": \"my-agent\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n }"},"TraceSessionStats":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID(s) used in the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID associated with the session"},"total_traces":{"type":"integer","title":"Total Traces","description":"Total number of traces in this session"},"first_trace_at":{"type":"string","format":"date-time","title":"First Trace At","description":"Time of first trace (Pydantic auto-serializes to ISO 8601)"},"last_trace_at":{"type":"string","format":"date-time","title":"Last Trace At","description":"Time of last trace (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["session_id","total_traces","first_trace_at","last_trace_at"],"title":"TraceSessionStats","description":"Aggregated trace statistics grouped by session"},"TraceSummary":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR, UNSET)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at"],"title":"TraceSummary","description":"Summary information for trace list view"},"TracesConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_TracesDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"TracesConfig","description":"Configuration for the Traces domain of the AgentOS"},"TracesDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"TracesDomainConfig","description":"Configuration for the Traces domain of the AgentOS"},"UnauthenticatedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"UnauthenticatedResponse","example":{"detail":"Unauthenticated access","error_code":"UNAUTHENTICATED"}},"UpdateEvalRunRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"New name for the evaluation run"}},"type":"object","required":["name"],"title":"UpdateEvalRunRequest"},"UpdateSessionRequest":{"properties":{"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Updated session name"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Updated session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Updated metadata"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary","description":"Session summary"}},"type":"object","title":"UpdateSessionRequest"},"UserMemoryCreateSchema":{"properties":{"memory":{"type":"string","maxLength":5000,"minLength":1,"title":"Memory","description":"Memory content text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags to categorize the memory"}},"type":"object","required":["memory"],"title":"UserMemoryCreateSchema","description":"Define the payload expected for creating a new user memory"},"UserMemorySchema":{"properties":{"memory_id":{"type":"string","title":"Memory Id","description":"Unique identifier for the memory"},"memory":{"type":"string","title":"Memory","description":"Memory content text"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags associated with the memory"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID associated with this memory"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with this memory"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when memory was last updated"}},"type":"object","required":["memory_id","memory"],"title":"UserMemorySchema"},"UserMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"user","title":"Role","default":"user"},"content":{"anyOf":[{"type":"string"},{"items":{"oneOf":[{"$ref":"#/components/schemas/TextInputContent"},{"$ref":"#/components/schemas/ImageInputContent"},{"$ref":"#/components/schemas/AudioInputContent"},{"$ref":"#/components/schemas/VideoInputContent"},{"$ref":"#/components/schemas/DocumentInputContent"},{"$ref":"#/components/schemas/BinaryInputContent"}],"discriminator":{"propertyName":"type","mapping":{"audio":"#/components/schemas/AudioInputContent","binary":"#/components/schemas/BinaryInputContent","document":"#/components/schemas/DocumentInputContent","image":"#/components/schemas/ImageInputContent","text":"#/components/schemas/TextInputContent","video":"#/components/schemas/VideoInputContent"}}},"type":"array"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"UserMessage","description":"A user message supporting text or multimodal content."},"UserStatsSchema":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"total_memories":{"type":"integer","minimum":0.0,"title":"Total Memories","description":"Total number of memories for this user"},"last_memory_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Memory Updated At","description":"Timestamp of the most recent memory update"}},"type":"object","required":["user_id","total_memories"],"title":"UserStatsSchema","description":"Schema for user memory statistics"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"ValidationErrorResponse","example":{"detail":"Validation error","error_code":"VALIDATION_ERROR"}},"VectorDbSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the vector database"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the vector database"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the vector database"},"search_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Search Types","description":"List of supported search types (vector, keyword, hybrid)"}},"type":"object","required":["id"],"title":"VectorDbSchema"},"VectorSearchRequestSchema":{"properties":{"query":{"type":"string","title":"Query","description":"The search query text"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database ID to search in"},"knowledge_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledge Id","description":"Knowledge base ID to search in"},"vector_db_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vector Db Ids","description":"List of vector database IDs to search in"},"search_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Type","description":"The type of search to perform (vector, keyword, hybrid)"},"max_results":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Max Results","description":"The maximum number of results to return"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Filters to apply to the search results"},"meta":{"anyOf":[{"$ref":"#/components/schemas/Meta"},{"type":"null"}],"description":"Pagination metadata. Limit and page number to return a subset of results."}},"type":"object","required":["query"],"title":"VectorSearchRequestSchema","description":"Schema for vector search request."},"VectorSearchResult":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the search result document"},"content":{"type":"string","title":"Content","description":"Content text of the document"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the document"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Metadata associated with the document"},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"Usage statistics (e.g., token counts)"},"reranking_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reranking Score","description":"Reranking score for relevance"},"content_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Id","description":"ID of the source content"},"content_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Origin","description":"Origin URL or source of the content"},"size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"}},"type":"object","required":["id","content"],"title":"VectorSearchResult","description":"Schema for search result documents."},"VideoInputContent":{"properties":{"type":{"type":"string","const":"video","title":"Type","default":"video"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"VideoInputContent","description":"A video input content fragment."},"WhatsAppWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status","default":"ok"}},"type":"object","title":"WhatsAppWebhookResponse"},"WorkflowResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema","description":"Input schema for the workflow"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps","description":"List of workflow steps"},"agent":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"type":"null"}],"description":"Agent configuration if used"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamResponse"},{"type":"null"}],"description":"Team configuration if used"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"workflow_agent":{"type":"boolean","title":"Workflow Agent","description":"Whether this workflow uses a WorkflowAgent","default":false},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowResponse"},"WorkflowRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the workflow run"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the workflow"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was executed"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the workflow"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"Type of content returned"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status of the workflow run"},"step_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Results","description":"Results from each workflow step"},"step_executor_runs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Executor Runs","description":"Executor runs for each step"},"step_requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Requirements","description":"HITL step requirements (resolved state for historical display)"},"pause_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Kind","description":"Kind of HITL pause: 'step' or 'executor'"},"paused_step_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Step Name","description":"Name of the step that caused the pause"},"paused_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Paused Step Index","description":"Index of the step that caused the pause"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the workflow"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the workflow"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the workflow"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the workflow"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the workflow"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"}},"type":"object","required":["run_id"],"title":"WorkflowRunSchema"},"WorkflowSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID used in this session"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name","description":"Name of the workflow"},"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Data","description":"Complete session data"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current workflow state"},"workflow_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Data","description":"Workflow-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["session_id","session_name"],"title":"WorkflowSessionDetailSchema"},"WorkflowSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowSummaryResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} diff --git a/reference-api/openapi.yaml b/reference-api/openapi.yaml index 1692dc2d0..ff8cac9d1 100644 --- a/reference-api/openapi.yaml +++ b/reference-api/openapi.yaml @@ -130,6 +130,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -184,6 +190,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -270,6 +282,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Agent not found content: @@ -342,6 +360,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Agent not found content: @@ -413,6 +437,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Agent not found content: @@ -491,6 +521,8 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Run has a pending admin approval and cannot be continued by the user yet. '404': description: Agent not found content: @@ -509,8 +541,6 @@ paths: application/json: schema: $ref: '#/components/schemas/InternalServerErrorResponse' - '403': - description: Run has a pending admin approval and cannot be continued by the user yet. /agents/{agent_id}/sessions/{session_id}/fork: post: tags: @@ -576,6 +606,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Agent not found content: @@ -646,6 +682,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -725,6 +767,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Agent not found content: @@ -795,6 +843,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Agent or run not found content: @@ -861,6 +915,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Agent or run not found content: @@ -933,6 +993,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Agent or run not found content: @@ -1008,6 +1074,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Agent not found content: @@ -1089,6 +1161,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Team not found content: @@ -1161,6 +1239,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Team not found content: @@ -1232,6 +1316,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Team not found content: @@ -1305,6 +1395,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Team or run not found content: @@ -1383,12 +1479,16 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Run has a pending admin approval and cannot be continued by the user yet. '404': description: Team not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' + '409': + description: Run is not paused (e.g. run is already running, continued, or errored). Only PAUSED runs can be continued. '422': description: Validation Error content: @@ -1401,10 +1501,6 @@ paths: application/json: schema: $ref: '#/components/schemas/InternalServerErrorResponse' - '403': - description: Run has a pending admin approval and cannot be continued by the user yet. - '409': - description: Run is not paused (e.g. run is already running, continued, or errored). Only PAUSED runs can be continued. /teams/{team_id}/sessions/{session_id}/fork: post: tags: @@ -1470,6 +1566,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Team not found content: @@ -1579,6 +1681,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -1688,6 +1796,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Team not found content: @@ -1758,6 +1872,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Team or run not found content: @@ -1824,6 +1944,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Team or run not found content: @@ -1896,6 +2022,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Team or run not found content: @@ -1955,6 +2087,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -2025,6 +2163,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Workflow not found content: @@ -2110,6 +2254,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Workflow not found content: @@ -2192,6 +2342,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Workflow not found content: @@ -2268,12 +2424,20 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Workflow not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' + '409': + description: Run is not paused. Only PAUSED runs can be continued. '422': description: Validation Error content: @@ -2286,8 +2450,6 @@ paths: application/json: schema: $ref: '#/components/schemas/InternalServerErrorResponse' - '409': - description: Run is not paused. Only PAUSED runs can be continued. /workflows/{workflow_id}/runs/{run_id}/cancel: post: tags: @@ -2340,6 +2502,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Workflow not found, or the requested run was not found in the caller's session content: @@ -2415,6 +2583,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Workflow not found content: @@ -2495,6 +2669,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Workflow or run not found content: @@ -2576,6 +2756,7 @@ paths: - `row_approve` - Approve a pending tool call - `row_reject` - Reject a pending tool call - `submit_pause` - Submit form data for a paused workflow + - `check_status` - Check an admin approval and resume an approved run **Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Interactivity & Shortcuts > Request URL**. @@ -2657,6 +2838,30 @@ paths: $ref: '#/components/schemas/WhatsAppWebhookResponse' '403': description: Invalid webhook signature + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' + '500': + description: Signature validation is not configured, or the JSON body is malformed or is not an object + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerErrorResponse' + parameters: + - name: X-Hub-Signature-256 + in: header + required: true + schema: + type: string + description: SHA-256 HMAC signature for the raw request body, prefixed with `sha256=` + requestBody: + required: true + content: + application/json: + schema: + type: object + additionalProperties: true /telegram/status: get: tags: @@ -2699,16 +2904,31 @@ paths: required: true responses: '200': - description: Successful Response + description: Server-sent event stream + content: + text/event-stream: + schema: + type: string + '401': + description: Unauthorized content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] /status: get: tags: @@ -2751,7 +2971,7 @@ paths: tags: - A2A summary: Run Message Agent - description: 'Send a message to an Agno Agent (non-streaming). The Agent is identified via the path parameter ''{id}''. Optional: Pass user ID via X-User-ID header (recommended) or ''userId'' in params.message.metadata.' + description: Send a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. operationId: run_message_agent parameters: - name: id @@ -2760,6 +2980,12 @@ paths: schema: type: string title: Id + - name: X-User-ID + in: header + required: false + schema: + type: string + description: Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential. responses: '200': description: Message sent successfully @@ -2768,21 +2994,34 @@ paths: schema: $ref: '#/components/schemas/SendMessageSuccessResponse' example: - jsonrpc: '2.0' id: request-123 + jsonrpc: '2.0' result: - task: - id: task-456 - context_id: context-789 - status: completed - history: - - message_id: msg-1 - role: agent - parts: - - kind: text - text: Response from agent + contextId: context-789 + id: task-456 + kind: task + status: + state: completed + '202': + description: Message accepted for background execution when `blocking=false` + content: + application/json: + schema: + $ref: '#/components/schemas/SendMessageSuccessResponse' '400': description: Invalid request + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Agent not found '422': @@ -2791,6 +3030,20 @@ paths: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + '501': + description: A2A is not supported for this agent type + content: + application/json: + schema: + $ref: '#/components/schemas/NotImplementedResponse' + security: + - HTTPBearer: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SendMessageRequest' /a2a/agents/{id}/v1/tasks:get: post: tags: @@ -2848,7 +3101,7 @@ paths: tags: - A2A summary: Stream Message Agent - description: 'Stream a message to an Agno Agent (streaming). The Agent is identified via the path parameter ''{id}''. Optional: Pass user ID via X-User-ID header (recommended) or ''userId'' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).' + description: Stream a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream. operationId: stream_message_agent parameters: - name: id @@ -2857,12 +3110,16 @@ paths: schema: type: string title: Id + - name: X-User-ID + in: header + required: false + schema: + type: string + description: Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential. responses: '200': description: Streaming response with task updates content: - application/json: - schema: {} text/event-stream: example: |+ event: TaskStatusUpdateEvent @@ -2871,8 +3128,22 @@ paths: event: Message data: {"jsonrpc":"2.0","id":"request-123","result":{"messageId":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response"}]}} + schema: + type: string '400': description: Invalid request + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Agent not found '422': @@ -2881,6 +3152,20 @@ paths: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + '500': + description: Run could not be started + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerErrorResponse' + security: + - HTTPBearer: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SendStreamingMessageRequest' /a2a/teams/{id}/.well-known/agent-card.json: get: tags: @@ -2911,7 +3196,7 @@ paths: tags: - A2A summary: Run Message Team - description: 'Send a message to an Agno Team (non-streaming). The Team is identified via the path parameter ''{id}''. Optional: Pass user ID via X-User-ID header (recommended) or ''userId'' in params.message.metadata.' + description: Send a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. operationId: run_message_team parameters: - name: id @@ -2920,6 +3205,12 @@ paths: schema: type: string title: Id + - name: X-User-ID + in: header + required: false + schema: + type: string + description: Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential. responses: '200': description: Message sent successfully @@ -2928,21 +3219,34 @@ paths: schema: $ref: '#/components/schemas/SendMessageSuccessResponse' example: - jsonrpc: '2.0' id: request-123 + jsonrpc: '2.0' result: - task: - id: task-456 - context_id: context-789 - status: completed - history: - - message_id: msg-1 - role: agent - parts: - - kind: text - text: Response from agent + contextId: context-789 + id: task-456 + kind: task + status: + state: completed + '202': + description: Message accepted for background execution when `blocking=false` + content: + application/json: + schema: + $ref: '#/components/schemas/SendMessageSuccessResponse' '400': description: Invalid request + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Team not found '422': @@ -2951,6 +3255,14 @@ paths: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SendMessageRequest' /a2a/teams/{id}/v1/tasks:get: post: tags: @@ -3008,7 +3320,7 @@ paths: tags: - A2A summary: Stream Message Team - description: 'Stream a message to an Agno Team (streaming). The Team is identified via the path parameter ''{id}''. Optional: Pass user ID via X-User-ID header (recommended) or ''userId'' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).' + description: Stream a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream. operationId: stream_message_team parameters: - name: id @@ -3017,12 +3329,16 @@ paths: schema: type: string title: Id + - name: X-User-ID + in: header + required: false + schema: + type: string + description: Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential. responses: '200': description: Streaming response with task updates content: - application/json: - schema: {} text/event-stream: example: |+ event: TaskStatusUpdateEvent @@ -3031,8 +3347,22 @@ paths: event: Message data: {"jsonrpc":"2.0","id":"request-123","result":{"messageId":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response"}]}} + schema: + type: string '400': description: Invalid request + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Team not found '422': @@ -3041,6 +3371,20 @@ paths: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + '500': + description: Run could not be started + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerErrorResponse' + security: + - HTTPBearer: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SendStreamingMessageRequest' /a2a/workflows/{id}/.well-known/agent-card.json: get: tags: @@ -3071,7 +3415,7 @@ paths: tags: - A2A summary: Run Message Workflow - description: 'Send a message to an Agno Workflow (non-streaming). The Workflow is identified via the path parameter ''{id}''. Optional: Pass user ID via X-User-ID header (recommended) or ''userId'' in params.message.metadata.' + description: Send a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. operationId: run_message_workflow parameters: - name: id @@ -3080,6 +3424,12 @@ paths: schema: type: string title: Id + - name: X-User-ID + in: header + required: false + schema: + type: string + description: Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential. responses: '200': description: Message sent successfully @@ -3088,21 +3438,28 @@ paths: schema: $ref: '#/components/schemas/SendMessageSuccessResponse' example: - jsonrpc: '2.0' id: request-123 + jsonrpc: '2.0' result: - task: - id: task-456 - context_id: context-789 - status: completed - history: - - message_id: msg-1 - role: agent - parts: - - kind: text - text: Response from agent + contextId: context-789 + id: task-456 + kind: task + status: + state: completed '400': description: Invalid request + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Workflow not found '422': @@ -3111,12 +3468,20 @@ paths: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SendMessageRequest' /a2a/workflows/{id}/v1/message:stream: post: tags: - A2A summary: Stream Message Workflow - description: 'Stream a message to an Agno Workflow (streaming). The Workflow is identified via the path parameter ''{id}''. Optional: Pass user ID via X-User-ID header (recommended) or ''userId'' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).' + description: Stream a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream. operationId: stream_message_workflow parameters: - name: id @@ -3125,12 +3490,16 @@ paths: schema: type: string title: Id + - name: X-User-ID + in: header + required: false + schema: + type: string + description: Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential. responses: '200': description: Streaming response with task updates content: - application/json: - schema: {} text/event-stream: example: |+ event: TaskStatusUpdateEvent @@ -3139,8 +3508,22 @@ paths: event: Message data: {"jsonrpc":"2.0","id":"request-123","result":{"messageId":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response"}]}} + schema: + type: string '400': description: Invalid request + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Workflow not found '422': @@ -3149,6 +3532,20 @@ paths: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + '500': + description: Run could not be started + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerErrorResponse' + security: + - HTTPBearer: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SendStreamingMessageRequest' /a2a/message/send: post: tags: @@ -3351,6 +3748,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not found content: @@ -3441,12 +3844,20 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' + '409': + description: A session with the supplied session_id already exists '422': description: Validation error content: @@ -3459,8 +3870,6 @@ paths: application/json: schema: $ref: '#/components/schemas/InternalServerErrorResponse' - '409': - description: A session with the supplied session_id already exists delete: tags: - Sessions @@ -3521,6 +3930,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -3687,6 +4102,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Session not found content: @@ -3767,6 +4188,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -3898,6 +4325,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Session not found content: @@ -4099,6 +4532,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Session not found or has no runs content: @@ -4217,6 +4656,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Session or run not found content: @@ -4389,6 +4834,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Session not found content: @@ -4472,6 +4923,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -4540,6 +4997,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -4714,6 +5177,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -4795,6 +5264,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '422': description: Validation Error content: @@ -4880,6 +5355,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Memory not found content: @@ -4967,6 +5448,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Memory not found content: @@ -5057,6 +5544,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -5163,6 +5656,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -5186,7 +5685,7 @@ paths: tags: - Memory summary: Optimize User Memories - description: Optimize all memories for a given user using the default summarize strategy. This operation combines all memories into a single comprehensive summary, achieving maximum token reduction while preserving all key information. To use a custom model, specify the model parameter in 'provider:model_id' format (e.g., 'openai:gpt-4o-mini', 'anthropic:claude-3-5-sonnet-20241022'). If not specified, uses MemoryManager's default model (gpt-4o). Set apply=false to preview optimization results without saving to database. + description: Optimize all memories for a user with the summarize strategy. The operation combines the user's memories into one summary. Set `apply=false` to preview the result without saving it. Specify a custom model as `provider:model_id`, for example `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, or `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`. operationId: optimize_memories security: - HTTPBearer: [] @@ -5254,6 +5753,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: No memories found for user content: @@ -5443,6 +5948,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -5515,6 +6026,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -5644,6 +6161,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -5725,6 +6248,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -5800,6 +6329,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -5880,6 +6415,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -5950,6 +6491,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -6143,6 +6690,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -6205,6 +6758,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '422': description: Validation Error content: @@ -6284,6 +6843,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Agent or team not found content: @@ -6374,6 +6939,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Evaluation run not found content: @@ -6469,6 +7040,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Evaluation run not found content: @@ -6585,6 +7162,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -6675,6 +7258,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '422': description: Validation Error content: @@ -6749,6 +7338,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -6879,8 +7474,14 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' - '404': - description: Not Found + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' + '404': + description: Not Found content: application/json: schema: @@ -6944,6 +7545,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -7024,6 +7631,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -7116,6 +7729,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Content not found content: @@ -7200,6 +7819,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Content not found content: @@ -7272,6 +7897,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Content not found content: @@ -7351,6 +7982,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Content not found content: @@ -7414,6 +8051,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: No documents found '422': @@ -7801,6 +8444,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -7874,6 +8523,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Knowledge base not found content: @@ -8006,6 +8661,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Knowledge base or content source not found content: @@ -8213,6 +8874,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -8265,6 +8932,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -8420,6 +9093,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Trace or span not found content: @@ -8587,6 +9266,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -8688,6 +9373,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -8744,6 +9435,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -8806,6 +9503,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Database not found content: @@ -8884,6 +9587,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -8935,6 +9644,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -8990,6 +9705,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -9051,6 +9772,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -9101,6 +9828,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -9168,6 +9901,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -9229,6 +9968,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -9299,6 +10044,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -9361,6 +10112,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -9383,7 +10140,7 @@ paths: tags: - Components summary: Delete Config Version - description: Delete a specific draft config version. Cannot delete published or current configs. + description: Delete a specific config version. Agno v2.7.4 rejects the current version. Synchronous SQLite and PostgreSQL storage allow deletion of a published non-current version. operationId: delete_config security: - HTTPBearer: [] @@ -9419,6 +10176,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -9474,6 +10237,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -9537,6 +10306,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': description: Not Found content: @@ -9596,12 +10371,30 @@ paths: application/json: schema: $ref: '#/components/schemas/PaginatedResponse_ScheduleResponse_' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + '503': + description: Scheduler storage is unavailable + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' post: tags: - Schedules @@ -9622,12 +10415,42 @@ paths: application/json: schema: $ref: '#/components/schemas/ScheduleResponse' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' + '409': + description: A schedule with this name already exists + content: + application/json: + schema: + $ref: '#/components/schemas/ConflictResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + '500': + description: Schedule could not be created + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerErrorResponse' + '503': + description: Scheduler dependencies or storage are unavailable + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' /schedules/{schedule_id}: get: tags: @@ -9650,12 +10473,36 @@ paths: application/json: schema: $ref: '#/components/schemas/ScheduleResponse' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' + '404': + description: Schedule not found + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + '503': + description: Scheduler storage is unavailable + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' patch: tags: - Schedules @@ -9683,12 +10530,48 @@ paths: application/json: schema: $ref: '#/components/schemas/ScheduleResponse' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' + '404': + description: Schedule not found + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponse' + '409': + description: A schedule with this name already exists + content: + application/json: + schema: + $ref: '#/components/schemas/ConflictResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + '500': + description: Schedule could not be updated + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerErrorResponse' + '503': + description: Scheduler dependencies or storage are unavailable + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' delete: tags: - Schedules @@ -9706,12 +10589,42 @@ paths: responses: '204': description: Successful Response + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' + '404': + description: Schedule not found + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + '500': + description: Schedule could not be deleted + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerErrorResponse' + '503': + description: Scheduler storage is unavailable + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' /schedules/{schedule_id}/enable: post: tags: @@ -9734,19 +10647,49 @@ paths: application/json: schema: $ref: '#/components/schemas/ScheduleStateResponse' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' + '404': + description: Schedule not found + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' - /schedules/{schedule_id}/disable: - post: - tags: - - Schedules - summary: Disable Schedule - operationId: disable_schedule_schedules__schedule_id__disable_post - security: + '500': + description: Schedule could not be enabled + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerErrorResponse' + '503': + description: Scheduler dependencies or storage are unavailable + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' + /schedules/{schedule_id}/disable: + post: + tags: + - Schedules + summary: Disable Schedule + operationId: disable_schedule_schedules__schedule_id__disable_post + security: - HTTPBearer: [] parameters: - name: schedule_id @@ -9762,12 +10705,42 @@ paths: application/json: schema: $ref: '#/components/schemas/ScheduleStateResponse' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' + '404': + description: Schedule not found + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + '500': + description: Schedule could not be disabled + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerErrorResponse' + '503': + description: Scheduler storage is unavailable + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' /schedules/{schedule_id}/trigger: post: tags: @@ -9790,12 +10763,42 @@ paths: application/json: schema: $ref: '#/components/schemas/ScheduleRunResponse' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' + '404': + description: Schedule not found + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponse' + '409': + description: Schedule is disabled + content: + application/json: + schema: + $ref: '#/components/schemas/ConflictResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + '503': + description: Scheduler is not running or storage is unavailable + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' /schedules/{schedule_id}/runs: get: tags: @@ -9835,12 +10838,36 @@ paths: application/json: schema: $ref: '#/components/schemas/PaginatedResponse_ScheduleRunResponse_' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' + '404': + description: Schedule not found + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + '503': + description: Scheduler storage is unavailable + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' /schedules/{schedule_id}/runs/{run_id}: get: tags: @@ -9869,12 +10896,36 @@ paths: application/json: schema: $ref: '#/components/schemas/ScheduleRunResponse' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' + '404': + description: Schedule run not found + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + '503': + description: Scheduler storage is unavailable + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' /approvals: get: tags: @@ -9997,6 +11048,18 @@ paths: application/json: schema: $ref: '#/components/schemas/PaginatedResponse_ApprovalResponse_' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '422': description: Validation Error content: @@ -10027,6 +11090,18 @@ paths: application/json: schema: $ref: '#/components/schemas/ApprovalCountResponse' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '422': description: Validation Error content: @@ -10055,6 +11130,18 @@ paths: application/json: schema: $ref: '#/components/schemas/ApprovalStatusResponse' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '422': description: Validation Error content: @@ -10083,6 +11170,18 @@ paths: application/json: schema: $ref: '#/components/schemas/ApprovalResponse' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '422': description: Validation Error content: @@ -10106,6 +11205,18 @@ paths: responses: '204': description: Successful Response + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '422': description: Validation Error content: @@ -10140,6 +11251,18 @@ paths: application/json: schema: $ref: '#/components/schemas/ApprovalResponse' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '422': description: Validation Error content: @@ -10168,12 +11291,48 @@ paths: application/json: schema: $ref: '#/components/schemas/ServiceAccountCreateResponse' + '400': + description: Requested scopes are invalid, or privileged scopes were not explicitly allowed + content: + application/json: + schema: + $ref: '#/components/schemas/BadRequestResponse' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' + '409': + description: An active service account with this name already exists + content: + application/json: + schema: + $ref: '#/components/schemas/ConflictResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + '500': + description: Service account could not be created + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerErrorResponse' + '503': + description: Service accounts are not supported by the configured database + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' get: tags: - Service Accounts @@ -10228,6 +11387,18 @@ paths: application/json: schema: $ref: '#/components/schemas/PaginatedResponse_ServiceAccountResponse_' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '422': description: Validation Error content: @@ -10252,130 +11423,427 @@ paths: required: true schema: type: string - title: Service Account Id - responses: - '204': - description: Successful Response - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/UnauthenticatedResponse' - '404': - description: Service account not found - content: - application/json: - schema: - $ref: '#/components/schemas/NotFoundResponse' - '422': - description: Validation Error - content: - application/json: - schema: - $ref: '#/components/schemas/HTTPValidationError' - '500': - description: Service account could not be revoked - content: - application/json: - schema: - $ref: '#/components/schemas/InternalServerErrorResponse' - '503': - description: Service accounts are not supported by the configured database - content: - application/json: - schema: - $ref: '#/components/schemas/ServiceUnavailableResponse' - /registry: - get: - tags: - - Registry - summary: List Registry - description: List all resources in the registry with optional filtering. - operationId: list_registry - security: - - HTTPBearer: [] - parameters: - - name: resource_type - in: query - required: false - schema: - anyOf: - - $ref: '#/components/schemas/RegistryResourceType' - - type: 'null' - description: Filter by resource type - title: Resource Type - description: Filter by resource type - - name: name - in: query - required: false - schema: - anyOf: - - type: string - - type: 'null' - description: Filter by name (partial match) - title: Name - description: Filter by name (partial match) - - name: page - in: query - required: false - schema: - type: integer - minimum: 1 - description: Page number - default: 1 - title: Page - description: Page number - - name: limit - in: query - required: false - schema: - type: integer - maximum: 100 - minimum: 1 - description: Items per page - default: 20 - title: Limit - description: Items per page - responses: - '200': - description: Successful Response - content: - application/json: - schema: - $ref: '#/components/schemas/PaginatedResponse_RegistryContentResponse_' - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/BadRequestResponse' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/UnauthenticatedResponse' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/NotFoundResponse' - '422': - description: Validation Error - content: - application/json: - schema: - $ref: '#/components/schemas/ValidationErrorResponse' - '500': - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/InternalServerErrorResponse' -components: - schemas: + title: Service Account Id + responses: + '204': + description: Successful Response + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' + '404': + description: Service account not found + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponse' + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + '500': + description: Service account could not be revoked + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerErrorResponse' + '503': + description: Service accounts are not supported by the configured database + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' + /registry: + get: + tags: + - Registry + summary: List Registry + description: List all resources in the registry with optional filtering. + operationId: list_registry + security: + - HTTPBearer: [] + parameters: + - name: resource_type + in: query + required: false + schema: + anyOf: + - $ref: '#/components/schemas/RegistryResourceType' + - type: 'null' + description: Filter by resource type + title: Resource Type + description: Filter by resource type + - name: name + in: query + required: false + schema: + anyOf: + - type: string + - type: 'null' + description: Filter by name (partial match) + title: Name + description: Filter by name (partial match) + - name: page + in: query + required: false + schema: + type: integer + minimum: 1 + description: Page number + default: 1 + title: Page + description: Page number + - name: limit + in: query + required: false + schema: + type: integer + maximum: 100 + minimum: 1 + description: Items per page + default: 20 + title: Limit + description: Items per page + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedResponse_RegistryContentResponse_' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/BadRequestResponse' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponse' + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationErrorResponse' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerErrorResponse' +components: + schemas: + A2ARequest_DataPart: + description: Represents a structured data segment (e.g., JSON) within a message or artifact. + properties: + data: + additionalProperties: true + title: Data + type: object + kind: + const: data + default: data + title: Kind + type: string + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: null + title: Metadata + required: + - data + title: DataPart + type: object + A2ARequest_FilePart: + description: |- + Represents a file segment within a message or artifact. The file content can be + provided either directly as bytes or as a URI. + properties: + file: + anyOf: + - $ref: '#/components/schemas/A2ARequest_FileWithBytes' + - $ref: '#/components/schemas/A2ARequest_FileWithUri' + title: File + kind: + const: file + default: file + title: Kind + type: string + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: null + title: Metadata + required: + - file + title: FilePart + type: object + A2ARequest_FileWithBytes: + description: Represents a file with its content provided directly as a base64-encoded string. + properties: + bytes: + title: Bytes + type: string + mimeType: + anyOf: + - type: string + - type: 'null' + default: null + title: Mimetype + name: + anyOf: + - type: string + - type: 'null' + default: null + title: Name + required: + - bytes + title: FileWithBytes + type: object + A2ARequest_FileWithUri: + description: Represents a file with its content located at a specific URI. + properties: + mimeType: + anyOf: + - type: string + - type: 'null' + default: null + title: Mimetype + name: + anyOf: + - type: string + - type: 'null' + default: null + title: Name + uri: + title: Uri + type: string + required: + - uri + title: FileWithUri + type: object + A2ARequest_Message: + description: Represents a single message in the conversation between a user and an agent. + properties: + contextId: + anyOf: + - type: string + - type: 'null' + default: null + title: Contextid + extensions: + anyOf: + - items: + type: string + type: array + - type: 'null' + default: null + title: Extensions + kind: + const: message + default: message + title: Kind + type: string + messageId: + title: Messageid + type: string + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: null + title: Metadata + parts: + items: + $ref: '#/components/schemas/A2ARequest_Part' + title: Parts + type: array + referenceTaskIds: + anyOf: + - items: + type: string + type: array + - type: 'null' + default: null + title: Referencetaskids + role: + $ref: '#/components/schemas/A2ARequest_Role' + taskId: + anyOf: + - type: string + - type: 'null' + default: null + title: Taskid + required: + - messageId + - parts + - role + title: Message + type: object + A2ARequest_MessageSendConfiguration: + description: Defines configuration options for a `message/send` or `message/stream` request. + properties: + acceptedOutputModes: + anyOf: + - items: + type: string + type: array + - type: 'null' + default: null + title: Acceptedoutputmodes + blocking: + anyOf: + - type: boolean + - type: 'null' + default: null + title: Blocking + historyLength: + anyOf: + - type: integer + - type: 'null' + default: null + title: Historylength + pushNotificationConfig: + anyOf: + - $ref: '#/components/schemas/A2ARequest_PushNotificationConfig' + - type: 'null' + default: null + title: MessageSendConfiguration + type: object + A2ARequest_MessageSendParams: + description: |- + Defines the parameters for a request to send a message to an agent. This can be used + to create a new task, continue an existing one, or restart a task. + properties: + configuration: + anyOf: + - $ref: '#/components/schemas/A2ARequest_MessageSendConfiguration' + - type: 'null' + default: null + message: + $ref: '#/components/schemas/A2ARequest_Message' + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: null + title: Metadata + required: + - message + title: MessageSendParams + type: object + A2ARequest_Part: + anyOf: + - $ref: '#/components/schemas/A2ARequest_TextPart' + - $ref: '#/components/schemas/A2ARequest_FilePart' + - $ref: '#/components/schemas/A2ARequest_DataPart' + title: Part + A2ARequest_PushNotificationAuthenticationInfo: + description: Defines authentication details for a push notification endpoint. + properties: + credentials: + anyOf: + - type: string + - type: 'null' + default: null + title: Credentials + schemes: + items: + type: string + title: Schemes + type: array + required: + - schemes + title: PushNotificationAuthenticationInfo + type: object + A2ARequest_PushNotificationConfig: + description: Defines the configuration for setting up push notifications for task updates. + properties: + authentication: + anyOf: + - $ref: '#/components/schemas/A2ARequest_PushNotificationAuthenticationInfo' + - type: 'null' + default: null + id: + anyOf: + - type: string + - type: 'null' + default: null + title: Id + token: + anyOf: + - type: string + - type: 'null' + default: null + title: Token + url: + title: Url + type: string + required: + - url + title: PushNotificationConfig + type: object + A2ARequest_Role: + description: Identifies the sender of the message. `user` for the client, `agent` for the service. + enum: + - agent + - user + title: Role + type: string + A2ARequest_TextPart: + description: Represents a text segment within a message or artifact. + properties: + kind: + const: text + default: text + title: Kind + type: string + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: null + title: Metadata + text: + title: Text + type: string + required: + - text + title: TextPart + type: object ActivityMessage: properties: id: @@ -12038,6 +13506,18 @@ components: title: Links type: object title: ConfigUpdate + ConflictResponse: + properties: + detail: + type: string + title: Detail + description: Error detail message + type: object + required: + - detail + title: ConflictResponse + example: + detail: Resource conflict ContentResponseSchema: properties: id: @@ -12930,6 +14410,18 @@ components: - fields title: FilterSchemaResponse description: Response for the filter schema endpoint. Tells the FE what fields, operators, and values are available. + ForbiddenResponse: + properties: + detail: + type: string + title: Detail + description: Error detail message + type: object + required: + - detail + title: ForbiddenResponse + example: + detail: Insufficient permissions FunctionCall: properties: name: @@ -13705,6 +15197,18 @@ components: example: detail: Not found error_code: NOT_FOUND + NotImplementedResponse: + properties: + detail: + type: string + title: Detail + description: Error detail message + type: object + required: + - detail + title: NotImplementedResponse + example: + detail: Operation not supported for this resource type OptimizeMemoriesRequest: properties: user_id: @@ -13716,7 +15220,7 @@ components: - type: string - type: 'null' title: Model - description: Model to use for optimization in format 'provider:model_id' (e.g., 'openai:gpt-4o-mini', 'anthropic:claude-3-5-sonnet-20241022', 'google:gemini-2.0-flash-exp'). If not specified, uses MemoryManager's default model (gpt-4o). + description: Model in `provider:model_id` format. Current examples include `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, and `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`. apply: type: boolean title: Apply @@ -14931,6 +16435,31 @@ components: Mirrors the cloud RBAC scope shape ({raw, namespace, sub_namespace, permission, value}) so a frontend renders scopes from any AgentOS API with one integration. + SendMessageRequest: + description: Represents a JSON-RPC request for the `message/send` method. + properties: + id: + anyOf: + - type: string + - type: integer + title: Id + jsonrpc: + const: '2.0' + default: '2.0' + title: Jsonrpc + type: string + method: + const: message/send + default: message/send + title: Method + type: string + params: + $ref: '#/components/schemas/A2ARequest_MessageSendParams' + required: + - id + - params + title: SendMessageRequest + type: object SendMessageSuccessResponse: properties: id: @@ -14954,6 +16483,31 @@ components: - result title: SendMessageSuccessResponse description: Represents a successful JSON-RPC response for the `message/send` method. + SendStreamingMessageRequest: + description: Represents a JSON-RPC request for the `message/stream` method. + properties: + id: + anyOf: + - type: string + - type: integer + title: Id + jsonrpc: + const: '2.0' + default: '2.0' + title: Jsonrpc + type: string + method: + const: message/stream + default: message/stream + title: Method + type: string + params: + $ref: '#/components/schemas/A2ARequest_MessageSendParams' + required: + - id + - params + title: SendStreamingMessageRequest + type: object ServiceAccountCreate: properties: name: @@ -15128,7 +16682,7 @@ components: - detail title: ServiceUnavailableResponse example: - detail: Service accounts not supported by the configured database + detail: Feature not supported by the configured service SessionConfig: properties: display_name: diff --git a/scripts/make_openapi.py b/scripts/make_openapi.py index 1f2d04b6e..448b86511 100644 --- a/scripts/make_openapi.py +++ b/scripts/make_openapi.py @@ -199,6 +199,55 @@ def apply_runtime_description_enrichments(spec: dict) -> dict: """Document runtime branches that the pinned route metadata omits.""" schemas = spec["components"]["schemas"] + def response_ref(description: str, schema_name: str) -> dict: + assert schema_name in schemas, schema_name + return { + "description": description, + "content": { + "application/json": { + "schema": {"$ref": f"#/components/schemas/{schema_name}"}, + } + }, + } + + def add_response(operation: dict, status: str, description: str, schema_name: str) -> None: + assert status not in operation["responses"], (operation.get("operationId"), status) + operation["responses"][status] = response_ref(description, schema_name) + + def sort_responses(operation: dict) -> None: + operation["responses"] = dict( + sorted(operation["responses"].items(), key=lambda item: int(item[0])) + ) + + for schema_name, title, example in ( + ("ForbiddenResponse", "ForbiddenResponse", {"detail": "Insufficient permissions"}), + ("ConflictResponse", "ConflictResponse", {"detail": "Resource conflict"}), + ( + "NotImplementedResponse", + "NotImplementedResponse", + {"detail": "Operation not supported for this resource type"}, + ), + ( + "ServiceUnavailableResponse", + "ServiceUnavailableResponse", + {"detail": "Feature not supported by the configured service"}, + ), + ): + assert schema_name not in schemas + schemas[schema_name] = { + "properties": { + "detail": { + "type": "string", + "title": "Detail", + "description": "Error detail message", + }, + }, + "type": "object", + "required": ["detail"], + "title": title, + "example": example, + } + config_example = spec["paths"]["/config"]["get"]["responses"]["200"]["content"]["application/json"][ "example" ] @@ -316,20 +365,6 @@ def apply_runtime_description_enrichments(spec: dict) -> dict: "Takes effect immediately on this worker (the local verification cache entry is " "evicted) and within the cache TTL on other workers." ) - assert "ServiceUnavailableResponse" not in schemas - schemas["ServiceUnavailableResponse"] = { - "properties": { - "detail": { - "type": "string", - "title": "Detail", - "description": "Error detail message", - }, - }, - "type": "object", - "required": ["detail"], - "title": "ServiceUnavailableResponse", - "example": {"detail": "Service accounts not supported by the configured database"}, - } revoke_responses = revoke_service_account["responses"] assert set(revoke_responses) == {"204", "422"} revoke_responses.update( @@ -370,6 +405,337 @@ def apply_runtime_description_enrichments(spec: dict) -> dict: ) revoke_service_account["responses"] = dict(sorted(revoke_responses.items(), key=lambda item: int(item[0]))) + create_service_account = spec["paths"]["/service-accounts"]["post"] + assert set(create_service_account["responses"]) == {"201", "422"} + add_response( + create_service_account, + "400", + "Requested scopes are invalid, or privileged scopes were not explicitly allowed", + "BadRequestResponse", + ) + add_response( + create_service_account, + "409", + "An active service account with this name already exists", + "ConflictResponse", + ) + add_response( + create_service_account, + "500", + "Service account could not be created", + "InternalServerErrorResponse", + ) + add_response( + create_service_account, + "503", + "Service accounts are not supported by the configured database", + "ServiceUnavailableResponse", + ) + sort_responses(create_service_account) + + schedule_operations = ( + ("/schedules", "get", "200", (("503", "Scheduler storage is unavailable", "ServiceUnavailableResponse"),)), + ( + "/schedules", + "post", + "201", + ( + ("409", "A schedule with this name already exists", "ConflictResponse"), + ("500", "Schedule could not be created", "InternalServerErrorResponse"), + ("503", "Scheduler dependencies or storage are unavailable", "ServiceUnavailableResponse"), + ), + ), + ( + "/schedules/{schedule_id}", + "get", + "200", + ( + ("404", "Schedule not found", "NotFoundResponse"), + ("503", "Scheduler storage is unavailable", "ServiceUnavailableResponse"), + ), + ), + ( + "/schedules/{schedule_id}", + "patch", + "200", + ( + ("404", "Schedule not found", "NotFoundResponse"), + ("409", "A schedule with this name already exists", "ConflictResponse"), + ("500", "Schedule could not be updated", "InternalServerErrorResponse"), + ("503", "Scheduler dependencies or storage are unavailable", "ServiceUnavailableResponse"), + ), + ), + ( + "/schedules/{schedule_id}", + "delete", + "204", + ( + ("404", "Schedule not found", "NotFoundResponse"), + ("500", "Schedule could not be deleted", "InternalServerErrorResponse"), + ("503", "Scheduler storage is unavailable", "ServiceUnavailableResponse"), + ), + ), + ( + "/schedules/{schedule_id}/enable", + "post", + "200", + ( + ("404", "Schedule not found", "NotFoundResponse"), + ("500", "Schedule could not be enabled", "InternalServerErrorResponse"), + ("503", "Scheduler dependencies or storage are unavailable", "ServiceUnavailableResponse"), + ), + ), + ( + "/schedules/{schedule_id}/disable", + "post", + "200", + ( + ("404", "Schedule not found", "NotFoundResponse"), + ("500", "Schedule could not be disabled", "InternalServerErrorResponse"), + ("503", "Scheduler storage is unavailable", "ServiceUnavailableResponse"), + ), + ), + ( + "/schedules/{schedule_id}/trigger", + "post", + "200", + ( + ("404", "Schedule not found", "NotFoundResponse"), + ("409", "Schedule is disabled", "ConflictResponse"), + ("503", "Scheduler is not running or storage is unavailable", "ServiceUnavailableResponse"), + ), + ), + ( + "/schedules/{schedule_id}/runs", + "get", + "200", + ( + ("404", "Schedule not found", "NotFoundResponse"), + ("503", "Scheduler storage is unavailable", "ServiceUnavailableResponse"), + ), + ), + ( + "/schedules/{schedule_id}/runs/{run_id}", + "get", + "200", + ( + ("404", "Schedule run not found", "NotFoundResponse"), + ("503", "Scheduler storage is unavailable", "ServiceUnavailableResponse"), + ), + ), + ) + for path, method, success_status, additions in schedule_operations: + operation = spec["paths"][path][method] + assert set(operation["responses"]) == {success_status, "422"}, operation["operationId"] + for status, description, schema_name in additions: + add_response(operation, status, description, schema_name) + sort_responses(operation) + + optimize_memories = spec["paths"]["/optimize-memories"]["post"] + assert optimize_memories["description"] == ( + "Optimize all memories for a given user using the default summarize strategy. This operation " + "combines all memories into a single comprehensive summary, achieving maximum token reduction " + "while preserving all key information. To use a custom model, specify the model parameter in " + "'provider:model_id' format (e.g., 'openai:gpt-4o-mini', " + "'anthropic:claude-3-5-sonnet-20241022'). If not specified, uses MemoryManager's default model " + "(gpt-4o). Set apply=false to preview optimization results without saving to database." + ) + optimize_memories["description"] = ( + "Optimize all memories for a user with the summarize strategy. The operation combines the " + "user's memories into one summary. Set `apply=false` to preview the result without saving it. " + "Specify a custom model as `provider:model_id`, for example `openai:gpt-5.4-mini`, " + "`anthropic:claude-sonnet-4-6`, or `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses " + "MemoryManager's default model, `gpt-4o`." + ) + optimize_model = schemas["OptimizeMemoriesRequest"]["properties"]["model"] + assert optimize_model["description"] == ( + "Model to use for optimization in format 'provider:model_id' (e.g., 'openai:gpt-4o-mini', " + "'anthropic:claude-3-5-sonnet-20241022', 'google:gemini-2.0-flash-exp'). If not specified, uses " + "MemoryManager's default model (gpt-4o)." + ) + optimize_model["description"] = ( + "Model in `provider:model_id` format. Current examples include `openai:gpt-5.4-mini`, " + "`anthropic:claude-sonnet-4-6`, and `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses " + "MemoryManager's default model, `gpt-4o`." + ) + + delete_config = spec["paths"]["/components/{component_id}/configs/{version}"]["delete"] + assert delete_config["description"] == ( + "Delete a specific draft config version. Cannot delete published or current configs." + ) + delete_config["description"] = ( + "Delete a specific config version. Agno v2.7.4 rejects the current version. Synchronous " + "SQLite and PostgreSQL storage allow deletion of a published non-current version." + ) + + whatsapp_path = spec["paths"].get("/whatsapp/webhook") + if whatsapp_path is not None: + whatsapp_webhook = whatsapp_path["post"] + assert whatsapp_webhook["description"] == "Process incoming WhatsApp messages" + assert "requestBody" not in whatsapp_webhook + assert whatsapp_webhook.get("parameters") in (None, []) + whatsapp_webhook["parameters"] = [ + { + "name": "X-Hub-Signature-256", + "in": "header", + "required": True, + "schema": {"type": "string"}, + "description": "SHA-256 HMAC signature for the raw request body, prefixed with `sha256=`", + } + ] + whatsapp_webhook["requestBody"] = { + "required": True, + "content": { + "application/json": { + "schema": {"type": "object", "additionalProperties": True}, + } + }, + } + assert set(whatsapp_webhook["responses"]) == {"200", "403"} + assert whatsapp_webhook["responses"]["403"] == {"description": "Invalid webhook signature"} + whatsapp_webhook["responses"]["403"] = response_ref( + "Invalid webhook signature", "ForbiddenResponse" + ) + add_response( + whatsapp_webhook, + "500", + "Signature validation is not configured, or the JSON body is malformed or is not an object", + "InternalServerErrorResponse", + ) + sort_responses(whatsapp_webhook) + + agui_path = spec["paths"].get("/agui") + if agui_path is not None: + agui_run = agui_path["post"] + assert agui_run.get("security") is None + agui_run["security"] = [{"HTTPBearer": []}] + agui_success = agui_run["responses"]["200"] + assert agui_success["description"] == "Successful Response" + assert agui_success["content"] == {"application/json": {"schema": {}}} + agui_success["description"] = "Server-sent event stream" + agui_success["content"] = {"text/event-stream": {"schema": {"type": "string"}}} + + a2a_families = ( + ("agents", "Agent"), + ("teams", "Team"), + ("workflows", "Workflow"), + ) + a2a_paths = [ + f"/a2a/{family}/{{id}}/v1/message:{action}" + for family, _ in a2a_families + for action in ("send", "stream") + ] + present_a2a_paths = [path for path in a2a_paths if path in spec["paths"]] + if present_a2a_paths: + assert present_a2a_paths == a2a_paths + from a2a.types import SendMessageRequest, SendMessageSuccessResponse, SendStreamingMessageRequest + + for request_model in (SendMessageRequest, SendStreamingMessageRequest): + request_schema = request_model.model_json_schema( + ref_template="#/components/schemas/A2ARequest_{model}" + ) + request_definitions = request_schema.pop("$defs") + for definition_name, definition_schema in request_definitions.items(): + component_name = f"A2ARequest_{definition_name}" + if component_name in schemas: + assert schemas[component_name] == definition_schema, component_name + else: + schemas[component_name] = definition_schema + assert request_model.__name__ not in schemas + schemas[request_model.__name__] = request_schema + + success_example = SendMessageSuccessResponse.model_validate( + { + "jsonrpc": "2.0", + "id": "request-123", + "result": { + "id": "task-456", + "contextId": "context-789", + "status": {"state": "completed"}, + }, + } + ).model_dump(mode="json", by_alias=True, exclude_none=True) + + for family, label in a2a_families: + for action, request_schema_name in ( + ("send", "SendMessageRequest"), + ("stream", "SendStreamingMessageRequest"), + ): + path = f"/a2a/{family}/{{id}}/v1/message:{action}" + operation = spec["paths"][path]["post"] + assert operation.get("security") is None + operation["security"] = [{"HTTPBearer": []}] + assert [parameter["name"] for parameter in operation["parameters"]] == ["id"] + operation["parameters"].append( + { + "name": "X-User-ID", + "in": "header", + "required": False, + "schema": {"type": "string"}, + "description": ( + "Optional user ID for anonymous attribution. Authenticated requests use the " + "identity from the credential." + ), + } + ) + assert "requestBody" not in operation + operation["requestBody"] = { + "required": True, + "content": { + "application/json": { + "schema": {"$ref": f"#/components/schemas/{request_schema_name}"}, + } + }, + } + + mode = "non-streaming" if action == "send" else "streaming" + expected_description = ( + f"{'Send' if action == 'send' else 'Stream'} a message to an Agno {label} " + f"({mode}). The {label} is identified via the path parameter '{{id}}'. Optional: " + "Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata." + ) + if action == "stream": + expected_description += " Returns real-time updates as newline-delimited JSON (NDJSON)." + assert operation["description"] == expected_description + operation["description"] = ( + f"{'Send' if action == 'send' else 'Stream'} a message to an Agno {label}. " + "Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for " + "attribution. Authenticated requests use the identity from the credential." + ) + + if action == "send": + success_json = operation["responses"]["200"]["content"]["application/json"] + assert "task" in success_json["example"]["result"] + success_json["example"] = deepcopy(success_example) + if family in ("agents", "teams"): + add_response( + operation, + "202", + "Message accepted for background execution when `blocking=false`", + "SendMessageSuccessResponse", + ) + if family == "agents": + add_response( + operation, + "501", + "A2A is not supported for this agent type", + "NotImplementedResponse", + ) + else: + operation["description"] += " The response is a server-sent event stream." + success_content = operation["responses"]["200"]["content"] + assert success_content["application/json"]["schema"] == {} + assert "text/event-stream" in success_content + del success_content["application/json"] + success_content["text/event-stream"]["schema"] = {"type": "string"} + add_response( + operation, + "500", + "Run could not be started", + "InternalServerErrorResponse", + ) + sort_responses(operation) + resume_team = spec["paths"]["/teams/{team_id}/runs/{run_id}/resume"]["post"] team_success_content = resume_team["responses"]["200"]["content"] assert team_success_content["application/json"]["schema"] == {} @@ -425,6 +791,17 @@ def apply_runtime_description_enrichments(spec: dict) -> dict: assert response_schema == {} response_schema.update(deepcopy(fork_response_schema)) + for path_item in spec["paths"].values(): + for method in ("get", "post", "put", "patch", "delete", "head", "options", "trace"): + operation = path_item.get(method) + if not isinstance(operation, dict) or not operation.get("security"): + continue + if "401" not in operation["responses"]: + add_response(operation, "401", "Unauthorized", "UnauthenticatedResponse") + if "403" not in operation["responses"]: + add_response(operation, "403", "Forbidden", "ForbiddenResponse") + sort_responses(operation) + spec["components"]["schemas"] = dict(sorted(schemas.items())) return spec @@ -445,6 +822,26 @@ def preserve_curated_slack_metadata(spec: dict) -> dict: for name in names: assert name in curated_post, f"missing curated Slack {path} {name}" current_post[name] = curated_post[name] + + if "/slack/interactions" in spec["paths"]: + from agno.os.interfaces.slack.ids import ACTION_CHECK_STATUS + + assert ACTION_CHECK_STATUS == "check_status" + interactions = spec["paths"]["/slack/interactions"]["post"] + old_actions = ( + "- `row_approve` - Approve a pending tool call\n" + "- `row_reject` - Reject a pending tool call\n" + "- `submit_pause` - Submit form data for a paused workflow" + ) + new_actions = old_actions + ( + "\n- `check_status` - Check an admin approval and resume an approved run" + ) + if "`check_status`" not in interactions["description"]: + assert interactions["description"].count(old_actions) == 1 + interactions["description"] = interactions["description"].replace(old_actions, new_actions) + else: + assert interactions["description"].count("`check_status`") == 1 + assert new_actions in interactions["description"] return spec From 41b2113d1e557bd39dc89b087d6eb04b242d0975 Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 05:58:59 +0100 Subject: [PATCH 18/47] docs: close convergence contract gaps --- context/overview.mdx | 10 +- culture/overview.mdx | 16 +-- other/database-migrations.mdx | 6 +- reference-api/openapi.json | 2 +- reference-api/openapi.yaml | 210 +++++++++++++++++++++++----- scripts/make_openapi.py | 249 ++++++++++++++++++++++++++++++++++ 6 files changed, 445 insertions(+), 48 deletions(-) diff --git a/context/overview.mdx b/context/overview.mdx index f6c30332e..4cae9bd6f 100644 --- a/context/overview.mdx +++ b/context/overview.mdx @@ -28,15 +28,15 @@ The context of an Agno agent consists of the following: Most model providers support caching of system and user messages, though the implementation differs between providers. -The general approach is to cache repetitive content and common instructions, and then reuse that cached content in subsequent requests as the prefix of your system message. -In other words, if the model supports it, you can reduce the number of tokens sent to the model by putting static content at the start of your system message. +The general approach is to place repetitive content and common instructions in a stable request prefix that the provider can reuse across requests. +Prompt caching reduces the cost and latency of processing that repeated prefix. The complete prompt is still included in each request. Agno's context construction is designed to place the most likely static content at the beginning of the system message. If you wish to fine-tune this, the recommended approach is to manually set the system message. Some examples of prompt caching: -- [OpenAI's prompt caching](https://platform.openai.com/docs/guides/prompt-caching) -- [Anthropic prompt caching](https://docs.claude.com/en/docs/build-with-claude/prompt-caching) -> See an [Agno example](/models/providers/native/anthropic/usage/prompt-caching) of this +- [OpenAI prompt caching](https://developers.openai.com/api/docs/guides/prompt-caching) +- [Anthropic prompt caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching) and an [Agno example](/models/providers/native/anthropic/usage/prompt-caching) - [OpenRouter prompt caching](https://openrouter.ai/docs/features/prompt-caching) @@ -66,4 +66,4 @@ Some examples of prompt caching: > Include conversation history in context. - \ No newline at end of file + diff --git a/culture/overview.mdx b/culture/overview.mdx index dc3a1adfc..f1caf9508 100644 --- a/culture/overview.mdx +++ b/culture/overview.mdx @@ -19,7 +19,7 @@ Culture preserves these insights as shared knowledge that benefits all agents, t Culture provides a shared knowledge layer where agents store universal principles, best practices, and reusable insights that apply across all interactions. Unlike Memory, which stores user-specific facts ("Sarah prefers email"), Culture stores universal knowledge that benefits everyone ("Always provide actionable solutions with clear next steps"). -When an agent completes a task, it can reflect on what worked well and distill that into cultural knowledge. Later, when any agent faces a similar situation, it automatically accesses this shared culture and applies those learnings. +With automatic culture enabled, a background culture model evaluates the user's message against existing cultural knowledge. It can add or update shared knowledge while the agent handles the request. Later runs load that shared culture into the agent's context. **Culture ≠ Memory:** Culture stores universal principles and best practices that apply to all interactions. [Memory](/memory/overview) stores user-specific facts and preferences. @@ -34,7 +34,7 @@ When an agent completes a task, it can reflect on what worked well and distill t Culture enables intelligence to compound. Instead of each agent starting from scratch, they build on collective experience: - **Consistency:** All agents follow the same communication standards, formatting rules, and best practices -- **Evolution:** Your agent system improves over time as agents learn what works +- **Evolution:** Shared standards can be updated as requirements change - **Efficiency:** Agents don't re-learn the same lessons repeatedly **Example Use Cases:** @@ -64,15 +64,15 @@ db = SqliteDb(db_file="agno.db") agent = Agent( db=db, add_culture_to_context=True, # Agent reads cultural knowledge - update_cultural_knowledge=True, # Agent updates culture after runs + update_cultural_knowledge=True, # Culture model updates from the user message ) ``` With these flags enabled, your agent automatically: 1. Loads cultural knowledge when starting a task 2. Applies that knowledge during reasoning and response generation -3. Reflects on the interaction afterward -4. Updates or adds cultural knowledge based on what it learned +3. Sends the user's message to the culture model in the background +4. Adds or updates cultural knowledge based on that message ## Three Approaches to Culture Management @@ -80,7 +80,7 @@ Agno gives you three ways to manage cultural knowledge, depending on your needs: ### 1. Automatic Culture (`update_cultural_knowledge=True`) -After each agent run, the system automatically reflects on the interaction and updates cultural knowledge. This is the recommended approach for most production use cases. +During each agent run, the culture model analyzes the user's message and can update cultural knowledge. In Agno v2.7.4, it does not receive the agent response, tool results, or run outcome. ```python from agno.agent import Agent @@ -94,14 +94,14 @@ agent = Agent( update_cultural_knowledge=True, # Update culture automatically ) -# The agent will learn from this interaction +# The culture model can extract principles from this user message agent.print_response( "How do I set up a FastAPI service using Docker?", stream=True, ) ``` -**Best for:** Production systems where you want agents to continuously improve their approach based on what works. +**Best for:** Capturing general principles from user requests without explicit culture tool calls. ### 2. Agentic Culture (`enable_agentic_culture=True`) diff --git a/other/database-migrations.mdx b/other/database-migrations.mdx index b5e2ba2df..ffb9a7365 100644 --- a/other/database-migrations.mdx +++ b/other/database-migrations.mdx @@ -63,6 +63,10 @@ The following databases are supported: The asynchronous database classes (`AsyncPostgresDb`, `AsyncMySQLDb`, and `AsyncSqliteDb`) are also supported. + +Agno v2.7.4 skips the v2.3.0 migration step for `AsyncMySQLDb` while the recorded schema version can still advance. Do not use `AsyncMySQLDb` to migrate a schema that predates v2.3.0. Run and verify that migration with `MySQLDb` before switching to `AsyncMySQLDb`. + + - We recommend avoiding creating columns in your database manually. This can cause the migration manager to fail. - Ensure the schema versions in the `agno_schema_versions` table are correct. @@ -152,4 +156,4 @@ If you started using Agno during its v1 and want to move to v2, we have a migrat You can find the script in the [`libs/agno/migrations/v1_to_v2/migrate_to_v2.py`](https://github.com/agno-agi/agno/blob/main/libs/agno/migrations/v1_to_v2/migrate_to_v2.py) file. -You can find more information about migrating from v1 to v2 in the [Migrating to Agno v2 guide](/other/v2-migration). \ No newline at end of file +You can find more information about migrating from v1 to v2 in the [Migrating to Agno v2 guide](/other/v2-migration). diff --git a/reference-api/openapi.json b/reference-api/openapi.json index ac19eb2c9..ae6e01156 100644 --- a/reference-api/openapi.json +++ b/reference-api/openapi.json @@ -1 +1 @@ -{"openapi":"3.1.0","info":{"title":"Agno API Reference","description":"The all-in-one, private, secure agent platform that runs in your cloud.","version":"2.7.4"},"paths":{"/":{"get":{"tags":["Home"],"summary":"API Information","description":"Get basic information about this AgentOS API instance, including:\n\n- API metadata and version\n- Available capabilities overview\n- Links to key endpoints and documentation","operationId":"get_api_info","responses":{"200":{"description":"API information retrieved successfully","content":{"application/json":{"schema":{},"examples":{"home":{"summary":"Example home response","value":{"name":"AgentOS API","id":"demo-os","version":"1.0.0"}}}}}}}}},"/health":{"get":{"tags":["Health"],"summary":"Health Check","description":"Check the health status of the AgentOS API. Returns a simple status indicator.","operationId":"health_check","responses":{"200":{"description":"API is healthy and operational","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"},"example":{"status":"ok","instantiated_at":"2025-06-10T12:00:00Z"}}}}}}},"/info":{"get":{"tags":["Core"],"summary":"Get OS Info","description":"Return lightweight, unauthenticated metadata about this AgentOS instance.","operationId":"get_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoResponse"}}}}}}},"/config":{"get":{"tags":["Core"],"summary":"Get OS Configuration","description":"Retrieve the complete configuration of the AgentOS instance, including:\n\n- Available models and databases\n- Registered agents, teams, and workflows\n- Chat, session, memory, knowledge, and evaluation configurations\n- Available interfaces and their routes","operationId":"get_config","responses":{"200":{"description":"OS configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"},"example":{"description":"Example AgentOS configuration","available_models":[],"databases":["9c884dc4-9066-448c-9074-ef49ec7eb73c"],"session":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Sessions"}}]},"metrics":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Metrics"}}]},"memory":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Memory"}}]},"knowledge":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Knowledge"}}]},"evals":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Evals"}}]},"agents":[{"id":"main-agent","name":"Main Agent","db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c"}],"teams":[],"workflows":[],"interfaces":[],"os_id":"demo"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/models":{"get":{"tags":["Core"],"summary":"Get Available Models","description":"Retrieve a list of all unique models currently used by agents and teams in this OS instance. This includes the model ID and provider information for each model.","operationId":"get_models","responses":{"200":{"description":"List of models retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Response Get Models"},"example":[{"id":"gpt-4","provider":"openai"},{"id":"claude-3-sonnet","provider":"anthropic"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}/runs":{"post":{"tags":["Agents"],"summary":"Create Agent Run","description":"Execute an agent with a message and optional media files. Supports both streaming and non-streaming responses.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_agent_run"}}}},"responses":{"200":{"description":"Agent run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"examples":{"event_stream":{"summary":"Example event stream response","value":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Agents"],"summary":"List Agent Runs","description":"List runs for an agent within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_agent_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/cancel":{"post":{"tags":["Agents"],"summary":"Cancel Agent Run","description":"Cancel a currently executing agent run. This will attempt to stop the agent's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/continue":{"post":{"tags":["Agents"],"summary":"Continue Agent Run","description":"Advance a persisted agent run from its current state. Dispatches on the body shape and the persisted run state (see ADR-003 in specs/agno/features/checkpointing/decisions.md).\n\n**Variants:**\n- PAUSED + tools provided \u2192 apply HITL tool results, resume\n- PAUSED + resolved admin approval (empty tools) \u2192 apply resolution, resume\n- RUNNING / ERROR (no unresolved HITL requirements) \u2192 resume from last persisted state\n- COMPLETED + new tools \u2192 continue with appended messages\n\n**Tools Parameter:**\nJSON string containing array of tool execution objects with results. Optional \u2014 only required when the persisted run has unresolved HITL requirements.","operationId":"continue_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_agent_run"}}}},"responses":{"200":{"description":"Agent run continued successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n"}}},"400":{"description":"Invalid JSON in tools field or invalid tool structure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Run has a pending admin approval and cannot be continued by the user yet."},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/sessions/{session_id}/fork":{"post":{"tags":["Agents"],"summary":"Fork Agent Session","description":"Deep-copy a session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_agent_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents":{"get":{"tags":["Agents"],"summary":"List All Agents","description":"Retrieve a comprehensive list of all agents configured in this OS instance.\n\n**Returns:**\n- Agent metadata (ID, name, description)\n- Model configuration and capabilities\n- Available tools and their configurations\n- Session, knowledge, memory, and reasoning settings\n- Only meaningful (non-default) configurations are included","operationId":"get_agents","responses":{"200":{"description":"List of agents retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentResponse"},"type":"array","title":"Response Get Agents"},"example":[{"id":"main-agent","name":"Main Agent","db_id":"c6bf0644-feb8-4930-a305-380dae5ad6aa","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Details","description":"Retrieve detailed configuration and capabilities of a specific agent.\n\n**Returns comprehensive agent information including:**\n- Model configuration and provider details\n- Complete tool inventory and configurations\n- Session management settings\n- Knowledge base and memory configurations\n- Reasoning capabilities and settings\n- System prompts and response formatting options","operationId":"get_agent","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Agent details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"},"example":{"id":"main-agent","name":"Main Agent","db_id":"9e064c70-6821-4840-a333-ce6230908a70","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Run","description":"Retrieve the status and output of an agent run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Agents"],"summary":"List Agent Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_agent_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Agents"],"summary":"Get Agent Run Checkpoint Snapshot","description":"Return a derived run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_agent_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/resume":{"post":{"tags":["Agents"],"summary":"Resume Agent Run Stream","description":"Resume an SSE stream for an agent run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_agent_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_agent_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"application/json":{"schema":{}},"text/event-stream":{}}},"400":{"description":"Not supported for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs":{"post":{"tags":["Teams"],"summary":"Create Team Run","description":"Execute a team collaboration with multiple agents working together on a task.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_team_run"}}}},"responses":{"200":{"description":"Team run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Teams"],"summary":"List Team Runs","description":"List runs for a team within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_team_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/cancel":{"post":{"tags":["Teams"],"summary":"Cancel Team Run","description":"Cancel a currently executing team run. This will attempt to stop the team's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel team run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/resume":{"post":{"tags":["Teams"],"summary":"Resume Team Run Stream","description":"Resume an SSE stream for a team run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_team_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_team_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{}}},"400":{"description":"Stream resumption is unavailable for remote and factory teams. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/continue":{"post":{"tags":["Teams"],"summary":"Continue Team Run","description":"Continue a paused or incomplete team run with updated requirements.\n\n**Use Cases:**\n- Resume execution after tool approval/rejection\n- Provide manual tool execution results\n- Resume after admin approval (requirements can be empty; resolution fetched from DB)\n\n**Requirements Parameter:**\nJSON string containing array of requirement objects with tool execution results.\nCan be empty when an admin-required approval has been resolved.","operationId":"continue_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_team_run"}}}},"responses":{"200":{"description":"Team run continued successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n"}}},"400":{"description":"Invalid JSON in requirements field or invalid requirement structure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Run has a pending admin approval and cannot be continued by the user yet."},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is not paused (e.g. run is already running, continued, or errored). Only PAUSED runs can be continued."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/sessions/{session_id}/fork":{"post":{"tags":["Teams"],"summary":"Fork Team Session","description":"Deep-copy a team session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_team_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams":{"get":{"tags":["Teams"],"summary":"List All Teams","description":"Retrieve a comprehensive list of all teams configured in this OS instance.\n\n**Returns team information including:**\n- Team metadata (ID, name, description, execution mode)\n- Model configuration for team coordination\n- Team member roster with roles and capabilities\n- Knowledge sharing and memory configurations","operationId":"get_teams","responses":{"200":{"description":"List of teams retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamResponse"},"type":"array","title":"Response Get Teams"},"example":[{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"agno_memories","app_url":"/memory/1","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/teams/{team_id}":{"get":{"tags":["Teams"],"summary":"Get Team Details","description":"Retrieve detailed configuration and member information for a specific team.","operationId":"get_team","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"},"example":{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}":{"get":{"tags":["Teams"],"summary":"Get Team Run","description":"Retrieve the status and output of a team run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Teams"],"summary":"List Team Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored team run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_team_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Teams"],"summary":"Get Team Run Checkpoint Snapshot","description":"Return a derived team run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_team_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows":{"get":{"tags":["Workflows"],"summary":"List All Workflows","description":"Retrieve a comprehensive list of all workflows configured in this OS instance.\n\n**Return Information:**\n- Workflow metadata (ID, name, description)\n- Input schema requirements\n- Step sequence and execution flow\n- Associated agents and teams","operationId":"get_workflows","responses":{"200":{"description":"List of workflows retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Response Get Workflows"},"example":[{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/workflows/{workflow_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Details","description":"Retrieve detailed configuration and step information for a specific workflow.","operationId":"get_workflow","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Workflow version to retrieve","title":"Version"},"description":"Workflow version to retrieve"}],"responses":{"200":{"description":"Workflow details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"},"example":{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs":{"post":{"tags":["Workflows"],"summary":"Execute Workflow","description":"Execute a workflow with the provided input data. Workflows can run in streaming or batch mode.\n\n**Execution Modes:**\n- **Streaming (`stream=true`)**: Real-time step-by-step execution updates via SSE\n- **Non-Streaming (`stream=false`)**: Complete workflow execution with final result\n\n**Workflow Execution Process:**\n1. Input validation against workflow schema\n2. Sequential or parallel step execution based on workflow design\n3. Data flow between steps with transformation\n4. Error handling and automatic retries where configured\n5. Final result compilation and response\n\n**Session Management:**\nWorkflows support session continuity for stateful execution across multiple runs.","operationId":"create_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_run"}}}},"responses":{"200":{"description":"Workflow executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid input data or workflow configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Workflow execution error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"List Workflow Runs","description":"List runs for a workflow within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_workflow_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/continue":{"post":{"tags":["Workflows"],"summary":"Continue Workflow Run","description":"Continue a paused workflow run with resolved requirements.\n\n**Use Cases:**\n- Resume after step-level HITL (confirmation, user input, router selection)\n- Resume after executor-level HITL (agent/team tool confirmation within a step)\n\n**Requirements Parameter:**\nJSON string containing the resolved step requirements.","operationId":"continue_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_workflow_run"}}}},"responses":{"200":{"description":"Workflow run continued successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: StepCompleted\ndata: {\"step_name\": \"step1\"}\n\n"}}},"400":{"description":"Invalid JSON in requirements field","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is not paused. Only PAUSED runs can be continued."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/cancel":{"post":{"tags":["Workflows"],"summary":"Cancel Workflow Run","description":"Cancel a currently executing workflow run, stopping all active steps and cleanup.\n**Note:** Complex workflows with multiple parallel steps may take time to fully cancel.","operationId":"cancel_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found, or the requested run was not found in the caller's session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel workflow run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/resume":{"post":{"tags":["Workflows"],"summary":"Resume Workflow Run Stream","description":"Resume an SSE stream for a workflow run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_workflow_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_workflow_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"application/json":{"schema":{}},"text/event-stream":{}}},"400":{"description":"Stream resumption is unavailable for remote and factory workflows. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Run","description":"Retrieve the status and output of a workflow run. Use this to poll for run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/slack/events":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Receives incoming Slack events (messages, mentions, thread starts).\n\n**URL Verification:** On first setup, Slack sends a `url_verification` challenge. The endpoint echoes back the challenge string.\n\n**Event Processing:** Normal events are acknowledged immediately with `{\"status\": \"ok\"}` and processed in the background. This prevents Slack's 3-second retry timeout.\n\n**Retry Handling:** Events with `X-Slack-Retry-Num` header are duplicates and return 200 without reprocessing.\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Event Subscriptions > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for creating a Slack App or use the [manifest](/agent-os/interfaces/slack/setup#2-create-the-slack-app) for quick setup.\n","operationId":"slack_events_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SlackChallengeResponse"},{"$ref":"#/components/schemas/SlackEventResponse"}],"title":"Response Slack Events Simple Agent"}}}},"400":{"description":"Missing Slack headers"},"403":{"description":"Invalid Slack signature"}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number (present on retried events)"}]}},"/slack/interactions":{"post":{"tags":["Slack"],"summary":"Slack Interactions","description":"Handles Slack interactive components for Human-in-the-Loop (HITL) workflows.\n\n**Supported Actions:**\n- `row_approve` - Approve a pending tool call\n- `row_reject` - Reject a pending tool call\n- `submit_pause` - Submit form data for a paused workflow\n- `check_status` - Check an admin approval and resume an approved run\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Interactivity & Shortcuts > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for step-by-step instructions or the [HITL guide](/agent-os/interfaces/slack/hitl) for approval workflows.\n","operationId":"slack_interactions_simple_agent","responses":{"200":{"description":"Interaction accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackEventResponse"}}}},"400":{"description":"Malformed interaction payload"},"403":{"description":"Invalid Slack signature"}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"URL-encoded JSON interaction payload (Slack sends interactive component data as a single form field)"}}}}}}}},"/whatsapp/status":{"get":{"tags":["Whatsapp"],"summary":"Status","operationId":"whatsapp_status_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/whatsapp/webhook":{"get":{"tags":["Whatsapp"],"summary":"Whatsapp Verify","description":"Handle WhatsApp webhook verification","operationId":"whatsapp_verify_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["Whatsapp"],"summary":"Whatsapp Webhook","description":"Process incoming WhatsApp messages","operationId":"whatsapp_webhook_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppWebhookResponse"}}}},"403":{"description":"Invalid webhook signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Signature validation is not configured, or the JSON body is malformed or is not an object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Hub-Signature-256","in":"header","required":true,"schema":{"type":"string"},"description":"SHA-256 HMAC signature for the raw request body, prefixed with `sha256=`"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}},"/telegram/status":{"get":{"tags":["Telegram"],"summary":"Telegram Status","operationId":"telegram_status_simple-agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramStatusResponse"}}}}}}},"/telegram/webhook":{"post":{"tags":["Telegram"],"summary":"Telegram Webhook","operationId":"telegram_webhook_simple-agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramWebhookResponse"}}}},"403":{"description":"Invalid webhook secret token"}}}},"/agui":{"post":{"tags":["AGUI"],"summary":"Run Agent","operationId":"run_agent_agui_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentInput"}}},"required":true},"responses":{"200":{"description":"Server-sent event stream","content":{"text/event-stream":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/status":{"get":{"tags":["AGUI"],"summary":"Get Status","operationId":"get_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/a2a/agents/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Agent Card","operationId":"get_agent_card_a2a_agents__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Agent","description":"Send a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"A2A is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/agents/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Agent Task","description":"Get the status and result of an agent task by ID.","operationId":"get_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Agent Task","description":"Cancel a running agent task.","operationId":"cancel_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Agent","description":"Stream a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/teams/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Team Card","operationId":"get_team_card_a2a_teams__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Team","description":"Send a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/teams/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Team Task","description":"Get the status and result of a team task by ID.","operationId":"get_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Team Task","description":"Cancel a running team task.","operationId":"cancel_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Team","description":"Stream a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/workflows/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Workflow Card","operationId":"get_workflow_card_a2a_workflows__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/workflows/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Workflow","description":"Send a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/workflows/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Workflow","description":"Stream a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/message/send":{"post":{"tags":["A2A"],"summary":"Send Message","description":"[DEPRECATED] Send a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"send_message","responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/a2a/message/stream":{"post":{"tags":["A2A"],"summary":"Stream Message","description":"[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message","responses":{"200":{"description":"Streaming response with task updates","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n"}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/sessions":{"get":{"tags":["Sessions"],"summary":"List Sessions","description":"Retrieve paginated list of sessions with filtering and sorting options. Supports filtering by session type (agent, team, workflow), component, user, and name. Sessions represent conversation histories and execution contexts.","operationId":"get_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types.","title":"Type"},"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types."},{"name":"component_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by component ID (agent/team/workflow ID)","title":"Component Id"},"description":"Filter sessions by component ID (agent/team/workflow ID)"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by user ID","title":"User Id"},"description":"Filter sessions by user ID"},{"name":"session_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by name (partial match)","title":"Session Name"},"description":"Filter sessions by name (partial match)"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of sessions to return per page","default":20,"title":"Limit"},"description":"Number of sessions to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort sessions by","default":"created_at","title":"Sort By"},"description":"Field to sort sessions by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query sessions from","title":"Db Id"},"description":"Database ID to query sessions from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Sessions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_SessionSchema_"},"example":{"session_example":{"summary":"Example session response","value":{"data":[{"session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_state":{},"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}]}}}}}},"400":{"description":"Invalid session type or filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in query parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Sessions"],"summary":"Create New Session","description":"Create a new empty session with optional configuration. Useful for pre-creating sessions with specific session_state, metadata, or other properties before running any agent/team/workflow interactions. The session can later be used by providing its session_id in run requests.","operationId":"create_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SessionType","description":"Type of session to create (agent, team, or workflow)","default":"agent"},"description":"Type of session to create (agent, team, or workflow)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to create session in","title":"Db Id"},"description":"Database ID to create session in"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest","description":"Session configuration data","default":{}}}}},"responses":{"201":{"description":"Session created successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Create Session"},"examples":{"agent_session_example":{"summary":"Example created agent session","value":{"user_id":"user-123","agent_session_id":"new-session-id","session_id":"new-session-id","session_name":"New Session","session_state":{"key":"value"},"metadata":{"key":"value"},"agent_id":"agent-1","created_at":"2025-10-21T12:00:00Z","updated_at":"2025-10-21T12:00:00Z"}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A session with the supplied session_id already exists"},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Multiple Sessions","description":"Delete multiple sessions by their IDs in a single operation. This action cannot be undone and will permanently remove all specified sessions and their runs.","operationId":"delete_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSessionRequest"}}}},"responses":{"204":{"description":"Sessions deleted successfully"},"400":{"description":"Invalid request - session IDs and types length mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["Sessions"],"summary":"Get Session by ID","description":"Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow).","operationId":"get_session_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to retrieve","title":"Session Id"},"description":"Session ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query session from","title":"User Id"},"description":"User ID to query session from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query session from","title":"Db Id"},"description":"Database ID to query session from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query session from","title":"Table"},"description":"Table to query session from"}],"responses":{"200":{"description":"Session details retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Get Session By Id"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Session","description":"Permanently delete a specific session and all its associated runs. This action cannot be undone and will remove all conversation history.","operationId":"delete_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to delete","title":"Session Id"},"description":"Session ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Sessions"],"summary":"Update Session","description":"Update session properties such as session_name, session_state, metadata, or summary. Use this endpoint to modify the session name, update state, add metadata, or update the session summary.","operationId":"update_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to update","title":"Session Id"},"description":"Session ID to update"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID","title":"User Id"},"description":"User ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update operation","title":"Db Id"},"description":"Database ID to use for update operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update operation","title":"Table"},"description":"Table to use for update operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest","description":"Session update data"}}}},"responses":{"200":{"description":"Session updated successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Update Session"},"examples":{"update_summary":{"summary":"Update session summary","value":{"summary":{"summary":"The user discussed project planning with the agent.","updated_at":"2025-10-21T14:30:00Z"}}},"update_metadata":{"summary":"Update session metadata","value":{"metadata":{"tags":["planning","project"],"priority":"high"}}},"update_session_name":{"summary":"Update session name","value":{"session_name":"Updated Session Name"}},"update_session_state":{"summary":"Update session state","value":{"session_state":{"step":"completed","context":"Project planning finished","progress":100}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs":{"get":{"tags":["Sessions"],"summary":"Get Session Runs","description":"Retrieve all runs (executions) for a specific session with optional timestamp filtering. Runs represent individual interactions or executions within a session. Response schema varies based on session type.","operationId":"get_session_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get runs from","title":"Session Id"},"description":"Session ID to get runs from"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query runs from","title":"User Id"},"description":"User ID to query runs from"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created after this Unix timestamp (epoch time in seconds)","title":"Created After"},"description":"Filter runs created after this Unix timestamp (epoch time in seconds)"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created before this Unix timestamp (epoch time in seconds)","title":"Created Before"},"description":"Filter runs created before this Unix timestamp (epoch time in seconds)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query runs from","title":"Db Id"},"description":"Database ID to query runs from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query runs from","title":"Table"},"description":"Table to query runs from"}],"responses":{"200":{"description":"Session runs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}]},"title":"Response Get Session Runs"},"examples":{"completed_run":{"summary":"Example completed run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"","run_input":"Which tools do you have access to?","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","run_response_format":"text","reasoning_content":"","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069},"messages":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-08 17:52:10.101003.\n\n\nYou have the capability to retain memories from previous interactions with the user, but have not had any interactions with the user yet.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757346730},{"content":"Which tools do you have access to?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757346730},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138},"created_at":1757346730}],"events":[{"created_at":1757346730,"event":"RunStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","model":"gpt-4o","model_provider":"OpenAI"},{"created_at":1757346733,"event":"MemoryUpdateStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"MemoryUpdateCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"RunCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","content_type":"str","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069}}],"created_at":"2025-09-08T15:52:10Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found or has no runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs/{run_id}":{"get":{"tags":["Sessions"],"summary":"Get Run by ID","description":"Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run).","operationId":"get_session_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get run from","title":"Session Id"},"description":"Session ID to get run from"},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","description":"Run ID to retrieve","title":"Run Id"},"description":"Run ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query run from","title":"User Id"},"description":"User ID to query run from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query run from","title":"Db Id"},"description":"Database ID to query run from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query run from","title":"Table"},"description":"Table to query run from"}],"responses":{"200":{"description":"Run retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}],"title":"Response Get Session Run"},"examples":{"agent_run":{"summary":"Example agent run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"user_123","run_input":"Which tools do you have access to?","content":"I don't have access to external tools.","created_at":1728499200}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/rename":{"post":{"tags":["Sessions"],"summary":"Rename Session","description":"Update the name of an existing session. Useful for organizing and categorizing sessions with meaningful names for better identification and management.","operationId":"rename_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to rename","title":"Session Id"},"description":"Session ID to rename"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope rename to","title":"User Id"},"description":"User ID to scope rename to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for rename operation","title":"Db Id"},"description":"Database ID to use for rename operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_rename_session"}}}},"responses":{"200":{"description":"Session renamed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Rename Session"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Invalid session name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type or validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories":{"post":{"tags":["Memory"],"summary":"Create Memory","description":"Create a new user memory with content and associated topics. Memories are used to store contextual information for users across conversations.","operationId":"create_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for memory storage","title":"Db Id"},"description":"Database ID to use for memory storage"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for memory storage","title":"Table"},"description":"Table to use for memory storage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"mem-123","memory":"User prefers technical explanations with code examples","topics":["preferences","communication_style","technical"],"user_id":"user-456","created_at":"2024-01-15T10:30:00Z","updated_at":"2024-01-15T10:30:00Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Memory"],"summary":"Delete Multiple Memories","description":"Delete multiple user memories by their IDs in a single operation. This action cannot be undone and all specified memories will be permanently removed.","operationId":"delete_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMemoriesRequest"}}}},"responses":{"204":{"description":"Memories deleted successfully"},"400":{"description":"Invalid request - empty memory_ids list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"List Memories","description":"Retrieve paginated list of user memories with filtering and search capabilities. Filter by user, agent, team, topics, or search within memory content.","operationId":"get_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by user ID","title":"User Id"},"description":"Filter memories by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by agent ID","title":"Agent Id"},"description":"Filter memories by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by team ID","title":"Team Id"},"description":"Filter memories by team ID"},{"name":"search_content","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fuzzy search within memory content","title":"Search Content"},"description":"Fuzzy search within memory content"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of memories to return per page","default":20,"title":"Limit"},"description":"Number of memories to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort memories by","default":"updated_at","title":"Sort By"},"description":"Field to sort memories by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memories from","title":"Db Id"},"description":"Database ID to query memories from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Comma-separated list of topics to filter by","examples":["preferences,technical,communication_style"],"title":"Topics"},"description":"Comma-separated list of topics to filter by"}],"responses":{"200":{"description":"Memories retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserMemorySchema_"},"example":{"data":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories/{memory_id}":{"delete":{"tags":["Memory"],"summary":"Delete Memory","description":"Permanently delete a specific user memory. This action cannot be undone.","operationId":"delete_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to delete","title":"Memory Id"},"description":"Memory ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to delete memory for","title":"User Id"},"description":"User ID to delete memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Memory deleted successfully"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"Get Memory by ID","description":"Retrieve detailed information about a specific user memory by its ID.","operationId":"get_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to retrieve","title":"Memory Id"},"description":"Memory ID to retrieve"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query memory for","title":"User Id"},"description":"User ID to query memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memory from","title":"Db Id"},"description":"Database ID to query memory from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query memory from","title":"Table"},"description":"Table to query memory from"}],"responses":{"200":{"description":"Memory retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Memory"],"summary":"Update Memory","description":"Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values.","operationId":"update_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to update","title":"Memory Id"},"description":"Memory ID to update"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update","title":"Db Id"},"description":"Database ID to use for update"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update","title":"Table"},"description":"Table to use for update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memory_topics":{"get":{"tags":["Memory"],"summary":"Get Memory Topics","description":"Retrieve all unique topics associated with memories in the system. Useful for filtering and categorizing memories by topic.","operationId":"get_memory_topics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter topics for","title":"User Id"},"description":"User ID to filter topics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query topics from","title":"Db Id"},"description":"Database ID to query topics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query topics from","title":"Table"},"description":"Table to query topics from"}],"responses":{"200":{"description":"Memory topics retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Get Memory Topics"},"example":["preferences","communication_style","technical","industry","compliance","code_examples","requirements","healthcare","finance"]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/user_memory_stats":{"get":{"tags":["Memory"],"summary":"Get User Memory Statistics","description":"Retrieve paginated statistics about memory usage by user. Provides insights into user engagement and memory distribution across users.","operationId":"get_user_memory_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of user statistics to return per page","default":20,"title":"Limit"},"description":"Number of user statistics to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter statistics for","title":"User Id"},"description":"User ID to filter statistics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query statistics from","title":"Table"},"description":"Table to query statistics from"}],"responses":{"200":{"description":"User memory statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserStatsSchema_"},"example":{"data":[{"user_id":"123","total_memories":3,"last_memory_updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve user statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/optimize-memories":{"post":{"tags":["Memory"],"summary":"Optimize User Memories","description":"Optimize all memories for a user with the summarize strategy. The operation combines the user's memories into one summary. Set `apply=false` to preview the result without saving it. Specify a custom model as `provider:model_id`, for example `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, or `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`.","operationId":"optimize_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for optimization","title":"Db Id"},"description":"Database ID to use for optimization"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for optimization","title":"Table"},"description":"Table to use for optimization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesRequest"}}}},"responses":{"200":{"description":"Memories optimized successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesResponse"},"example":{"memories":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User has a 3-year-old golden retriever named Max who loves fetch and walks. Lives in San Francisco's Mission district, works as a product manager in tech. Enjoys hiking Bay Area trails, trying new restaurants (especially Japanese, Thai, Mexican), and learning piano for 1.5 years.","topics":["pets","location","work","hobbies","food_preferences"],"user_id":"user2","updated_at":"2025-11-18T10:30:00Z"}],"memories_before":4,"memories_after":1,"tokens_before":450,"tokens_after":180,"tokens_saved":270,"reduction_percentage":60.0}}}},"400":{"description":"Bad request - User ID is required or invalid model string format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No memories found for user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to optimize memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings":{"get":{"tags":["Learnings"],"summary":"List Learnings","description":"List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) \u2014 this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`).","operationId":"list_learnings","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by learning type","title":"Learning Type"},"description":"Filter by learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"namespace","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by namespace","title":"Namespace"},"description":"Filter by namespace"},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity ID","title":"Entity Id"},"description":"Filter by entity ID"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity type","title":"Entity Type"},"description":"Filter by entity type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":100,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used).","title":"Sort By"},"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used)."},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Learnings"],"summary":"Create Learning","description":"Create a new learning record. For the identity-keyed learning types (`user_profile`, `user_memory`, `session_context`, `entity_memory`) the record id is derived deterministically from the identity fields so it reconciles with what the agent reads/writes \u2014 provide those fields (else 422), and if a record already exists the request is rejected with 409 (use PATCH to update it). Other types get a generated id. For a scoped (non-admin) caller, the body's `user_id` must be omitted/null or match the caller (mismatch \u2192 403); admins and unscoped callers may set any `user_id`.","operationId":"create_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users":{"get":{"tags":["Learnings"],"summary":"List Learning Users","description":"List the users that own learning records, with a per-user count and last-updated timestamp. Intended as the entry point for a per-user view: list users here, then drill into a single user's learnings via `GET /learnings?user_id=...`. Records with no owner (`user_id IS NULL`) are excluded. Pass `learning_type` to restrict the grouping to a single store (e.g. `user_profile` or `user_memory`). For a scoped (non-admin) caller results are bound to that user; an explicit `user_id` that differs is rejected with 403. Admins and unscoped callers list all users. Sortable by `user_id` or `last_learning_updated_at` (the default).","operationId":"list_learning_users","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the grouping to a single learning type","title":"Learning Type"},"description":"Restrict the grouping to a single learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the result to a single user","title":"User Id"},"description":"Restrict the result to a single user"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by: user_id or last_learning_updated_at (the default)","title":"Sort By"},"description":"Field to sort by: user_id or last_learning_updated_at (the default)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningUserStats_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users/{user_id}":{"delete":{"tags":["Learnings"],"summary":"Delete Learning User","description":"Delete the learning records owned by a user. By default removes every learning type backed by the agno_learnings table (user_profile, user_memory, and any user-scoped entity records); pass `learning_type` to restrict deletion to a single store. Records with no owner (`user_id IS NULL`) are not affected. For a scoped (non-admin) caller, only their own learnings may be deleted; a different `user_id` is rejected with 403. Admins and unscoped callers may delete any user's learnings. Returns 204 even if the user had no matching records.","operationId":"delete_learning_user","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The user whose learnings should be deleted","title":"User Id"},"description":"The user whose learnings should be deleted"},{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings","title":"Learning Type"},"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/{learning_id}":{"get":{"tags":["Learnings"],"summary":"Get Learning","description":"Retrieve a single learning record by its ID.","operationId":"get_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Learnings"],"summary":"Update Learning","description":"Update a learning record. Only `content` and `metadata` may be modified; identity fields (user_id, agent_id, team_id, etc.) are immutable. Provided fields fully replace the existing values. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) are readable by any caller but may only be modified by an admin.","operationId":"update_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Learnings"],"summary":"Delete Learning","description":"Permanently delete a learning record by its ID. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) may only be deleted by an admin.","operationId":"delete_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs":{"get":{"tags":["Evals"],"summary":"List Evaluation Runs","description":"Retrieve paginated evaluation runs with filtering and sorting options. Filter by agent, team, workflow, model, or evaluation type.","operationId":"get_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Workflow ID","title":"Workflow Id"},"description":"Workflow ID"},{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model ID","title":"Model Id"},"description":"Model ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EvalFilterType"},{"type":"null"}],"description":"Filter type","title":"Type"},"description":"Filter type"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of eval runs to return","default":20,"title":"Limit"},"description":"Number of eval runs to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"eval_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)","examples":["accuracy,agent_as_judge,performance,reliability"],"title":"Eval Types"},"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)"}],"responses":{"200":{"description":"Evaluation runs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_EvalSchema_"},"example":{"data":[{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Evals"],"summary":"Delete Evaluation Runs","description":"Delete multiple evaluation runs by their IDs. This action cannot be undone.","operationId":"delete_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvalRunsRequest"}}}},"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Deletion failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Evals"],"summary":"Execute Evaluation","description":"Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both.","operationId":"run_eval","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for evaluation","title":"Db Id"},"description":"Database ID to use for evaluation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for evaluation","title":"Table"},"description":"Table to use for evaluation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRunInput"}}}},"responses":{"200":{"description":"Evaluation executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"f2b2d72f-e9e2-4f0e-8810-0a7e1ff58614","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Invalid request - provide either agent_id or team_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs/{eval_run_id}":{"get":{"tags":["Evals"],"summary":"Get Evaluation Run","description":"Retrieve detailed results and metrics for a specific evaluation run.","operationId":"get_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query eval run from","title":"Table"},"description":"Table to query eval run from"}],"responses":{"200":{"description":"Evaluation run details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Evals"],"summary":"Update Evaluation Run","description":"Update the name or other properties of an existing evaluation run.","operationId":"update_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvalRunRequest"}}}},"responses":{"200":{"description":"Evaluation run updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update evaluation run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics":{"get":{"tags":["Metrics"],"summary":"Get AgentOS Metrics","description":"Retrieve AgentOS metrics and analytics data for a specified date range. If no date range is specified, returns all available metrics.","operationId":"get_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"starting_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Starting date for metrics range (YYYY-MM-DD format)","title":"Starting Date"},"description":"Starting date for metrics range (YYYY-MM-DD format)"},{"name":"ending_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Ending date for metrics range (YYYY-MM-DD format)","title":"Ending Date"},"description":"Ending date for metrics range (YYYY-MM-DD format)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query metrics from","title":"Db Id"},"description":"Database ID to query metrics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Metrics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"},"example":{"metrics":[{"id":"7bf39658-a00a-484c-8a28-67fd8a9ddb2a","agent_runs_count":5,"agent_sessions_count":5,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":448,"output_tokens":148,"total_tokens":596,"audio_tokens":0,"input_audio_tokens":0,"output_audio_tokens":0,"cached_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":5}],"date":"2025-07-31T00:00:00Z","created_at":"2025-07-31T12:38:52Z","updated_at":"2025-07-31T12:49:01Z"}]}}}},"400":{"description":"Invalid date range parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve metrics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics/refresh":{"post":{"tags":["Metrics"],"summary":"Refresh Metrics","description":"Manually trigger recalculation of system metrics from raw data. This operation analyzes system activity logs and regenerates aggregated metrics. Useful for ensuring metrics are up-to-date or after system maintenance.","operationId":"refresh_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for metrics calculation","title":"Db Id"},"description":"Database ID to use for metrics calculation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for metrics calculation","title":"Table"},"description":"Table to use for metrics calculation"}],"responses":{"200":{"description":"Metrics refreshed successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"title":"Response Refresh Metrics"},"example":[{"id":"e77c9531-818b-47a5-99cd-59fed61e5403","agent_runs_count":2,"agent_sessions_count":2,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":256,"output_tokens":441,"total_tokens":697,"audio_total_tokens":0,"audio_input_tokens":0,"audio_output_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":2}],"date":"2025-08-12T00:00:00Z","created_at":"2025-08-12T08:01:47Z","updated_at":"2025-08-12T08:01:47Z"}]}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Refresh failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content":{"post":{"tags":["Knowledge"],"summary":"Upload Content","description":"Upload content to the knowledge base. Supports file uploads, text content, or URLs. Content is processed asynchronously in the background. Supports custom readers and chunking strategies.","operationId":"upload_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_content"}}}},"responses":{"202":{"description":"Content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-123","name":"example-document.pdf","description":"Sample document for processing","metadata":{"category":"documentation","priority":"high"},"status":"processing"}}}},"400":{"description":"Invalid request - malformed metadata or missing content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in form data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"List Content","description":"Retrieve paginated list of all content in the knowledge base with filtering and sorting options. Filter by status, content type, or metadata properties.","operationId":"get_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of content entries to return","default":20,"title":"Limit"},"description":"Number of content entries to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ContentResponseSchema_"},"example":{"data":[{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}],"meta":{"page":1,"limit":20,"total_pages":1,"total_count":2}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete All Content","description":"Permanently remove all content from the knowledge base. This is a destructive operation that cannot be undone. Use with extreme caution.","operationId":"delete_all_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete all content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/remote-content":{"post":{"tags":["Knowledge"],"summary":"Upload Remote Content","description":"Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.","operationId":"upload_remote_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_upload_remote_content"}}}},"responses":{"202":{"description":"Remote content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-456","name":"reports/q1-2024.pdf","description":"Q1 Report from S3","metadata":{"source":"s3-docs"},"status":"processing"}}}},"400":{"description":"Invalid request - unknown config or missing path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}":{"patch":{"tags":["Knowledge"],"summary":"Update Content","description":"Update content name, description, or metadata without re-uploading it. In Agno 2.7.4, this endpoint accepts `reader_id`. Local knowledge validates the value, but the content patch does not apply or persist the reader change.","operationId":"update_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","description":"Content ID","title":"Content Id"},"description":"Content ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_update_content"}}}},"responses":{"200":{"description":"Content updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Invalid request - malformed metadata or invalid reader_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"Get Content by ID","description":"Retrieve detailed information about a specific content item including processing status and metadata.","operationId":"get_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete Content by ID","description":"Permanently remove a specific content item from the knowledge base. This action cannot be undone.","operationId":"delete_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}/status":{"get":{"tags":["Knowledge"],"summary":"Get Content Status","description":"Retrieve the current processing status of a content item. Useful for monitoring asynchronous content processing progress and identifying any processing errors.","operationId":"get_content_status","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content status retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentStatusResponse"},"examples":{"completed":{"summary":"Example completed content status","value":{"status":"completed","status_message":""}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/search":{"post":{"tags":["Knowledge"],"summary":"Search Knowledge","description":"Search the knowledge base for relevant documents using query, filters and search type.","operationId":"search_knowledge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VectorSearchRequestSchema"}}},"required":true},"responses":{"200":{"description":"Search results retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_VectorSearchResult_"},"example":{"data":[{"id":"doc_123","content":"Jordan Mitchell - Software Engineer with skills in JavaScript, React, Python","name":"cv_1","meta_data":{"page":1,"chunk":1},"usage":{"total_tokens":14},"reranking_score":0.95,"content_id":"content_456"}],"meta":{"page":1,"limit":20,"total_pages":2,"total_count":35}}}}},"400":{"description":"Invalid search parameters"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No documents found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/knowledge/config":{"get":{"tags":["Knowledge"],"summary":"Get Config","description":"Retrieve available readers, chunkers, and configuration options for content processing. This endpoint provides metadata about supported file types, processing strategies, and filters.","operationId":"get_knowledge_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Knowledge configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponseSchema"},"example":{"readers":{"website":{"id":"website","name":"WebsiteReader","description":"Reads website files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"firecrawl":{"id":"firecrawl","name":"FirecrawlReader","description":"Reads firecrawl files","chunkers":["SemanticChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"youtube":{"id":"youtube","name":"YoutubeReader","description":"Reads youtube files","chunkers":["RecursiveChunker","AgenticChunker","DocumentChunker","SemanticChunker","FixedSizeChunker"]},"web_search":{"id":"web_search","name":"WebSearchReader","description":"Reads web_search files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"arxiv":{"id":"arxiv","name":"ArxivReader","description":"Reads arxiv files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"csv":{"id":"csv","name":"CsvReader","description":"Reads csv files","chunkers":["RowChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"docling":{"id":"docling","name":"DoclingReader","description":"Converts multiple document formats like PDF, DOCX, PPTX, images, HTML, etc. using IBM's Docling library","chunkers":["AgenticChunker","CodeChunker","DocumentChunker","FixedSizeChunker","RecursiveChunker","SemanticChunker"]},"docx":{"id":"docx","name":"DocxReader","description":"Reads docx files","chunkers":["DocumentChunker","FixedSizeChunker","SemanticChunker","AgenticChunker","RecursiveChunker"]},"gcs":{"id":"gcs","name":"GcsReader","description":"Reads gcs files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"json":{"id":"json","name":"JsonReader","description":"Reads json files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"markdown":{"id":"markdown","name":"MarkdownReader","description":"Reads markdown files","chunkers":["MarkdownChunker","DocumentChunker","AgenticChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"pdf":{"id":"pdf","name":"PdfReader","description":"Reads pdf files","chunkers":["DocumentChunker","FixedSizeChunker","AgenticChunker","SemanticChunker","RecursiveChunker"]},"text":{"id":"text","name":"TextReader","description":"Reads text files","chunkers":["CodeChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]}},"readersForType":{"url":["url","website","firecrawl","youtube","web_search","gcs"],"youtube":["youtube"],"text":["web_search"],"topic":["arxiv"],"file":["csv","gcs"],".csv":["csv","field_labeled_csv","docling"],".xlsx":["excel","docling"],".xls":["excel"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["excel"],"application/vnd.ms-excel":["excel"],".docx":["docx","docling"],".dotx":["docling"],".docm":["docling"],".dotm":["docling"],".pptx":["docling","pptx"],".potx":["docling"],".ppsx":["docling"],".pptm":["docling"],".ppsm":["docling"],".potm":["docling"],".doc":["docx"],".json":["json"],".md":["markdown","docling"],".pdf":["pdf","docling"],".txt":["text"],".html":["docling"],".htm":["docling"],".xhtml":["docling"],".xml":["docling"],".nxml":["docling"],".xbrl":["docling"],".adoc":["docling"],".asciidoc":["docling"],".asc":["docling"],".xlsm":["docling"],".tex":["docling"],".latex":["docling"],".tar.gz":["docling"],".vtt":["docling"],".png":["docling"],".jpeg":["docling"],".jpg":["docling"],".tiff":["docling"],".tif":["docling"],".bmp":["docling"],".webp":["docling"],".wav":["docling"],".mp3":["docling"],".m4a":["docling"],".aac":["docling"],".ogg":["docling"],".flac":["docling"],".mp4":["docling"],".avi":["docling"],".mov":["docling"]},"chunkers":{"AgenticChunker":{"key":"AgenticChunker","name":"AgenticChunker","description":"Chunking strategy that uses an LLM to determine natural breakpoints in the text","metadata":{"chunk_size":5000}},"CodeChunker":{"key":"CodeChunker","name":"CodeChunker","description":"The CodeChunker splits code into chunks based on its structure, leveraging Abstract Syntax Trees (ASTs) to create contextually relevant segments","metadata":{"chunk_size":2048}},"DocumentChunker":{"key":"DocumentChunker","name":"DocumentChunker","description":"A chunking strategy that splits text based on document structure like paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"FixedSizeChunker":{"key":"FixedSizeChunker","name":"FixedSizeChunker","description":"Chunking strategy that splits text into fixed-size chunks with optional overlap","metadata":{"chunk_size":5000,"chunk_overlap":0}},"MarkdownChunker":{"key":"MarkdownChunker","name":"MarkdownChunker","description":"A chunking strategy that splits markdown based on structure like headers, paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RecursiveChunker":{"key":"RecursiveChunker","name":"RecursiveChunker","description":"Chunking strategy that recursively splits text into chunks by finding natural break points","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RowChunker":{"key":"RowChunker","name":"RowChunker","description":"RowChunking chunking strategy","metadata":{}},"SemanticChunker":{"key":"SemanticChunker","name":"SemanticChunker","description":"Chunking strategy that splits text into semantic chunks using chonkie","metadata":{"chunk_size":5000}}},"vector_dbs":[{"id":"vector_db_1","name":"Vector DB 1","description":"Vector DB 1 description","search_types":["vector","keyword","hybrid"]}],"filters":["filter_tag_1","filter_tag2"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources":{"get":{"tags":["Knowledge"],"summary":"List Content Sources","description":"List all registered content sources (S3, GCS, SharePoint, GitHub) for the knowledge base.","operationId":"list_content_sources","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Content sources retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"title":"Response List Content Sources"},"example":[{"id":"company-s3","name":"Company Documents","type":"s3","prefix":"documents/"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources/{source_id}/files":{"get":{"tags":["Knowledge"],"summary":"List Files in Source","description":"List available files and folders in a specific content source. Supports pagination and folder navigation.","operationId":"list_source_files","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the content source","title":"Source Id"},"description":"ID of the content source"},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Path prefix to filter files","title":"Prefix"},"description":"Path prefix to filter files"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of files per page","default":100,"title":"Limit"},"description":"Number of files per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"delimiter","in":"query","required":false,"schema":{"type":"string","description":"Folder delimiter (enables folder grouping)","default":"/","title":"Delimiter"},"description":"Folder delimiter (enables folder grouping)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Files listed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceFilesResponseSchema"},"example":{"source_id":"company-s3","source_name":"Company Documents","prefix":"reports/","folders":[{"prefix":"reports/2024/","name":"2024","is_empty":false}],"files":[{"key":"reports/annual-summary.pdf","name":"annual-summary.pdf","size":102400,"last_modified":"2024-01-15T10:30:00Z","content_type":"application/pdf"}],"meta":{"page":1,"limit":100,"total_pages":1,"total_count":1}}}}},"400":{"description":"Unsupported source type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base or content source not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces":{"get":{"tags":["Traces","Traces"],"summary":"List Traces","description":"Retrieve a paginated list of execution traces with optional filtering.\n\n**Traces provide observability into:**\n- Agent execution flows\n- Model invocations and token usage\n- Tool calls and their results\n- Errors and performance bottlenecks\n\n**Filtering Options:**\n- By run, session, user, or agent ID\n- By status (OK, ERROR)\n- By time range\n\n**Pagination:**\n- Use `page` (1-indexed) and `limit` parameters\n- Response includes pagination metadata (total_pages, total_count, etc.)\n\n**Response Format:**\nReturns summary information for each trace. Use GET `/traces/{trace_id}` for detailed hierarchy.","operationId":"get_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run ID","title":"Run Id"},"description":"Filter by run ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status (OK, ERROR)","title":"Status"},"description":"Filter by status (OK, ERROR)"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of traces per page","default":20,"title":"Limit"},"description":"Number of traces per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"responses":{"200":{"description":"List of traces retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSummary_"},"example":{"data":[{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","total_spans":4,"error_count":0,"input":"What is the stock price of NVDA?","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"agent_stock","created_at":"2025-11-19T10:30:00+00:00"}],"meta":{"page":1,"limit":20,"total_pages":5,"total_count":95}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/filter-schema":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Filter Schema","description":"Returns the available filterable fields, their types, valid operators, and enum values.\n\nThe frontend uses this to dynamically build the filter bar UI:\n- Field dropdown populated from `fields[].key`\n- Operator dropdown changes per field type\n- Value input shows autocomplete for enum fields (e.g., status)\n- Logical operators (AND, OR) for combining clauses","operationId":"get_traces_filter_schema","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterSchemaResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/traces/{trace_id}":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace or Span Detail","description":"Retrieve detailed trace information with hierarchical span tree, or a specific span within the trace.\n\n**Without span_id parameter:**\nReturns the full trace with hierarchical span tree:\n- Trace metadata (ID, status, duration, context)\n- Hierarchical tree of all spans\n- Each span includes timing, status, and type-specific metadata\n\n**With span_id parameter:**\nReturns details for a specific span within the trace:\n- Span metadata (ID, name, type, timing)\n- Status and error information\n- Type-specific attributes (model, tokens, tool params, etc.)\n\n**Span Hierarchy (full trace):**\nThe `tree` field contains root spans, each with potential `children`.\nThis recursive structure represents the execution flow:\n```\nAgent.run (root)\n \u251c\u2500 LLM.invoke\n \u251c\u2500 Tool.execute\n \u2502 \u2514\u2500 LLM.invoke (nested)\n \u2514\u2500 LLM.invoke\n```\n\n**Span Types:**\n- `AGENT`: Agent execution with input/output\n- `LLM`: Model invocations with tokens and prompts\n- `TOOL`: Tool calls with parameters and results","operationId":"get_trace","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}},{"name":"span_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Span ID to retrieve specific span","title":"Span Id"},"description":"Optional: Span ID to retrieve specific span"},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Run ID to retrieve trace for","title":"Run Id"},"description":"Optional: Run ID to retrieve trace for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query trace from","title":"Db Id"},"description":"Database ID to query trace from"}],"responses":{"200":{"description":"Trace or span detail retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TraceDetail"},{"$ref":"#/components/schemas/TraceNode"}],"title":"Response Get Trace"},"examples":{"full_trace":{"summary":"Full trace with hierarchy (no span_id)","value":{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","end_time":"2025-11-19T10:30:01.200000+00:00","total_spans":4,"error_count":0,"input":"What is Tesla stock price?","output":"The current price of Tesla (TSLA) is $245.67.","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"stock_agent","created_at":"2025-11-19T10:30:00+00:00","tree":[{"id":"span1","name":"Stock_Price_Agent.run","type":"AGENT","duration":"1.2s","status":"OK","spans":[]}]}},"single_span":{"summary":"Single span detail (with span_id)","value":{"id":"span2","name":"gpt-4o-mini.invoke","type":"LLM","duration":"800ms","status":"OK","metadata":{"model":"gpt-4o-mini","input_tokens":120}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Trace or span not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/trace_session_stats":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Statistics by Session","description":"Retrieve aggregated trace statistics grouped by session ID with pagination.\n\n**Provides insights into:**\n- Total traces per session\n- First and last trace timestamps per session\n- Associated user and agent information\n\n**Filtering Options:**\n- By user ID\n- By agent ID\n\n**Use Cases:**\n- Monitor session-level activity\n- Track conversation flows\n- Identify high-activity sessions\n- Analyze user engagement patterns","operationId":"get_trace_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of sessions per page","default":20,"title":"Limit"},"description":"Number of sessions per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"}],"responses":{"200":{"description":"Trace statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"},"example":{"data":[{"session_id":"37029bc6-1794-4ba8-a629-1efedc53dcad","user_id":"kaustubh@agno.com","agent_id":"hackernews-agent","total_traces":5,"first_trace_at":"2025-11-19T10:15:16+00:00","last_trace_at":"2025-11-19T10:21:30+00:00"}],"meta":{"page":1,"limit":20,"total_pages":3,"total_count":45}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/search":{"post":{"tags":["Traces","Traces"],"summary":"Search Traces with Advanced Filters","description":"Search traces using the FilterExpr DSL for complex, composable queries.\n\n**Group By Mode:**\n- `run` (default): Returns `PaginatedResponse[TraceDetail]` with full span trees\n- `session`: Returns `PaginatedResponse[TraceSessionStats]` with aggregated session stats\n\n**Supported Operators:**\n- Comparison: `EQ`, `NEQ`, `GT`, `GTE`, `LT`, `LTE`\n- Inclusion: `IN`\n- String matching: `CONTAINS` (case-insensitive substring), `STARTSWITH` (prefix)\n- Logical: `AND`, `OR`, `NOT`\n\n**Filterable Fields:**\ntrace_id, name, status, start_time, end_time, duration_ms, run_id, session_id, user_id, agent_id, team_id, workflow_id, created_at\n\n**Example Request Body (runs):**\n```json\n{\n \"filter\": {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n}\n```\n\n**Example Request Body (sessions):**\n```json\n{\n \"filter\": {\"op\": \"CONTAINS\", \"key\": \"agent_id\", \"value\": \"stock\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n}\n```","operationId":"search_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PaginatedResponse_TraceDetail_"},{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"}],"title":"Response Search Traces"}}}},"400":{"description":"Invalid filter expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/all/migrate":{"post":{"tags":["Database"],"summary":"Migrate All Databases","description":"Migrate all database schemas to the given target version. If a target version is not provided, all databases will be migrated to the latest version.","operationId":"migrate_all_databases","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"All databases migrated successfully","content":{"application/json":{"schema":{},"example":{"message":"All databases migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/{db_id}/migrate":{"post":{"tags":["Database"],"summary":"Migrate Database","description":"Migrate the given database schema to the given target version. If a target version is not provided, the database will be migrated to the latest version.","operationId":"migrate_database","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"Database migrated successfully","content":{"application/json":{"schema":{},"example":{"message":"Database migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Database not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components":{"get":{"tags":["Components"],"summary":"List Components","description":"Retrieve a paginated list of components with optional filtering by type.","operationId":"list_components","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ComponentType"},{"type":"null"}],"description":"Filter by type: agent, team, workflow","title":"Component Type"},"description":"Filter by type: agent, team, workflow"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ComponentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Component","description":"Create a new component (agent, team, or workflow) with initial config.","operationId":"create_component","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}":{"get":{"tags":["Components"],"summary":"Get Component","description":"Retrieve a component by ID.","operationId":"get_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Components"],"summary":"Update Component","description":"Partially update a component by ID.","operationId":"update_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentUpdate","description":"Component fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Component","description":"Soft-delete a component by ID. Component configs and links remain stored.","operationId":"delete_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs":{"get":{"tags":["Components"],"summary":"List Configs","description":"List all configs for a component.","operationId":"list_configs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"include_config","in":"query","required":false,"schema":{"type":"boolean","description":"Include full config blob","default":true,"title":"Include Config"},"description":"Include full config blob"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComponentConfigResponse"},"title":"Response List Configs"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Config Version","description":"Create a new config version for a component.","operationId":"create_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigCreate","description":"Config data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}":{"patch":{"tags":["Components"],"summary":"Update Draft Config","description":"Update an existing draft config. Cannot update published configs.","operationId":"update_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigUpdate","description":"Config fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Components"],"summary":"Get Config Version","description":"Get a specific config version by number.","operationId":"get_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Config Version","description":"Delete a specific config version. Agno v2.7.4 rejects the current version. Synchronous SQLite and PostgreSQL storage allow deletion of a published non-current version.","operationId":"delete_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/current":{"get":{"tags":["Components"],"summary":"Get Current Config","description":"Get the current config version for a component.","operationId":"get_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}/set-current":{"post":{"tags":["Components"],"summary":"Set Current Config Version","description":"Set a published config version as current (for rollback).","operationId":"set_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/schedules":{"get":{"tags":["Schedules"],"summary":"List Schedules","operationId":"list_schedules_schedules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"post":{"tags":["Schedules"],"summary":"Create Schedule","operationId":"create_schedule_schedules_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule","operationId":"get_schedule_schedules__schedule_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"patch":{"tags":["Schedules"],"summary":"Update Schedule","operationId":"update_schedule_schedules__schedule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Schedules"],"summary":"Delete Schedule","operationId":"delete_schedule_schedules__schedule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/enable":{"post":{"tags":["Schedules"],"summary":"Enable Schedule","operationId":"enable_schedule_schedules__schedule_id__enable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/disable":{"post":{"tags":["Schedules"],"summary":"Disable Schedule","operationId":"disable_schedule_schedules__schedule_id__disable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/trigger":{"post":{"tags":["Schedules"],"summary":"Trigger Schedule","operationId":"trigger_schedule_schedules__schedule_id__trigger_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Schedule is disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler is not running or storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs":{"get":{"tags":["Schedules"],"summary":"List Schedule Runs","operationId":"list_schedule_runs_schedules__schedule_id__runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleRunResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs/{run_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule Run","operationId":"get_schedule_run_schedules__schedule_id__runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals":{"get":{"tags":["Approvals"],"summary":"List Approvals","operationId":"list_approvals_approvals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","approved","rejected","expired","cancelled"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"source_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"}},{"name":"approval_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["required","audit"],"type":"string"},{"type":"null"}],"title":"Approval Type"}},{"name":"pause_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"schedule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"}},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ApprovalResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/count":{"get":{"tags":["Approvals"],"summary":"Get Approval Count","operationId":"get_approval_count_approvals_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalCountResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/{approval_id}/status":{"get":{"tags":["Approvals"],"summary":"Get Approval Status","operationId":"get_approval_status_approvals__approval_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalStatusResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/{approval_id}":{"get":{"tags":["Approvals"],"summary":"Get Approval","operationId":"get_approval_approvals__approval_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Approvals"],"summary":"Delete Approval","operationId":"delete_approval_approvals__approval_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/{approval_id}/resolve":{"post":{"tags":["Approvals"],"summary":"Resolve Approval","operationId":"resolve_approval_approvals__approval_id__resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResolve"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/service-accounts":{"post":{"tags":["Service Accounts"],"summary":"Create Service Account","description":"Mint a service account token. The plaintext token is returned exactly once.","operationId":"create_service_account_service_accounts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreateResponse"}}}},"400":{"description":"Requested scopes are invalid, or privileged scopes were not explicitly allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"An active service account with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"get":{"tags":["Service Accounts"],"summary":"List Service Accounts","description":"List service accounts. Returns metadata and display prefixes only - never hashes or plaintext.","operationId":"list_service_accounts_service_accounts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Revoked"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ServiceAccountResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/service-accounts/{service_account_id}":{"delete":{"tags":["Service Accounts"],"summary":"Revoke Service Account","description":"Revoke an existing service account.\n\nTakes effect immediately on this worker (the local verification cache entry is evicted) and within the cache TTL on other workers.","operationId":"revoke_service_account_service_accounts__service_account_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"service_account_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Service account not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/registry":{"get":{"tags":["Registry"],"summary":"List Registry","description":"List all resources in the registry with optional filtering.","operationId":"list_registry","security":[{"HTTPBearer":[]}],"parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RegistryResourceType"},{"type":"null"}],"description":"Filter by resource type","title":"Resource Type"},"description":"Filter by resource type"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (partial match)","title":"Name"},"description":"Filter by name (partial match)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_RegistryContentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}}},"components":{"schemas":{"A2ARequest_DataPart":{"description":"Represents a structured data segment (e.g., JSON) within a message or artifact.","properties":{"data":{"additionalProperties":true,"title":"Data","type":"object"},"kind":{"const":"data","default":"data","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["data"],"title":"DataPart","type":"object"},"A2ARequest_FilePart":{"description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI.","properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_FileWithBytes"},{"$ref":"#/components/schemas/A2ARequest_FileWithUri"}],"title":"File"},"kind":{"const":"file","default":"file","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["file"],"title":"FilePart","type":"object"},"A2ARequest_FileWithBytes":{"description":"Represents a file with its content provided directly as a base64-encoded string.","properties":{"bytes":{"title":"Bytes","type":"string"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"}},"required":["bytes"],"title":"FileWithBytes","type":"object"},"A2ARequest_FileWithUri":{"description":"Represents a file with its content located at a specific URI.","properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"FileWithUri","type":"object"},"A2ARequest_Message":{"description":"Represents a single message in the conversation between a user and an agent.","properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"kind":{"const":"message","default":"message","title":"Kind","type":"string"},"messageId":{"title":"Messageid","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/A2ARequest_Part"},"title":"Parts","type":"array"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/A2ARequest_Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Taskid"}},"required":["messageId","parts","role"],"title":"Message","type":"object"},"A2ARequest_MessageSendConfiguration":{"description":"Defines configuration options for a `message/send` or `message/stream` request.","properties":{"acceptedOutputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Acceptedoutputmodes"},"blocking":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Blocking"},"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"pushNotificationConfig":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationConfig"},{"type":"null"}],"default":null}},"title":"MessageSendConfiguration","type":"object"},"A2ARequest_MessageSendParams":{"description":"Defines the parameters for a request to send a message to an agent. This can be used\nto create a new task, continue an existing one, or restart a task.","properties":{"configuration":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_MessageSendConfiguration"},{"type":"null"}],"default":null},"message":{"$ref":"#/components/schemas/A2ARequest_Message"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["message"],"title":"MessageSendParams","type":"object"},"A2ARequest_Part":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_TextPart"},{"$ref":"#/components/schemas/A2ARequest_FilePart"},{"$ref":"#/components/schemas/A2ARequest_DataPart"}],"title":"Part"},"A2ARequest_PushNotificationAuthenticationInfo":{"description":"Defines authentication details for a push notification endpoint.","properties":{"credentials":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Credentials"},"schemes":{"items":{"type":"string"},"title":"Schemes","type":"array"}},"required":["schemes"],"title":"PushNotificationAuthenticationInfo","type":"object"},"A2ARequest_PushNotificationConfig":{"description":"Defines the configuration for setting up push notifications for task updates.","properties":{"authentication":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationAuthenticationInfo"},{"type":"null"}],"default":null},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Id"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Token"},"url":{"title":"Url","type":"string"}},"required":["url"],"title":"PushNotificationConfig","type":"object"},"A2ARequest_Role":{"description":"Identifies the sender of the message. `user` for the client, `agent` for the service.","enum":["agent","user"],"title":"Role","type":"string"},"A2ARequest_TextPart":{"description":"Represents a text segment within a message or artifact.","properties":{"kind":{"const":"text","default":"text","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"text":{"title":"Text","type":"string"}},"required":["text"],"title":"TextPart","type":"object"},"ActivityMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"activity","title":"Role","default":"activity"},"activityType":{"type":"string","title":"Activitytype"},"content":{"additionalProperties":true,"type":"object","title":"Content"}},"additionalProperties":true,"type":"object","required":["id","activityType","content"],"title":"ActivityMessage","description":"An activity progress message emitted between chat messages."},"AgentResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"extra_messages":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Messages"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"AgentResponse"},"AgentSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_session_id":{"type":"string","title":"Agent Session Id","description":"Unique agent session identifier"},"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID used in this session"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"agent_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Data","description":"Agent-specific data"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["agent_session_id","session_id","session_name"],"title":"AgentSessionDetailSchema"},"AgentSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the agent"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the agent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the agent"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the agent"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","title":"AgentSummaryResponse"},"ApprovalCountResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"ApprovalCountResponse","description":"Response model for pending approval count."},"ApprovalResolve":{"properties":{"status":{"type":"string","pattern":"^(approved|rejected)$","title":"Status"},"resolved_by":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Resolved By"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"}},"type":"object","required":["status"],"title":"ApprovalResolve","description":"Request body for resolving (approve/reject) an approval."},"ApprovalResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"},"source_type":{"type":"string","title":"Source Type"},"approval_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Type"},"pause_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Args"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"},"schedule_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Run Id"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"},"run_status":{"anyOf":[{"$ref":"#/components/schemas/RunStatus"},{"type":"null"}]}},"type":"object","required":["id","run_id","session_id","status","source_type"],"title":"ApprovalResponse","description":"Response model for a single approval."},"ApprovalStatusResponse":{"properties":{"approval_id":{"type":"string","title":"Approval Id"},"status":{"type":"string","title":"Status"},"run_id":{"type":"string","title":"Run Id"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"}},"type":"object","required":["approval_id","status","run_id"],"title":"ApprovalStatusResponse","description":"Lightweight response model for polling approval status."},"Artifact":{"properties":{"artifactId":{"type":"string","title":"Artifactid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"}},"type":"object","required":["artifactId","parts"],"title":"Artifact","description":"Represents a file, data structure, or other resource generated by an agent during a task."},"AssistantMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"assistant","title":"Role","default":"assistant"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"},"toolCalls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},{"type":"null"}],"title":"Toolcalls"}},"additionalProperties":true,"type":"object","required":["id"],"title":"AssistantMessage","description":"An assistant message."},"AudioInputContent":{"properties":{"type":{"type":"string","const":"audio","title":"Type","default":"audio"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"AudioInputContent","description":"An audio input content fragment."},"BackgroundRunResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the background run."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the background run."},"status":{"type":"string","title":"Status","description":"Initial run status."}},"type":"object","required":["run_id","session_id","status"],"title":"BackgroundRunResponse"},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"BadRequestResponse","example":{"detail":"Bad request","error_code":"BAD_REQUEST"}},"BinaryInputContent":{"properties":{"type":{"type":"string","const":"binary","title":"Type","default":"binary"},"mimeType":{"type":"string","title":"Mimetype"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"additionalProperties":true,"type":"object","required":["mimeType"],"title":"BinaryInputContent","description":"A deprecated binary payload reference in a multimodal user message."},"Body_continue_agent_run":{"properties":{"tools":{"type":"string","title":"Tools","description":"JSON string of tool call results to continue the paused run","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Optional new user-message text to append to the run before resuming. Use for continuing a COMPLETED run with a follow-up, or adding context to a RUNNING/ERROR resume."},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","description":"When true, clone the run with a new ``run_id`` before resuming. The original is untouched; the clone becomes a sibling within the same session, with ``forked_from_run_id`` set.","default":false},"regenerate":{"type":"boolean","title":"Regenerate","description":"Sugar: regenerate the last response of this run. Auto-computes ``continue_from='last_user'`` to land just after the last user message. Pair with ``additional_instructions`` to steer the new output. By default the original response is hidden from history (replaced); pass ``replace_original=false`` to keep both the original and the regenerated response visible side by side.","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original","description":"Only valid with ``regenerate=true``. Controls history visibility of the original response; the original run is always retained in storage. Defaults to true: the original is marked REGENERATED and hidden from history so the new response replaces it. Pass false to keep both the original and regenerated responses visible."},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions","description":"Only valid with ``regenerate=true``: extra guidance appended as a user message before re-generation. Friendly alias for ``input``."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run continue in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false}},"type":"object","title":"Body_continue_agent_run"},"Body_continue_team_run":{"properties":{"requirements":{"type":"string","title":"Requirements","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input"},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","default":false},"regenerate":{"type":"boolean","title":"Regenerate","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original"},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"stream":{"type":"boolean","title":"Stream","default":true},"background":{"type":"boolean","title":"Background","default":false}},"type":"object","title":"Body_continue_team_run"},"Body_continue_workflow_run":{"properties":{"step_requirements":{"type":"string","title":"Step Requirements","description":"JSON string of step requirement objects with resolution status","default":""},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}},"type":"object","title":"Body_continue_workflow_run"},"Body_create_agent_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the agent"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Agent version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic agent construction"}},"type":"object","required":["message"],"title":"Body_create_agent_run"},"Body_create_team_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the team"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"monitor":{"type":"boolean","title":"Monitor","description":"Enable monitoring and logging for this run","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Team version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic team construction"}},"type":"object","required":["message"],"title":"Body_create_team_run"},"Body_create_workflow_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the workflow"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run workflow in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Workflow version to use for this run"},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow construction"}},"type":"object","required":["message"],"title":"Body_create_workflow_run"},"Body_rename_session":{"properties":{"session_name":{"type":"string","title":"Session Name","description":"New name for the session"}},"type":"object","required":["session_name"],"title":"Body_rename_session"},"Body_resume_agent_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_agent_run_stream"},"Body_resume_team_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_team_run_stream"},"Body_resume_workflow_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_workflow_run_stream"},"Body_update_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"Content metadata as JSON string"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"Reader ID. In Agno 2.7.4, local knowledge validates the value, but the content patch does not apply or persist the reader change."}},"type":"object","title":"Body_update_content"},"Body_upload_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated from file/URL if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description for context"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"URL to fetch content from (JSON array or single URL string)"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object for additional content properties"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File","description":"File to upload for processing"},"text_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Content","description":"Raw text content to process"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for content processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply during processing"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size to use for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap to use for processing"}},"type":"object","title":"Body_upload_content"},"Body_upload_remote_content":{"properties":{"config_id":{"type":"string","title":"Config Id","description":"ID of the configured remote content source (from /knowledge/config)"},"path":{"type":"string","title":"Path","description":"Path to file or folder in the remote source"},"source_params":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Params","description":"JSON object of per-request parameters forwarded to the source's factory. Used for provider-specific routing that shouldn't be baked into the config. Currently supported keys: GitHub accepts 'repo' ('owner/repo'), letting one configured GitHub source serve multiple repositories the credentials can access."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap for processing"}},"type":"object","required":["config_id","path"],"title":"Body_upload_remote_content"},"ChatConfig":{"properties":{"quick_prompts":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Quick Prompts"}},"type":"object","required":["quick_prompts"],"title":"ChatConfig","description":"Configuration for the Chat page of the AgentOS"},"ChunkerSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["key"],"title":"ChunkerSchema"},"ComponentConfigResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"version":{"type":"integer","title":"Version"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"type":"string","title":"Stage"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","version","stage","config","created_at"],"title":"ComponentConfigResponse"},"ComponentCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Display name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id","description":"Unique identifier for the entity. Auto-generated from name if not provided."},"component_type":{"$ref":"#/components/schemas/ComponentType","description":"Type of entity: agent, team, or workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config","description":"Optional configuration"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["name","component_type"],"title":"ComponentCreate"},"ComponentResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"component_type":{"$ref":"#/components/schemas/ComponentType"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","component_type","created_at"],"title":"ComponentResponse"},"ComponentType":{"type":"string","enum":["agent","team","workflow"],"title":"ComponentType"},"ComponentUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"component_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"}},"type":"object","title":"ComponentUpdate"},"ConfigCreate":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config","description":"The configuration data"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Optional version number"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links","description":"Optional links to child components"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["config"],"title":"ConfigCreate"},"ConfigResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the OS instance"},"available_models":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Models","description":"List of available models"},"os_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Database","description":"ID of the database used for the OS instance"},"databases":{"items":{"type":"string"},"type":"array","title":"Databases","description":"List of database IDs used by the components of the OS instance"},"chat":{"anyOf":[{"$ref":"#/components/schemas/ChatConfig"},{"type":"null"}],"description":"Chat configuration"},"manifest":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Manifest"},"type":"object"},{"type":"null"}],"title":"Manifest","description":"Per-entity UI metadata keyed by agent/team/workflow id"},"session":{"anyOf":[{"$ref":"#/components/schemas/SessionConfig"},{"type":"null"}],"description":"Session configuration"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/MetricsConfig"},{"type":"null"}],"description":"Metrics configuration"},"memory":{"anyOf":[{"$ref":"#/components/schemas/MemoryConfig"},{"type":"null"}],"description":"Memory configuration"},"learning":{"anyOf":[{"$ref":"#/components/schemas/LearningConfig"},{"type":"null"}],"description":"Learning configuration"},"knowledge":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeConfig"},{"type":"null"}],"description":"Knowledge configuration"},"evals":{"anyOf":[{"$ref":"#/components/schemas/EvalsConfig"},{"type":"null"}],"description":"Evaluations configuration"},"traces":{"anyOf":[{"$ref":"#/components/schemas/TracesConfig"},{"type":"null"}],"description":"Traces configuration"},"agents":{"items":{"$ref":"#/components/schemas/AgentSummaryResponse"},"type":"array","title":"Agents","description":"List of registered agents"},"teams":{"items":{"$ref":"#/components/schemas/TeamSummaryResponse"},"type":"array","title":"Teams","description":"List of registered teams"},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Workflows","description":"List of registered workflows"},"interfaces":{"items":{"$ref":"#/components/schemas/InterfaceResponse"},"type":"array","title":"Interfaces","description":"List of available interfaces"}},"type":"object","required":["os_id","databases","agents","teams","workflows","interfaces"],"title":"ConfigResponse","description":"Response schema for the general config endpoint"},"ConfigResponseSchema":{"properties":{"readers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ReaderSchema"},"type":"object"},{"type":"null"}],"title":"Readers","description":"Available content readers"},"readersForType":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Readersfortype","description":"Mapping of content types to reader IDs"},"chunkers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ChunkerSchema"},"type":"object"},{"type":"null"}],"title":"Chunkers","description":"Available chunking strategies"},"filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filters","description":"Available filter tags"},"vector_dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/VectorDbSchema"},"type":"array"},{"type":"null"}],"title":"Vector Dbs","description":"Configured vector databases"},"remote_content_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"type":"array"},{"type":"null"}],"title":"Remote Content Sources","description":"Configured remote content sources (S3, GCS, SharePoint, GitHub)"}},"type":"object","title":"ConfigResponseSchema"},"ConfigUpdate":{"properties":{"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","title":"ConfigUpdate"},"ConflictResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ConflictResponse","example":{"detail":"Resource conflict"}},"ContentResponseSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the content"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"MIME type of the content"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"},"linked_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linked To","description":"ID of related content if linked"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata as key-value pairs"},"access_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Access Count","description":"Number of times content has been accessed"},"status":{"anyOf":[{"$ref":"#/components/schemas/ContentStatus"},{"type":"null"}],"description":"Processing status of the content"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message","description":"Status message or error details"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when content was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when content was last updated"}},"type":"object","required":["id"],"title":"ContentResponseSchema"},"ContentStatus":{"type":"string","enum":["processing","completed","failed"],"title":"ContentStatus","description":"Enumeration of possible content processing statuses."},"ContentStatusResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Content ID"},"status":{"$ref":"#/components/schemas/ContentStatus","description":"Current processing status of the content"},"status_message":{"type":"string","title":"Status Message","description":"Status message or error details","default":""}},"type":"object","required":["status"],"title":"ContentStatusResponse","description":"Response model for content status endpoint."},"Context":{"properties":{"description":{"type":"string","title":"Description"},"value":{"type":"string","title":"Value"}},"additionalProperties":true,"type":"object","required":["description","value"],"title":"Context","description":"Additional context for the agent."},"CreateSessionRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session ID (generated if not provided)"},"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Initial session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"}},"type":"object","title":"CreateSessionRequest"},"DataPart":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data"},"kind":{"type":"string","const":"data","title":"Kind","default":"data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["data"],"title":"DataPart","description":"Represents a structured data segment (e.g., JSON) within a message or artifact."},"DatabaseConfig_EvalsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/EvalsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[EvalsDomainConfig]"},"DatabaseConfig_LearningDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/LearningDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[LearningDomainConfig]"},"DatabaseConfig_MemoryDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MemoryDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MemoryDomainConfig]"},"DatabaseConfig_MetricsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MetricsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MetricsDomainConfig]"},"DatabaseConfig_SessionDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/SessionDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[SessionDomainConfig]"},"DatabaseConfig_TracesDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/TracesDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[TracesDomainConfig]"},"DayAggregatedMetrics":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the metrics record"},"agent_runs_count":{"type":"integer","minimum":0.0,"title":"Agent Runs Count","description":"Total number of agent runs"},"agent_sessions_count":{"type":"integer","minimum":0.0,"title":"Agent Sessions Count","description":"Total number of agent sessions"},"team_runs_count":{"type":"integer","minimum":0.0,"title":"Team Runs Count","description":"Total number of team runs"},"team_sessions_count":{"type":"integer","minimum":0.0,"title":"Team Sessions Count","description":"Total number of team sessions"},"workflow_runs_count":{"type":"integer","minimum":0.0,"title":"Workflow Runs Count","description":"Total number of workflow runs"},"workflow_sessions_count":{"type":"integer","minimum":0.0,"title":"Workflow Sessions Count","description":"Total number of workflow sessions"},"users_count":{"type":"integer","minimum":0.0,"title":"Users Count","description":"Total number of unique users"},"token_metrics":{"additionalProperties":true,"type":"object","title":"Token Metrics","description":"Token usage metrics (input, output, cached, etc.)"},"model_metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Model Metrics","description":"Metrics grouped by model (model_id, provider, count)"},"date":{"type":"string","format":"date-time","title":"Date","description":"Date for which these metrics are aggregated"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when metrics were created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when metrics were last updated"}},"type":"object","required":["id","agent_runs_count","agent_sessions_count","team_runs_count","team_sessions_count","workflow_runs_count","workflow_sessions_count","users_count","token_metrics","model_metrics","date","created_at","updated_at"],"title":"DayAggregatedMetrics","description":"Aggregated metrics for a given day"},"DeleteEvalRunsRequest":{"properties":{"eval_run_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Eval Run Ids","description":"List of evaluation run IDs to delete"}},"type":"object","required":["eval_run_ids"],"title":"DeleteEvalRunsRequest"},"DeleteMemoriesRequest":{"properties":{"memory_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Memory Ids","description":"List of memory IDs to delete"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID to filter memories for deletion"}},"type":"object","required":["memory_ids"],"title":"DeleteMemoriesRequest"},"DeleteSessionRequest":{"properties":{"session_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Session Ids","description":"List of session IDs to delete"},"session_types":{"items":{"$ref":"#/components/schemas/SessionType"},"type":"array","minItems":1,"title":"Session Types","description":"Types of sessions to delete"}},"type":"object","required":["session_ids","session_types"],"title":"DeleteSessionRequest"},"DeveloperMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"developer","title":"Role","default":"developer"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"DeveloperMessage","description":"A developer message."},"DocumentInputContent":{"properties":{"type":{"type":"string","const":"document","title":"Type","default":"document"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"DocumentInputContent","description":"A document input content fragment."},"EvalFilterType":{"type":"string","enum":["agent","team","workflow"],"title":"EvalFilterType"},"EvalRunInput":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID to evaluate"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID to evaluate"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID to use for evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation to run (accuracy, performance, or reliability)"},"input":{"type":"string","minLength":1,"title":"Input","description":"Input text/query for the evaluation"},"additional_guidelines":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Guidelines","description":"Additional guidelines for the evaluation"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for the evaluation"},"num_iterations":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Num Iterations","description":"Number of times to run the evaluation","default":1},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for this evaluation run"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output","description":"Expected output for accuracy evaluation"},"criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criteria","description":"Evaluation criteria for agent-as-judge evaluation"},"scoring_strategy":{"anyOf":[{"type":"string","enum":["numeric","binary"]},{"type":"null"}],"title":"Scoring Strategy","description":"Scoring strategy: 'numeric' (1-10 with threshold) or 'binary' (PASS/FAIL)","default":"binary"},"threshold":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Threshold","description":"Score threshold for pass/fail (1-10), only used with numeric scoring","default":7},"warmup_runs":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Warmup Runs","description":"Number of warmup runs before measuring performance","default":0},"expected_tool_calls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expected Tool Calls","description":"Expected tool calls for reliability evaluation"},"allow_additional_tool_calls":{"type":"boolean","title":"Allow Additional Tool Calls","description":"When True, tool calls not in expected_tool_calls are allowed (subset matching)","default":false},"expected_tool_call_arguments":{"anyOf":[{"additionalProperties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Expected Tool Call Arguments","description":"Expected arguments for specific tool calls, e.g. {\"tool_name\": {\"arg_name\": \"expected_value\"}} or {\"tool_name\": [{\"arg_name\": \"val1\"}, {\"arg_name\": \"val2\"}]}"}},"type":"object","required":["eval_type","input"],"title":"EvalRunInput"},"EvalSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the evaluation run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that was evaluated"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID used in evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that was evaluated"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was evaluated"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the evaluation run"},"evaluated_component_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluated Component Name","description":"Name of the evaluated component"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation (accuracy, performance, or reliability)"},"eval_data":{"additionalProperties":true,"type":"object","title":"Eval Data","description":"Evaluation results and metrics"},"eval_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eval Input","description":"Input parameters used for the evaluation"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when evaluation was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when evaluation was last updated"}},"type":"object","required":["id","eval_type","eval_data"],"title":"EvalSchema"},"EvalType":{"type":"string","enum":["accuracy","agent_as_judge","performance","reliability"],"title":"EvalType"},"EvalsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_EvalsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"EvalsConfig","description":"Configuration for the Evals domain of the AgentOS"},"EvalsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"EvalsDomainConfig","description":"Configuration for the Evals domain of the AgentOS"},"FilePart":{"properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/FileWithBytes"},{"$ref":"#/components/schemas/FileWithUri"}],"title":"File"},"kind":{"type":"string","const":"file","title":"Kind","default":"file"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["file"],"title":"FilePart","description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI."},"FileWithBytes":{"properties":{"bytes":{"type":"string","title":"Bytes"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["bytes"],"title":"FileWithBytes","description":"Represents a file with its content provided directly as a base64-encoded string."},"FileWithUri":{"properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uri":{"type":"string","title":"Uri"}},"type":"object","required":["uri"],"title":"FileWithUri","description":"Represents a file with its content located at a specific URI."},"FilterFieldSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Column/field name used in filter expressions"},"label":{"type":"string","title":"Label","description":"Human-readable display label for the UI"},"type":{"type":"string","title":"Type","description":"Field data type: string, number, datetime, enum"},"operators":{"items":{"type":"string"},"type":"array","title":"Operators","description":"List of valid filter operators for this field"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values","description":"Allowed enum values (for autocomplete/dropdown)"}},"type":"object","required":["key","label","type","operators"],"title":"FilterFieldSchema","description":"Schema describing a single filterable field for the frontend filter bar."},"FilterSchemaResponse":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FilterFieldSchema"},"type":"array","title":"Fields","description":"Available filterable fields"},"logical_operators":{"items":{"type":"string"},"type":"array","title":"Logical Operators","description":"Logical operators for combining filter clauses","default":["AND","OR"]}},"type":"object","required":["fields"],"title":"FilterSchemaResponse","description":"Response for the filter schema endpoint. Tells the FE what fields, operators, and values are available."},"ForbiddenResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ForbiddenResponse","example":{"detail":"Insufficient permissions"}},"FunctionCall":{"properties":{"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"additionalProperties":true,"type":"object","required":["name","arguments"],"title":"FunctionCall","description":"Name and arguments of a function call."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Health status of the service"},"instantiated_at":{"type":"string","format":"date-time","title":"Instantiated At","description":"Timestamp when service was instantiated"}},"type":"object","required":["status","instantiated_at"],"title":"HealthResponse","example":{"instantiated_at":"2025-06-10T12:00:00Z","status":"ok"}},"ImageInputContent":{"properties":{"type":{"type":"string","const":"image","title":"Type","default":"image"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"ImageInputContent","description":"An image input content fragment."},"InfoResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"agno_version":{"type":"string","title":"Agno Version","description":"Version of the agno framework"},"agent_count":{"type":"integer","title":"Agent Count","description":"Number of agents registered in the OS","default":0},"team_count":{"type":"integer","title":"Team Count","description":"Number of teams registered in the OS","default":0},"workflow_count":{"type":"integer","title":"Workflow Count","description":"Number of workflows registered in the OS","default":0},"mcp":{"$ref":"#/components/schemas/McpInfo","description":"MCP server availability for this OS instance"},"auth_mode":{"type":"string","enum":["none","security_key","jwt"],"title":"Auth Mode","description":"Authentication mode enforced on the REST/WS plane of this OS instance. MCP OAuth, when enabled, is described separately under `mcp.oauth`.","default":"none"}},"type":"object","required":["os_id","agno_version"],"title":"InfoResponse","description":"Response schema for the /info endpoint returning lightweight OS metadata."},"InputContentDataSource":{"properties":{"type":{"type":"string","const":"data","title":"Type","default":"data"},"value":{"type":"string","title":"Value"},"mimeType":{"type":"string","title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value","mimeType"],"title":"InputContentDataSource","description":"Inline base64-encoded source."},"InputContentUrlSource":{"properties":{"type":{"type":"string","const":"url","title":"Type","default":"url"},"value":{"type":"string","title":"Value"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value"],"title":"InputContentUrlSource","description":"URL-referenced source."},"InterfaceResponse":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the interface"},"version":{"type":"string","title":"Version","description":"Version of the interface"},"route":{"type":"string","title":"Route","description":"API route path"}},"type":"object","required":["type","version","route"],"title":"InterfaceResponse"},"InternalServerErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"InternalServerErrorResponse","example":{"detail":"Internal server error","error_code":"INTERNAL_SERVER_ERROR"}},"KnowledgeConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeDatabaseConfig"},"type":"array"},{"type":"null"}],"title":"Dbs"},"knowledge_instances":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeInstanceConfig"},"type":"array"},{"type":"null"}],"title":"Knowledge Instances"}},"type":"object","title":"KnowledgeConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeDatabaseConfig":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeDomainConfig"},{"type":"null"}]},"tables":{"items":{"type":"string"},"type":"array","title":"Tables","default":[]}},"type":"object","required":["db_id"],"title":"KnowledgeDatabaseConfig","description":"Configuration for a knowledge database with its tables"},"KnowledgeDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"KnowledgeDomainConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeInstanceConfig":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"db_id":{"type":"string","title":"Db Id"},"table":{"type":"string","title":"Table"}},"type":"object","required":["id","name","db_id","table"],"title":"KnowledgeInstanceConfig","description":"Configuration for a single knowledge instance"},"LearningConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_LearningDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"LearningConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningCreate":{"properties":{"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"content":{"additionalProperties":true,"type":"object","title":"Content","description":"The learning content payload"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID. When the request is authenticated, must match the JWT subject or be omitted/null (which creates a global / non-user-scoped record)."},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"}},"type":"object","required":["learning_type","content"],"title":"LearningCreate","description":"Request body for creating a learning record."},"LearningDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"LearningDomainConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningResponse":{"properties":{"learning_id":{"type":"string","title":"Learning Id","description":"Unique identifier for the learning record"},"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID (for entity-specific learnings)"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type (e.g. 'person', 'company')"},"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"The learning content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Creation timestamp (Unix epoch seconds)"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp (Unix epoch seconds)"}},"type":"object","required":["learning_id","learning_type"],"title":"LearningResponse","description":"A single learning record as returned by the API."},"LearningUpdate":{"properties":{"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Replacement content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Replacement metadata"}},"type":"object","title":"LearningUpdate","description":"Request body for updating a learning record. Identity fields are immutable."},"LearningUserStats":{"properties":{"user_id":{"type":"string","title":"User Id","description":"The user ID"},"last_learning_updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Learning Updated At","description":"Most recent learning update for this user (Unix epoch seconds)"}},"type":"object","required":["user_id"],"title":"LearningUserStats","description":"A user that owns learning records, with their most recent activity.\n\nUsed as a lightweight index for the per-user view: list users here, then drill into a\nsingle user's records via ``GET /learnings?user_id=...``. No per-user count is returned\n-- the user-scoped stores (``user_profile``, ``user_memory``) keep a single record per\nuser, so a record count would always be 1; the actual memory count lives in that\nrecord's ``content``."},"Manifest":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"},"quick_prompts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quick Prompts"}},"type":"object","title":"Manifest","description":"OS-level UI metadata for an agent/team/workflow.\n\nFields here are AgentOS UI metadata only. ``description`` is unrelated to\n``Agent.description`` / ``Team.description`` / ``Workflow.description``,\nwhich are sent to the model.\n\nRendering surfaces:\n- ``description``, ``labels``: home/landing card\n- ``quick_prompts``: chat page"},"McpInfo":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the MCP server is enabled on this OS instance","default":false},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Path where the MCP server is mounted, null when disabled"},"oauth":{"anyOf":[{"$ref":"#/components/schemas/McpOAuthInfo"},{"type":"null"}],"description":"OAuth discovery details when the MCP endpoint is OAuth-protected, null otherwise"}},"type":"object","title":"McpInfo","description":"MCP server availability for the /info endpoint."},"McpOAuthInfo":{"properties":{"authorization_servers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorization Servers","description":"Issuer URL(s) of the authorization server(s) protecting the MCP endpoint"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource","description":"RFC 9728 resource URL advertised for the MCP endpoint"}},"type":"object","title":"McpOAuthInfo","description":"OAuth discovery details for an MCP endpoint protected by ``AgentOS(mcp_auth=...)``."},"MemoryConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MemoryDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MemoryConfig","description":"Configuration for the Memory domain of the AgentOS"},"MemoryDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MemoryDomainConfig","description":"Configuration for the Memory domain of the AgentOS"},"Message":{"properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"kind":{"type":"string","const":"message","title":"Kind","default":"message"},"messageId":{"type":"string","title":"Messageid"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taskid"}},"type":"object","required":["messageId","parts","role"],"title":"Message","description":"Represents a single message in the conversation between a user and an agent."},"Meta":{"properties":{"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of results per page","default":20},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number","default":1}},"type":"object","title":"Meta","description":"Inline metadata schema for pagination."},"MetricsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MetricsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MetricsConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MetricsDomainConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsResponse":{"properties":{"metrics":{"items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"type":"array","title":"Metrics","description":"List of daily aggregated metrics"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp of the most recent metrics update"}},"type":"object","required":["metrics"],"title":"MetricsResponse"},"Model":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"Model"},"ModelResponse":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the model"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"ModelResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"NotFoundResponse","example":{"detail":"Not found","error_code":"NOT_FOUND"}},"NotImplementedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"NotImplementedResponse","example":{"detail":"Operation not supported for this resource type"}},"OptimizeMemoriesRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID to optimize memories for"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model in `provider:model_id` format. Current examples include `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, and `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`."},"apply":{"type":"boolean","title":"Apply","description":"If True, apply optimization changes to database. If False, return preview only without saving.","default":true}},"type":"object","required":["user_id"],"title":"OptimizeMemoriesRequest","description":"Schema for memory optimization request"},"OptimizeMemoriesResponse":{"properties":{"memories":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Memories","description":"List of optimized memory objects"},"memories_before":{"type":"integer","minimum":0.0,"title":"Memories Before","description":"Number of memories before optimization"},"memories_after":{"type":"integer","minimum":0.0,"title":"Memories After","description":"Number of memories after optimization"},"tokens_before":{"type":"integer","minimum":0.0,"title":"Tokens Before","description":"Token count before optimization"},"tokens_after":{"type":"integer","minimum":0.0,"title":"Tokens After","description":"Token count after optimization"},"tokens_saved":{"type":"integer","minimum":0.0,"title":"Tokens Saved","description":"Number of tokens saved through optimization"},"reduction_percentage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Reduction Percentage","description":"Percentage of token reduction achieved"}},"type":"object","required":["memories","memories_before","memories_after","tokens_before","tokens_after","tokens_saved","reduction_percentage"],"title":"OptimizeMemoriesResponse","description":"Schema for memory optimization response"},"PaginatedResponse_ApprovalResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ApprovalResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ApprovalResponse]"},"PaginatedResponse_ComponentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ComponentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ComponentResponse]"},"PaginatedResponse_ContentResponseSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentResponseSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ContentResponseSchema]"},"PaginatedResponse_EvalSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EvalSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[EvalSchema]"},"PaginatedResponse_LearningResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningResponse]"},"PaginatedResponse_LearningUserStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningUserStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningUserStats]"},"PaginatedResponse_RegistryContentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RegistryContentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[RegistryContentResponse]"},"PaginatedResponse_ScheduleResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleResponse]"},"PaginatedResponse_ScheduleRunResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleRunResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleRunResponse]"},"PaginatedResponse_ServiceAccountResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ServiceAccountResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ServiceAccountResponse]"},"PaginatedResponse_SessionSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SessionSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[SessionSchema]"},"PaginatedResponse_TraceDetail_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceDetail"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceDetail]"},"PaginatedResponse_TraceSessionStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSessionStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSessionStats]"},"PaginatedResponse_TraceSummary_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSummary"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSummary]"},"PaginatedResponse_UserMemorySchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserMemorySchema]"},"PaginatedResponse_UserStatsSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserStatsSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserStatsSchema]"},"PaginatedResponse_VectorSearchResult_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VectorSearchResult"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[VectorSearchResult]"},"PaginationInfo":{"properties":{"page":{"type":"integer","minimum":0.0,"title":"Page","description":"Current page number (0-indexed)","default":0},"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of items per page","default":20},"total_pages":{"type":"integer","minimum":0.0,"title":"Total Pages","description":"Total number of pages","default":0},"total_count":{"type":"integer","minimum":0.0,"title":"Total Count","description":"Total count of items","default":0},"search_time_ms":{"type":"number","minimum":0.0,"title":"Search Time Ms","description":"Search execution time in milliseconds","default":0}},"type":"object","title":"PaginationInfo"},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/DataPart"}],"title":"Part"},"ReaderSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the reader"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the reader"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the reader's capabilities"},"chunkers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chunkers","description":"List of supported chunking strategies"}},"type":"object","required":["id"],"title":"ReaderSchema"},"ReasoningMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"reasoning","title":"Role","default":"reasoning"},"content":{"type":"string","title":"Content"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"ReasoningMessage","description":"A reasoning message containing the agent's internal reasoning process."},"RegistryContentResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/RegistryResourceType"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name","type"],"title":"RegistryContentResponse"},"RegistryResourceType":{"type":"string","enum":["tool","model","db","vector_db","schema","function","agent","team","knowledge","memory_manager","session_summary_manager"],"title":"RegistryResourceType","description":"Types of resources that can be stored in a registry."},"RemoteContentSourceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content source"},"name":{"type":"string","title":"Name","description":"Display name for the content source"},"type":{"type":"string","title":"Type","description":"Type of content source (s3, gcs, sharepoint, github, azureblob)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Default path prefix for this source"}},"type":"object","required":["id","name","type"],"title":"RemoteContentSourceSchema","description":"Schema for remote content source configuration."},"ResumeEntry":{"properties":{"interruptId":{"type":"string","title":"Interruptid"},"status":{"type":"string","enum":["resolved","cancelled"],"title":"Status"},"payload":{"anyOf":[{},{"type":"null"}],"title":"Payload"}},"additionalProperties":true,"type":"object","required":["interruptId","status"],"title":"ResumeEntry","description":"A per-interrupt response in the resume array of a RunAgentInput."},"Role":{"type":"string","enum":["agent","user"],"title":"Role","description":"Identifies the sender of the message. `user` for the client, `agent` for the service."},"RunAgentInput":{"properties":{"threadId":{"type":"string","title":"Threadid"},"runId":{"type":"string","title":"Runid"},"parentRunId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentrunid"},"state":{"title":"State"},"messages":{"items":{"oneOf":[{"$ref":"#/components/schemas/DeveloperMessage"},{"$ref":"#/components/schemas/SystemMessage"},{"$ref":"#/components/schemas/AssistantMessage"},{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/ToolMessage"},{"$ref":"#/components/schemas/ActivityMessage"},{"$ref":"#/components/schemas/ReasoningMessage"}],"discriminator":{"propertyName":"role","mapping":{"activity":"#/components/schemas/ActivityMessage","assistant":"#/components/schemas/AssistantMessage","developer":"#/components/schemas/DeveloperMessage","reasoning":"#/components/schemas/ReasoningMessage","system":"#/components/schemas/SystemMessage","tool":"#/components/schemas/ToolMessage","user":"#/components/schemas/UserMessage"}}},"type":"array","title":"Messages"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","title":"Tools"},"context":{"items":{"$ref":"#/components/schemas/Context"},"type":"array","title":"Context"},"forwardedProps":{"title":"Forwardedprops"},"resume":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResumeEntry"},"type":"array"},{"type":"null"}],"title":"Resume"}},"additionalProperties":true,"type":"object","required":["threadId","runId","state","messages","tools","context","forwardedProps"],"title":"RunAgentInput","description":"Input for running an agent."},"RunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that executed this run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"RunSchema"},"RunStatus":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","PAUSED","CANCELLED","ERROR","REGENERATED"],"title":"RunStatus","description":"State of the main run response"},"ScheduleCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"cron_expr":{"type":"string","maxLength":128,"title":"Cron Expr"},"endpoint":{"type":"string","maxLength":512,"title":"Endpoint"},"method":{"type":"string","maxLength":10,"title":"Method","default":"POST"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"type":"string","maxLength":64,"title":"Timezone","default":"UTC"},"timeout_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Timeout Seconds","default":3600},"max_retries":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Max Retries","default":0},"retry_delay_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Retry Delay Seconds","default":60}},"type":"object","required":["name","cron_expr","endpoint"],"title":"ScheduleCreate"},"ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"cron_expr":{"type":"string","title":"Cron Expr"},"timezone":{"type":"string","title":"Timezone"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"max_retries":{"type":"integer","title":"Max Retries"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","method","endpoint","cron_expr","timezone","timeout_seconds","max_retries","retry_delay_seconds","enabled"],"title":"ScheduleResponse"},"ScheduleRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"schedule_id":{"type":"string","title":"Schedule Id"},"attempt":{"type":"integer","title":"Attempt"},"triggered_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triggered At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"status":{"type":"string","title":"Status"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","schedule_id","attempt","status"],"title":"ScheduleRunResponse"},"ScheduleStateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","enabled"],"title":"ScheduleStateResponse","description":"Trimmed response for state-changing operations (enable/disable)."},"ScheduleUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"cron_expr":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Cron Expr"},"endpoint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Endpoint"},"method":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Method"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Timezone"},"timeout_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":1.0},{"type":"null"}],"title":"Timeout Seconds"},"max_retries":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Max Retries"},"retry_delay_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":1.0},{"type":"null"}],"title":"Retry Delay Seconds"}},"type":"object","title":"ScheduleUpdate"},"ScopeItem":{"properties":{"scope":{"type":"string","title":"Scope","description":"Scope string, e.g. 'agents:*:run'"},"effect":{"type":"string","enum":["allow","deny"],"title":"Effect","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["scope"],"title":"ScopeItem","description":"Write shape for one scope grant \u2014 the canonical RBAC payload for every scope-bearing API.\n\nEndpoints that take scopes accept these objects only (a bare string is a validation\nerror). ``effect`` is constrained here so every consumer rejects typos at the model\nlayer; whether ``deny`` is *semantically* legal stays per-endpoint (roles support\ndeny rules, service-account tokens are pure grants and reject it)."},"ScopeSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Scope id (always null here; kept for shape parity with the cloud RBAC API, which addresses scopes individually)"},"raw":{"type":"string","title":"Raw","description":"Original scope string, e.g. 'agents:*:run'"},"namespace":{"type":"string","title":"Namespace","description":"Resource namespace, e.g. 'agents'"},"sub_namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Namespace","description":"Specific resource id or wildcard '*'"},"permission":{"type":"string","title":"Permission","description":"Action, e.g. 'read' / 'run' / 'write'"},"value":{"type":"string","title":"Value","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["raw","namespace","permission"],"title":"ScopeSchema","description":"Read shape for one scope \u2014 the parsed RBAC payload shared by every scope-bearing API.\n\nMirrors the cloud RBAC scope shape ({raw, namespace, sub_namespace, permission, value})\nso a frontend renders scopes from any AgentOS API with one integration."},"SendMessageRequest":{"description":"Represents a JSON-RPC request for the `message/send` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/send","default":"message/send","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendMessageRequest","type":"object"},"SendMessageSuccessResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id"},"jsonrpc":{"type":"string","const":"2.0","title":"Jsonrpc","default":"2.0"},"result":{"anyOf":[{"$ref":"#/components/schemas/Task"},{"$ref":"#/components/schemas/Message"}],"title":"Result"}},"type":"object","required":["result"],"title":"SendMessageSuccessResponse","description":"Represents a successful JSON-RPC response for the `message/send` method."},"SendStreamingMessageRequest":{"description":"Represents a JSON-RPC request for the `message/stream` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/stream","default":"message/stream","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendStreamingMessageRequest","type":"object"},"ServiceAccountCreate":{"properties":{"name":{"type":"string","maxLength":63,"title":"Name","description":"Machine identity name (lowercase slug), e.g. 'claude-code' or 'github-actions'"},"scopes":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScopeItem"},"type":"array"},{"type":"null"}],"title":"Scopes","description":"Scopes granted to the token, as {scope, effect} objects (the shared RBAC write shape; token scopes are grants, so only effect='allow' is accepted). Defaults to run and read scopes: agents:run, teams:run, workflows:run, sessions:read"},"expires_in_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Expires In Days","description":"Days until the token expires (default: 90)","default":90},"never_expires":{"type":"boolean","title":"Never Expires","description":"Mint a non-expiring token. Must be set explicitly; overrides expires_in_days.","default":false},"allow_privileged_scopes":{"type":"boolean","title":"Allow Privileged Scopes","description":"Required to grant privileged scopes: any write or delete action, the admin scope, or any service_accounts scope. Privileged tokens must be deliberate, never accidental.","default":false}},"type":"object","required":["name"],"title":"ServiceAccountCreate"},"ServiceAccountCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"token":{"type":"string","title":"Token","description":"The plaintext token. Shown exactly once - store it securely now."}},"type":"object","required":["id","name","principal","token_prefix","created_at","token"],"title":"ServiceAccountCreateResponse","description":"Returned once, at creation. The token is never retrievable again."},"ServiceAccountResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","name","principal","token_prefix","created_at"],"title":"ServiceAccountResponse","description":"Service account metadata. Never includes the token hash or plaintext."},"ServiceUnavailableResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ServiceUnavailableResponse","example":{"detail":"Feature not supported by the configured service"}},"SessionConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_SessionDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"SessionConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"SessionDomainConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier for the session"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state data of the session"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when session was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when session was last updated"},"session_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type","description":"Type of session: agent, team, or workflow"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["session_id","session_name"],"title":"SessionSchema"},"SessionType":{"type":"string","enum":["agent","team","workflow"],"title":"SessionType"},"SlackChallengeResponse":{"properties":{"challenge":{"type":"string","title":"Challenge","description":"Challenge string to echo back to Slack"}},"type":"object","required":["challenge"],"title":"SlackChallengeResponse"},"SlackEventResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"}},"type":"object","title":"SlackEventResponse"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"SourceFileSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Full path/key of the file"},"name":{"type":"string","title":"Name","description":"Display name (filename)"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"File size in bytes"},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified","description":"ISO 8601 timestamp of last modification"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"MIME type of the file"}},"type":"object","required":["key","name"],"title":"SourceFileSchema","description":"Schema for a file in a content source."},"SourceFilesResponseSchema":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"ID of the content source"},"source_name":{"type":"string","title":"Source Name","description":"Name of the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Prefix filter that was applied"},"folders":{"items":{"$ref":"#/components/schemas/SourceFolderSchema"},"type":"array","title":"Folders","description":"Subfolders at this level"},"files":{"items":{"$ref":"#/components/schemas/SourceFileSchema"},"type":"array","title":"Files","description":"List of files at this level"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["source_id","source_name","meta"],"title":"SourceFilesResponseSchema","description":"Response schema for listing files in a content source."},"SourceFolderSchema":{"properties":{"prefix":{"type":"string","title":"Prefix","description":"Full prefix to use for navigating into this folder"},"name":{"type":"string","title":"Name","description":"Display name of the folder"},"is_empty":{"type":"boolean","title":"Is Empty","description":"Whether the folder contains any files","default":false}},"type":"object","required":["prefix","name"],"title":"SourceFolderSchema","description":"Schema for a folder in a content source."},"SystemMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"system","title":"Role","default":"system"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"SystemMessage","description":"A system message."},"Task":{"properties":{"artifacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Artifact"},"type":"array"},{"type":"null"}],"title":"Artifacts"},"contextId":{"type":"string","title":"Contextid"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"History"},"id":{"type":"string","title":"Id"},"kind":{"type":"string","const":"task","title":"Kind","default":"task"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"status":{"$ref":"#/components/schemas/TaskStatus"}},"type":"object","required":["contextId","id","status"],"title":"Task","description":"Represents a single, stateful operation or conversation between a client and an agent."},"TaskState":{"type":"string","enum":["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"],"title":"TaskState","description":"Defines the lifecycle states of a Task."},"TaskStatus":{"properties":{"message":{"anyOf":[{"$ref":"#/components/schemas/Message"},{"type":"null"}]},"state":{"$ref":"#/components/schemas/TaskState"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp","examples":["2023-10-27T10:00:00Z"]}},"type":"object","required":["state"],"title":"TaskStatus","description":"Represents the status of a task at a specific point in time."},"TeamResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"members":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"$ref":"#/components/schemas/TeamResponse"}]},"type":"array"},{"type":"null"}],"title":"Members"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"TeamResponse"},"TeamRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the team run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that executed this run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the team run"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this team run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this team run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this team run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this team run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"TeamRunSchema"},"TeamSessionDetailSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID used in this session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of team interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"team_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Team Data","description":"Team-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"}},"type":"object","required":["session_id","session_name"],"title":"TeamSessionDetailSchema"},"TeamSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the team"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the team"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the team"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Team execution mode (coordinate, route, broadcast, tasks)"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the team leader"}},"type":"object","title":"TeamSummaryResponse"},"TelegramStatusResponse":{"properties":{"status":{"type":"string","title":"Status","default":"available"}},"type":"object","title":"TelegramStatusResponse"},"TelegramWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status"}},"type":"object","required":["status"],"title":"TelegramWebhookResponse"},"TextInputContent":{"properties":{"type":{"type":"string","const":"text","title":"Type","default":"text"},"text":{"type":"string","title":"Text"}},"additionalProperties":true,"type":"object","required":["text"],"title":"TextInputContent","description":"A text fragment in a multimodal user message."},"TextPart":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"TextPart","description":"Represents a text segment within a message or artifact."},"Tool":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{},{"type":"null"}],"title":"Parameters"}},"additionalProperties":true,"type":"object","required":["name","description"],"title":"Tool","description":"A tool definition."},"ToolCall":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/FunctionCall"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","function"],"title":"ToolCall","description":"A tool call, modelled after OpenAI tool calls."},"ToolMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"tool","title":"Role","default":"tool"},"content":{"type":"string","title":"Content"},"toolCallId":{"type":"string","title":"Toolcallid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content","toolCallId"],"title":"ToolMessage","description":"A tool result message."},"TraceDetail":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent/workflow"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the agent/workflow"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"},"tree":{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array","title":"Tree","description":"Hierarchical tree of spans (root nodes)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at","tree"],"title":"TraceDetail","description":"Detailed trace information with hierarchical span tree"},"TraceNode":{"properties":{"id":{"type":"string","title":"Id","description":"Span ID"},"name":{"type":"string","title":"Name","description":"Span name (e.g., 'agent.run', 'llm.invoke')"},"type":{"type":"string","title":"Type","description":"Span kind (AGENT, TEAM, WORKFLOW, LLM, TOOL)"},"duration":{"type":"string","title":"Duration","description":"Human-readable duration (e.g., '123ms', '1.5s')"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"End time (Pydantic auto-serializes to ISO 8601)"},"status":{"type":"string","title":"Status","description":"Status code (OK, ERROR)"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the span"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the span"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"spans":{"anyOf":[{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array"},{"type":"null"}],"title":"Spans","description":"Child spans in the trace hierarchy"},"step_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Type","description":"Workflow step type (Step, Condition, function, Agent, Team)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional span attributes and data"},"extra_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Data","description":"Flexible field for custom attributes and additional data"}},"type":"object","required":["id","name","type","duration","start_time","end_time","status"],"title":"TraceNode","description":"Recursive node structure for rendering trace hierarchy in the frontend"},"TraceSearchGroupBy":{"type":"string","enum":["run","session"],"title":"TraceSearchGroupBy","description":"Grouping options for trace search results."},"TraceSearchRequest":{"properties":{"filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter","description":"FilterExpr DSL as JSON dict. Supports operators: EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH, AND, OR, NOT."},"group_by":{"$ref":"#/components/schemas/TraceSearchGroupBy","description":"Grouping mode: 'run' returns individual TraceDetail, 'session' returns aggregated TraceSessionStats.","default":"run"},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number (1-indexed)","default":1},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"Number of traces per page (max 100)","default":20}},"type":"object","title":"TraceSearchRequest","description":"Request body for POST /traces/search with advanced filtering.\n\nThe filter field accepts a FilterExpr DSL dict supporting composable queries\nwith AND/OR/NOT logic and operators like EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH.\n\nExample for run grouping (default):\n {\n \"filter\": {\n \"op\": \"AND\",\n \"conditions\": [\n {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n {\"op\": \"CONTAINS\", \"key\": \"user_id\", \"value\": \"admin\"}\n ]\n },\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n }\n\nExample for session grouping:\n {\n \"filter\": {\"op\": \"EQ\", \"key\": \"agent_id\", \"value\": \"my-agent\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n }"},"TraceSessionStats":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID(s) used in the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID associated with the session"},"total_traces":{"type":"integer","title":"Total Traces","description":"Total number of traces in this session"},"first_trace_at":{"type":"string","format":"date-time","title":"First Trace At","description":"Time of first trace (Pydantic auto-serializes to ISO 8601)"},"last_trace_at":{"type":"string","format":"date-time","title":"Last Trace At","description":"Time of last trace (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["session_id","total_traces","first_trace_at","last_trace_at"],"title":"TraceSessionStats","description":"Aggregated trace statistics grouped by session"},"TraceSummary":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR, UNSET)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at"],"title":"TraceSummary","description":"Summary information for trace list view"},"TracesConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_TracesDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"TracesConfig","description":"Configuration for the Traces domain of the AgentOS"},"TracesDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"TracesDomainConfig","description":"Configuration for the Traces domain of the AgentOS"},"UnauthenticatedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"UnauthenticatedResponse","example":{"detail":"Unauthenticated access","error_code":"UNAUTHENTICATED"}},"UpdateEvalRunRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"New name for the evaluation run"}},"type":"object","required":["name"],"title":"UpdateEvalRunRequest"},"UpdateSessionRequest":{"properties":{"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Updated session name"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Updated session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Updated metadata"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary","description":"Session summary"}},"type":"object","title":"UpdateSessionRequest"},"UserMemoryCreateSchema":{"properties":{"memory":{"type":"string","maxLength":5000,"minLength":1,"title":"Memory","description":"Memory content text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags to categorize the memory"}},"type":"object","required":["memory"],"title":"UserMemoryCreateSchema","description":"Define the payload expected for creating a new user memory"},"UserMemorySchema":{"properties":{"memory_id":{"type":"string","title":"Memory Id","description":"Unique identifier for the memory"},"memory":{"type":"string","title":"Memory","description":"Memory content text"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags associated with the memory"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID associated with this memory"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with this memory"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when memory was last updated"}},"type":"object","required":["memory_id","memory"],"title":"UserMemorySchema"},"UserMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"user","title":"Role","default":"user"},"content":{"anyOf":[{"type":"string"},{"items":{"oneOf":[{"$ref":"#/components/schemas/TextInputContent"},{"$ref":"#/components/schemas/ImageInputContent"},{"$ref":"#/components/schemas/AudioInputContent"},{"$ref":"#/components/schemas/VideoInputContent"},{"$ref":"#/components/schemas/DocumentInputContent"},{"$ref":"#/components/schemas/BinaryInputContent"}],"discriminator":{"propertyName":"type","mapping":{"audio":"#/components/schemas/AudioInputContent","binary":"#/components/schemas/BinaryInputContent","document":"#/components/schemas/DocumentInputContent","image":"#/components/schemas/ImageInputContent","text":"#/components/schemas/TextInputContent","video":"#/components/schemas/VideoInputContent"}}},"type":"array"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"UserMessage","description":"A user message supporting text or multimodal content."},"UserStatsSchema":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"total_memories":{"type":"integer","minimum":0.0,"title":"Total Memories","description":"Total number of memories for this user"},"last_memory_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Memory Updated At","description":"Timestamp of the most recent memory update"}},"type":"object","required":["user_id","total_memories"],"title":"UserStatsSchema","description":"Schema for user memory statistics"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"ValidationErrorResponse","example":{"detail":"Validation error","error_code":"VALIDATION_ERROR"}},"VectorDbSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the vector database"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the vector database"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the vector database"},"search_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Search Types","description":"List of supported search types (vector, keyword, hybrid)"}},"type":"object","required":["id"],"title":"VectorDbSchema"},"VectorSearchRequestSchema":{"properties":{"query":{"type":"string","title":"Query","description":"The search query text"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database ID to search in"},"knowledge_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledge Id","description":"Knowledge base ID to search in"},"vector_db_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vector Db Ids","description":"List of vector database IDs to search in"},"search_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Type","description":"The type of search to perform (vector, keyword, hybrid)"},"max_results":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Max Results","description":"The maximum number of results to return"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Filters to apply to the search results"},"meta":{"anyOf":[{"$ref":"#/components/schemas/Meta"},{"type":"null"}],"description":"Pagination metadata. Limit and page number to return a subset of results."}},"type":"object","required":["query"],"title":"VectorSearchRequestSchema","description":"Schema for vector search request."},"VectorSearchResult":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the search result document"},"content":{"type":"string","title":"Content","description":"Content text of the document"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the document"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Metadata associated with the document"},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"Usage statistics (e.g., token counts)"},"reranking_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reranking Score","description":"Reranking score for relevance"},"content_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Id","description":"ID of the source content"},"content_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Origin","description":"Origin URL or source of the content"},"size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"}},"type":"object","required":["id","content"],"title":"VectorSearchResult","description":"Schema for search result documents."},"VideoInputContent":{"properties":{"type":{"type":"string","const":"video","title":"Type","default":"video"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"VideoInputContent","description":"A video input content fragment."},"WhatsAppWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status","default":"ok"}},"type":"object","title":"WhatsAppWebhookResponse"},"WorkflowResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema","description":"Input schema for the workflow"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps","description":"List of workflow steps"},"agent":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"type":"null"}],"description":"Agent configuration if used"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamResponse"},{"type":"null"}],"description":"Team configuration if used"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"workflow_agent":{"type":"boolean","title":"Workflow Agent","description":"Whether this workflow uses a WorkflowAgent","default":false},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowResponse"},"WorkflowRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the workflow run"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the workflow"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was executed"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the workflow"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"Type of content returned"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status of the workflow run"},"step_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Results","description":"Results from each workflow step"},"step_executor_runs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Executor Runs","description":"Executor runs for each step"},"step_requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Requirements","description":"HITL step requirements (resolved state for historical display)"},"pause_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Kind","description":"Kind of HITL pause: 'step' or 'executor'"},"paused_step_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Step Name","description":"Name of the step that caused the pause"},"paused_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Paused Step Index","description":"Index of the step that caused the pause"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the workflow"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the workflow"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the workflow"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the workflow"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the workflow"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"}},"type":"object","required":["run_id"],"title":"WorkflowRunSchema"},"WorkflowSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID used in this session"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name","description":"Name of the workflow"},"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Data","description":"Complete session data"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current workflow state"},"workflow_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Data","description":"Workflow-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["session_id","session_name"],"title":"WorkflowSessionDetailSchema"},"WorkflowSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowSummaryResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} +{"openapi":"3.1.0","info":{"title":"Agno API Reference","description":"The all-in-one, private, secure agent platform that runs in your cloud.","version":"2.7.4"},"paths":{"/":{"get":{"tags":["Home"],"summary":"API Information","description":"Return the AgentOS instance name, ID, and version.","operationId":"get_api_info","responses":{"200":{"description":"API information retrieved successfully","content":{"application/json":{"schema":{"properties":{"name":{"type":"string","title":"Name"},"id":{"type":"string","title":"Id"},"version":{"type":"string","title":"Version"}},"type":"object","required":["name","id","version"],"title":"ApiInfoResponse"},"examples":{"home":{"summary":"Example home response","value":{"name":"AgentOS API","id":"demo-os","version":"1.0.0"}}}}}}}}},"/health":{"get":{"tags":["Health"],"summary":"Health Check","description":"Check the health status of the AgentOS API. Returns a simple status indicator.","operationId":"health_check","responses":{"200":{"description":"API is healthy and operational","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"},"example":{"status":"ok","instantiated_at":"2025-06-10T12:00:00Z"}}}}}}},"/info":{"get":{"tags":["Core"],"summary":"Get OS Info","description":"Return lightweight, unauthenticated metadata about this AgentOS instance.","operationId":"get_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoResponse"}}}}}}},"/config":{"get":{"tags":["Core"],"summary":"Get OS Configuration","description":"Retrieve the complete configuration of the AgentOS instance, including:\n\n- Available models and databases\n- Registered agents, teams, and workflows\n- Chat, session, memory, knowledge, and evaluation configurations\n- Available interfaces and their routes","operationId":"get_config","responses":{"200":{"description":"OS configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"},"example":{"description":"Example AgentOS configuration","available_models":[],"databases":["9c884dc4-9066-448c-9074-ef49ec7eb73c"],"session":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Sessions"}}]},"metrics":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Metrics"}}]},"memory":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Memory"}}]},"knowledge":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Knowledge"}}]},"evals":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Evals"}}]},"agents":[{"id":"main-agent","name":"Main Agent","db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c"}],"teams":[],"workflows":[],"interfaces":[],"os_id":"demo"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/models":{"get":{"tags":["Core"],"summary":"Get Available Models","description":"Retrieve a list of all unique models currently used by agents and teams in this OS instance. This includes the model ID and provider information for each model.","operationId":"get_models","responses":{"200":{"description":"List of models retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Response Get Models"},"example":[{"id":"gpt-4","provider":"openai"},{"id":"claude-3-sonnet","provider":"anthropic"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}/runs":{"post":{"tags":["Agents"],"summary":"Create Agent Run","description":"Execute an agent with a message and optional media files. Supports both streaming and non-streaming responses.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_agent_run"}}}},"responses":{"200":{"description":"Agent run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"examples":{"event_stream":{"summary":"Example event stream response","value":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Agents"],"summary":"List Agent Runs","description":"List runs for an agent within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_agent_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED","title":"Status"},"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RunSchema"},"type":"array","title":"Response List Agent Runs"}}}},"400":{"description":"Run listing is unavailable for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Agent resolution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/cancel":{"post":{"tags":["Agents"],"summary":"Cancel Agent Run","description":"Cancel a currently executing agent run. This will attempt to stop the agent's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/continue":{"post":{"tags":["Agents"],"summary":"Continue Agent Run","description":"Advance a persisted agent run from its current state. Dispatches on the body shape and the persisted run state (see ADR-003 in specs/agno/features/checkpointing/decisions.md).\n\n**Variants:**\n- PAUSED + tools provided \u2192 apply HITL tool results, resume\n- PAUSED + resolved admin approval (empty tools) \u2192 apply resolution, resume\n- RUNNING / ERROR (no unresolved HITL requirements) \u2192 resume from last persisted state\n- COMPLETED + new tools \u2192 continue with appended messages\n\n**Tools Parameter:**\nJSON string containing array of tool execution objects with results. Optional \u2014 only required when the persisted run has unresolved HITL requirements.","operationId":"continue_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_agent_run"}}}},"responses":{"200":{"description":"Agent run continued successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n"}}},"400":{"description":"Invalid JSON in tools field or invalid tool structure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Run has a pending admin approval and cannot be continued by the user yet."},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/sessions/{session_id}/fork":{"post":{"tags":["Agents"],"summary":"Fork Agent Session","description":"Deep-copy a session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_agent_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents":{"get":{"tags":["Agents"],"summary":"List All Agents","description":"Retrieve a comprehensive list of all agents configured in this OS instance.\n\n**Returns:**\n- Agent metadata (ID, name, description)\n- Model configuration and capabilities\n- Available tools and their configurations\n- Session, knowledge, memory, and reasoning settings\n- Only meaningful (non-default) configurations are included","operationId":"get_agents","responses":{"200":{"description":"List of agents retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentResponse"},"type":"array","title":"Response Get Agents"},"example":[{"id":"main-agent","name":"Main Agent","db_id":"c6bf0644-feb8-4930-a305-380dae5ad6aa","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Details","description":"Retrieve detailed configuration and capabilities of a specific agent.\n\n**Returns comprehensive agent information including:**\n- Model configuration and provider details\n- Complete tool inventory and configurations\n- Session management settings\n- Knowledge base and memory configurations\n- Reasoning capabilities and settings\n- System prompts and response formatting options","operationId":"get_agent","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Agent details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"},"example":{"id":"main-agent","name":"Main Agent","db_id":"9e064c70-6821-4840-a333-ce6230908a70","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Run","description":"Retrieve the status and output of an agent run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Agents"],"summary":"List Agent Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_agent_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Agents"],"summary":"Get Agent Run Checkpoint Snapshot","description":"Return a derived run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_agent_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/resume":{"post":{"tags":["Agents"],"summary":"Resume Agent Run Stream","description":"Resume an SSE stream for an agent run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_agent_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_agent_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"application/json":{"schema":{}},"text/event-stream":{}}},"400":{"description":"Not supported for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs":{"post":{"tags":["Teams"],"summary":"Create Team Run","description":"Execute a team collaboration with multiple agents working together on a task.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_team_run"}}}},"responses":{"200":{"description":"Team run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Teams"],"summary":"List Team Runs","description":"List runs for a team within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_team_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/cancel":{"post":{"tags":["Teams"],"summary":"Cancel Team Run","description":"Cancel a currently executing team run. This will attempt to stop the team's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel team run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/resume":{"post":{"tags":["Teams"],"summary":"Resume Team Run Stream","description":"Resume an SSE stream for a team run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_team_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_team_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{}}},"400":{"description":"Stream resumption is unavailable for remote and factory teams. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/continue":{"post":{"tags":["Teams"],"summary":"Continue Team Run","description":"Continue a paused or incomplete team run with updated requirements.\n\n**Use Cases:**\n- Resume execution after tool approval/rejection\n- Provide manual tool execution results\n- Resume after admin approval (requirements can be empty; resolution fetched from DB)\n\n**Requirements Parameter:**\nJSON string containing array of requirement objects with tool execution results.\nCan be empty when an admin-required approval has been resolved.","operationId":"continue_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_team_run"}}}},"responses":{"200":{"description":"Team run continued successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n"}}},"400":{"description":"Invalid JSON in requirements field or invalid requirement structure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Run has a pending admin approval and cannot be continued by the user yet."},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is not paused (e.g. run is already running, continued, or errored). Only PAUSED runs can be continued."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/sessions/{session_id}/fork":{"post":{"tags":["Teams"],"summary":"Fork Team Session","description":"Deep-copy a team session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_team_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams":{"get":{"tags":["Teams"],"summary":"List All Teams","description":"Retrieve a comprehensive list of all teams configured in this OS instance.\n\n**Returns team information including:**\n- Team metadata (ID, name, description, execution mode)\n- Model configuration for team coordination\n- Team member roster with roles and capabilities\n- Knowledge sharing and memory configurations","operationId":"get_teams","responses":{"200":{"description":"List of teams retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamResponse"},"type":"array","title":"Response Get Teams"},"example":[{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"agno_memories","app_url":"/memory/1","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/teams/{team_id}":{"get":{"tags":["Teams"],"summary":"Get Team Details","description":"Retrieve detailed configuration and member information for a specific team.","operationId":"get_team","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"},"example":{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}":{"get":{"tags":["Teams"],"summary":"Get Team Run","description":"Retrieve the status and output of a team run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Teams"],"summary":"List Team Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored team run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_team_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Teams"],"summary":"Get Team Run Checkpoint Snapshot","description":"Return a derived team run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_team_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows":{"get":{"tags":["Workflows"],"summary":"List All Workflows","description":"Retrieve a comprehensive list of all workflows configured in this OS instance.\n\n**Return Information:**\n- Workflow metadata (ID, name, description)\n- Input schema requirements\n- Step sequence and execution flow\n- Associated agents and teams","operationId":"get_workflows","responses":{"200":{"description":"List of workflows retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Response Get Workflows"},"example":[{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/workflows/{workflow_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Details","description":"Retrieve detailed configuration and step information for a specific workflow.","operationId":"get_workflow","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Workflow version to retrieve","title":"Version"},"description":"Workflow version to retrieve"}],"responses":{"200":{"description":"Workflow details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"},"example":{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs":{"post":{"tags":["Workflows"],"summary":"Execute Workflow","description":"Execute a workflow with the provided input data. Workflows can run in streaming or batch mode.\n\n**Execution Modes:**\n- **Streaming (`stream=true`)**: Real-time step-by-step execution updates via SSE\n- **Non-Streaming (`stream=false`)**: Complete workflow execution with final result\n\n**Workflow Execution Process:**\n1. Input validation against workflow schema\n2. Sequential or parallel step execution based on workflow design\n3. Data flow between steps with transformation\n4. Error handling and automatic retries where configured\n5. Final result compilation and response\n\n**Session Management:**\nWorkflows support session continuity for stateful execution across multiple runs.","operationId":"create_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_run"}}}},"responses":{"200":{"description":"Workflow executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid input data or workflow configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Workflow execution error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"List Workflow Runs","description":"List runs for a workflow within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_workflow_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/continue":{"post":{"tags":["Workflows"],"summary":"Continue Workflow Run","description":"Continue a paused workflow run with resolved requirements.\n\n**Use Cases:**\n- Resume after step-level HITL (confirmation, user input, router selection)\n- Resume after executor-level HITL (agent/team tool confirmation within a step)\n\n**Requirements Parameter:**\nJSON string containing the resolved step requirements.","operationId":"continue_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_workflow_run"}}}},"responses":{"200":{"description":"Workflow run continued successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: StepCompleted\ndata: {\"step_name\": \"step1\"}\n\n"}}},"400":{"description":"Invalid JSON in requirements field","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is not paused. Only PAUSED runs can be continued."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/cancel":{"post":{"tags":["Workflows"],"summary":"Cancel Workflow Run","description":"Cancel a currently executing workflow run, stopping all active steps and cleanup.\n**Note:** Complex workflows with multiple parallel steps may take time to fully cancel.","operationId":"cancel_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found, or the requested run was not found in the caller's session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel workflow run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/resume":{"post":{"tags":["Workflows"],"summary":"Resume Workflow Run Stream","description":"Resume an SSE stream for a workflow run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_workflow_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_workflow_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"application/json":{"schema":{}},"text/event-stream":{}}},"400":{"description":"Stream resumption is unavailable for remote and factory workflows. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Run","description":"Retrieve the status and output of a workflow run. Use this to poll for run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/slack/events":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Receives incoming Slack events (messages, mentions, thread starts).\n\n**URL Verification:** On first setup, Slack sends a `url_verification` challenge. The endpoint echoes back the challenge string.\n\n**Event Processing:** Normal events are acknowledged immediately with `{\"status\": \"ok\"}` and processed in the background. This prevents Slack's 3-second retry timeout.\n\n**Retry Handling:** Events with `X-Slack-Retry-Num` header are duplicates and return 200 without reprocessing.\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Event Subscriptions > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for creating a Slack App or use the [manifest](/agent-os/interfaces/slack/setup#2-create-the-slack-app) for quick setup.\n","operationId":"slack_events_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SlackChallengeResponse"},{"$ref":"#/components/schemas/SlackEventResponse"}],"title":"Response Slack Events Simple Agent"}}}},"400":{"description":"Missing Slack headers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured, or the event body is not valid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number (present on retried events)"}]}},"/slack/interactions":{"post":{"tags":["Slack"],"summary":"Slack Interactions","description":"Handles Slack interactive components for Human-in-the-Loop (HITL) workflows.\n\n**Supported Actions:**\n- `row_approve` - Approve a pending tool call\n- `row_reject` - Reject a pending tool call\n- `submit_pause` - Submit form data for a paused workflow\n- `check_status` - Check an admin approval and resume an approved run\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Interactivity & Shortcuts > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for step-by-step instructions or the [HITL guide](/agent-os/interfaces/slack/hitl) for approval workflows.\n","operationId":"slack_interactions_simple_agent","responses":{"200":{"description":"Interaction accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackEventResponse"}}}},"400":{"description":"Missing Slack headers or malformed interaction payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number. Retried interactions return 200 without reprocessing."}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"URL-encoded JSON interaction payload (Slack sends interactive component data as a single form field)"}}}}}}}},"/whatsapp/status":{"get":{"tags":["Whatsapp"],"summary":"Status","operationId":"whatsapp_status_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"WhatsAppStatusResponse","example":{"status":"available"}}}}}}}},"/whatsapp/webhook":{"get":{"tags":["Whatsapp"],"summary":"Whatsapp Verify","description":"Handle WhatsApp webhook verification","operationId":"whatsapp_verify_simple_agent","responses":{"200":{"description":"Webhook challenge accepted","content":{"text/plain":{"schema":{"type":"string"},"example":"challenge-token"}}},"400":{"description":"No challenge was provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid verify token or mode","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Webhook verification is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"hub.mode","in":"query","required":true,"schema":{"type":"string"},"description":"Webhook verification mode. Meta sends `subscribe`."},{"name":"hub.verify_token","in":"query","required":true,"schema":{"type":"string"},"description":"Verification token configured for the WhatsApp interface."},{"name":"hub.challenge","in":"query","required":true,"schema":{"type":"string"},"description":"Challenge returned as plain text after successful verification."}]},"post":{"tags":["Whatsapp"],"summary":"Whatsapp Webhook","description":"Process incoming WhatsApp messages","operationId":"whatsapp_webhook_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppWebhookResponse"}}}},"403":{"description":"Invalid webhook signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Signature validation is not configured, or the JSON body is malformed or is not an object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Hub-Signature-256","in":"header","required":true,"schema":{"type":"string"},"description":"SHA-256 HMAC signature for the raw request body, prefixed with `sha256=`"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}},"/telegram/status":{"get":{"tags":["Telegram"],"summary":"Telegram Status","operationId":"telegram_status_simple-agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramStatusResponse"}}}}}}},"/telegram/webhook":{"post":{"tags":["Telegram"],"summary":"Telegram Webhook","operationId":"telegram_webhook_simple-agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramWebhookResponse"}}}},"403":{"description":"Invalid webhook secret token"}}}},"/agui":{"post":{"tags":["AGUI"],"summary":"Run Agent","operationId":"run_agent_agui_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentInput"}}},"required":true},"responses":{"200":{"description":"Server-sent event stream","content":{"text/event-stream":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/status":{"get":{"tags":["AGUI"],"summary":"Get Status","operationId":"get_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/a2a/agents/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Agent Card","operationId":"get_agent_card_a2a_agents__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Agent","description":"Send a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"A2A is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/agents/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Agent Task","description":"Get the status and result of an agent task by ID.","operationId":"get_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Agent Task","description":"Cancel a running agent task.","operationId":"cancel_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Agent","description":"Stream a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/teams/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Team Card","operationId":"get_team_card_a2a_teams__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Team","description":"Send a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/teams/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Team Task","description":"Get the status and result of a team task by ID.","operationId":"get_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Team Task","description":"Cancel a running team task.","operationId":"cancel_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Team","description":"Stream a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/workflows/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Workflow Card","operationId":"get_workflow_card_a2a_workflows__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/workflows/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Workflow","description":"Send a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/workflows/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Workflow","description":"Stream a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/message/send":{"post":{"tags":["A2A"],"summary":"Send Message","description":"[DEPRECATED] Send a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"send_message","responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/a2a/message/stream":{"post":{"tags":["A2A"],"summary":"Stream Message","description":"[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message","responses":{"200":{"description":"Streaming response with task updates","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n"}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/sessions":{"get":{"tags":["Sessions"],"summary":"List Sessions","description":"Retrieve paginated list of sessions with filtering and sorting options. Supports filtering by session type (agent, team, workflow), component, user, and name. Sessions represent conversation histories and execution contexts.","operationId":"get_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types.","title":"Type"},"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types."},{"name":"component_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by component ID (agent/team/workflow ID)","title":"Component Id"},"description":"Filter sessions by component ID (agent/team/workflow ID)"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by user ID","title":"User Id"},"description":"Filter sessions by user ID"},{"name":"session_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by name (partial match)","title":"Session Name"},"description":"Filter sessions by name (partial match)"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of sessions to return per page","default":20,"title":"Limit"},"description":"Number of sessions to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort sessions by","default":"created_at","title":"Sort By"},"description":"Field to sort sessions by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query sessions from","title":"Db Id"},"description":"Database ID to query sessions from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Sessions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_SessionSchema_"},"example":{"session_example":{"summary":"Example session response","value":{"data":[{"session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_state":{},"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}]}}}}}},"400":{"description":"Invalid session type or filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in query parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Sessions"],"summary":"Create New Session","description":"Create a new empty session with optional configuration. Useful for pre-creating sessions with specific session_state, metadata, or other properties before running any agent/team/workflow interactions. The session can later be used by providing its session_id in run requests.","operationId":"create_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SessionType","description":"Type of session to create (agent, team, or workflow)","default":"agent"},"description":"Type of session to create (agent, team, or workflow)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to create session in","title":"Db Id"},"description":"Database ID to create session in"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest","description":"Session configuration data","default":{}}}}},"responses":{"201":{"description":"Session created successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Create Session"},"examples":{"agent_session_example":{"summary":"Example created agent session","value":{"user_id":"user-123","agent_session_id":"new-session-id","session_id":"new-session-id","session_name":"New Session","session_state":{"key":"value"},"metadata":{"key":"value"},"agent_id":"agent-1","created_at":"2025-10-21T12:00:00Z","updated_at":"2025-10-21T12:00:00Z"}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A session with the supplied session_id already exists"},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Multiple Sessions","description":"Delete multiple sessions by their IDs in a single operation. This action cannot be undone and will permanently remove all specified sessions and their runs.","operationId":"delete_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSessionRequest"}}}},"responses":{"204":{"description":"Sessions deleted successfully"},"400":{"description":"Invalid request - session IDs and types length mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["Sessions"],"summary":"Get Session by ID","description":"Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow).","operationId":"get_session_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to retrieve","title":"Session Id"},"description":"Session ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query session from","title":"User Id"},"description":"User ID to query session from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query session from","title":"Db Id"},"description":"Database ID to query session from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query session from","title":"Table"},"description":"Table to query session from"}],"responses":{"200":{"description":"Session details retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Get Session By Id"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Session","description":"Permanently delete a specific session and all its associated runs. This action cannot be undone and will remove all conversation history.","operationId":"delete_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to delete","title":"Session Id"},"description":"Session ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Sessions"],"summary":"Update Session","description":"Update session properties such as session_name, session_state, metadata, or summary. Use this endpoint to modify the session name, update state, add metadata, or update the session summary.","operationId":"update_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to update","title":"Session Id"},"description":"Session ID to update"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID","title":"User Id"},"description":"User ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update operation","title":"Db Id"},"description":"Database ID to use for update operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update operation","title":"Table"},"description":"Table to use for update operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest","description":"Session update data"}}}},"responses":{"200":{"description":"Session updated successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Update Session"},"examples":{"update_summary":{"summary":"Update session summary","value":{"summary":{"summary":"The user discussed project planning with the agent.","updated_at":"2025-10-21T14:30:00Z"}}},"update_metadata":{"summary":"Update session metadata","value":{"metadata":{"tags":["planning","project"],"priority":"high"}}},"update_session_name":{"summary":"Update session name","value":{"session_name":"Updated Session Name"}},"update_session_state":{"summary":"Update session state","value":{"session_state":{"step":"completed","context":"Project planning finished","progress":100}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs":{"get":{"tags":["Sessions"],"summary":"Get Session Runs","description":"Retrieve all runs (executions) for a specific session with optional timestamp filtering. Runs represent individual interactions or executions within a session. Response schema varies based on session type.","operationId":"get_session_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get runs from","title":"Session Id"},"description":"Session ID to get runs from"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query runs from","title":"User Id"},"description":"User ID to query runs from"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created after this Unix timestamp (epoch time in seconds)","title":"Created After"},"description":"Filter runs created after this Unix timestamp (epoch time in seconds)"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created before this Unix timestamp (epoch time in seconds)","title":"Created Before"},"description":"Filter runs created before this Unix timestamp (epoch time in seconds)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query runs from","title":"Db Id"},"description":"Database ID to query runs from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query runs from","title":"Table"},"description":"Table to query runs from"}],"responses":{"200":{"description":"Session runs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}]},"title":"Response Get Session Runs"},"examples":{"completed_run":{"summary":"Example completed run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"","run_input":"Which tools do you have access to?","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","run_response_format":"text","reasoning_content":"","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069},"messages":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-08 17:52:10.101003.\n\n\nYou have the capability to retain memories from previous interactions with the user, but have not had any interactions with the user yet.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757346730},{"content":"Which tools do you have access to?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757346730},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138},"created_at":1757346730}],"events":[{"created_at":1757346730,"event":"RunStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","model":"gpt-4o","model_provider":"OpenAI"},{"created_at":1757346733,"event":"MemoryUpdateStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"MemoryUpdateCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"RunCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","content_type":"str","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069}}],"created_at":"2025-09-08T15:52:10Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found or has no runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs/{run_id}":{"get":{"tags":["Sessions"],"summary":"Get Run by ID","description":"Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run).","operationId":"get_session_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get run from","title":"Session Id"},"description":"Session ID to get run from"},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","description":"Run ID to retrieve","title":"Run Id"},"description":"Run ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query run from","title":"User Id"},"description":"User ID to query run from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query run from","title":"Db Id"},"description":"Database ID to query run from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query run from","title":"Table"},"description":"Table to query run from"}],"responses":{"200":{"description":"Run retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}],"title":"Response Get Session Run"},"examples":{"agent_run":{"summary":"Example agent run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"user_123","run_input":"Which tools do you have access to?","content":"I don't have access to external tools.","created_at":1728499200}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/rename":{"post":{"tags":["Sessions"],"summary":"Rename Session","description":"Update the name of an existing session. Useful for organizing and categorizing sessions with meaningful names for better identification and management.","operationId":"rename_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to rename","title":"Session Id"},"description":"Session ID to rename"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope rename to","title":"User Id"},"description":"User ID to scope rename to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for rename operation","title":"Db Id"},"description":"Database ID to use for rename operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_rename_session"}}}},"responses":{"200":{"description":"Session renamed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Rename Session"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Invalid session name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type or validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories":{"post":{"tags":["Memory"],"summary":"Create Memory","description":"Create a new user memory with content and associated topics. Memories are used to store contextual information for users across conversations.","operationId":"create_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for memory storage","title":"Db Id"},"description":"Database ID to use for memory storage"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for memory storage","title":"Table"},"description":"Table to use for memory storage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"mem-123","memory":"User prefers technical explanations with code examples","topics":["preferences","communication_style","technical"],"user_id":"user-456","created_at":"2024-01-15T10:30:00Z","updated_at":"2024-01-15T10:30:00Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Memory"],"summary":"Delete Multiple Memories","description":"Delete multiple user memories by their IDs in a single operation. This action cannot be undone and all specified memories will be permanently removed.","operationId":"delete_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMemoriesRequest"}}}},"responses":{"204":{"description":"Memories deleted successfully"},"400":{"description":"Invalid request - empty memory_ids list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"List Memories","description":"Retrieve paginated list of user memories with filtering and search capabilities. Filter by user, agent, team, topics, or search within memory content.","operationId":"get_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by user ID","title":"User Id"},"description":"Filter memories by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by agent ID","title":"Agent Id"},"description":"Filter memories by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by team ID","title":"Team Id"},"description":"Filter memories by team ID"},{"name":"search_content","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fuzzy search within memory content","title":"Search Content"},"description":"Fuzzy search within memory content"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of memories to return per page","default":20,"title":"Limit"},"description":"Number of memories to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort memories by","default":"updated_at","title":"Sort By"},"description":"Field to sort memories by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memories from","title":"Db Id"},"description":"Database ID to query memories from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Comma-separated list of topics to filter by","examples":["preferences,technical,communication_style"],"title":"Topics"},"description":"Comma-separated list of topics to filter by"}],"responses":{"200":{"description":"Memories retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserMemorySchema_"},"example":{"data":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories/{memory_id}":{"delete":{"tags":["Memory"],"summary":"Delete Memory","description":"Permanently delete a specific user memory. This action cannot be undone.","operationId":"delete_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to delete","title":"Memory Id"},"description":"Memory ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to delete memory for","title":"User Id"},"description":"User ID to delete memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Memory deleted successfully"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"Get Memory by ID","description":"Retrieve detailed information about a specific user memory by its ID.","operationId":"get_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to retrieve","title":"Memory Id"},"description":"Memory ID to retrieve"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query memory for","title":"User Id"},"description":"User ID to query memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memory from","title":"Db Id"},"description":"Database ID to query memory from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query memory from","title":"Table"},"description":"Table to query memory from"}],"responses":{"200":{"description":"Memory retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Memory"],"summary":"Update Memory","description":"Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values.","operationId":"update_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to update","title":"Memory Id"},"description":"Memory ID to update"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update","title":"Db Id"},"description":"Database ID to use for update"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update","title":"Table"},"description":"Table to use for update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memory_topics":{"get":{"tags":["Memory"],"summary":"Get Memory Topics","description":"Retrieve all unique topics associated with memories in the system. Useful for filtering and categorizing memories by topic.","operationId":"get_memory_topics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter topics for","title":"User Id"},"description":"User ID to filter topics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query topics from","title":"Db Id"},"description":"Database ID to query topics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query topics from","title":"Table"},"description":"Table to query topics from"}],"responses":{"200":{"description":"Memory topics retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Get Memory Topics"},"example":["preferences","communication_style","technical","industry","compliance","code_examples","requirements","healthcare","finance"]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/user_memory_stats":{"get":{"tags":["Memory"],"summary":"Get User Memory Statistics","description":"Retrieve paginated statistics about memory usage by user. Provides insights into user engagement and memory distribution across users.","operationId":"get_user_memory_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of user statistics to return per page","default":20,"title":"Limit"},"description":"Number of user statistics to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter statistics for","title":"User Id"},"description":"User ID to filter statistics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query statistics from","title":"Table"},"description":"Table to query statistics from"}],"responses":{"200":{"description":"User memory statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserStatsSchema_"},"example":{"data":[{"user_id":"123","total_memories":3,"last_memory_updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve user statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/optimize-memories":{"post":{"tags":["Memory"],"summary":"Optimize User Memories","description":"Optimize all memories for a user with the summarize strategy. The operation combines the user's memories into one summary. Set `apply=false` to preview the result without saving it. Specify a custom model as `provider:model_id`, for example `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, or `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`.","operationId":"optimize_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for optimization","title":"Db Id"},"description":"Database ID to use for optimization"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for optimization","title":"Table"},"description":"Table to use for optimization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesRequest"}}}},"responses":{"200":{"description":"Memories optimized successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesResponse"},"example":{"memories":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User has a 3-year-old golden retriever named Max who loves fetch and walks. Lives in San Francisco's Mission district, works as a product manager in tech. Enjoys hiking Bay Area trails, trying new restaurants (especially Japanese, Thai, Mexican), and learning piano for 1.5 years.","topics":["pets","location","work","hobbies","food_preferences"],"user_id":"user2","updated_at":"2025-11-18T10:30:00Z"}],"memories_before":4,"memories_after":1,"tokens_before":450,"tokens_after":180,"tokens_saved":270,"reduction_percentage":60.0}}}},"400":{"description":"Bad request - User ID is required or invalid model string format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No memories found for user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to optimize memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings":{"get":{"tags":["Learnings"],"summary":"List Learnings","description":"List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) \u2014 this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`).","operationId":"list_learnings","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by learning type","title":"Learning Type"},"description":"Filter by learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"namespace","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by namespace","title":"Namespace"},"description":"Filter by namespace"},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity ID","title":"Entity Id"},"description":"Filter by entity ID"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity type","title":"Entity Type"},"description":"Filter by entity type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":100,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used).","title":"Sort By"},"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used)."},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Learnings"],"summary":"Create Learning","description":"Create a new learning record. For the identity-keyed learning types (`user_profile`, `user_memory`, `session_context`, `entity_memory`) the record id is derived deterministically from the identity fields so it reconciles with what the agent reads/writes \u2014 provide those fields (else 422), and if a record already exists the request is rejected with 409 (use PATCH to update it). Other types get a generated id. For a scoped (non-admin) caller, the body's `user_id` must be omitted/null or match the caller (mismatch \u2192 403); admins and unscoped callers may set any `user_id`.","operationId":"create_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users":{"get":{"tags":["Learnings"],"summary":"List Learning Users","description":"List the users that own learning records, with a per-user count and last-updated timestamp. Intended as the entry point for a per-user view: list users here, then drill into a single user's learnings via `GET /learnings?user_id=...`. Records with no owner (`user_id IS NULL`) are excluded. Pass `learning_type` to restrict the grouping to a single store (e.g. `user_profile` or `user_memory`). For a scoped (non-admin) caller results are bound to that user; an explicit `user_id` that differs is rejected with 403. Admins and unscoped callers list all users. Sortable by `user_id` or `last_learning_updated_at` (the default).","operationId":"list_learning_users","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the grouping to a single learning type","title":"Learning Type"},"description":"Restrict the grouping to a single learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the result to a single user","title":"User Id"},"description":"Restrict the result to a single user"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by: user_id or last_learning_updated_at (the default)","title":"Sort By"},"description":"Field to sort by: user_id or last_learning_updated_at (the default)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningUserStats_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users/{user_id}":{"delete":{"tags":["Learnings"],"summary":"Delete Learning User","description":"Delete the learning records owned by a user. By default removes every learning type backed by the agno_learnings table (user_profile, user_memory, and any user-scoped entity records); pass `learning_type` to restrict deletion to a single store. Records with no owner (`user_id IS NULL`) are not affected. For a scoped (non-admin) caller, only their own learnings may be deleted; a different `user_id` is rejected with 403. Admins and unscoped callers may delete any user's learnings. Returns 204 even if the user had no matching records.","operationId":"delete_learning_user","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The user whose learnings should be deleted","title":"User Id"},"description":"The user whose learnings should be deleted"},{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings","title":"Learning Type"},"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/{learning_id}":{"get":{"tags":["Learnings"],"summary":"Get Learning","description":"Retrieve a single learning record by its ID.","operationId":"get_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Learnings"],"summary":"Update Learning","description":"Update a learning record. Only `content` and `metadata` may be modified; identity fields (user_id, agent_id, team_id, etc.) are immutable. Provided fields fully replace the existing values. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) are readable by any caller but may only be modified by an admin.","operationId":"update_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Learnings"],"summary":"Delete Learning","description":"Permanently delete a learning record by its ID. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) may only be deleted by an admin.","operationId":"delete_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs":{"get":{"tags":["Evals"],"summary":"List Evaluation Runs","description":"Retrieve paginated evaluation runs with filtering and sorting options. Filter by agent, team, workflow, model, or evaluation type.","operationId":"get_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Workflow ID","title":"Workflow Id"},"description":"Workflow ID"},{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model ID","title":"Model Id"},"description":"Model ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EvalFilterType"},{"type":"null"}],"description":"Filter type","title":"Type"},"description":"Filter type"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of eval runs to return","default":20,"title":"Limit"},"description":"Number of eval runs to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"eval_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)","examples":["accuracy,agent_as_judge,performance,reliability"],"title":"Eval Types"},"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)"}],"responses":{"200":{"description":"Evaluation runs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_EvalSchema_"},"example":{"data":[{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Evals"],"summary":"Delete Evaluation Runs","description":"Delete multiple evaluation runs by their IDs. This action cannot be undone.","operationId":"delete_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvalRunsRequest"}}}},"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Deletion failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Evals"],"summary":"Execute Evaluation","description":"Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both.","operationId":"run_eval","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for evaluation","title":"Db Id"},"description":"Database ID to use for evaluation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for evaluation","title":"Table"},"description":"Table to use for evaluation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRunInput"}}}},"responses":{"200":{"description":"Evaluation executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"f2b2d72f-e9e2-4f0e-8810-0a7e1ff58614","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Invalid request - provide either agent_id or team_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs/{eval_run_id}":{"get":{"tags":["Evals"],"summary":"Get Evaluation Run","description":"Retrieve detailed results and metrics for a specific evaluation run.","operationId":"get_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query eval run from","title":"Table"},"description":"Table to query eval run from"}],"responses":{"200":{"description":"Evaluation run details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Evals"],"summary":"Update Evaluation Run","description":"Update the name or other properties of an existing evaluation run.","operationId":"update_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvalRunRequest"}}}},"responses":{"200":{"description":"Evaluation run updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update evaluation run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics":{"get":{"tags":["Metrics"],"summary":"Get AgentOS Metrics","description":"Retrieve AgentOS metrics and analytics data for a specified date range. If no date range is specified, returns all available metrics.","operationId":"get_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"starting_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Starting date for metrics range (YYYY-MM-DD format)","title":"Starting Date"},"description":"Starting date for metrics range (YYYY-MM-DD format)"},{"name":"ending_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Ending date for metrics range (YYYY-MM-DD format)","title":"Ending Date"},"description":"Ending date for metrics range (YYYY-MM-DD format)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query metrics from","title":"Db Id"},"description":"Database ID to query metrics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Metrics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"},"example":{"metrics":[{"id":"7bf39658-a00a-484c-8a28-67fd8a9ddb2a","agent_runs_count":5,"agent_sessions_count":5,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":448,"output_tokens":148,"total_tokens":596,"audio_tokens":0,"input_audio_tokens":0,"output_audio_tokens":0,"cached_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":5}],"date":"2025-07-31T00:00:00Z","created_at":"2025-07-31T12:38:52Z","updated_at":"2025-07-31T12:49:01Z"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Metrics retrieval failed. In Agno 2.7.4, invalid or ambiguous database selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics/refresh":{"post":{"tags":["Metrics"],"summary":"Refresh Metrics","description":"Manually trigger recalculation of system metrics from raw data. This operation analyzes system activity logs and regenerates aggregated metrics. Useful for ensuring metrics are up-to-date or after system maintenance.","operationId":"refresh_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for metrics calculation","title":"Db Id"},"description":"Database ID to use for metrics calculation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for metrics calculation","title":"Table"},"description":"Table to use for metrics calculation"}],"responses":{"200":{"description":"Metrics refreshed successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"title":"Response Refresh Metrics"},"example":[{"id":"e77c9531-818b-47a5-99cd-59fed61e5403","agent_runs_count":2,"agent_sessions_count":2,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":256,"output_tokens":441,"total_tokens":697,"audio_total_tokens":0,"audio_input_tokens":0,"audio_output_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":2}],"date":"2025-08-12T00:00:00Z","created_at":"2025-08-12T08:01:47Z","updated_at":"2025-08-12T08:01:47Z"}]}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Refresh failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content":{"post":{"tags":["Knowledge"],"summary":"Upload Content","description":"Upload content to the knowledge base. Supports file uploads, text content, or URLs. Content is processed asynchronously in the background. Supports custom readers and chunking strategies.","operationId":"upload_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_content"}}}},"responses":{"202":{"description":"Content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-123","name":"example-document.pdf","description":"Sample document for processing","metadata":{"category":"documentation","priority":"high"},"status":"processing"}}}},"400":{"description":"Invalid request - malformed metadata or missing content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in form data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"List Content","description":"Retrieve paginated list of all content in the knowledge base with filtering and sorting options. Filter by status, content type, or metadata properties.","operationId":"get_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of content entries to return","default":20,"title":"Limit"},"description":"Number of content entries to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ContentResponseSchema_"},"example":{"data":[{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}],"meta":{"page":1,"limit":20,"total_pages":1,"total_count":2}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete All Content","description":"Permanently remove all content from the knowledge base. This is a destructive operation that cannot be undone. Use with extreme caution.","operationId":"delete_all_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete all content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/remote-content":{"post":{"tags":["Knowledge"],"summary":"Upload Remote Content","description":"Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.","operationId":"upload_remote_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_upload_remote_content"}}}},"responses":{"202":{"description":"Remote content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-456","name":"reports/q1-2024.pdf","description":"Q1 Report from S3","metadata":{"source":"s3-docs"},"status":"processing"}}}},"400":{"description":"Invalid request - unknown config or missing path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}":{"patch":{"tags":["Knowledge"],"summary":"Update Content","description":"Update content name, description, or metadata without re-uploading it. In Agno 2.7.4, this endpoint accepts `reader_id`. Local knowledge validates the value, but the content patch does not apply or persist the reader change.","operationId":"update_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","description":"Content ID","title":"Content Id"},"description":"Content ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_update_content"}}}},"responses":{"200":{"description":"Content updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Invalid request - malformed metadata or invalid reader_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"Get Content by ID","description":"Retrieve detailed information about a specific content item including processing status and metadata.","operationId":"get_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete Content by ID","description":"Permanently remove a specific content item from the knowledge base. This action cannot be undone.","operationId":"delete_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}/status":{"get":{"tags":["Knowledge"],"summary":"Get Content Status","description":"Retrieve the current processing status of a content item. Useful for monitoring asynchronous content processing progress and identifying any processing errors.","operationId":"get_content_status","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content status retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentStatusResponse"},"examples":{"completed":{"summary":"Example completed content status","value":{"status":"completed","status_message":""}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/search":{"post":{"tags":["Knowledge"],"summary":"Search Knowledge","description":"Search the knowledge base for relevant documents using query, filters and search type.","operationId":"search_knowledge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VectorSearchRequestSchema"}}},"required":true},"responses":{"200":{"description":"Search results retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_VectorSearchResult_"},"example":{"data":[{"id":"doc_123","content":"Jordan Mitchell - Software Engineer with skills in JavaScript, React, Python","name":"cv_1","meta_data":{"page":1,"chunk":1},"usage":{"total_tokens":14},"reranking_score":0.95,"content_id":"content_456"}],"meta":{"page":1,"limit":20,"total_pages":2,"total_count":35}}}}},"400":{"description":"Invalid search parameters"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No documents found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/knowledge/config":{"get":{"tags":["Knowledge"],"summary":"Get Config","description":"Retrieve available readers, chunkers, and configuration options for content processing. This endpoint provides metadata about supported file types, processing strategies, and filters.","operationId":"get_knowledge_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Knowledge configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponseSchema"},"example":{"readers":{"website":{"id":"website","name":"WebsiteReader","description":"Reads website files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"firecrawl":{"id":"firecrawl","name":"FirecrawlReader","description":"Reads firecrawl files","chunkers":["SemanticChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"youtube":{"id":"youtube","name":"YoutubeReader","description":"Reads youtube files","chunkers":["RecursiveChunker","AgenticChunker","DocumentChunker","SemanticChunker","FixedSizeChunker"]},"web_search":{"id":"web_search","name":"WebSearchReader","description":"Reads web_search files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"arxiv":{"id":"arxiv","name":"ArxivReader","description":"Reads arxiv files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"csv":{"id":"csv","name":"CsvReader","description":"Reads csv files","chunkers":["RowChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"docling":{"id":"docling","name":"DoclingReader","description":"Converts multiple document formats like PDF, DOCX, PPTX, images, HTML, etc. using IBM's Docling library","chunkers":["AgenticChunker","CodeChunker","DocumentChunker","FixedSizeChunker","RecursiveChunker","SemanticChunker"]},"docx":{"id":"docx","name":"DocxReader","description":"Reads docx files","chunkers":["DocumentChunker","FixedSizeChunker","SemanticChunker","AgenticChunker","RecursiveChunker"]},"gcs":{"id":"gcs","name":"GcsReader","description":"Reads gcs files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"json":{"id":"json","name":"JsonReader","description":"Reads json files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"markdown":{"id":"markdown","name":"MarkdownReader","description":"Reads markdown files","chunkers":["MarkdownChunker","DocumentChunker","AgenticChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"pdf":{"id":"pdf","name":"PdfReader","description":"Reads pdf files","chunkers":["DocumentChunker","FixedSizeChunker","AgenticChunker","SemanticChunker","RecursiveChunker"]},"text":{"id":"text","name":"TextReader","description":"Reads text files","chunkers":["CodeChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]}},"readersForType":{"url":["url","website","firecrawl","youtube","web_search","gcs"],"youtube":["youtube"],"text":["web_search"],"topic":["arxiv"],"file":["csv","gcs"],".csv":["csv","field_labeled_csv","docling"],".xlsx":["excel","docling"],".xls":["excel"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["excel"],"application/vnd.ms-excel":["excel"],".docx":["docx","docling"],".dotx":["docling"],".docm":["docling"],".dotm":["docling"],".pptx":["docling","pptx"],".potx":["docling"],".ppsx":["docling"],".pptm":["docling"],".ppsm":["docling"],".potm":["docling"],".doc":["docx"],".json":["json"],".md":["markdown","docling"],".pdf":["pdf","docling"],".txt":["text"],".html":["docling"],".htm":["docling"],".xhtml":["docling"],".xml":["docling"],".nxml":["docling"],".xbrl":["docling"],".adoc":["docling"],".asciidoc":["docling"],".asc":["docling"],".xlsm":["docling"],".tex":["docling"],".latex":["docling"],".tar.gz":["docling"],".vtt":["docling"],".png":["docling"],".jpeg":["docling"],".jpg":["docling"],".tiff":["docling"],".tif":["docling"],".bmp":["docling"],".webp":["docling"],".wav":["docling"],".mp3":["docling"],".m4a":["docling"],".aac":["docling"],".ogg":["docling"],".flac":["docling"],".mp4":["docling"],".avi":["docling"],".mov":["docling"]},"chunkers":{"AgenticChunker":{"key":"AgenticChunker","name":"AgenticChunker","description":"Chunking strategy that uses an LLM to determine natural breakpoints in the text","metadata":{"chunk_size":5000}},"CodeChunker":{"key":"CodeChunker","name":"CodeChunker","description":"The CodeChunker splits code into chunks based on its structure, leveraging Abstract Syntax Trees (ASTs) to create contextually relevant segments","metadata":{"chunk_size":2048}},"DocumentChunker":{"key":"DocumentChunker","name":"DocumentChunker","description":"A chunking strategy that splits text based on document structure like paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"FixedSizeChunker":{"key":"FixedSizeChunker","name":"FixedSizeChunker","description":"Chunking strategy that splits text into fixed-size chunks with optional overlap","metadata":{"chunk_size":5000,"chunk_overlap":0}},"MarkdownChunker":{"key":"MarkdownChunker","name":"MarkdownChunker","description":"A chunking strategy that splits markdown based on structure like headers, paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RecursiveChunker":{"key":"RecursiveChunker","name":"RecursiveChunker","description":"Chunking strategy that recursively splits text into chunks by finding natural break points","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RowChunker":{"key":"RowChunker","name":"RowChunker","description":"RowChunking chunking strategy","metadata":{}},"SemanticChunker":{"key":"SemanticChunker","name":"SemanticChunker","description":"Chunking strategy that splits text into semantic chunks using chonkie","metadata":{"chunk_size":5000}}},"vector_dbs":[{"id":"vector_db_1","name":"Vector DB 1","description":"Vector DB 1 description","search_types":["vector","keyword","hybrid"]}],"filters":["filter_tag_1","filter_tag2"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources":{"get":{"tags":["Knowledge"],"summary":"List Content Sources","description":"List all registered content sources (S3, GCS, SharePoint, GitHub) for the knowledge base.","operationId":"list_content_sources","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Content sources retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"title":"Response List Content Sources"},"example":[{"id":"company-s3","name":"Company Documents","type":"s3","prefix":"documents/"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources/{source_id}/files":{"get":{"tags":["Knowledge"],"summary":"List Files in Source","description":"List available files and folders in a specific content source. Supports pagination and folder navigation.","operationId":"list_source_files","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the content source","title":"Source Id"},"description":"ID of the content source"},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Path prefix to filter files","title":"Prefix"},"description":"Path prefix to filter files"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of files per page","default":100,"title":"Limit"},"description":"Number of files per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"delimiter","in":"query","required":false,"schema":{"type":"string","description":"Folder delimiter (enables folder grouping)","default":"/","title":"Delimiter"},"description":"Folder delimiter (enables folder grouping)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Files listed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceFilesResponseSchema"},"example":{"source_id":"company-s3","source_name":"Company Documents","prefix":"reports/","folders":[{"prefix":"reports/2024/","name":"2024","is_empty":false}],"files":[{"key":"reports/annual-summary.pdf","name":"annual-summary.pdf","size":102400,"last_modified":"2024-01-15T10:30:00Z","content_type":"application/pdf"}],"meta":{"page":1,"limit":100,"total_pages":1,"total_count":1}}}}},"400":{"description":"Unsupported source type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base or content source not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces":{"get":{"tags":["Traces","Traces"],"summary":"List Traces","description":"Retrieve a paginated list of execution traces with optional filtering.\n\n**Traces provide observability into:**\n- Agent execution flows\n- Model invocations and token usage\n- Tool calls and their results\n- Errors and performance bottlenecks\n\n**Filtering Options:**\n- By run, session, user, or agent ID\n- By status (OK, ERROR)\n- By time range\n\n**Pagination:**\n- Use `page` (1-indexed) and `limit` parameters\n- Response includes pagination metadata (total_pages, total_count, etc.)\n\n**Response Format:**\nReturns summary information for each trace. Use GET `/traces/{trace_id}` for detailed hierarchy.","operationId":"get_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run ID","title":"Run Id"},"description":"Filter by run ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status (OK, ERROR)","title":"Status"},"description":"Filter by status (OK, ERROR)"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of traces per page","default":20,"title":"Limit"},"description":"Number of traces per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"responses":{"200":{"description":"List of traces retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSummary_"},"example":{"data":[{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","total_spans":4,"error_count":0,"input":"What is the stock price of NVDA?","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"agent_stock","created_at":"2025-11-19T10:30:00+00:00"}],"meta":{"page":1,"limit":20,"total_pages":5,"total_count":95}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/filter-schema":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Filter Schema","description":"Returns the available filterable fields, their types, valid operators, and enum values.\n\nThe frontend uses this to dynamically build the filter bar UI:\n- Field dropdown populated from `fields[].key`\n- Operator dropdown changes per field type\n- Value input shows autocomplete for enum fields (e.g., status)\n- Logical operators (AND, OR) for combining clauses","operationId":"get_traces_filter_schema","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterSchemaResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/traces/{trace_id}":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace or Span Detail","description":"Retrieve detailed trace information with hierarchical span tree, or a specific span within the trace.\n\n**Without span_id parameter:**\nReturns the full trace with hierarchical span tree:\n- Trace metadata (ID, status, duration, context)\n- Hierarchical tree of all spans\n- Each span includes timing, status, and type-specific metadata\n\n**With span_id parameter:**\nReturns details for a specific span within the trace:\n- Span metadata (ID, name, type, timing)\n- Status and error information\n- Type-specific attributes (model, tokens, tool params, etc.)\n\n**Span Hierarchy (full trace):**\nThe `tree` field contains root spans, each with potential `children`.\nThis recursive structure represents the execution flow:\n```\nAgent.run (root)\n \u251c\u2500 LLM.invoke\n \u251c\u2500 Tool.execute\n \u2502 \u2514\u2500 LLM.invoke (nested)\n \u2514\u2500 LLM.invoke\n```\n\n**Span Types:**\n- `AGENT`: Agent execution with input/output\n- `LLM`: Model invocations with tokens and prompts\n- `TOOL`: Tool calls with parameters and results","operationId":"get_trace","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}},{"name":"span_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Span ID to retrieve specific span","title":"Span Id"},"description":"Optional: Span ID to retrieve specific span"},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Run ID to retrieve trace for","title":"Run Id"},"description":"Optional: Run ID to retrieve trace for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query trace from","title":"Db Id"},"description":"Database ID to query trace from"}],"responses":{"200":{"description":"Trace or span detail retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TraceDetail"},{"$ref":"#/components/schemas/TraceNode"}],"title":"Response Get Trace"},"examples":{"full_trace":{"summary":"Full trace with hierarchy (no span_id)","value":{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","end_time":"2025-11-19T10:30:01.200000+00:00","total_spans":4,"error_count":0,"input":"What is Tesla stock price?","output":"The current price of Tesla (TSLA) is $245.67.","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"stock_agent","created_at":"2025-11-19T10:30:00+00:00","tree":[{"id":"span1","name":"Stock_Price_Agent.run","type":"AGENT","duration":"1.2s","status":"OK","spans":[]}]}},"single_span":{"summary":"Single span detail (with span_id)","value":{"id":"span2","name":"gpt-4o-mini.invoke","type":"LLM","duration":"800ms","status":"OK","metadata":{"model":"gpt-4o-mini","input_tokens":120}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Trace or span not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/trace_session_stats":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Statistics by Session","description":"Retrieve aggregated trace statistics grouped by session ID with pagination.\n\n**Provides insights into:**\n- Total traces per session\n- First and last trace timestamps per session\n- Associated user and agent information\n\n**Filtering Options:**\n- By user ID\n- By agent ID\n\n**Use Cases:**\n- Monitor session-level activity\n- Track conversation flows\n- Identify high-activity sessions\n- Analyze user engagement patterns","operationId":"get_trace_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of sessions per page","default":20,"title":"Limit"},"description":"Number of sessions per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"}],"responses":{"200":{"description":"Trace statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"},"example":{"data":[{"session_id":"37029bc6-1794-4ba8-a629-1efedc53dcad","user_id":"kaustubh@agno.com","agent_id":"hackernews-agent","total_traces":5,"first_trace_at":"2025-11-19T10:15:16+00:00","last_trace_at":"2025-11-19T10:21:30+00:00"}],"meta":{"page":1,"limit":20,"total_pages":3,"total_count":45}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/search":{"post":{"tags":["Traces","Traces"],"summary":"Search Traces with Advanced Filters","description":"Search traces using the FilterExpr DSL for complex, composable queries.\n\n**Group By Mode:**\n- `run` (default): Returns `PaginatedResponse[TraceDetail]` with full span trees\n- `session`: Returns `PaginatedResponse[TraceSessionStats]` with aggregated session stats\n\n**Supported Operators:**\n- Comparison: `EQ`, `NEQ`, `GT`, `GTE`, `LT`, `LTE`\n- Inclusion: `IN`\n- String matching: `CONTAINS` (case-insensitive substring), `STARTSWITH` (prefix)\n- Logical: `AND`, `OR`, `NOT`\n\n**Filterable Fields:**\ntrace_id, name, status, start_time, end_time, duration_ms, run_id, session_id, user_id, agent_id, team_id, workflow_id, created_at\n\n**Example Request Body (runs):**\n```json\n{\n \"filter\": {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n}\n```\n\n**Example Request Body (sessions):**\n```json\n{\n \"filter\": {\"op\": \"CONTAINS\", \"key\": \"agent_id\", \"value\": \"stock\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n}\n```","operationId":"search_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PaginatedResponse_TraceDetail_"},{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"}],"title":"Response Search Traces"}}}},"400":{"description":"Invalid filter expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/all/migrate":{"post":{"tags":["Database"],"summary":"Migrate All Databases","description":"Migrate all database schemas to the given target version. If a target version is not provided, all databases will be migrated to the latest version.","operationId":"migrate_all_databases","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"All databases migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"All databases migrated successfully to version 3.0.0"}}}},"207":{"description":"Some database migrations failed","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"},"failed":{"type":"object","additionalProperties":{"type":"string"},"title":"Failed"}},"type":"object","required":["message","failed"],"title":"PartialMigrationResponse"},"example":{"message":"Migrated 2/3 databases to latest version","failed":{"archive-db":"Migration failed"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/{db_id}/migrate":{"post":{"tags":["Database"],"summary":"Migrate Database","description":"Migrate the given database schema to the given target version. If a target version is not provided, the database will be migrated to the latest version.","operationId":"migrate_database","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"Database migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"Database migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Database not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components":{"get":{"tags":["Components"],"summary":"List Components","description":"Retrieve a paginated list of components with optional filtering by type.","operationId":"list_components","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ComponentType"},{"type":"null"}],"description":"Filter by type: agent, team, workflow","title":"Component Type"},"description":"Filter by type: agent, team, workflow"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ComponentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Component","description":"Create a new component (agent, team, or workflow) with initial config.","operationId":"create_component","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}":{"get":{"tags":["Components"],"summary":"Get Component","description":"Retrieve a component by ID.","operationId":"get_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Components"],"summary":"Update Component","description":"Partially update a component by ID.","operationId":"update_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentUpdate","description":"Component fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Component","description":"Soft-delete a component by ID. Component configs and links remain stored.","operationId":"delete_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs":{"get":{"tags":["Components"],"summary":"List Configs","description":"List all configs for a component.","operationId":"list_configs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"include_config","in":"query","required":false,"schema":{"type":"boolean","description":"Include full config blob","default":true,"title":"Include Config"},"description":"Include full config blob"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComponentConfigResponse"},"title":"Response List Configs"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Config Version","description":"Create a new config version for a component.","operationId":"create_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigCreate","description":"Config data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}":{"patch":{"tags":["Components"],"summary":"Update Draft Config","description":"Update an existing draft config. Cannot update published configs.","operationId":"update_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigUpdate","description":"Config fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Components"],"summary":"Get Config Version","description":"Get a specific config version by number.","operationId":"get_config_version","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Config Version","description":"Delete a specific config version. Agno v2.7.4 rejects the current version. Synchronous SQLite and PostgreSQL storage allow deletion of a published non-current version.","operationId":"delete_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/current":{"get":{"tags":["Components"],"summary":"Get Current Config","description":"Get the current config version for a component.","operationId":"get_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}/set-current":{"post":{"tags":["Components"],"summary":"Set Current Config Version","description":"Set a published config version as current (for rollback).","operationId":"set_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/schedules":{"get":{"tags":["Schedules"],"summary":"List Schedules","operationId":"list_schedules_schedules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"post":{"tags":["Schedules"],"summary":"Create Schedule","operationId":"create_schedule_schedules_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule","operationId":"get_schedule_schedules__schedule_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"patch":{"tags":["Schedules"],"summary":"Update Schedule","operationId":"update_schedule_schedules__schedule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Schedules"],"summary":"Delete Schedule","operationId":"delete_schedule_schedules__schedule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/enable":{"post":{"tags":["Schedules"],"summary":"Enable Schedule","operationId":"enable_schedule_schedules__schedule_id__enable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/disable":{"post":{"tags":["Schedules"],"summary":"Disable Schedule","operationId":"disable_schedule_schedules__schedule_id__disable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/trigger":{"post":{"tags":["Schedules"],"summary":"Trigger Schedule","operationId":"trigger_schedule_schedules__schedule_id__trigger_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Schedule is disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler is not running or storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs":{"get":{"tags":["Schedules"],"summary":"List Schedule Runs","operationId":"list_schedule_runs_schedules__schedule_id__runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleRunResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs/{run_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule Run","operationId":"get_schedule_run_schedules__schedule_id__runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals":{"get":{"tags":["Approvals"],"summary":"List Approvals","operationId":"list_approvals_approvals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","approved","rejected","expired","cancelled"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"source_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"}},{"name":"approval_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["required","audit"],"type":"string"},{"type":"null"}],"title":"Approval Type"}},{"name":"pause_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"schedule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"}},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ApprovalResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/count":{"get":{"tags":["Approvals"],"summary":"Get Approval Count","operationId":"get_approval_count_approvals_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalCountResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/{approval_id}/status":{"get":{"tags":["Approvals"],"summary":"Get Approval Status","operationId":"get_approval_status_approvals__approval_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalStatusResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/{approval_id}":{"get":{"tags":["Approvals"],"summary":"Get Approval","operationId":"get_approval_approvals__approval_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Approvals"],"summary":"Delete Approval","operationId":"delete_approval_approvals__approval_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/{approval_id}/resolve":{"post":{"tags":["Approvals"],"summary":"Resolve Approval","operationId":"resolve_approval_approvals__approval_id__resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResolve"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/service-accounts":{"post":{"tags":["Service Accounts"],"summary":"Create Service Account","description":"Mint a service account token. The plaintext token is returned exactly once.","operationId":"create_service_account_service_accounts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreateResponse"}}}},"400":{"description":"Requested scopes are invalid, or privileged scopes were not explicitly allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"An active service account with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"get":{"tags":["Service Accounts"],"summary":"List Service Accounts","description":"List service accounts. Returns metadata and display prefixes only - never hashes or plaintext.","operationId":"list_service_accounts_service_accounts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Revoked"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ServiceAccountResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts/{service_account_id}":{"delete":{"tags":["Service Accounts"],"summary":"Revoke Service Account","description":"Revoke an existing service account.\n\nTakes effect immediately on this worker (the local verification cache entry is evicted) and within the cache TTL on other workers.","operationId":"revoke_service_account_service_accounts__service_account_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"service_account_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Service account not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/registry":{"get":{"tags":["Registry"],"summary":"List Registry","description":"List all resources in the registry with optional filtering.","operationId":"list_registry","security":[{"HTTPBearer":[]}],"parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RegistryResourceType"},{"type":"null"}],"description":"Filter by resource type","title":"Resource Type"},"description":"Filter by resource type"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (partial match)","title":"Name"},"description":"Filter by name (partial match)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_RegistryContentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}}},"components":{"schemas":{"A2ARequest_DataPart":{"description":"Represents a structured data segment (e.g., JSON) within a message or artifact.","properties":{"data":{"additionalProperties":true,"title":"Data","type":"object"},"kind":{"const":"data","default":"data","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["data"],"title":"DataPart","type":"object"},"A2ARequest_FilePart":{"description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI.","properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_FileWithBytes"},{"$ref":"#/components/schemas/A2ARequest_FileWithUri"}],"title":"File"},"kind":{"const":"file","default":"file","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["file"],"title":"FilePart","type":"object"},"A2ARequest_FileWithBytes":{"description":"Represents a file with its content provided directly as a base64-encoded string.","properties":{"bytes":{"title":"Bytes","type":"string"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"}},"required":["bytes"],"title":"FileWithBytes","type":"object"},"A2ARequest_FileWithUri":{"description":"Represents a file with its content located at a specific URI.","properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"FileWithUri","type":"object"},"A2ARequest_Message":{"description":"Represents a single message in the conversation between a user and an agent.","properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"kind":{"const":"message","default":"message","title":"Kind","type":"string"},"messageId":{"title":"Messageid","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/A2ARequest_Part"},"title":"Parts","type":"array"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/A2ARequest_Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Taskid"}},"required":["messageId","parts","role"],"title":"Message","type":"object"},"A2ARequest_MessageSendConfiguration":{"description":"Defines configuration options for a `message/send` or `message/stream` request.","properties":{"acceptedOutputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Acceptedoutputmodes"},"blocking":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Blocking"},"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"pushNotificationConfig":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationConfig"},{"type":"null"}],"default":null}},"title":"MessageSendConfiguration","type":"object"},"A2ARequest_MessageSendParams":{"description":"Defines the parameters for a request to send a message to an agent. This can be used\nto create a new task, continue an existing one, or restart a task.","properties":{"configuration":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_MessageSendConfiguration"},{"type":"null"}],"default":null},"message":{"$ref":"#/components/schemas/A2ARequest_Message"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["message"],"title":"MessageSendParams","type":"object"},"A2ARequest_Part":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_TextPart"},{"$ref":"#/components/schemas/A2ARequest_FilePart"},{"$ref":"#/components/schemas/A2ARequest_DataPart"}],"title":"Part"},"A2ARequest_PushNotificationAuthenticationInfo":{"description":"Defines authentication details for a push notification endpoint.","properties":{"credentials":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Credentials"},"schemes":{"items":{"type":"string"},"title":"Schemes","type":"array"}},"required":["schemes"],"title":"PushNotificationAuthenticationInfo","type":"object"},"A2ARequest_PushNotificationConfig":{"description":"Defines the configuration for setting up push notifications for task updates.","properties":{"authentication":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationAuthenticationInfo"},{"type":"null"}],"default":null},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Id"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Token"},"url":{"title":"Url","type":"string"}},"required":["url"],"title":"PushNotificationConfig","type":"object"},"A2ARequest_Role":{"description":"Identifies the sender of the message. `user` for the client, `agent` for the service.","enum":["agent","user"],"title":"Role","type":"string"},"A2ARequest_TextPart":{"description":"Represents a text segment within a message or artifact.","properties":{"kind":{"const":"text","default":"text","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"text":{"title":"Text","type":"string"}},"required":["text"],"title":"TextPart","type":"object"},"ActivityMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"activity","title":"Role","default":"activity"},"activityType":{"type":"string","title":"Activitytype"},"content":{"additionalProperties":true,"type":"object","title":"Content"}},"additionalProperties":true,"type":"object","required":["id","activityType","content"],"title":"ActivityMessage","description":"An activity progress message emitted between chat messages."},"AgentResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"extra_messages":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Messages"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"AgentResponse"},"AgentSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_session_id":{"type":"string","title":"Agent Session Id","description":"Unique agent session identifier"},"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID used in this session"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"agent_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Data","description":"Agent-specific data"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["agent_session_id","session_id","session_name"],"title":"AgentSessionDetailSchema"},"AgentSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the agent"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the agent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the agent"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the agent"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","title":"AgentSummaryResponse"},"ApprovalCountResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"ApprovalCountResponse","description":"Response model for pending approval count."},"ApprovalResolve":{"properties":{"status":{"type":"string","pattern":"^(approved|rejected)$","title":"Status"},"resolved_by":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Resolved By"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"}},"type":"object","required":["status"],"title":"ApprovalResolve","description":"Request body for resolving (approve/reject) an approval."},"ApprovalResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"},"source_type":{"type":"string","title":"Source Type"},"approval_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Type"},"pause_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Args"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"},"schedule_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Run Id"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"},"run_status":{"anyOf":[{"$ref":"#/components/schemas/RunStatus"},{"type":"null"}]}},"type":"object","required":["id","run_id","session_id","status","source_type"],"title":"ApprovalResponse","description":"Response model for a single approval."},"ApprovalStatusResponse":{"properties":{"approval_id":{"type":"string","title":"Approval Id"},"status":{"type":"string","title":"Status"},"run_id":{"type":"string","title":"Run Id"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"}},"type":"object","required":["approval_id","status","run_id"],"title":"ApprovalStatusResponse","description":"Lightweight response model for polling approval status."},"Artifact":{"properties":{"artifactId":{"type":"string","title":"Artifactid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"}},"type":"object","required":["artifactId","parts"],"title":"Artifact","description":"Represents a file, data structure, or other resource generated by an agent during a task."},"AssistantMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"assistant","title":"Role","default":"assistant"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"},"toolCalls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},{"type":"null"}],"title":"Toolcalls"}},"additionalProperties":true,"type":"object","required":["id"],"title":"AssistantMessage","description":"An assistant message."},"AudioInputContent":{"properties":{"type":{"type":"string","const":"audio","title":"Type","default":"audio"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"AudioInputContent","description":"An audio input content fragment."},"BackgroundRunResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the background run."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the background run."},"status":{"type":"string","title":"Status","description":"Initial run status."}},"type":"object","required":["run_id","session_id","status"],"title":"BackgroundRunResponse"},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"BadRequestResponse","example":{"detail":"Bad request","error_code":"BAD_REQUEST"}},"BinaryInputContent":{"properties":{"type":{"type":"string","const":"binary","title":"Type","default":"binary"},"mimeType":{"type":"string","title":"Mimetype"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"additionalProperties":true,"type":"object","required":["mimeType"],"title":"BinaryInputContent","description":"A deprecated binary payload reference in a multimodal user message."},"Body_continue_agent_run":{"properties":{"tools":{"type":"string","title":"Tools","description":"JSON string of tool call results to continue the paused run","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Optional new user-message text to append to the run before resuming. Use for continuing a COMPLETED run with a follow-up, or adding context to a RUNNING/ERROR resume."},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","description":"When true, clone the run with a new ``run_id`` before resuming. The original is untouched; the clone becomes a sibling within the same session, with ``forked_from_run_id`` set.","default":false},"regenerate":{"type":"boolean","title":"Regenerate","description":"Sugar: regenerate the last response of this run. Auto-computes ``continue_from='last_user'`` to land just after the last user message. Pair with ``additional_instructions`` to steer the new output. By default the original response is hidden from history (replaced); pass ``replace_original=false`` to keep both the original and the regenerated response visible side by side.","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original","description":"Only valid with ``regenerate=true``. Controls history visibility of the original response; the original run is always retained in storage. Defaults to true: the original is marked REGENERATED and hidden from history so the new response replaces it. Pass false to keep both the original and regenerated responses visible."},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions","description":"Only valid with ``regenerate=true``: extra guidance appended as a user message before re-generation. Friendly alias for ``input``."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run continue in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false}},"type":"object","title":"Body_continue_agent_run"},"Body_continue_team_run":{"properties":{"requirements":{"type":"string","title":"Requirements","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input"},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","default":false},"regenerate":{"type":"boolean","title":"Regenerate","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original"},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"stream":{"type":"boolean","title":"Stream","default":true},"background":{"type":"boolean","title":"Background","default":false}},"type":"object","title":"Body_continue_team_run"},"Body_continue_workflow_run":{"properties":{"step_requirements":{"type":"string","title":"Step Requirements","description":"JSON string of step requirement objects with resolution status","default":""},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}},"type":"object","title":"Body_continue_workflow_run"},"Body_create_agent_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the agent"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Agent version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic agent construction"}},"type":"object","required":["message"],"title":"Body_create_agent_run"},"Body_create_team_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the team"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"monitor":{"type":"boolean","title":"Monitor","description":"Enable monitoring and logging for this run","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Team version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic team construction"}},"type":"object","required":["message"],"title":"Body_create_team_run"},"Body_create_workflow_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the workflow"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run workflow in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Workflow version to use for this run"},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow construction"}},"type":"object","required":["message"],"title":"Body_create_workflow_run"},"Body_rename_session":{"properties":{"session_name":{"type":"string","title":"Session Name","description":"New name for the session"}},"type":"object","required":["session_name"],"title":"Body_rename_session"},"Body_resume_agent_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_agent_run_stream"},"Body_resume_team_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_team_run_stream"},"Body_resume_workflow_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_workflow_run_stream"},"Body_update_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"Content metadata as JSON string"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"Reader ID. In Agno 2.7.4, local knowledge validates the value, but the content patch does not apply or persist the reader change."}},"type":"object","title":"Body_update_content"},"Body_upload_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated from file/URL if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description for context"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"URL to fetch content from (JSON array or single URL string)"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object for additional content properties"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File","description":"File to upload for processing"},"text_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Content","description":"Raw text content to process"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for content processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply during processing"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size to use for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap to use for processing"}},"type":"object","title":"Body_upload_content"},"Body_upload_remote_content":{"properties":{"config_id":{"type":"string","title":"Config Id","description":"ID of the configured remote content source (from /knowledge/config)"},"path":{"type":"string","title":"Path","description":"Path to file or folder in the remote source"},"source_params":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Params","description":"JSON object of per-request parameters forwarded to the source's factory. Used for provider-specific routing that shouldn't be baked into the config. Currently supported keys: GitHub accepts 'repo' ('owner/repo'), letting one configured GitHub source serve multiple repositories the credentials can access."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap for processing"}},"type":"object","required":["config_id","path"],"title":"Body_upload_remote_content"},"ChatConfig":{"properties":{"quick_prompts":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Quick Prompts"}},"type":"object","required":["quick_prompts"],"title":"ChatConfig","description":"Configuration for the Chat page of the AgentOS"},"ChunkerSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["key"],"title":"ChunkerSchema"},"ComponentConfigResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"version":{"type":"integer","title":"Version"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"type":"string","title":"Stage"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","version","stage","config","created_at"],"title":"ComponentConfigResponse"},"ComponentCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Display name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id","description":"Unique identifier for the entity. Auto-generated from name if not provided."},"component_type":{"$ref":"#/components/schemas/ComponentType","description":"Type of entity: agent, team, or workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config","description":"Optional configuration"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["name","component_type"],"title":"ComponentCreate"},"ComponentResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"component_type":{"$ref":"#/components/schemas/ComponentType"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","component_type","created_at"],"title":"ComponentResponse"},"ComponentType":{"type":"string","enum":["agent","team","workflow"],"title":"ComponentType"},"ComponentUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"component_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"}},"type":"object","title":"ComponentUpdate"},"ConfigCreate":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config","description":"The configuration data"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Optional version number"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links","description":"Optional links to child components"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["config"],"title":"ConfigCreate"},"ConfigResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the OS instance"},"available_models":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Models","description":"List of available models"},"os_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Database","description":"ID of the database used for the OS instance"},"databases":{"items":{"type":"string"},"type":"array","title":"Databases","description":"List of database IDs used by the components of the OS instance"},"chat":{"anyOf":[{"$ref":"#/components/schemas/ChatConfig"},{"type":"null"}],"description":"Chat configuration"},"manifest":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Manifest"},"type":"object"},{"type":"null"}],"title":"Manifest","description":"Per-entity UI metadata keyed by agent/team/workflow id"},"session":{"anyOf":[{"$ref":"#/components/schemas/SessionConfig"},{"type":"null"}],"description":"Session configuration"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/MetricsConfig"},{"type":"null"}],"description":"Metrics configuration"},"memory":{"anyOf":[{"$ref":"#/components/schemas/MemoryConfig"},{"type":"null"}],"description":"Memory configuration"},"learning":{"anyOf":[{"$ref":"#/components/schemas/LearningConfig"},{"type":"null"}],"description":"Learning configuration"},"knowledge":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeConfig"},{"type":"null"}],"description":"Knowledge configuration"},"evals":{"anyOf":[{"$ref":"#/components/schemas/EvalsConfig"},{"type":"null"}],"description":"Evaluations configuration"},"traces":{"anyOf":[{"$ref":"#/components/schemas/TracesConfig"},{"type":"null"}],"description":"Traces configuration"},"agents":{"items":{"$ref":"#/components/schemas/AgentSummaryResponse"},"type":"array","title":"Agents","description":"List of registered agents"},"teams":{"items":{"$ref":"#/components/schemas/TeamSummaryResponse"},"type":"array","title":"Teams","description":"List of registered teams"},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Workflows","description":"List of registered workflows"},"interfaces":{"items":{"$ref":"#/components/schemas/InterfaceResponse"},"type":"array","title":"Interfaces","description":"List of available interfaces"}},"type":"object","required":["os_id","databases","agents","teams","workflows","interfaces"],"title":"ConfigResponse","description":"Response schema for the general config endpoint"},"ConfigResponseSchema":{"properties":{"readers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ReaderSchema"},"type":"object"},{"type":"null"}],"title":"Readers","description":"Available content readers"},"readersForType":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Readersfortype","description":"Mapping of content types to reader IDs"},"chunkers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ChunkerSchema"},"type":"object"},{"type":"null"}],"title":"Chunkers","description":"Available chunking strategies"},"filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filters","description":"Available filter tags"},"vector_dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/VectorDbSchema"},"type":"array"},{"type":"null"}],"title":"Vector Dbs","description":"Configured vector databases"},"remote_content_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"type":"array"},{"type":"null"}],"title":"Remote Content Sources","description":"Configured remote content sources (S3, GCS, SharePoint, GitHub)"}},"type":"object","title":"ConfigResponseSchema"},"ConfigUpdate":{"properties":{"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","title":"ConfigUpdate"},"ConflictResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ConflictResponse","example":{"detail":"Resource conflict"}},"ContentResponseSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the content"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"MIME type of the content"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"},"linked_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linked To","description":"ID of related content if linked"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata as key-value pairs"},"access_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Access Count","description":"Number of times content has been accessed"},"status":{"anyOf":[{"$ref":"#/components/schemas/ContentStatus"},{"type":"null"}],"description":"Processing status of the content"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message","description":"Status message or error details"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when content was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when content was last updated"}},"type":"object","required":["id"],"title":"ContentResponseSchema"},"ContentStatus":{"type":"string","enum":["processing","completed","failed"],"title":"ContentStatus","description":"Enumeration of possible content processing statuses."},"ContentStatusResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Content ID"},"status":{"$ref":"#/components/schemas/ContentStatus","description":"Current processing status of the content"},"status_message":{"type":"string","title":"Status Message","description":"Status message or error details","default":""}},"type":"object","required":["status"],"title":"ContentStatusResponse","description":"Response model for content status endpoint."},"Context":{"properties":{"description":{"type":"string","title":"Description"},"value":{"type":"string","title":"Value"}},"additionalProperties":true,"type":"object","required":["description","value"],"title":"Context","description":"Additional context for the agent."},"CreateSessionRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session ID (generated if not provided)"},"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Initial session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"}},"type":"object","title":"CreateSessionRequest"},"DataPart":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data"},"kind":{"type":"string","const":"data","title":"Kind","default":"data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["data"],"title":"DataPart","description":"Represents a structured data segment (e.g., JSON) within a message or artifact."},"DatabaseConfig_EvalsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/EvalsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[EvalsDomainConfig]"},"DatabaseConfig_LearningDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/LearningDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[LearningDomainConfig]"},"DatabaseConfig_MemoryDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MemoryDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MemoryDomainConfig]"},"DatabaseConfig_MetricsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MetricsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MetricsDomainConfig]"},"DatabaseConfig_SessionDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/SessionDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[SessionDomainConfig]"},"DatabaseConfig_TracesDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/TracesDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[TracesDomainConfig]"},"DayAggregatedMetrics":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the metrics record"},"agent_runs_count":{"type":"integer","minimum":0.0,"title":"Agent Runs Count","description":"Total number of agent runs"},"agent_sessions_count":{"type":"integer","minimum":0.0,"title":"Agent Sessions Count","description":"Total number of agent sessions"},"team_runs_count":{"type":"integer","minimum":0.0,"title":"Team Runs Count","description":"Total number of team runs"},"team_sessions_count":{"type":"integer","minimum":0.0,"title":"Team Sessions Count","description":"Total number of team sessions"},"workflow_runs_count":{"type":"integer","minimum":0.0,"title":"Workflow Runs Count","description":"Total number of workflow runs"},"workflow_sessions_count":{"type":"integer","minimum":0.0,"title":"Workflow Sessions Count","description":"Total number of workflow sessions"},"users_count":{"type":"integer","minimum":0.0,"title":"Users Count","description":"Total number of unique users"},"token_metrics":{"additionalProperties":true,"type":"object","title":"Token Metrics","description":"Token usage metrics (input, output, cached, etc.)"},"model_metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Model Metrics","description":"Metrics grouped by model (model_id, provider, count)"},"date":{"type":"string","format":"date-time","title":"Date","description":"Date for which these metrics are aggregated"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when metrics were created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when metrics were last updated"}},"type":"object","required":["id","agent_runs_count","agent_sessions_count","team_runs_count","team_sessions_count","workflow_runs_count","workflow_sessions_count","users_count","token_metrics","model_metrics","date","created_at","updated_at"],"title":"DayAggregatedMetrics","description":"Aggregated metrics for a given day"},"DeleteEvalRunsRequest":{"properties":{"eval_run_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Eval Run Ids","description":"List of evaluation run IDs to delete"}},"type":"object","required":["eval_run_ids"],"title":"DeleteEvalRunsRequest"},"DeleteMemoriesRequest":{"properties":{"memory_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Memory Ids","description":"List of memory IDs to delete"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID to filter memories for deletion"}},"type":"object","required":["memory_ids"],"title":"DeleteMemoriesRequest"},"DeleteSessionRequest":{"properties":{"session_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Session Ids","description":"List of session IDs to delete"},"session_types":{"items":{"$ref":"#/components/schemas/SessionType"},"type":"array","minItems":1,"title":"Session Types","description":"Types of sessions to delete"}},"type":"object","required":["session_ids","session_types"],"title":"DeleteSessionRequest"},"DeveloperMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"developer","title":"Role","default":"developer"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"DeveloperMessage","description":"A developer message."},"DocumentInputContent":{"properties":{"type":{"type":"string","const":"document","title":"Type","default":"document"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"DocumentInputContent","description":"A document input content fragment."},"EvalFilterType":{"type":"string","enum":["agent","team","workflow"],"title":"EvalFilterType"},"EvalRunInput":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID to evaluate"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID to evaluate"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID to use for evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation to run (accuracy, performance, or reliability)"},"input":{"type":"string","minLength":1,"title":"Input","description":"Input text/query for the evaluation"},"additional_guidelines":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Guidelines","description":"Additional guidelines for the evaluation"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for the evaluation"},"num_iterations":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Num Iterations","description":"Number of times to run the evaluation","default":1},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for this evaluation run"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output","description":"Expected output for accuracy evaluation"},"criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criteria","description":"Evaluation criteria for agent-as-judge evaluation"},"scoring_strategy":{"anyOf":[{"type":"string","enum":["numeric","binary"]},{"type":"null"}],"title":"Scoring Strategy","description":"Scoring strategy: 'numeric' (1-10 with threshold) or 'binary' (PASS/FAIL)","default":"binary"},"threshold":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Threshold","description":"Score threshold for pass/fail (1-10), only used with numeric scoring","default":7},"warmup_runs":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Warmup Runs","description":"Number of warmup runs before measuring performance","default":0},"expected_tool_calls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expected Tool Calls","description":"Expected tool calls for reliability evaluation"},"allow_additional_tool_calls":{"type":"boolean","title":"Allow Additional Tool Calls","description":"When True, tool calls not in expected_tool_calls are allowed (subset matching)","default":false},"expected_tool_call_arguments":{"anyOf":[{"additionalProperties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Expected Tool Call Arguments","description":"Expected arguments for specific tool calls, e.g. {\"tool_name\": {\"arg_name\": \"expected_value\"}} or {\"tool_name\": [{\"arg_name\": \"val1\"}, {\"arg_name\": \"val2\"}]}"}},"type":"object","required":["eval_type","input"],"title":"EvalRunInput"},"EvalSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the evaluation run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that was evaluated"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID used in evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that was evaluated"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was evaluated"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the evaluation run"},"evaluated_component_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluated Component Name","description":"Name of the evaluated component"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation (accuracy, performance, or reliability)"},"eval_data":{"additionalProperties":true,"type":"object","title":"Eval Data","description":"Evaluation results and metrics"},"eval_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eval Input","description":"Input parameters used for the evaluation"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when evaluation was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when evaluation was last updated"}},"type":"object","required":["id","eval_type","eval_data"],"title":"EvalSchema"},"EvalType":{"type":"string","enum":["accuracy","agent_as_judge","performance","reliability"],"title":"EvalType"},"EvalsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_EvalsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"EvalsConfig","description":"Configuration for the Evals domain of the AgentOS"},"EvalsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"EvalsDomainConfig","description":"Configuration for the Evals domain of the AgentOS"},"FilePart":{"properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/FileWithBytes"},{"$ref":"#/components/schemas/FileWithUri"}],"title":"File"},"kind":{"type":"string","const":"file","title":"Kind","default":"file"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["file"],"title":"FilePart","description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI."},"FileWithBytes":{"properties":{"bytes":{"type":"string","title":"Bytes"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["bytes"],"title":"FileWithBytes","description":"Represents a file with its content provided directly as a base64-encoded string."},"FileWithUri":{"properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uri":{"type":"string","title":"Uri"}},"type":"object","required":["uri"],"title":"FileWithUri","description":"Represents a file with its content located at a specific URI."},"FilterFieldSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Column/field name used in filter expressions"},"label":{"type":"string","title":"Label","description":"Human-readable display label for the UI"},"type":{"type":"string","title":"Type","description":"Field data type: string, number, datetime, enum"},"operators":{"items":{"type":"string"},"type":"array","title":"Operators","description":"List of valid filter operators for this field"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values","description":"Allowed enum values (for autocomplete/dropdown)"}},"type":"object","required":["key","label","type","operators"],"title":"FilterFieldSchema","description":"Schema describing a single filterable field for the frontend filter bar."},"FilterSchemaResponse":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FilterFieldSchema"},"type":"array","title":"Fields","description":"Available filterable fields"},"logical_operators":{"items":{"type":"string"},"type":"array","title":"Logical Operators","description":"Logical operators for combining filter clauses","default":["AND","OR"]}},"type":"object","required":["fields"],"title":"FilterSchemaResponse","description":"Response for the filter schema endpoint. Tells the FE what fields, operators, and values are available."},"ForbiddenResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ForbiddenResponse","example":{"detail":"Insufficient permissions"}},"FunctionCall":{"properties":{"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"additionalProperties":true,"type":"object","required":["name","arguments"],"title":"FunctionCall","description":"Name and arguments of a function call."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Health status of the service"},"instantiated_at":{"type":"string","format":"date-time","title":"Instantiated At","description":"Timestamp when service was instantiated"}},"type":"object","required":["status","instantiated_at"],"title":"HealthResponse","example":{"instantiated_at":"2025-06-10T12:00:00Z","status":"ok"}},"ImageInputContent":{"properties":{"type":{"type":"string","const":"image","title":"Type","default":"image"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"ImageInputContent","description":"An image input content fragment."},"InfoResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"agno_version":{"type":"string","title":"Agno Version","description":"Version of the agno framework"},"agent_count":{"type":"integer","title":"Agent Count","description":"Number of agents registered in the OS","default":0},"team_count":{"type":"integer","title":"Team Count","description":"Number of teams registered in the OS","default":0},"workflow_count":{"type":"integer","title":"Workflow Count","description":"Number of workflows registered in the OS","default":0},"mcp":{"$ref":"#/components/schemas/McpInfo","description":"MCP server availability for this OS instance"},"auth_mode":{"type":"string","enum":["none","security_key","jwt"],"title":"Auth Mode","description":"Authentication mode enforced on the REST/WS plane of this OS instance. MCP OAuth, when enabled, is described separately under `mcp.oauth`.","default":"none"}},"type":"object","required":["os_id","agno_version"],"title":"InfoResponse","description":"Response schema for the /info endpoint returning lightweight OS metadata."},"InputContentDataSource":{"properties":{"type":{"type":"string","const":"data","title":"Type","default":"data"},"value":{"type":"string","title":"Value"},"mimeType":{"type":"string","title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value","mimeType"],"title":"InputContentDataSource","description":"Inline base64-encoded source."},"InputContentUrlSource":{"properties":{"type":{"type":"string","const":"url","title":"Type","default":"url"},"value":{"type":"string","title":"Value"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value"],"title":"InputContentUrlSource","description":"URL-referenced source."},"InterfaceResponse":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the interface"},"version":{"type":"string","title":"Version","description":"Version of the interface"},"route":{"type":"string","title":"Route","description":"API route path"}},"type":"object","required":["type","version","route"],"title":"InterfaceResponse"},"InternalServerErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"InternalServerErrorResponse","example":{"detail":"Internal server error","error_code":"INTERNAL_SERVER_ERROR"}},"KnowledgeConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeDatabaseConfig"},"type":"array"},{"type":"null"}],"title":"Dbs"},"knowledge_instances":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeInstanceConfig"},"type":"array"},{"type":"null"}],"title":"Knowledge Instances"}},"type":"object","title":"KnowledgeConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeDatabaseConfig":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeDomainConfig"},{"type":"null"}]},"tables":{"items":{"type":"string"},"type":"array","title":"Tables","default":[]}},"type":"object","required":["db_id"],"title":"KnowledgeDatabaseConfig","description":"Configuration for a knowledge database with its tables"},"KnowledgeDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"KnowledgeDomainConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeInstanceConfig":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"db_id":{"type":"string","title":"Db Id"},"table":{"type":"string","title":"Table"}},"type":"object","required":["id","name","db_id","table"],"title":"KnowledgeInstanceConfig","description":"Configuration for a single knowledge instance"},"LearningConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_LearningDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"LearningConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningCreate":{"properties":{"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"content":{"additionalProperties":true,"type":"object","title":"Content","description":"The learning content payload"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID. When the request is authenticated, must match the JWT subject or be omitted/null (which creates a global / non-user-scoped record)."},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"}},"type":"object","required":["learning_type","content"],"title":"LearningCreate","description":"Request body for creating a learning record."},"LearningDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"LearningDomainConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningResponse":{"properties":{"learning_id":{"type":"string","title":"Learning Id","description":"Unique identifier for the learning record"},"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID (for entity-specific learnings)"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type (e.g. 'person', 'company')"},"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"The learning content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Creation timestamp (Unix epoch seconds)"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp (Unix epoch seconds)"}},"type":"object","required":["learning_id","learning_type"],"title":"LearningResponse","description":"A single learning record as returned by the API."},"LearningUpdate":{"properties":{"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Replacement content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Replacement metadata"}},"type":"object","title":"LearningUpdate","description":"Request body for updating a learning record. Identity fields are immutable."},"LearningUserStats":{"properties":{"user_id":{"type":"string","title":"User Id","description":"The user ID"},"last_learning_updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Learning Updated At","description":"Most recent learning update for this user (Unix epoch seconds)"}},"type":"object","required":["user_id"],"title":"LearningUserStats","description":"A user that owns learning records, with their most recent activity.\n\nUsed as a lightweight index for the per-user view: list users here, then drill into a\nsingle user's records via ``GET /learnings?user_id=...``. No per-user count is returned\n-- the user-scoped stores (``user_profile``, ``user_memory``) keep a single record per\nuser, so a record count would always be 1; the actual memory count lives in that\nrecord's ``content``."},"Manifest":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"},"quick_prompts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quick Prompts"}},"type":"object","title":"Manifest","description":"OS-level UI metadata for an agent/team/workflow.\n\nFields here are AgentOS UI metadata only. ``description`` is unrelated to\n``Agent.description`` / ``Team.description`` / ``Workflow.description``,\nwhich are sent to the model.\n\nRendering surfaces:\n- ``description``, ``labels``: home/landing card\n- ``quick_prompts``: chat page"},"McpInfo":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the MCP server is enabled on this OS instance","default":false},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Path where the MCP server is mounted, null when disabled"},"oauth":{"anyOf":[{"$ref":"#/components/schemas/McpOAuthInfo"},{"type":"null"}],"description":"OAuth discovery details when the MCP endpoint is OAuth-protected, null otherwise"}},"type":"object","title":"McpInfo","description":"MCP server availability for the /info endpoint."},"McpOAuthInfo":{"properties":{"authorization_servers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorization Servers","description":"Issuer URL(s) of the authorization server(s) protecting the MCP endpoint"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource","description":"RFC 9728 resource URL advertised for the MCP endpoint"}},"type":"object","title":"McpOAuthInfo","description":"OAuth discovery details for an MCP endpoint protected by ``AgentOS(mcp_auth=...)``."},"MemoryConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MemoryDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MemoryConfig","description":"Configuration for the Memory domain of the AgentOS"},"MemoryDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MemoryDomainConfig","description":"Configuration for the Memory domain of the AgentOS"},"Message":{"properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"kind":{"type":"string","const":"message","title":"Kind","default":"message"},"messageId":{"type":"string","title":"Messageid"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taskid"}},"type":"object","required":["messageId","parts","role"],"title":"Message","description":"Represents a single message in the conversation between a user and an agent."},"Meta":{"properties":{"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of results per page","default":20},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number","default":1}},"type":"object","title":"Meta","description":"Inline metadata schema for pagination."},"MetricsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MetricsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MetricsConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MetricsDomainConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsResponse":{"properties":{"metrics":{"items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"type":"array","title":"Metrics","description":"List of daily aggregated metrics"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp of the most recent metrics update"}},"type":"object","required":["metrics"],"title":"MetricsResponse"},"Model":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"Model"},"ModelResponse":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the model"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"ModelResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"NotFoundResponse","example":{"detail":"Not found","error_code":"NOT_FOUND"}},"NotImplementedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"NotImplementedResponse","example":{"detail":"Operation not supported for this resource type"}},"OptimizeMemoriesRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID to optimize memories for"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model in `provider:model_id` format. Current examples include `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, and `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`."},"apply":{"type":"boolean","title":"Apply","description":"If True, apply optimization changes to database. If False, return preview only without saving.","default":true}},"type":"object","required":["user_id"],"title":"OptimizeMemoriesRequest","description":"Schema for memory optimization request"},"OptimizeMemoriesResponse":{"properties":{"memories":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Memories","description":"List of optimized memory objects"},"memories_before":{"type":"integer","minimum":0.0,"title":"Memories Before","description":"Number of memories before optimization"},"memories_after":{"type":"integer","minimum":0.0,"title":"Memories After","description":"Number of memories after optimization"},"tokens_before":{"type":"integer","minimum":0.0,"title":"Tokens Before","description":"Token count before optimization"},"tokens_after":{"type":"integer","minimum":0.0,"title":"Tokens After","description":"Token count after optimization"},"tokens_saved":{"type":"integer","minimum":0.0,"title":"Tokens Saved","description":"Number of tokens saved through optimization"},"reduction_percentage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Reduction Percentage","description":"Percentage of token reduction achieved"}},"type":"object","required":["memories","memories_before","memories_after","tokens_before","tokens_after","tokens_saved","reduction_percentage"],"title":"OptimizeMemoriesResponse","description":"Schema for memory optimization response"},"PaginatedResponse_ApprovalResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ApprovalResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ApprovalResponse]"},"PaginatedResponse_ComponentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ComponentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ComponentResponse]"},"PaginatedResponse_ContentResponseSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentResponseSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ContentResponseSchema]"},"PaginatedResponse_EvalSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EvalSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[EvalSchema]"},"PaginatedResponse_LearningResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningResponse]"},"PaginatedResponse_LearningUserStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningUserStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningUserStats]"},"PaginatedResponse_RegistryContentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RegistryContentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[RegistryContentResponse]"},"PaginatedResponse_ScheduleResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleResponse]"},"PaginatedResponse_ScheduleRunResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleRunResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleRunResponse]"},"PaginatedResponse_ServiceAccountResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ServiceAccountResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ServiceAccountResponse]"},"PaginatedResponse_SessionSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SessionSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[SessionSchema]"},"PaginatedResponse_TraceDetail_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceDetail"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceDetail]"},"PaginatedResponse_TraceSessionStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSessionStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSessionStats]"},"PaginatedResponse_TraceSummary_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSummary"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSummary]"},"PaginatedResponse_UserMemorySchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserMemorySchema]"},"PaginatedResponse_UserStatsSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserStatsSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserStatsSchema]"},"PaginatedResponse_VectorSearchResult_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VectorSearchResult"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[VectorSearchResult]"},"PaginationInfo":{"properties":{"page":{"type":"integer","minimum":0.0,"title":"Page","description":"Current page number (0-indexed)","default":0},"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of items per page","default":20},"total_pages":{"type":"integer","minimum":0.0,"title":"Total Pages","description":"Total number of pages","default":0},"total_count":{"type":"integer","minimum":0.0,"title":"Total Count","description":"Total count of items","default":0},"search_time_ms":{"type":"number","minimum":0.0,"title":"Search Time Ms","description":"Search execution time in milliseconds","default":0}},"type":"object","title":"PaginationInfo"},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/DataPart"}],"title":"Part"},"ReaderSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the reader"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the reader"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the reader's capabilities"},"chunkers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chunkers","description":"List of supported chunking strategies"}},"type":"object","required":["id"],"title":"ReaderSchema"},"ReasoningMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"reasoning","title":"Role","default":"reasoning"},"content":{"type":"string","title":"Content"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"ReasoningMessage","description":"A reasoning message containing the agent's internal reasoning process."},"RegistryContentResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/RegistryResourceType"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name","type"],"title":"RegistryContentResponse"},"RegistryResourceType":{"type":"string","enum":["tool","model","db","vector_db","schema","function","agent","team","knowledge","memory_manager","session_summary_manager"],"title":"RegistryResourceType","description":"Types of resources that can be stored in a registry."},"RemoteContentSourceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content source"},"name":{"type":"string","title":"Name","description":"Display name for the content source"},"type":{"type":"string","title":"Type","description":"Type of content source (s3, gcs, sharepoint, github, azureblob)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Default path prefix for this source"}},"type":"object","required":["id","name","type"],"title":"RemoteContentSourceSchema","description":"Schema for remote content source configuration."},"ResumeEntry":{"properties":{"interruptId":{"type":"string","title":"Interruptid"},"status":{"type":"string","enum":["resolved","cancelled"],"title":"Status"},"payload":{"anyOf":[{},{"type":"null"}],"title":"Payload"}},"additionalProperties":true,"type":"object","required":["interruptId","status"],"title":"ResumeEntry","description":"A per-interrupt response in the resume array of a RunAgentInput."},"Role":{"type":"string","enum":["agent","user"],"title":"Role","description":"Identifies the sender of the message. `user` for the client, `agent` for the service."},"RunAgentInput":{"properties":{"threadId":{"type":"string","title":"Threadid"},"runId":{"type":"string","title":"Runid"},"parentRunId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentrunid"},"state":{"title":"State"},"messages":{"items":{"oneOf":[{"$ref":"#/components/schemas/DeveloperMessage"},{"$ref":"#/components/schemas/SystemMessage"},{"$ref":"#/components/schemas/AssistantMessage"},{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/ToolMessage"},{"$ref":"#/components/schemas/ActivityMessage"},{"$ref":"#/components/schemas/ReasoningMessage"}],"discriminator":{"propertyName":"role","mapping":{"activity":"#/components/schemas/ActivityMessage","assistant":"#/components/schemas/AssistantMessage","developer":"#/components/schemas/DeveloperMessage","reasoning":"#/components/schemas/ReasoningMessage","system":"#/components/schemas/SystemMessage","tool":"#/components/schemas/ToolMessage","user":"#/components/schemas/UserMessage"}}},"type":"array","title":"Messages"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","title":"Tools"},"context":{"items":{"$ref":"#/components/schemas/Context"},"type":"array","title":"Context"},"forwardedProps":{"title":"Forwardedprops"},"resume":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResumeEntry"},"type":"array"},{"type":"null"}],"title":"Resume"}},"additionalProperties":true,"type":"object","required":["threadId","runId","state","messages","tools","context","forwardedProps"],"title":"RunAgentInput","description":"Input for running an agent."},"RunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that executed this run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"RunSchema"},"RunStatus":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","PAUSED","CANCELLED","ERROR","REGENERATED"],"title":"RunStatus","description":"State of the main run response"},"ScheduleCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"cron_expr":{"type":"string","maxLength":128,"title":"Cron Expr"},"endpoint":{"type":"string","maxLength":512,"title":"Endpoint"},"method":{"type":"string","maxLength":10,"title":"Method","default":"POST"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"type":"string","maxLength":64,"title":"Timezone","default":"UTC"},"timeout_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Timeout Seconds","default":3600},"max_retries":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Max Retries","default":0},"retry_delay_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Retry Delay Seconds","default":60}},"type":"object","required":["name","cron_expr","endpoint"],"title":"ScheduleCreate"},"ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"cron_expr":{"type":"string","title":"Cron Expr"},"timezone":{"type":"string","title":"Timezone"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"max_retries":{"type":"integer","title":"Max Retries"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","method","endpoint","cron_expr","timezone","timeout_seconds","max_retries","retry_delay_seconds","enabled"],"title":"ScheduleResponse"},"ScheduleRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"schedule_id":{"type":"string","title":"Schedule Id"},"attempt":{"type":"integer","title":"Attempt"},"triggered_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triggered At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"status":{"type":"string","title":"Status"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","schedule_id","attempt","status"],"title":"ScheduleRunResponse"},"ScheduleStateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","enabled"],"title":"ScheduleStateResponse","description":"Trimmed response for state-changing operations (enable/disable)."},"ScheduleUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"cron_expr":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Cron Expr"},"endpoint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Endpoint"},"method":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Method"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Timezone"},"timeout_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":1.0},{"type":"null"}],"title":"Timeout Seconds"},"max_retries":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Max Retries"},"retry_delay_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":1.0},{"type":"null"}],"title":"Retry Delay Seconds"}},"type":"object","title":"ScheduleUpdate"},"ScopeItem":{"properties":{"scope":{"type":"string","title":"Scope","description":"Scope string, e.g. 'agents:*:run'"},"effect":{"type":"string","enum":["allow","deny"],"title":"Effect","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["scope"],"title":"ScopeItem","description":"Write shape for one scope grant \u2014 the canonical RBAC payload for every scope-bearing API.\n\nEndpoints that take scopes accept these objects only (a bare string is a validation\nerror). ``effect`` is constrained here so every consumer rejects typos at the model\nlayer; whether ``deny`` is *semantically* legal stays per-endpoint (roles support\ndeny rules, service-account tokens are pure grants and reject it)."},"ScopeSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Scope id (always null here; kept for shape parity with the cloud RBAC API, which addresses scopes individually)"},"raw":{"type":"string","title":"Raw","description":"Original scope string, e.g. 'agents:*:run'"},"namespace":{"type":"string","title":"Namespace","description":"Resource namespace, e.g. 'agents'"},"sub_namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Namespace","description":"Specific resource id or wildcard '*'"},"permission":{"type":"string","title":"Permission","description":"Action, e.g. 'read' / 'run' / 'write'"},"value":{"type":"string","title":"Value","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["raw","namespace","permission"],"title":"ScopeSchema","description":"Read shape for one scope \u2014 the parsed RBAC payload shared by every scope-bearing API.\n\nMirrors the cloud RBAC scope shape ({raw, namespace, sub_namespace, permission, value})\nso a frontend renders scopes from any AgentOS API with one integration."},"SendMessageRequest":{"description":"Represents a JSON-RPC request for the `message/send` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/send","default":"message/send","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendMessageRequest","type":"object"},"SendMessageSuccessResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id"},"jsonrpc":{"type":"string","const":"2.0","title":"Jsonrpc","default":"2.0"},"result":{"anyOf":[{"$ref":"#/components/schemas/Task"},{"$ref":"#/components/schemas/Message"}],"title":"Result"}},"type":"object","required":["result"],"title":"SendMessageSuccessResponse","description":"Represents a successful JSON-RPC response for the `message/send` method."},"SendStreamingMessageRequest":{"description":"Represents a JSON-RPC request for the `message/stream` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/stream","default":"message/stream","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendStreamingMessageRequest","type":"object"},"ServiceAccountCreate":{"properties":{"name":{"type":"string","maxLength":63,"title":"Name","description":"Machine identity name (lowercase slug), e.g. 'claude-code' or 'github-actions'"},"scopes":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScopeItem"},"type":"array"},{"type":"null"}],"title":"Scopes","description":"Scopes granted to the token, as {scope, effect} objects (the shared RBAC write shape; token scopes are grants, so only effect='allow' is accepted). Defaults to run and read scopes: agents:run, teams:run, workflows:run, sessions:read"},"expires_in_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Expires In Days","description":"Days until the token expires (default: 90)","default":90},"never_expires":{"type":"boolean","title":"Never Expires","description":"Mint a non-expiring token. Must be set explicitly; overrides expires_in_days.","default":false},"allow_privileged_scopes":{"type":"boolean","title":"Allow Privileged Scopes","description":"Required to grant privileged scopes: any write or delete action, the admin scope, or any service_accounts scope. Privileged tokens must be deliberate, never accidental.","default":false}},"type":"object","required":["name"],"title":"ServiceAccountCreate"},"ServiceAccountCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"token":{"type":"string","title":"Token","description":"The plaintext token. Shown exactly once - store it securely now."}},"type":"object","required":["id","name","principal","token_prefix","created_at","token"],"title":"ServiceAccountCreateResponse","description":"Returned once, at creation. The token is never retrievable again."},"ServiceAccountResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","name","principal","token_prefix","created_at"],"title":"ServiceAccountResponse","description":"Service account metadata. Never includes the token hash or plaintext."},"ServiceUnavailableResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ServiceUnavailableResponse","example":{"detail":"Feature not supported by the configured service"}},"SessionConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_SessionDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"SessionConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"SessionDomainConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier for the session"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state data of the session"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when session was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when session was last updated"},"session_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type","description":"Type of session: agent, team, or workflow"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["session_id","session_name"],"title":"SessionSchema"},"SessionType":{"type":"string","enum":["agent","team","workflow"],"title":"SessionType"},"SlackChallengeResponse":{"properties":{"challenge":{"type":"string","title":"Challenge","description":"Challenge string to echo back to Slack"}},"type":"object","required":["challenge"],"title":"SlackChallengeResponse"},"SlackEventResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"}},"type":"object","title":"SlackEventResponse"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"SourceFileSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Full path/key of the file"},"name":{"type":"string","title":"Name","description":"Display name (filename)"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"File size in bytes"},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified","description":"ISO 8601 timestamp of last modification"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"MIME type of the file"}},"type":"object","required":["key","name"],"title":"SourceFileSchema","description":"Schema for a file in a content source."},"SourceFilesResponseSchema":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"ID of the content source"},"source_name":{"type":"string","title":"Source Name","description":"Name of the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Prefix filter that was applied"},"folders":{"items":{"$ref":"#/components/schemas/SourceFolderSchema"},"type":"array","title":"Folders","description":"Subfolders at this level"},"files":{"items":{"$ref":"#/components/schemas/SourceFileSchema"},"type":"array","title":"Files","description":"List of files at this level"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["source_id","source_name","meta"],"title":"SourceFilesResponseSchema","description":"Response schema for listing files in a content source."},"SourceFolderSchema":{"properties":{"prefix":{"type":"string","title":"Prefix","description":"Full prefix to use for navigating into this folder"},"name":{"type":"string","title":"Name","description":"Display name of the folder"},"is_empty":{"type":"boolean","title":"Is Empty","description":"Whether the folder contains any files","default":false}},"type":"object","required":["prefix","name"],"title":"SourceFolderSchema","description":"Schema for a folder in a content source."},"SystemMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"system","title":"Role","default":"system"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"SystemMessage","description":"A system message."},"Task":{"properties":{"artifacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Artifact"},"type":"array"},{"type":"null"}],"title":"Artifacts"},"contextId":{"type":"string","title":"Contextid"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"History"},"id":{"type":"string","title":"Id"},"kind":{"type":"string","const":"task","title":"Kind","default":"task"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"status":{"$ref":"#/components/schemas/TaskStatus"}},"type":"object","required":["contextId","id","status"],"title":"Task","description":"Represents a single, stateful operation or conversation between a client and an agent."},"TaskState":{"type":"string","enum":["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"],"title":"TaskState","description":"Defines the lifecycle states of a Task."},"TaskStatus":{"properties":{"message":{"anyOf":[{"$ref":"#/components/schemas/Message"},{"type":"null"}]},"state":{"$ref":"#/components/schemas/TaskState"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp","examples":["2023-10-27T10:00:00Z"]}},"type":"object","required":["state"],"title":"TaskStatus","description":"Represents the status of a task at a specific point in time."},"TeamResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"members":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"$ref":"#/components/schemas/TeamResponse"}]},"type":"array"},{"type":"null"}],"title":"Members"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"TeamResponse"},"TeamRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the team run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that executed this run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the team run"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this team run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this team run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this team run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this team run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"TeamRunSchema"},"TeamSessionDetailSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID used in this session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of team interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"team_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Team Data","description":"Team-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"}},"type":"object","required":["session_id","session_name"],"title":"TeamSessionDetailSchema"},"TeamSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the team"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the team"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the team"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Team execution mode (coordinate, route, broadcast, tasks)"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the team leader"}},"type":"object","title":"TeamSummaryResponse"},"TelegramStatusResponse":{"properties":{"status":{"type":"string","title":"Status","default":"available"}},"type":"object","title":"TelegramStatusResponse"},"TelegramWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status"}},"type":"object","required":["status"],"title":"TelegramWebhookResponse"},"TextInputContent":{"properties":{"type":{"type":"string","const":"text","title":"Type","default":"text"},"text":{"type":"string","title":"Text"}},"additionalProperties":true,"type":"object","required":["text"],"title":"TextInputContent","description":"A text fragment in a multimodal user message."},"TextPart":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"TextPart","description":"Represents a text segment within a message or artifact."},"Tool":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{},{"type":"null"}],"title":"Parameters"}},"additionalProperties":true,"type":"object","required":["name","description"],"title":"Tool","description":"A tool definition."},"ToolCall":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/FunctionCall"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","function"],"title":"ToolCall","description":"A tool call, modelled after OpenAI tool calls."},"ToolMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"tool","title":"Role","default":"tool"},"content":{"type":"string","title":"Content"},"toolCallId":{"type":"string","title":"Toolcallid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content","toolCallId"],"title":"ToolMessage","description":"A tool result message."},"TraceDetail":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent/workflow"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the agent/workflow"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"},"tree":{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array","title":"Tree","description":"Hierarchical tree of spans (root nodes)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at","tree"],"title":"TraceDetail","description":"Detailed trace information with hierarchical span tree"},"TraceNode":{"properties":{"id":{"type":"string","title":"Id","description":"Span ID"},"name":{"type":"string","title":"Name","description":"Span name (e.g., 'agent.run', 'llm.invoke')"},"type":{"type":"string","title":"Type","description":"Span kind (AGENT, TEAM, WORKFLOW, LLM, TOOL)"},"duration":{"type":"string","title":"Duration","description":"Human-readable duration (e.g., '123ms', '1.5s')"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"End time (Pydantic auto-serializes to ISO 8601)"},"status":{"type":"string","title":"Status","description":"Status code (OK, ERROR)"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the span"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the span"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"spans":{"anyOf":[{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array"},{"type":"null"}],"title":"Spans","description":"Child spans in the trace hierarchy"},"step_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Type","description":"Workflow step type (Step, Condition, function, Agent, Team)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional span attributes and data"},"extra_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Data","description":"Flexible field for custom attributes and additional data"}},"type":"object","required":["id","name","type","duration","start_time","end_time","status"],"title":"TraceNode","description":"Recursive node structure for rendering trace hierarchy in the frontend"},"TraceSearchGroupBy":{"type":"string","enum":["run","session"],"title":"TraceSearchGroupBy","description":"Grouping options for trace search results."},"TraceSearchRequest":{"properties":{"filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter","description":"FilterExpr DSL as JSON dict. Supports operators: EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH, AND, OR, NOT."},"group_by":{"$ref":"#/components/schemas/TraceSearchGroupBy","description":"Grouping mode: 'run' returns individual TraceDetail, 'session' returns aggregated TraceSessionStats.","default":"run"},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number (1-indexed)","default":1},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"Number of traces per page (max 100)","default":20}},"type":"object","title":"TraceSearchRequest","description":"Request body for POST /traces/search with advanced filtering.\n\nThe filter field accepts a FilterExpr DSL dict supporting composable queries\nwith AND/OR/NOT logic and operators like EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH.\n\nExample for run grouping (default):\n {\n \"filter\": {\n \"op\": \"AND\",\n \"conditions\": [\n {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n {\"op\": \"CONTAINS\", \"key\": \"user_id\", \"value\": \"admin\"}\n ]\n },\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n }\n\nExample for session grouping:\n {\n \"filter\": {\"op\": \"EQ\", \"key\": \"agent_id\", \"value\": \"my-agent\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n }"},"TraceSessionStats":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID(s) used in the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID associated with the session"},"total_traces":{"type":"integer","title":"Total Traces","description":"Total number of traces in this session"},"first_trace_at":{"type":"string","format":"date-time","title":"First Trace At","description":"Time of first trace (Pydantic auto-serializes to ISO 8601)"},"last_trace_at":{"type":"string","format":"date-time","title":"Last Trace At","description":"Time of last trace (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["session_id","total_traces","first_trace_at","last_trace_at"],"title":"TraceSessionStats","description":"Aggregated trace statistics grouped by session"},"TraceSummary":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR, UNSET)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at"],"title":"TraceSummary","description":"Summary information for trace list view"},"TracesConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_TracesDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"TracesConfig","description":"Configuration for the Traces domain of the AgentOS"},"TracesDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"TracesDomainConfig","description":"Configuration for the Traces domain of the AgentOS"},"UnauthenticatedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"UnauthenticatedResponse","example":{"detail":"Unauthenticated access","error_code":"UNAUTHENTICATED"}},"UpdateEvalRunRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"New name for the evaluation run"}},"type":"object","required":["name"],"title":"UpdateEvalRunRequest"},"UpdateSessionRequest":{"properties":{"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Updated session name"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Updated session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Updated metadata"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary","description":"Session summary"}},"type":"object","title":"UpdateSessionRequest"},"UserMemoryCreateSchema":{"properties":{"memory":{"type":"string","maxLength":5000,"minLength":1,"title":"Memory","description":"Memory content text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags to categorize the memory"}},"type":"object","required":["memory"],"title":"UserMemoryCreateSchema","description":"Define the payload expected for creating a new user memory"},"UserMemorySchema":{"properties":{"memory_id":{"type":"string","title":"Memory Id","description":"Unique identifier for the memory"},"memory":{"type":"string","title":"Memory","description":"Memory content text"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags associated with the memory"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID associated with this memory"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with this memory"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when memory was last updated"}},"type":"object","required":["memory_id","memory"],"title":"UserMemorySchema"},"UserMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"user","title":"Role","default":"user"},"content":{"anyOf":[{"type":"string"},{"items":{"oneOf":[{"$ref":"#/components/schemas/TextInputContent"},{"$ref":"#/components/schemas/ImageInputContent"},{"$ref":"#/components/schemas/AudioInputContent"},{"$ref":"#/components/schemas/VideoInputContent"},{"$ref":"#/components/schemas/DocumentInputContent"},{"$ref":"#/components/schemas/BinaryInputContent"}],"discriminator":{"propertyName":"type","mapping":{"audio":"#/components/schemas/AudioInputContent","binary":"#/components/schemas/BinaryInputContent","document":"#/components/schemas/DocumentInputContent","image":"#/components/schemas/ImageInputContent","text":"#/components/schemas/TextInputContent","video":"#/components/schemas/VideoInputContent"}}},"type":"array"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"UserMessage","description":"A user message supporting text or multimodal content."},"UserStatsSchema":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"total_memories":{"type":"integer","minimum":0.0,"title":"Total Memories","description":"Total number of memories for this user"},"last_memory_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Memory Updated At","description":"Timestamp of the most recent memory update"}},"type":"object","required":["user_id","total_memories"],"title":"UserStatsSchema","description":"Schema for user memory statistics"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"ValidationErrorResponse","example":{"detail":"Validation error","error_code":"VALIDATION_ERROR"}},"VectorDbSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the vector database"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the vector database"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the vector database"},"search_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Search Types","description":"List of supported search types (vector, keyword, hybrid)"}},"type":"object","required":["id"],"title":"VectorDbSchema"},"VectorSearchRequestSchema":{"properties":{"query":{"type":"string","title":"Query","description":"The search query text"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database ID to search in"},"knowledge_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledge Id","description":"Knowledge base ID to search in"},"vector_db_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vector Db Ids","description":"List of vector database IDs to search in"},"search_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Type","description":"The type of search to perform (vector, keyword, hybrid)"},"max_results":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Max Results","description":"The maximum number of results to return"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Filters to apply to the search results"},"meta":{"anyOf":[{"$ref":"#/components/schemas/Meta"},{"type":"null"}],"description":"Pagination metadata. Limit and page number to return a subset of results."}},"type":"object","required":["query"],"title":"VectorSearchRequestSchema","description":"Schema for vector search request."},"VectorSearchResult":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the search result document"},"content":{"type":"string","title":"Content","description":"Content text of the document"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the document"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Metadata associated with the document"},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"Usage statistics (e.g., token counts)"},"reranking_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reranking Score","description":"Reranking score for relevance"},"content_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Id","description":"ID of the source content"},"content_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Origin","description":"Origin URL or source of the content"},"size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"}},"type":"object","required":["id","content"],"title":"VectorSearchResult","description":"Schema for search result documents."},"VideoInputContent":{"properties":{"type":{"type":"string","const":"video","title":"Type","default":"video"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"VideoInputContent","description":"A video input content fragment."},"WhatsAppWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status","default":"ok"}},"type":"object","title":"WhatsAppWebhookResponse"},"WorkflowResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema","description":"Input schema for the workflow"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps","description":"List of workflow steps"},"agent":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"type":"null"}],"description":"Agent configuration if used"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamResponse"},{"type":"null"}],"description":"Team configuration if used"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"workflow_agent":{"type":"boolean","title":"Workflow Agent","description":"Whether this workflow uses a WorkflowAgent","default":false},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowResponse"},"WorkflowRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the workflow run"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the workflow"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was executed"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the workflow"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"Type of content returned"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status of the workflow run"},"step_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Results","description":"Results from each workflow step"},"step_executor_runs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Executor Runs","description":"Executor runs for each step"},"step_requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Requirements","description":"HITL step requirements (resolved state for historical display)"},"pause_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Kind","description":"Kind of HITL pause: 'step' or 'executor'"},"paused_step_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Step Name","description":"Name of the step that caused the pause"},"paused_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Paused Step Index","description":"Index of the step that caused the pause"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the workflow"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the workflow"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the workflow"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the workflow"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the workflow"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"}},"type":"object","required":["run_id"],"title":"WorkflowRunSchema"},"WorkflowSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID used in this session"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name","description":"Name of the workflow"},"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Data","description":"Complete session data"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current workflow state"},"workflow_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Data","description":"Workflow-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["session_id","session_name"],"title":"WorkflowSessionDetailSchema"},"WorkflowSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowSummaryResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} diff --git a/reference-api/openapi.yaml b/reference-api/openapi.yaml index ff8cac9d1..bca9fcac3 100644 --- a/reference-api/openapi.yaml +++ b/reference-api/openapi.yaml @@ -9,19 +9,30 @@ paths: tags: - Home summary: API Information - description: |- - Get basic information about this AgentOS API instance, including: - - - API metadata and version - - Available capabilities overview - - Links to key endpoints and documentation + description: Return the AgentOS instance name, ID, and version. operationId: get_api_info responses: '200': description: API information retrieved successfully content: application/json: - schema: {} + schema: + properties: + name: + type: string + title: Name + id: + type: string + title: Id + version: + type: string + title: Version + type: object + required: + - name + - id + - version + title: ApiInfoResponse examples: home: summary: Example home response @@ -339,17 +350,21 @@ paths: anyOf: - type: string - type: 'null' - description: Filter by run status (PENDING, RUNNING, COMPLETED, ERROR) + description: 'Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED' title: Status - description: Filter by run status (PENDING, RUNNING, COMPLETED, ERROR) + description: 'Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED' responses: '200': description: List of runs retrieved successfully content: application/json: - schema: {} + schema: + items: + $ref: '#/components/schemas/RunSchema' + type: array + title: Response List Agent Runs '400': - description: Bad Request + description: Run listing is unavailable for remote agents content: application/json: schema: @@ -367,7 +382,7 @@ paths: schema: $ref: '#/components/schemas/ForbiddenResponse' '404': - description: Agent not found + description: Agent or session not found content: application/json: schema: @@ -379,11 +394,17 @@ paths: schema: $ref: '#/components/schemas/ValidationErrorResponse' '500': - description: Internal Server Error + description: Agent resolution failed content: application/json: schema: $ref: '#/components/schemas/InternalServerErrorResponse' + '501': + description: The selected agent does not support run listing + content: + application/json: + schema: + $ref: '#/components/schemas/NotImplementedResponse' /agents/{agent_id}/runs/{run_id}/cancel: post: tags: @@ -2723,8 +2744,29 @@ paths: title: Response Slack Events Simple Agent '400': description: Missing Slack headers + content: + application/json: + schema: + $ref: '#/components/schemas/BadRequestResponse' '403': description: Invalid Slack signature + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' + '500': + description: Slack signing is not configured, or the event body is not valid JSON + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerErrorResponse' + requestBody: + required: true + content: + application/json: + schema: + type: object + additionalProperties: true parameters: - name: X-Slack-Request-Timestamp in: header @@ -2770,9 +2812,23 @@ paths: schema: $ref: '#/components/schemas/SlackEventResponse' '400': - description: Malformed interaction payload + description: Missing Slack headers or malformed interaction payload + content: + application/json: + schema: + $ref: '#/components/schemas/BadRequestResponse' '403': description: Invalid Slack signature + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' + '500': + description: Slack signing is not configured + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerErrorResponse' parameters: - name: X-Slack-Request-Timestamp in: header @@ -2786,6 +2842,12 @@ paths: schema: type: string description: HMAC signature for request verification (v0=hash) + - name: X-Slack-Retry-Num + in: header + required: false + schema: + type: string + description: Retry attempt number. Retried interactions return 200 without reprocessing. requestBody: required: true content: @@ -2809,7 +2871,17 @@ paths: description: Successful Response content: application/json: - schema: {} + schema: + properties: + status: + type: string + title: Status + type: object + required: + - status + title: WhatsAppStatusResponse + example: + status: available /whatsapp/webhook: get: tags: @@ -2819,10 +2891,49 @@ paths: operationId: whatsapp_verify_simple_agent responses: '200': - description: Successful Response + description: Webhook challenge accepted + content: + text/plain: + schema: + type: string + example: challenge-token + '400': + description: No challenge was provided content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/BadRequestResponse' + '403': + description: Invalid verify token or mode + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' + '500': + description: Webhook verification is not configured + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerErrorResponse' + parameters: + - name: hub.mode + in: query + required: true + schema: + type: string + description: Webhook verification mode. Meta sends `subscribe`. + - name: hub.verify_token + in: query + required: true + schema: + type: string + description: Verification token configured for the WhatsApp interface. + - name: hub.challenge + in: query + required: true + schema: + type: string + description: Challenge returned as plain text after successful verification. post: tags: - Whatsapp @@ -7150,12 +7261,6 @@ paths: date: '2025-07-31T00:00:00Z' created_at: '2025-07-31T12:38:52Z' updated_at: '2025-07-31T12:49:01Z' - '400': - description: Invalid date range parameters - content: - application/json: - schema: - $ref: '#/components/schemas/BadRequestResponse' '401': description: Unauthorized content: @@ -7168,12 +7273,6 @@ paths: application/json: schema: $ref: '#/components/schemas/ForbiddenResponse' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/NotFoundResponse' '422': description: Validation Error content: @@ -7181,7 +7280,7 @@ paths: schema: $ref: '#/components/schemas/ValidationErrorResponse' '500': - description: Failed to retrieve metrics + description: Metrics retrieval failed. In Agno 2.7.4, invalid or ambiguous database selections surface as 500 responses. content: application/json: schema: @@ -9420,9 +9519,40 @@ paths: description: All databases migrated successfully content: application/json: - schema: {} + schema: + properties: + message: + type: string + title: Message + type: object + required: + - message + title: MigrationResponse example: message: All databases migrated successfully to version 3.0.0 + '207': + description: Some database migrations failed + content: + application/json: + schema: + properties: + message: + type: string + title: Message + failed: + type: object + additionalProperties: + type: string + title: Failed + type: object + required: + - message + - failed + title: PartialMigrationResponse + example: + message: Migrated 2/3 databases to latest version + failed: + archive-db: Migration failed '400': description: Bad Request content: @@ -9488,7 +9618,15 @@ paths: description: Database migrated successfully content: application/json: - schema: {} + schema: + properties: + message: + type: string + title: Message + type: object + required: + - message + title: MigrationResponse example: message: Database migrated successfully to version 3.0.0 '400': @@ -10073,7 +10211,7 @@ paths: - Components summary: Get Config Version description: Get a specific config version by number. - operationId: get_config + operationId: get_config_version security: - HTTPBearer: [] parameters: @@ -11405,6 +11543,12 @@ paths: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + '503': + description: Service accounts are not supported by the configured database + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' /service-accounts/{service_account_id}: delete: tags: diff --git a/scripts/make_openapi.py b/scripts/make_openapi.py index 448b86511..c246c84eb 100644 --- a/scripts/make_openapi.py +++ b/scripts/make_openapi.py @@ -254,6 +254,33 @@ def sort_responses(operation: dict) -> None: assert config_example.get("id") == "demo" and "os_id" not in config_example config_example["os_id"] = config_example.pop("id") + home = spec["paths"]["/"]["get"] + assert home["description"] == ( + "Get basic information about this AgentOS API instance, including:\n\n" + "- API metadata and version\n" + "- Available capabilities overview\n" + "- Links to key endpoints and documentation" + ) + home["description"] = "Return the AgentOS instance name, ID, and version." + home_schema = home["responses"]["200"]["content"]["application/json"]["schema"] + assert home_schema == {} + home_schema.update( + { + "properties": { + "name": {"type": "string", "title": "Name"}, + "id": {"type": "string", "title": "Id"}, + "version": {"type": "string", "title": "Version"}, + }, + "type": "object", + "required": ["name", "id", "version"], + "title": "ApiInfoResponse", + } + ) + + component_config = spec["paths"]["/components/{component_id}/configs/{version}"]["get"] + assert component_config["operationId"] == "get_config" + component_config["operationId"] = "get_config_version" + delete_component = spec["paths"]["/components/{component_id}"]["delete"] assert delete_component["description"] == "Delete a component by ID." delete_component["description"] = ( @@ -342,6 +369,18 @@ def sort_responses(operation: dict) -> None: "surface as 500 responses." ) + get_metrics = spec["paths"]["/metrics"]["get"] + metrics_get_responses = get_metrics["responses"] + assert metrics_get_responses["400"]["description"] == "Invalid date range parameters" + assert metrics_get_responses["404"]["description"] == "Not Found" + del metrics_get_responses["400"] + del metrics_get_responses["404"] + assert metrics_get_responses["500"]["description"] == "Failed to retrieve metrics" + metrics_get_responses["500"]["description"] = ( + "Metrics retrieval failed. In Agno 2.7.4, invalid or ambiguous database selections " + "surface as 500 responses." + ) + refresh_metrics = spec["paths"]["/metrics/refresh"]["post"] metrics_responses = refresh_metrics["responses"] assert metrics_responses["400"]["description"] == "Bad Request" @@ -354,6 +393,44 @@ def sort_responses(operation: dict) -> None: "surface as 500 responses." ) + list_agent_runs = spec["paths"]["/agents/{agent_id}/runs"]["get"] + list_runs_schema = list_agent_runs["responses"]["200"]["content"]["application/json"]["schema"] + assert list_runs_schema == {} + list_runs_schema.update( + { + "items": {"$ref": "#/components/schemas/RunSchema"}, + "type": "array", + "title": "Response List Agent Runs", + } + ) + status_parameters = [ + parameter for parameter in list_agent_runs["parameters"] if parameter["name"] == "status" + ] + assert len(status_parameters) == 1 + status_parameter = status_parameters[0] + old_status_description = "Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)" + new_status_description = ( + "Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED" + ) + assert status_parameter["description"] == old_status_description + assert status_parameter["schema"]["description"] == old_status_description + status_parameter["description"] = new_status_description + status_parameter["schema"]["description"] = new_status_description + list_run_responses = list_agent_runs["responses"] + assert list_run_responses["400"]["description"] == "Bad Request" + list_run_responses["400"]["description"] = "Run listing is unavailable for remote agents" + assert list_run_responses["404"]["description"] == "Agent not found" + list_run_responses["404"]["description"] = "Agent or session not found" + assert list_run_responses["500"]["description"] == "Internal Server Error" + list_run_responses["500"]["description"] = "Agent resolution failed" + add_response( + list_agent_runs, + "501", + "The selected agent does not support run listing", + "NotImplementedResponse", + ) + sort_responses(list_agent_runs) + revoke_service_account = spec["paths"]["/service-accounts/{service_account_id}"]["delete"] assert revoke_service_account["description"] == ( "Revoke a service account. Idempotent.\n\n" @@ -433,6 +510,16 @@ def sort_responses(operation: dict) -> None: ) sort_responses(create_service_account) + list_service_accounts = spec["paths"]["/service-accounts"]["get"] + assert set(list_service_accounts["responses"]) == {"200", "422"} + add_response( + list_service_accounts, + "503", + "Service accounts are not supported by the configured database", + "ServiceUnavailableResponse", + ) + sort_responses(list_service_accounts) + schedule_operations = ( ("/schedules", "get", "200", (("503", "Scheduler storage is unavailable", "ServiceUnavailableResponse"),)), ( @@ -531,6 +618,50 @@ def sort_responses(operation: dict) -> None: add_response(operation, status, description, schema_name) sort_responses(operation) + for migration_path, schema_title in ( + ("/databases/all/migrate", "MigrationResponse"), + ("/databases/{db_id}/migrate", "MigrationResponse"), + ): + migration = spec["paths"][migration_path]["post"] + success_schema = migration["responses"]["200"]["content"]["application/json"]["schema"] + assert success_schema == {} + success_schema.update( + { + "properties": {"message": {"type": "string", "title": "Message"}}, + "type": "object", + "required": ["message"], + "title": schema_title, + } + ) + + migrate_all_databases = spec["paths"]["/databases/all/migrate"]["post"] + assert "207" not in migrate_all_databases["responses"] + migrate_all_databases["responses"]["207"] = { + "description": "Some database migrations failed", + "content": { + "application/json": { + "schema": { + "properties": { + "message": {"type": "string", "title": "Message"}, + "failed": { + "type": "object", + "additionalProperties": {"type": "string"}, + "title": "Failed", + }, + }, + "type": "object", + "required": ["message", "failed"], + "title": "PartialMigrationResponse", + }, + "example": { + "message": "Migrated 2/3 databases to latest version", + "failed": {"archive-db": "Migration failed"}, + }, + } + }, + } + sort_responses(migrate_all_databases) + optimize_memories = spec["paths"]["/optimize-memories"]["post"] assert optimize_memories["description"] == ( "Optimize all memories for a given user using the default summarize strategy. This operation " @@ -570,6 +701,63 @@ def sort_responses(operation: dict) -> None: whatsapp_path = spec["paths"].get("/whatsapp/webhook") if whatsapp_path is not None: + whatsapp_status = spec["paths"]["/whatsapp/status"]["get"] + status_schema = whatsapp_status["responses"]["200"]["content"]["application/json"]["schema"] + assert status_schema == {} + status_schema.update( + { + "properties": {"status": {"type": "string", "title": "Status"}}, + "type": "object", + "required": ["status"], + "title": "WhatsAppStatusResponse", + "example": {"status": "available"}, + } + ) + + whatsapp_verify = whatsapp_path["get"] + assert whatsapp_verify.get("parameters") in (None, []) + whatsapp_verify["parameters"] = [ + { + "name": "hub.mode", + "in": "query", + "required": True, + "schema": {"type": "string"}, + "description": "Webhook verification mode. Meta sends `subscribe`.", + }, + { + "name": "hub.verify_token", + "in": "query", + "required": True, + "schema": {"type": "string"}, + "description": "Verification token configured for the WhatsApp interface.", + }, + { + "name": "hub.challenge", + "in": "query", + "required": True, + "schema": {"type": "string"}, + "description": "Challenge returned as plain text after successful verification.", + }, + ] + verify_success = whatsapp_verify["responses"]["200"] + assert verify_success["content"] == {"application/json": {"schema": {}}} + verify_success["description"] = "Webhook challenge accepted" + verify_success["content"] = { + "text/plain": { + "schema": {"type": "string"}, + "example": "challenge-token", + } + } + add_response(whatsapp_verify, "400", "No challenge was provided", "BadRequestResponse") + add_response(whatsapp_verify, "403", "Invalid verify token or mode", "ForbiddenResponse") + add_response( + whatsapp_verify, + "500", + "Webhook verification is not configured", + "InternalServerErrorResponse", + ) + sort_responses(whatsapp_verify) + whatsapp_webhook = whatsapp_path["post"] assert whatsapp_webhook["description"] == "Process incoming WhatsApp messages" assert "requestBody" not in whatsapp_webhook @@ -604,6 +792,49 @@ def sort_responses(operation: dict) -> None: ) sort_responses(whatsapp_webhook) + slack_events_path = spec["paths"].get("/slack/events") + if slack_events_path is not None: + slack_events = slack_events_path["post"] + assert set(slack_events["responses"]) == {"200", "400", "403"} + assert "requestBody" not in slack_events + slack_events["requestBody"] = { + "required": True, + "content": { + "application/json": { + "schema": {"type": "object", "additionalProperties": True}, + } + }, + } + assert slack_events["responses"]["400"] == {"description": "Missing Slack headers"} + slack_events["responses"]["400"] = response_ref("Missing Slack headers", "BadRequestResponse") + assert slack_events["responses"]["403"] == {"description": "Invalid Slack signature"} + slack_events["responses"]["403"] = response_ref("Invalid Slack signature", "ForbiddenResponse") + add_response( + slack_events, + "500", + "Slack signing is not configured, or the event body is not valid JSON", + "InternalServerErrorResponse", + ) + sort_responses(slack_events) + + slack_interactions = spec["paths"]["/slack/interactions"]["post"] + assert set(slack_interactions["responses"]) == {"200", "400", "403"} + assert slack_interactions["responses"]["400"] == {"description": "Malformed interaction payload"} + slack_interactions["responses"]["400"] = response_ref( + "Missing Slack headers or malformed interaction payload", "BadRequestResponse" + ) + assert slack_interactions["responses"]["403"] == {"description": "Invalid Slack signature"} + slack_interactions["responses"]["403"] = response_ref( + "Invalid Slack signature", "ForbiddenResponse" + ) + add_response( + slack_interactions, + "500", + "Slack signing is not configured", + "InternalServerErrorResponse", + ) + sort_responses(slack_interactions) + agui_path = spec["paths"].get("/agui") if agui_path is not None: agui_run = agui_path["post"] @@ -828,6 +1059,24 @@ def preserve_curated_slack_metadata(spec: dict) -> dict: assert ACTION_CHECK_STATUS == "check_status" interactions = spec["paths"]["/slack/interactions"]["post"] + interaction_parameter_names = [parameter["name"] for parameter in interactions["parameters"]] + retry_parameter = { + "name": "X-Slack-Retry-Num", + "in": "header", + "required": False, + "schema": {"type": "string"}, + "description": "Retry attempt number. Retried interactions return 200 without reprocessing.", + } + if "X-Slack-Retry-Num" not in interaction_parameter_names: + assert interaction_parameter_names == ["X-Slack-Request-Timestamp", "X-Slack-Signature"] + interactions["parameters"].append(retry_parameter) + else: + assert interaction_parameter_names == [ + "X-Slack-Request-Timestamp", + "X-Slack-Signature", + "X-Slack-Retry-Num", + ] + assert interactions["parameters"][-1] == retry_parameter old_actions = ( "- `row_approve` - Approve a pending tool call\n" "- `row_reject` - Reject a pending tool call\n" From 7b4ec1cf4ab5b41034d30d8ff7c7644e97da56e0 Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 06:34:08 +0100 Subject: [PATCH 19/47] docs: resolve final convergence findings --- examples/tools/mcp/multiple-servers.mdx | 4 + reasoning/usage/tools/reasoning-tool-team.mdx | 2 +- reference-api/openapi.json | 2 +- reference-api/openapi.yaml | 157 +++++++++++++++-- .../schema/approvals/get-approval-count.mdx | 2 +- scripts/examples_sync/apply_oneoffs.py | 2 +- scripts/examples_sync/generate.py | 7 + scripts/make_openapi.py | 164 +++++++++++++++++- telemetry.mdx | 2 +- 9 files changed, 315 insertions(+), 27 deletions(-) diff --git a/examples/tools/mcp/multiple-servers.mdx b/examples/tools/mcp/multiple-servers.mdx index 1ca564ee5..da328bbb8 100644 --- a/examples/tools/mcp/multiple-servers.mdx +++ b/examples/tools/mcp/multiple-servers.mdx @@ -4,6 +4,10 @@ description: "Use multiple MCP servers in a single agent." source: cookbook/91_tools/mcp/multiple_servers.py --- + + This example docstring names AccuWeather and `ACCUWEATHER_API_KEY`, but the code starts Airbnb and Brave MCP servers and reads `BRAVE_API_KEY`. Follow the generated environment steps below; no AccuWeather credential is used. + + ```python multiple_servers.py """ This example demonstrates how to use multiple MCP servers in a single agent. diff --git a/reasoning/usage/tools/reasoning-tool-team.mdx b/reasoning/usage/tools/reasoning-tool-team.mdx index c363a30b3..97a984dc5 100644 --- a/reasoning/usage/tools/reasoning-tool-team.mdx +++ b/reasoning/usage/tools/reasoning-tool-team.mdx @@ -5,7 +5,7 @@ description: "Give a Team leader ReasoningTools to optimize delegation across a This is a multi-agent team reasoning example with reasoning tools. -Enabling the reasoning option on the team leader helps optimize delegation and enhances multi-agent collaboration by selectively invoking deeper reasoning when required. +Adding `ReasoningTools` to the team leader lets it invoke deeper reasoning while coordinating the member agents. diff --git a/reference-api/openapi.json b/reference-api/openapi.json index ae6e01156..c9719de3c 100644 --- a/reference-api/openapi.json +++ b/reference-api/openapi.json @@ -1 +1 @@ -{"openapi":"3.1.0","info":{"title":"Agno API Reference","description":"The all-in-one, private, secure agent platform that runs in your cloud.","version":"2.7.4"},"paths":{"/":{"get":{"tags":["Home"],"summary":"API Information","description":"Return the AgentOS instance name, ID, and version.","operationId":"get_api_info","responses":{"200":{"description":"API information retrieved successfully","content":{"application/json":{"schema":{"properties":{"name":{"type":"string","title":"Name"},"id":{"type":"string","title":"Id"},"version":{"type":"string","title":"Version"}},"type":"object","required":["name","id","version"],"title":"ApiInfoResponse"},"examples":{"home":{"summary":"Example home response","value":{"name":"AgentOS API","id":"demo-os","version":"1.0.0"}}}}}}}}},"/health":{"get":{"tags":["Health"],"summary":"Health Check","description":"Check the health status of the AgentOS API. Returns a simple status indicator.","operationId":"health_check","responses":{"200":{"description":"API is healthy and operational","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"},"example":{"status":"ok","instantiated_at":"2025-06-10T12:00:00Z"}}}}}}},"/info":{"get":{"tags":["Core"],"summary":"Get OS Info","description":"Return lightweight, unauthenticated metadata about this AgentOS instance.","operationId":"get_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoResponse"}}}}}}},"/config":{"get":{"tags":["Core"],"summary":"Get OS Configuration","description":"Retrieve the complete configuration of the AgentOS instance, including:\n\n- Available models and databases\n- Registered agents, teams, and workflows\n- Chat, session, memory, knowledge, and evaluation configurations\n- Available interfaces and their routes","operationId":"get_config","responses":{"200":{"description":"OS configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"},"example":{"description":"Example AgentOS configuration","available_models":[],"databases":["9c884dc4-9066-448c-9074-ef49ec7eb73c"],"session":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Sessions"}}]},"metrics":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Metrics"}}]},"memory":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Memory"}}]},"knowledge":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Knowledge"}}]},"evals":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Evals"}}]},"agents":[{"id":"main-agent","name":"Main Agent","db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c"}],"teams":[],"workflows":[],"interfaces":[],"os_id":"demo"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/models":{"get":{"tags":["Core"],"summary":"Get Available Models","description":"Retrieve a list of all unique models currently used by agents and teams in this OS instance. This includes the model ID and provider information for each model.","operationId":"get_models","responses":{"200":{"description":"List of models retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Response Get Models"},"example":[{"id":"gpt-4","provider":"openai"},{"id":"claude-3-sonnet","provider":"anthropic"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}/runs":{"post":{"tags":["Agents"],"summary":"Create Agent Run","description":"Execute an agent with a message and optional media files. Supports both streaming and non-streaming responses.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_agent_run"}}}},"responses":{"200":{"description":"Agent run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"examples":{"event_stream":{"summary":"Example event stream response","value":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Agents"],"summary":"List Agent Runs","description":"List runs for an agent within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_agent_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED","title":"Status"},"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RunSchema"},"type":"array","title":"Response List Agent Runs"}}}},"400":{"description":"Run listing is unavailable for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Agent resolution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/cancel":{"post":{"tags":["Agents"],"summary":"Cancel Agent Run","description":"Cancel a currently executing agent run. This will attempt to stop the agent's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/continue":{"post":{"tags":["Agents"],"summary":"Continue Agent Run","description":"Advance a persisted agent run from its current state. Dispatches on the body shape and the persisted run state (see ADR-003 in specs/agno/features/checkpointing/decisions.md).\n\n**Variants:**\n- PAUSED + tools provided \u2192 apply HITL tool results, resume\n- PAUSED + resolved admin approval (empty tools) \u2192 apply resolution, resume\n- RUNNING / ERROR (no unresolved HITL requirements) \u2192 resume from last persisted state\n- COMPLETED + new tools \u2192 continue with appended messages\n\n**Tools Parameter:**\nJSON string containing array of tool execution objects with results. Optional \u2014 only required when the persisted run has unresolved HITL requirements.","operationId":"continue_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_agent_run"}}}},"responses":{"200":{"description":"Agent run continued successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n"}}},"400":{"description":"Invalid JSON in tools field or invalid tool structure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Run has a pending admin approval and cannot be continued by the user yet."},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/sessions/{session_id}/fork":{"post":{"tags":["Agents"],"summary":"Fork Agent Session","description":"Deep-copy a session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_agent_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents":{"get":{"tags":["Agents"],"summary":"List All Agents","description":"Retrieve a comprehensive list of all agents configured in this OS instance.\n\n**Returns:**\n- Agent metadata (ID, name, description)\n- Model configuration and capabilities\n- Available tools and their configurations\n- Session, knowledge, memory, and reasoning settings\n- Only meaningful (non-default) configurations are included","operationId":"get_agents","responses":{"200":{"description":"List of agents retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentResponse"},"type":"array","title":"Response Get Agents"},"example":[{"id":"main-agent","name":"Main Agent","db_id":"c6bf0644-feb8-4930-a305-380dae5ad6aa","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Details","description":"Retrieve detailed configuration and capabilities of a specific agent.\n\n**Returns comprehensive agent information including:**\n- Model configuration and provider details\n- Complete tool inventory and configurations\n- Session management settings\n- Knowledge base and memory configurations\n- Reasoning capabilities and settings\n- System prompts and response formatting options","operationId":"get_agent","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Agent details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"},"example":{"id":"main-agent","name":"Main Agent","db_id":"9e064c70-6821-4840-a333-ce6230908a70","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Run","description":"Retrieve the status and output of an agent run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Agents"],"summary":"List Agent Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_agent_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Agents"],"summary":"Get Agent Run Checkpoint Snapshot","description":"Return a derived run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_agent_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/resume":{"post":{"tags":["Agents"],"summary":"Resume Agent Run Stream","description":"Resume an SSE stream for an agent run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_agent_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_agent_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"application/json":{"schema":{}},"text/event-stream":{}}},"400":{"description":"Not supported for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs":{"post":{"tags":["Teams"],"summary":"Create Team Run","description":"Execute a team collaboration with multiple agents working together on a task.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_team_run"}}}},"responses":{"200":{"description":"Team run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Teams"],"summary":"List Team Runs","description":"List runs for a team within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_team_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/cancel":{"post":{"tags":["Teams"],"summary":"Cancel Team Run","description":"Cancel a currently executing team run. This will attempt to stop the team's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel team run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/resume":{"post":{"tags":["Teams"],"summary":"Resume Team Run Stream","description":"Resume an SSE stream for a team run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_team_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_team_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{}}},"400":{"description":"Stream resumption is unavailable for remote and factory teams. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/continue":{"post":{"tags":["Teams"],"summary":"Continue Team Run","description":"Continue a paused or incomplete team run with updated requirements.\n\n**Use Cases:**\n- Resume execution after tool approval/rejection\n- Provide manual tool execution results\n- Resume after admin approval (requirements can be empty; resolution fetched from DB)\n\n**Requirements Parameter:**\nJSON string containing array of requirement objects with tool execution results.\nCan be empty when an admin-required approval has been resolved.","operationId":"continue_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_team_run"}}}},"responses":{"200":{"description":"Team run continued successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n"}}},"400":{"description":"Invalid JSON in requirements field or invalid requirement structure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Run has a pending admin approval and cannot be continued by the user yet."},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is not paused (e.g. run is already running, continued, or errored). Only PAUSED runs can be continued."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/sessions/{session_id}/fork":{"post":{"tags":["Teams"],"summary":"Fork Team Session","description":"Deep-copy a team session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_team_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams":{"get":{"tags":["Teams"],"summary":"List All Teams","description":"Retrieve a comprehensive list of all teams configured in this OS instance.\n\n**Returns team information including:**\n- Team metadata (ID, name, description, execution mode)\n- Model configuration for team coordination\n- Team member roster with roles and capabilities\n- Knowledge sharing and memory configurations","operationId":"get_teams","responses":{"200":{"description":"List of teams retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamResponse"},"type":"array","title":"Response Get Teams"},"example":[{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"agno_memories","app_url":"/memory/1","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/teams/{team_id}":{"get":{"tags":["Teams"],"summary":"Get Team Details","description":"Retrieve detailed configuration and member information for a specific team.","operationId":"get_team","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"},"example":{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}":{"get":{"tags":["Teams"],"summary":"Get Team Run","description":"Retrieve the status and output of a team run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Teams"],"summary":"List Team Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored team run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_team_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Teams"],"summary":"Get Team Run Checkpoint Snapshot","description":"Return a derived team run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_team_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows":{"get":{"tags":["Workflows"],"summary":"List All Workflows","description":"Retrieve a comprehensive list of all workflows configured in this OS instance.\n\n**Return Information:**\n- Workflow metadata (ID, name, description)\n- Input schema requirements\n- Step sequence and execution flow\n- Associated agents and teams","operationId":"get_workflows","responses":{"200":{"description":"List of workflows retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Response Get Workflows"},"example":[{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/workflows/{workflow_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Details","description":"Retrieve detailed configuration and step information for a specific workflow.","operationId":"get_workflow","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Workflow version to retrieve","title":"Version"},"description":"Workflow version to retrieve"}],"responses":{"200":{"description":"Workflow details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"},"example":{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs":{"post":{"tags":["Workflows"],"summary":"Execute Workflow","description":"Execute a workflow with the provided input data. Workflows can run in streaming or batch mode.\n\n**Execution Modes:**\n- **Streaming (`stream=true`)**: Real-time step-by-step execution updates via SSE\n- **Non-Streaming (`stream=false`)**: Complete workflow execution with final result\n\n**Workflow Execution Process:**\n1. Input validation against workflow schema\n2. Sequential or parallel step execution based on workflow design\n3. Data flow between steps with transformation\n4. Error handling and automatic retries where configured\n5. Final result compilation and response\n\n**Session Management:**\nWorkflows support session continuity for stateful execution across multiple runs.","operationId":"create_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_run"}}}},"responses":{"200":{"description":"Workflow executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid input data or workflow configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Workflow execution error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"List Workflow Runs","description":"List runs for a workflow within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_workflow_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/continue":{"post":{"tags":["Workflows"],"summary":"Continue Workflow Run","description":"Continue a paused workflow run with resolved requirements.\n\n**Use Cases:**\n- Resume after step-level HITL (confirmation, user input, router selection)\n- Resume after executor-level HITL (agent/team tool confirmation within a step)\n\n**Requirements Parameter:**\nJSON string containing the resolved step requirements.","operationId":"continue_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_workflow_run"}}}},"responses":{"200":{"description":"Workflow run continued successfully","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: StepCompleted\ndata: {\"step_name\": \"step1\"}\n\n"}}},"400":{"description":"Invalid JSON in requirements field","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is not paused. Only PAUSED runs can be continued."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/cancel":{"post":{"tags":["Workflows"],"summary":"Cancel Workflow Run","description":"Cancel a currently executing workflow run, stopping all active steps and cleanup.\n**Note:** Complex workflows with multiple parallel steps may take time to fully cancel.","operationId":"cancel_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found, or the requested run was not found in the caller's session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel workflow run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/resume":{"post":{"tags":["Workflows"],"summary":"Resume Workflow Run Stream","description":"Resume an SSE stream for a workflow run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_workflow_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_workflow_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"application/json":{"schema":{}},"text/event-stream":{}}},"400":{"description":"Stream resumption is unavailable for remote and factory workflows. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Run","description":"Retrieve the status and output of a workflow run. Use this to poll for run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/slack/events":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Receives incoming Slack events (messages, mentions, thread starts).\n\n**URL Verification:** On first setup, Slack sends a `url_verification` challenge. The endpoint echoes back the challenge string.\n\n**Event Processing:** Normal events are acknowledged immediately with `{\"status\": \"ok\"}` and processed in the background. This prevents Slack's 3-second retry timeout.\n\n**Retry Handling:** Events with `X-Slack-Retry-Num` header are duplicates and return 200 without reprocessing.\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Event Subscriptions > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for creating a Slack App or use the [manifest](/agent-os/interfaces/slack/setup#2-create-the-slack-app) for quick setup.\n","operationId":"slack_events_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SlackChallengeResponse"},{"$ref":"#/components/schemas/SlackEventResponse"}],"title":"Response Slack Events Simple Agent"}}}},"400":{"description":"Missing Slack headers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured, or the event body is not valid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number (present on retried events)"}]}},"/slack/interactions":{"post":{"tags":["Slack"],"summary":"Slack Interactions","description":"Handles Slack interactive components for Human-in-the-Loop (HITL) workflows.\n\n**Supported Actions:**\n- `row_approve` - Approve a pending tool call\n- `row_reject` - Reject a pending tool call\n- `submit_pause` - Submit form data for a paused workflow\n- `check_status` - Check an admin approval and resume an approved run\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Interactivity & Shortcuts > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for step-by-step instructions or the [HITL guide](/agent-os/interfaces/slack/hitl) for approval workflows.\n","operationId":"slack_interactions_simple_agent","responses":{"200":{"description":"Interaction accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackEventResponse"}}}},"400":{"description":"Missing Slack headers or malformed interaction payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number. Retried interactions return 200 without reprocessing."}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"URL-encoded JSON interaction payload (Slack sends interactive component data as a single form field)"}}}}}}}},"/whatsapp/status":{"get":{"tags":["Whatsapp"],"summary":"Status","operationId":"whatsapp_status_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"WhatsAppStatusResponse","example":{"status":"available"}}}}}}}},"/whatsapp/webhook":{"get":{"tags":["Whatsapp"],"summary":"Whatsapp Verify","description":"Handle WhatsApp webhook verification","operationId":"whatsapp_verify_simple_agent","responses":{"200":{"description":"Webhook challenge accepted","content":{"text/plain":{"schema":{"type":"string"},"example":"challenge-token"}}},"400":{"description":"No challenge was provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid verify token or mode","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Webhook verification is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"hub.mode","in":"query","required":true,"schema":{"type":"string"},"description":"Webhook verification mode. Meta sends `subscribe`."},{"name":"hub.verify_token","in":"query","required":true,"schema":{"type":"string"},"description":"Verification token configured for the WhatsApp interface."},{"name":"hub.challenge","in":"query","required":true,"schema":{"type":"string"},"description":"Challenge returned as plain text after successful verification."}]},"post":{"tags":["Whatsapp"],"summary":"Whatsapp Webhook","description":"Process incoming WhatsApp messages","operationId":"whatsapp_webhook_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppWebhookResponse"}}}},"403":{"description":"Invalid webhook signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Signature validation is not configured, or the JSON body is malformed or is not an object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Hub-Signature-256","in":"header","required":true,"schema":{"type":"string"},"description":"SHA-256 HMAC signature for the raw request body, prefixed with `sha256=`"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}},"/telegram/status":{"get":{"tags":["Telegram"],"summary":"Telegram Status","operationId":"telegram_status_simple-agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramStatusResponse"}}}}}}},"/telegram/webhook":{"post":{"tags":["Telegram"],"summary":"Telegram Webhook","operationId":"telegram_webhook_simple-agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramWebhookResponse"}}}},"403":{"description":"Invalid webhook secret token"}}}},"/agui":{"post":{"tags":["AGUI"],"summary":"Run Agent","operationId":"run_agent_agui_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentInput"}}},"required":true},"responses":{"200":{"description":"Server-sent event stream","content":{"text/event-stream":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/status":{"get":{"tags":["AGUI"],"summary":"Get Status","operationId":"get_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/a2a/agents/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Agent Card","operationId":"get_agent_card_a2a_agents__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Agent","description":"Send a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"A2A is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/agents/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Agent Task","description":"Get the status and result of an agent task by ID.","operationId":"get_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Agent Task","description":"Cancel a running agent task.","operationId":"cancel_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Agent","description":"Stream a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/teams/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Team Card","operationId":"get_team_card_a2a_teams__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Team","description":"Send a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/teams/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Team Task","description":"Get the status and result of a team task by ID.","operationId":"get_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Team Task","description":"Cancel a running team task.","operationId":"cancel_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Team","description":"Stream a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/workflows/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Workflow Card","operationId":"get_workflow_card_a2a_workflows__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/workflows/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Workflow","description":"Send a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/workflows/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Workflow","description":"Stream a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/message/send":{"post":{"tags":["A2A"],"summary":"Send Message","description":"[DEPRECATED] Send a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"send_message","responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/a2a/message/stream":{"post":{"tags":["A2A"],"summary":"Stream Message","description":"[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message","responses":{"200":{"description":"Streaming response with task updates","content":{"application/json":{"schema":{}},"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n"}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/sessions":{"get":{"tags":["Sessions"],"summary":"List Sessions","description":"Retrieve paginated list of sessions with filtering and sorting options. Supports filtering by session type (agent, team, workflow), component, user, and name. Sessions represent conversation histories and execution contexts.","operationId":"get_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types.","title":"Type"},"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types."},{"name":"component_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by component ID (agent/team/workflow ID)","title":"Component Id"},"description":"Filter sessions by component ID (agent/team/workflow ID)"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by user ID","title":"User Id"},"description":"Filter sessions by user ID"},{"name":"session_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by name (partial match)","title":"Session Name"},"description":"Filter sessions by name (partial match)"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of sessions to return per page","default":20,"title":"Limit"},"description":"Number of sessions to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort sessions by","default":"created_at","title":"Sort By"},"description":"Field to sort sessions by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query sessions from","title":"Db Id"},"description":"Database ID to query sessions from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Sessions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_SessionSchema_"},"example":{"session_example":{"summary":"Example session response","value":{"data":[{"session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_state":{},"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}]}}}}}},"400":{"description":"Invalid session type or filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in query parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Sessions"],"summary":"Create New Session","description":"Create a new empty session with optional configuration. Useful for pre-creating sessions with specific session_state, metadata, or other properties before running any agent/team/workflow interactions. The session can later be used by providing its session_id in run requests.","operationId":"create_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SessionType","description":"Type of session to create (agent, team, or workflow)","default":"agent"},"description":"Type of session to create (agent, team, or workflow)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to create session in","title":"Db Id"},"description":"Database ID to create session in"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest","description":"Session configuration data","default":{}}}}},"responses":{"201":{"description":"Session created successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Create Session"},"examples":{"agent_session_example":{"summary":"Example created agent session","value":{"user_id":"user-123","agent_session_id":"new-session-id","session_id":"new-session-id","session_name":"New Session","session_state":{"key":"value"},"metadata":{"key":"value"},"agent_id":"agent-1","created_at":"2025-10-21T12:00:00Z","updated_at":"2025-10-21T12:00:00Z"}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A session with the supplied session_id already exists"},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Multiple Sessions","description":"Delete multiple sessions by their IDs in a single operation. This action cannot be undone and will permanently remove all specified sessions and their runs.","operationId":"delete_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSessionRequest"}}}},"responses":{"204":{"description":"Sessions deleted successfully"},"400":{"description":"Invalid request - session IDs and types length mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["Sessions"],"summary":"Get Session by ID","description":"Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow).","operationId":"get_session_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to retrieve","title":"Session Id"},"description":"Session ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query session from","title":"User Id"},"description":"User ID to query session from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query session from","title":"Db Id"},"description":"Database ID to query session from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query session from","title":"Table"},"description":"Table to query session from"}],"responses":{"200":{"description":"Session details retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Get Session By Id"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Session","description":"Permanently delete a specific session and all its associated runs. This action cannot be undone and will remove all conversation history.","operationId":"delete_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to delete","title":"Session Id"},"description":"Session ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Sessions"],"summary":"Update Session","description":"Update session properties such as session_name, session_state, metadata, or summary. Use this endpoint to modify the session name, update state, add metadata, or update the session summary.","operationId":"update_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to update","title":"Session Id"},"description":"Session ID to update"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID","title":"User Id"},"description":"User ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update operation","title":"Db Id"},"description":"Database ID to use for update operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update operation","title":"Table"},"description":"Table to use for update operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest","description":"Session update data"}}}},"responses":{"200":{"description":"Session updated successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Update Session"},"examples":{"update_summary":{"summary":"Update session summary","value":{"summary":{"summary":"The user discussed project planning with the agent.","updated_at":"2025-10-21T14:30:00Z"}}},"update_metadata":{"summary":"Update session metadata","value":{"metadata":{"tags":["planning","project"],"priority":"high"}}},"update_session_name":{"summary":"Update session name","value":{"session_name":"Updated Session Name"}},"update_session_state":{"summary":"Update session state","value":{"session_state":{"step":"completed","context":"Project planning finished","progress":100}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs":{"get":{"tags":["Sessions"],"summary":"Get Session Runs","description":"Retrieve all runs (executions) for a specific session with optional timestamp filtering. Runs represent individual interactions or executions within a session. Response schema varies based on session type.","operationId":"get_session_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get runs from","title":"Session Id"},"description":"Session ID to get runs from"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query runs from","title":"User Id"},"description":"User ID to query runs from"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created after this Unix timestamp (epoch time in seconds)","title":"Created After"},"description":"Filter runs created after this Unix timestamp (epoch time in seconds)"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created before this Unix timestamp (epoch time in seconds)","title":"Created Before"},"description":"Filter runs created before this Unix timestamp (epoch time in seconds)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query runs from","title":"Db Id"},"description":"Database ID to query runs from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query runs from","title":"Table"},"description":"Table to query runs from"}],"responses":{"200":{"description":"Session runs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}]},"title":"Response Get Session Runs"},"examples":{"completed_run":{"summary":"Example completed run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"","run_input":"Which tools do you have access to?","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","run_response_format":"text","reasoning_content":"","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069},"messages":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-08 17:52:10.101003.\n\n\nYou have the capability to retain memories from previous interactions with the user, but have not had any interactions with the user yet.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757346730},{"content":"Which tools do you have access to?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757346730},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138},"created_at":1757346730}],"events":[{"created_at":1757346730,"event":"RunStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","model":"gpt-4o","model_provider":"OpenAI"},{"created_at":1757346733,"event":"MemoryUpdateStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"MemoryUpdateCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"RunCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","content_type":"str","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069}}],"created_at":"2025-09-08T15:52:10Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found or has no runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs/{run_id}":{"get":{"tags":["Sessions"],"summary":"Get Run by ID","description":"Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run).","operationId":"get_session_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get run from","title":"Session Id"},"description":"Session ID to get run from"},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","description":"Run ID to retrieve","title":"Run Id"},"description":"Run ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query run from","title":"User Id"},"description":"User ID to query run from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query run from","title":"Db Id"},"description":"Database ID to query run from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query run from","title":"Table"},"description":"Table to query run from"}],"responses":{"200":{"description":"Run retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}],"title":"Response Get Session Run"},"examples":{"agent_run":{"summary":"Example agent run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"user_123","run_input":"Which tools do you have access to?","content":"I don't have access to external tools.","created_at":1728499200}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/rename":{"post":{"tags":["Sessions"],"summary":"Rename Session","description":"Update the name of an existing session. Useful for organizing and categorizing sessions with meaningful names for better identification and management.","operationId":"rename_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to rename","title":"Session Id"},"description":"Session ID to rename"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope rename to","title":"User Id"},"description":"User ID to scope rename to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for rename operation","title":"Db Id"},"description":"Database ID to use for rename operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_rename_session"}}}},"responses":{"200":{"description":"Session renamed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Rename Session"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Invalid session name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type or validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories":{"post":{"tags":["Memory"],"summary":"Create Memory","description":"Create a new user memory with content and associated topics. Memories are used to store contextual information for users across conversations.","operationId":"create_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for memory storage","title":"Db Id"},"description":"Database ID to use for memory storage"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for memory storage","title":"Table"},"description":"Table to use for memory storage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"mem-123","memory":"User prefers technical explanations with code examples","topics":["preferences","communication_style","technical"],"user_id":"user-456","created_at":"2024-01-15T10:30:00Z","updated_at":"2024-01-15T10:30:00Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Memory"],"summary":"Delete Multiple Memories","description":"Delete multiple user memories by their IDs in a single operation. This action cannot be undone and all specified memories will be permanently removed.","operationId":"delete_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMemoriesRequest"}}}},"responses":{"204":{"description":"Memories deleted successfully"},"400":{"description":"Invalid request - empty memory_ids list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"List Memories","description":"Retrieve paginated list of user memories with filtering and search capabilities. Filter by user, agent, team, topics, or search within memory content.","operationId":"get_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by user ID","title":"User Id"},"description":"Filter memories by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by agent ID","title":"Agent Id"},"description":"Filter memories by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by team ID","title":"Team Id"},"description":"Filter memories by team ID"},{"name":"search_content","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fuzzy search within memory content","title":"Search Content"},"description":"Fuzzy search within memory content"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of memories to return per page","default":20,"title":"Limit"},"description":"Number of memories to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort memories by","default":"updated_at","title":"Sort By"},"description":"Field to sort memories by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memories from","title":"Db Id"},"description":"Database ID to query memories from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Comma-separated list of topics to filter by","examples":["preferences,technical,communication_style"],"title":"Topics"},"description":"Comma-separated list of topics to filter by"}],"responses":{"200":{"description":"Memories retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserMemorySchema_"},"example":{"data":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories/{memory_id}":{"delete":{"tags":["Memory"],"summary":"Delete Memory","description":"Permanently delete a specific user memory. This action cannot be undone.","operationId":"delete_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to delete","title":"Memory Id"},"description":"Memory ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to delete memory for","title":"User Id"},"description":"User ID to delete memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Memory deleted successfully"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"Get Memory by ID","description":"Retrieve detailed information about a specific user memory by its ID.","operationId":"get_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to retrieve","title":"Memory Id"},"description":"Memory ID to retrieve"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query memory for","title":"User Id"},"description":"User ID to query memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memory from","title":"Db Id"},"description":"Database ID to query memory from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query memory from","title":"Table"},"description":"Table to query memory from"}],"responses":{"200":{"description":"Memory retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Memory"],"summary":"Update Memory","description":"Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values.","operationId":"update_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to update","title":"Memory Id"},"description":"Memory ID to update"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update","title":"Db Id"},"description":"Database ID to use for update"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update","title":"Table"},"description":"Table to use for update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memory_topics":{"get":{"tags":["Memory"],"summary":"Get Memory Topics","description":"Retrieve all unique topics associated with memories in the system. Useful for filtering and categorizing memories by topic.","operationId":"get_memory_topics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter topics for","title":"User Id"},"description":"User ID to filter topics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query topics from","title":"Db Id"},"description":"Database ID to query topics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query topics from","title":"Table"},"description":"Table to query topics from"}],"responses":{"200":{"description":"Memory topics retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Get Memory Topics"},"example":["preferences","communication_style","technical","industry","compliance","code_examples","requirements","healthcare","finance"]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/user_memory_stats":{"get":{"tags":["Memory"],"summary":"Get User Memory Statistics","description":"Retrieve paginated statistics about memory usage by user. Provides insights into user engagement and memory distribution across users.","operationId":"get_user_memory_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of user statistics to return per page","default":20,"title":"Limit"},"description":"Number of user statistics to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter statistics for","title":"User Id"},"description":"User ID to filter statistics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query statistics from","title":"Table"},"description":"Table to query statistics from"}],"responses":{"200":{"description":"User memory statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserStatsSchema_"},"example":{"data":[{"user_id":"123","total_memories":3,"last_memory_updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve user statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/optimize-memories":{"post":{"tags":["Memory"],"summary":"Optimize User Memories","description":"Optimize all memories for a user with the summarize strategy. The operation combines the user's memories into one summary. Set `apply=false` to preview the result without saving it. Specify a custom model as `provider:model_id`, for example `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, or `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`.","operationId":"optimize_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for optimization","title":"Db Id"},"description":"Database ID to use for optimization"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for optimization","title":"Table"},"description":"Table to use for optimization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesRequest"}}}},"responses":{"200":{"description":"Memories optimized successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesResponse"},"example":{"memories":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User has a 3-year-old golden retriever named Max who loves fetch and walks. Lives in San Francisco's Mission district, works as a product manager in tech. Enjoys hiking Bay Area trails, trying new restaurants (especially Japanese, Thai, Mexican), and learning piano for 1.5 years.","topics":["pets","location","work","hobbies","food_preferences"],"user_id":"user2","updated_at":"2025-11-18T10:30:00Z"}],"memories_before":4,"memories_after":1,"tokens_before":450,"tokens_after":180,"tokens_saved":270,"reduction_percentage":60.0}}}},"400":{"description":"Bad request - User ID is required or invalid model string format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No memories found for user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to optimize memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings":{"get":{"tags":["Learnings"],"summary":"List Learnings","description":"List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) \u2014 this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`).","operationId":"list_learnings","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by learning type","title":"Learning Type"},"description":"Filter by learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"namespace","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by namespace","title":"Namespace"},"description":"Filter by namespace"},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity ID","title":"Entity Id"},"description":"Filter by entity ID"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity type","title":"Entity Type"},"description":"Filter by entity type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":100,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used).","title":"Sort By"},"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used)."},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Learnings"],"summary":"Create Learning","description":"Create a new learning record. For the identity-keyed learning types (`user_profile`, `user_memory`, `session_context`, `entity_memory`) the record id is derived deterministically from the identity fields so it reconciles with what the agent reads/writes \u2014 provide those fields (else 422), and if a record already exists the request is rejected with 409 (use PATCH to update it). Other types get a generated id. For a scoped (non-admin) caller, the body's `user_id` must be omitted/null or match the caller (mismatch \u2192 403); admins and unscoped callers may set any `user_id`.","operationId":"create_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users":{"get":{"tags":["Learnings"],"summary":"List Learning Users","description":"List the users that own learning records, with a per-user count and last-updated timestamp. Intended as the entry point for a per-user view: list users here, then drill into a single user's learnings via `GET /learnings?user_id=...`. Records with no owner (`user_id IS NULL`) are excluded. Pass `learning_type` to restrict the grouping to a single store (e.g. `user_profile` or `user_memory`). For a scoped (non-admin) caller results are bound to that user; an explicit `user_id` that differs is rejected with 403. Admins and unscoped callers list all users. Sortable by `user_id` or `last_learning_updated_at` (the default).","operationId":"list_learning_users","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the grouping to a single learning type","title":"Learning Type"},"description":"Restrict the grouping to a single learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the result to a single user","title":"User Id"},"description":"Restrict the result to a single user"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by: user_id or last_learning_updated_at (the default)","title":"Sort By"},"description":"Field to sort by: user_id or last_learning_updated_at (the default)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningUserStats_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users/{user_id}":{"delete":{"tags":["Learnings"],"summary":"Delete Learning User","description":"Delete the learning records owned by a user. By default removes every learning type backed by the agno_learnings table (user_profile, user_memory, and any user-scoped entity records); pass `learning_type` to restrict deletion to a single store. Records with no owner (`user_id IS NULL`) are not affected. For a scoped (non-admin) caller, only their own learnings may be deleted; a different `user_id` is rejected with 403. Admins and unscoped callers may delete any user's learnings. Returns 204 even if the user had no matching records.","operationId":"delete_learning_user","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The user whose learnings should be deleted","title":"User Id"},"description":"The user whose learnings should be deleted"},{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings","title":"Learning Type"},"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/{learning_id}":{"get":{"tags":["Learnings"],"summary":"Get Learning","description":"Retrieve a single learning record by its ID.","operationId":"get_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Learnings"],"summary":"Update Learning","description":"Update a learning record. Only `content` and `metadata` may be modified; identity fields (user_id, agent_id, team_id, etc.) are immutable. Provided fields fully replace the existing values. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) are readable by any caller but may only be modified by an admin.","operationId":"update_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Learnings"],"summary":"Delete Learning","description":"Permanently delete a learning record by its ID. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) may only be deleted by an admin.","operationId":"delete_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs":{"get":{"tags":["Evals"],"summary":"List Evaluation Runs","description":"Retrieve paginated evaluation runs with filtering and sorting options. Filter by agent, team, workflow, model, or evaluation type.","operationId":"get_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Workflow ID","title":"Workflow Id"},"description":"Workflow ID"},{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model ID","title":"Model Id"},"description":"Model ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EvalFilterType"},{"type":"null"}],"description":"Filter type","title":"Type"},"description":"Filter type"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of eval runs to return","default":20,"title":"Limit"},"description":"Number of eval runs to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"eval_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)","examples":["accuracy,agent_as_judge,performance,reliability"],"title":"Eval Types"},"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)"}],"responses":{"200":{"description":"Evaluation runs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_EvalSchema_"},"example":{"data":[{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Evals"],"summary":"Delete Evaluation Runs","description":"Delete multiple evaluation runs by their IDs. This action cannot be undone.","operationId":"delete_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvalRunsRequest"}}}},"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Deletion failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Evals"],"summary":"Execute Evaluation","description":"Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both.","operationId":"run_eval","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for evaluation","title":"Db Id"},"description":"Database ID to use for evaluation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for evaluation","title":"Table"},"description":"Table to use for evaluation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRunInput"}}}},"responses":{"200":{"description":"Evaluation executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"f2b2d72f-e9e2-4f0e-8810-0a7e1ff58614","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Invalid request - provide either agent_id or team_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs/{eval_run_id}":{"get":{"tags":["Evals"],"summary":"Get Evaluation Run","description":"Retrieve detailed results and metrics for a specific evaluation run.","operationId":"get_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query eval run from","title":"Table"},"description":"Table to query eval run from"}],"responses":{"200":{"description":"Evaluation run details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Evals"],"summary":"Update Evaluation Run","description":"Update the name or other properties of an existing evaluation run.","operationId":"update_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvalRunRequest"}}}},"responses":{"200":{"description":"Evaluation run updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update evaluation run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics":{"get":{"tags":["Metrics"],"summary":"Get AgentOS Metrics","description":"Retrieve AgentOS metrics and analytics data for a specified date range. If no date range is specified, returns all available metrics.","operationId":"get_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"starting_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Starting date for metrics range (YYYY-MM-DD format)","title":"Starting Date"},"description":"Starting date for metrics range (YYYY-MM-DD format)"},{"name":"ending_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Ending date for metrics range (YYYY-MM-DD format)","title":"Ending Date"},"description":"Ending date for metrics range (YYYY-MM-DD format)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query metrics from","title":"Db Id"},"description":"Database ID to query metrics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Metrics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"},"example":{"metrics":[{"id":"7bf39658-a00a-484c-8a28-67fd8a9ddb2a","agent_runs_count":5,"agent_sessions_count":5,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":448,"output_tokens":148,"total_tokens":596,"audio_tokens":0,"input_audio_tokens":0,"output_audio_tokens":0,"cached_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":5}],"date":"2025-07-31T00:00:00Z","created_at":"2025-07-31T12:38:52Z","updated_at":"2025-07-31T12:49:01Z"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Metrics retrieval failed. In Agno 2.7.4, invalid or ambiguous database selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics/refresh":{"post":{"tags":["Metrics"],"summary":"Refresh Metrics","description":"Manually trigger recalculation of system metrics from raw data. This operation analyzes system activity logs and regenerates aggregated metrics. Useful for ensuring metrics are up-to-date or after system maintenance.","operationId":"refresh_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for metrics calculation","title":"Db Id"},"description":"Database ID to use for metrics calculation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for metrics calculation","title":"Table"},"description":"Table to use for metrics calculation"}],"responses":{"200":{"description":"Metrics refreshed successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"title":"Response Refresh Metrics"},"example":[{"id":"e77c9531-818b-47a5-99cd-59fed61e5403","agent_runs_count":2,"agent_sessions_count":2,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":256,"output_tokens":441,"total_tokens":697,"audio_total_tokens":0,"audio_input_tokens":0,"audio_output_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":2}],"date":"2025-08-12T00:00:00Z","created_at":"2025-08-12T08:01:47Z","updated_at":"2025-08-12T08:01:47Z"}]}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Refresh failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content":{"post":{"tags":["Knowledge"],"summary":"Upload Content","description":"Upload content to the knowledge base. Supports file uploads, text content, or URLs. Content is processed asynchronously in the background. Supports custom readers and chunking strategies.","operationId":"upload_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_content"}}}},"responses":{"202":{"description":"Content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-123","name":"example-document.pdf","description":"Sample document for processing","metadata":{"category":"documentation","priority":"high"},"status":"processing"}}}},"400":{"description":"Invalid request - malformed metadata or missing content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in form data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"List Content","description":"Retrieve paginated list of all content in the knowledge base with filtering and sorting options. Filter by status, content type, or metadata properties.","operationId":"get_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of content entries to return","default":20,"title":"Limit"},"description":"Number of content entries to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ContentResponseSchema_"},"example":{"data":[{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}],"meta":{"page":1,"limit":20,"total_pages":1,"total_count":2}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete All Content","description":"Permanently remove all content from the knowledge base. This is a destructive operation that cannot be undone. Use with extreme caution.","operationId":"delete_all_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete all content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/remote-content":{"post":{"tags":["Knowledge"],"summary":"Upload Remote Content","description":"Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.","operationId":"upload_remote_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_upload_remote_content"}}}},"responses":{"202":{"description":"Remote content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-456","name":"reports/q1-2024.pdf","description":"Q1 Report from S3","metadata":{"source":"s3-docs"},"status":"processing"}}}},"400":{"description":"Invalid request - unknown config or missing path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}":{"patch":{"tags":["Knowledge"],"summary":"Update Content","description":"Update content name, description, or metadata without re-uploading it. In Agno 2.7.4, this endpoint accepts `reader_id`. Local knowledge validates the value, but the content patch does not apply or persist the reader change.","operationId":"update_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","description":"Content ID","title":"Content Id"},"description":"Content ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_update_content"}}}},"responses":{"200":{"description":"Content updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Invalid request - malformed metadata or invalid reader_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"Get Content by ID","description":"Retrieve detailed information about a specific content item including processing status and metadata.","operationId":"get_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete Content by ID","description":"Permanently remove a specific content item from the knowledge base. This action cannot be undone.","operationId":"delete_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}/status":{"get":{"tags":["Knowledge"],"summary":"Get Content Status","description":"Retrieve the current processing status of a content item. Useful for monitoring asynchronous content processing progress and identifying any processing errors.","operationId":"get_content_status","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content status retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentStatusResponse"},"examples":{"completed":{"summary":"Example completed content status","value":{"status":"completed","status_message":""}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/search":{"post":{"tags":["Knowledge"],"summary":"Search Knowledge","description":"Search the knowledge base for relevant documents using query, filters and search type.","operationId":"search_knowledge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VectorSearchRequestSchema"}}},"required":true},"responses":{"200":{"description":"Search results retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_VectorSearchResult_"},"example":{"data":[{"id":"doc_123","content":"Jordan Mitchell - Software Engineer with skills in JavaScript, React, Python","name":"cv_1","meta_data":{"page":1,"chunk":1},"usage":{"total_tokens":14},"reranking_score":0.95,"content_id":"content_456"}],"meta":{"page":1,"limit":20,"total_pages":2,"total_count":35}}}}},"400":{"description":"Invalid search parameters"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No documents found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/knowledge/config":{"get":{"tags":["Knowledge"],"summary":"Get Config","description":"Retrieve available readers, chunkers, and configuration options for content processing. This endpoint provides metadata about supported file types, processing strategies, and filters.","operationId":"get_knowledge_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Knowledge configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponseSchema"},"example":{"readers":{"website":{"id":"website","name":"WebsiteReader","description":"Reads website files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"firecrawl":{"id":"firecrawl","name":"FirecrawlReader","description":"Reads firecrawl files","chunkers":["SemanticChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"youtube":{"id":"youtube","name":"YoutubeReader","description":"Reads youtube files","chunkers":["RecursiveChunker","AgenticChunker","DocumentChunker","SemanticChunker","FixedSizeChunker"]},"web_search":{"id":"web_search","name":"WebSearchReader","description":"Reads web_search files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"arxiv":{"id":"arxiv","name":"ArxivReader","description":"Reads arxiv files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"csv":{"id":"csv","name":"CsvReader","description":"Reads csv files","chunkers":["RowChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"docling":{"id":"docling","name":"DoclingReader","description":"Converts multiple document formats like PDF, DOCX, PPTX, images, HTML, etc. using IBM's Docling library","chunkers":["AgenticChunker","CodeChunker","DocumentChunker","FixedSizeChunker","RecursiveChunker","SemanticChunker"]},"docx":{"id":"docx","name":"DocxReader","description":"Reads docx files","chunkers":["DocumentChunker","FixedSizeChunker","SemanticChunker","AgenticChunker","RecursiveChunker"]},"gcs":{"id":"gcs","name":"GcsReader","description":"Reads gcs files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"json":{"id":"json","name":"JsonReader","description":"Reads json files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"markdown":{"id":"markdown","name":"MarkdownReader","description":"Reads markdown files","chunkers":["MarkdownChunker","DocumentChunker","AgenticChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"pdf":{"id":"pdf","name":"PdfReader","description":"Reads pdf files","chunkers":["DocumentChunker","FixedSizeChunker","AgenticChunker","SemanticChunker","RecursiveChunker"]},"text":{"id":"text","name":"TextReader","description":"Reads text files","chunkers":["CodeChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]}},"readersForType":{"url":["url","website","firecrawl","youtube","web_search","gcs"],"youtube":["youtube"],"text":["web_search"],"topic":["arxiv"],"file":["csv","gcs"],".csv":["csv","field_labeled_csv","docling"],".xlsx":["excel","docling"],".xls":["excel"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["excel"],"application/vnd.ms-excel":["excel"],".docx":["docx","docling"],".dotx":["docling"],".docm":["docling"],".dotm":["docling"],".pptx":["docling","pptx"],".potx":["docling"],".ppsx":["docling"],".pptm":["docling"],".ppsm":["docling"],".potm":["docling"],".doc":["docx"],".json":["json"],".md":["markdown","docling"],".pdf":["pdf","docling"],".txt":["text"],".html":["docling"],".htm":["docling"],".xhtml":["docling"],".xml":["docling"],".nxml":["docling"],".xbrl":["docling"],".adoc":["docling"],".asciidoc":["docling"],".asc":["docling"],".xlsm":["docling"],".tex":["docling"],".latex":["docling"],".tar.gz":["docling"],".vtt":["docling"],".png":["docling"],".jpeg":["docling"],".jpg":["docling"],".tiff":["docling"],".tif":["docling"],".bmp":["docling"],".webp":["docling"],".wav":["docling"],".mp3":["docling"],".m4a":["docling"],".aac":["docling"],".ogg":["docling"],".flac":["docling"],".mp4":["docling"],".avi":["docling"],".mov":["docling"]},"chunkers":{"AgenticChunker":{"key":"AgenticChunker","name":"AgenticChunker","description":"Chunking strategy that uses an LLM to determine natural breakpoints in the text","metadata":{"chunk_size":5000}},"CodeChunker":{"key":"CodeChunker","name":"CodeChunker","description":"The CodeChunker splits code into chunks based on its structure, leveraging Abstract Syntax Trees (ASTs) to create contextually relevant segments","metadata":{"chunk_size":2048}},"DocumentChunker":{"key":"DocumentChunker","name":"DocumentChunker","description":"A chunking strategy that splits text based on document structure like paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"FixedSizeChunker":{"key":"FixedSizeChunker","name":"FixedSizeChunker","description":"Chunking strategy that splits text into fixed-size chunks with optional overlap","metadata":{"chunk_size":5000,"chunk_overlap":0}},"MarkdownChunker":{"key":"MarkdownChunker","name":"MarkdownChunker","description":"A chunking strategy that splits markdown based on structure like headers, paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RecursiveChunker":{"key":"RecursiveChunker","name":"RecursiveChunker","description":"Chunking strategy that recursively splits text into chunks by finding natural break points","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RowChunker":{"key":"RowChunker","name":"RowChunker","description":"RowChunking chunking strategy","metadata":{}},"SemanticChunker":{"key":"SemanticChunker","name":"SemanticChunker","description":"Chunking strategy that splits text into semantic chunks using chonkie","metadata":{"chunk_size":5000}}},"vector_dbs":[{"id":"vector_db_1","name":"Vector DB 1","description":"Vector DB 1 description","search_types":["vector","keyword","hybrid"]}],"filters":["filter_tag_1","filter_tag2"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources":{"get":{"tags":["Knowledge"],"summary":"List Content Sources","description":"List all registered content sources (S3, GCS, SharePoint, GitHub) for the knowledge base.","operationId":"list_content_sources","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Content sources retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"title":"Response List Content Sources"},"example":[{"id":"company-s3","name":"Company Documents","type":"s3","prefix":"documents/"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources/{source_id}/files":{"get":{"tags":["Knowledge"],"summary":"List Files in Source","description":"List available files and folders in a specific content source. Supports pagination and folder navigation.","operationId":"list_source_files","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the content source","title":"Source Id"},"description":"ID of the content source"},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Path prefix to filter files","title":"Prefix"},"description":"Path prefix to filter files"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of files per page","default":100,"title":"Limit"},"description":"Number of files per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"delimiter","in":"query","required":false,"schema":{"type":"string","description":"Folder delimiter (enables folder grouping)","default":"/","title":"Delimiter"},"description":"Folder delimiter (enables folder grouping)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Files listed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceFilesResponseSchema"},"example":{"source_id":"company-s3","source_name":"Company Documents","prefix":"reports/","folders":[{"prefix":"reports/2024/","name":"2024","is_empty":false}],"files":[{"key":"reports/annual-summary.pdf","name":"annual-summary.pdf","size":102400,"last_modified":"2024-01-15T10:30:00Z","content_type":"application/pdf"}],"meta":{"page":1,"limit":100,"total_pages":1,"total_count":1}}}}},"400":{"description":"Unsupported source type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base or content source not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces":{"get":{"tags":["Traces","Traces"],"summary":"List Traces","description":"Retrieve a paginated list of execution traces with optional filtering.\n\n**Traces provide observability into:**\n- Agent execution flows\n- Model invocations and token usage\n- Tool calls and their results\n- Errors and performance bottlenecks\n\n**Filtering Options:**\n- By run, session, user, or agent ID\n- By status (OK, ERROR)\n- By time range\n\n**Pagination:**\n- Use `page` (1-indexed) and `limit` parameters\n- Response includes pagination metadata (total_pages, total_count, etc.)\n\n**Response Format:**\nReturns summary information for each trace. Use GET `/traces/{trace_id}` for detailed hierarchy.","operationId":"get_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run ID","title":"Run Id"},"description":"Filter by run ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status (OK, ERROR)","title":"Status"},"description":"Filter by status (OK, ERROR)"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of traces per page","default":20,"title":"Limit"},"description":"Number of traces per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"responses":{"200":{"description":"List of traces retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSummary_"},"example":{"data":[{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","total_spans":4,"error_count":0,"input":"What is the stock price of NVDA?","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"agent_stock","created_at":"2025-11-19T10:30:00+00:00"}],"meta":{"page":1,"limit":20,"total_pages":5,"total_count":95}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/filter-schema":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Filter Schema","description":"Returns the available filterable fields, their types, valid operators, and enum values.\n\nThe frontend uses this to dynamically build the filter bar UI:\n- Field dropdown populated from `fields[].key`\n- Operator dropdown changes per field type\n- Value input shows autocomplete for enum fields (e.g., status)\n- Logical operators (AND, OR) for combining clauses","operationId":"get_traces_filter_schema","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterSchemaResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/traces/{trace_id}":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace or Span Detail","description":"Retrieve detailed trace information with hierarchical span tree, or a specific span within the trace.\n\n**Without span_id parameter:**\nReturns the full trace with hierarchical span tree:\n- Trace metadata (ID, status, duration, context)\n- Hierarchical tree of all spans\n- Each span includes timing, status, and type-specific metadata\n\n**With span_id parameter:**\nReturns details for a specific span within the trace:\n- Span metadata (ID, name, type, timing)\n- Status and error information\n- Type-specific attributes (model, tokens, tool params, etc.)\n\n**Span Hierarchy (full trace):**\nThe `tree` field contains root spans, each with potential `children`.\nThis recursive structure represents the execution flow:\n```\nAgent.run (root)\n \u251c\u2500 LLM.invoke\n \u251c\u2500 Tool.execute\n \u2502 \u2514\u2500 LLM.invoke (nested)\n \u2514\u2500 LLM.invoke\n```\n\n**Span Types:**\n- `AGENT`: Agent execution with input/output\n- `LLM`: Model invocations with tokens and prompts\n- `TOOL`: Tool calls with parameters and results","operationId":"get_trace","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}},{"name":"span_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Span ID to retrieve specific span","title":"Span Id"},"description":"Optional: Span ID to retrieve specific span"},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Run ID to retrieve trace for","title":"Run Id"},"description":"Optional: Run ID to retrieve trace for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query trace from","title":"Db Id"},"description":"Database ID to query trace from"}],"responses":{"200":{"description":"Trace or span detail retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TraceDetail"},{"$ref":"#/components/schemas/TraceNode"}],"title":"Response Get Trace"},"examples":{"full_trace":{"summary":"Full trace with hierarchy (no span_id)","value":{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","end_time":"2025-11-19T10:30:01.200000+00:00","total_spans":4,"error_count":0,"input":"What is Tesla stock price?","output":"The current price of Tesla (TSLA) is $245.67.","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"stock_agent","created_at":"2025-11-19T10:30:00+00:00","tree":[{"id":"span1","name":"Stock_Price_Agent.run","type":"AGENT","duration":"1.2s","status":"OK","spans":[]}]}},"single_span":{"summary":"Single span detail (with span_id)","value":{"id":"span2","name":"gpt-4o-mini.invoke","type":"LLM","duration":"800ms","status":"OK","metadata":{"model":"gpt-4o-mini","input_tokens":120}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Trace or span not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/trace_session_stats":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Statistics by Session","description":"Retrieve aggregated trace statistics grouped by session ID with pagination.\n\n**Provides insights into:**\n- Total traces per session\n- First and last trace timestamps per session\n- Associated user and agent information\n\n**Filtering Options:**\n- By user ID\n- By agent ID\n\n**Use Cases:**\n- Monitor session-level activity\n- Track conversation flows\n- Identify high-activity sessions\n- Analyze user engagement patterns","operationId":"get_trace_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of sessions per page","default":20,"title":"Limit"},"description":"Number of sessions per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"}],"responses":{"200":{"description":"Trace statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"},"example":{"data":[{"session_id":"37029bc6-1794-4ba8-a629-1efedc53dcad","user_id":"kaustubh@agno.com","agent_id":"hackernews-agent","total_traces":5,"first_trace_at":"2025-11-19T10:15:16+00:00","last_trace_at":"2025-11-19T10:21:30+00:00"}],"meta":{"page":1,"limit":20,"total_pages":3,"total_count":45}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/search":{"post":{"tags":["Traces","Traces"],"summary":"Search Traces with Advanced Filters","description":"Search traces using the FilterExpr DSL for complex, composable queries.\n\n**Group By Mode:**\n- `run` (default): Returns `PaginatedResponse[TraceDetail]` with full span trees\n- `session`: Returns `PaginatedResponse[TraceSessionStats]` with aggregated session stats\n\n**Supported Operators:**\n- Comparison: `EQ`, `NEQ`, `GT`, `GTE`, `LT`, `LTE`\n- Inclusion: `IN`\n- String matching: `CONTAINS` (case-insensitive substring), `STARTSWITH` (prefix)\n- Logical: `AND`, `OR`, `NOT`\n\n**Filterable Fields:**\ntrace_id, name, status, start_time, end_time, duration_ms, run_id, session_id, user_id, agent_id, team_id, workflow_id, created_at\n\n**Example Request Body (runs):**\n```json\n{\n \"filter\": {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n}\n```\n\n**Example Request Body (sessions):**\n```json\n{\n \"filter\": {\"op\": \"CONTAINS\", \"key\": \"agent_id\", \"value\": \"stock\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n}\n```","operationId":"search_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PaginatedResponse_TraceDetail_"},{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"}],"title":"Response Search Traces"}}}},"400":{"description":"Invalid filter expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/all/migrate":{"post":{"tags":["Database"],"summary":"Migrate All Databases","description":"Migrate all database schemas to the given target version. If a target version is not provided, all databases will be migrated to the latest version.","operationId":"migrate_all_databases","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"All databases migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"All databases migrated successfully to version 3.0.0"}}}},"207":{"description":"Some database migrations failed","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"},"failed":{"type":"object","additionalProperties":{"type":"string"},"title":"Failed"}},"type":"object","required":["message","failed"],"title":"PartialMigrationResponse"},"example":{"message":"Migrated 2/3 databases to latest version","failed":{"archive-db":"Migration failed"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/{db_id}/migrate":{"post":{"tags":["Database"],"summary":"Migrate Database","description":"Migrate the given database schema to the given target version. If a target version is not provided, the database will be migrated to the latest version.","operationId":"migrate_database","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"Database migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"Database migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Database not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components":{"get":{"tags":["Components"],"summary":"List Components","description":"Retrieve a paginated list of components with optional filtering by type.","operationId":"list_components","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ComponentType"},{"type":"null"}],"description":"Filter by type: agent, team, workflow","title":"Component Type"},"description":"Filter by type: agent, team, workflow"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ComponentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Component","description":"Create a new component (agent, team, or workflow) with initial config.","operationId":"create_component","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}":{"get":{"tags":["Components"],"summary":"Get Component","description":"Retrieve a component by ID.","operationId":"get_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Components"],"summary":"Update Component","description":"Partially update a component by ID.","operationId":"update_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentUpdate","description":"Component fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Component","description":"Soft-delete a component by ID. Component configs and links remain stored.","operationId":"delete_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs":{"get":{"tags":["Components"],"summary":"List Configs","description":"List all configs for a component.","operationId":"list_configs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"include_config","in":"query","required":false,"schema":{"type":"boolean","description":"Include full config blob","default":true,"title":"Include Config"},"description":"Include full config blob"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComponentConfigResponse"},"title":"Response List Configs"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Config Version","description":"Create a new config version for a component.","operationId":"create_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigCreate","description":"Config data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}":{"patch":{"tags":["Components"],"summary":"Update Draft Config","description":"Update an existing draft config. Cannot update published configs.","operationId":"update_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigUpdate","description":"Config fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Components"],"summary":"Get Config Version","description":"Get a specific config version by number.","operationId":"get_config_version","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Config Version","description":"Delete a specific config version. Agno v2.7.4 rejects the current version. Synchronous SQLite and PostgreSQL storage allow deletion of a published non-current version.","operationId":"delete_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/current":{"get":{"tags":["Components"],"summary":"Get Current Config","description":"Get the current config version for a component.","operationId":"get_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}/set-current":{"post":{"tags":["Components"],"summary":"Set Current Config Version","description":"Set a published config version as current (for rollback).","operationId":"set_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/schedules":{"get":{"tags":["Schedules"],"summary":"List Schedules","operationId":"list_schedules_schedules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"post":{"tags":["Schedules"],"summary":"Create Schedule","operationId":"create_schedule_schedules_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule","operationId":"get_schedule_schedules__schedule_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"patch":{"tags":["Schedules"],"summary":"Update Schedule","operationId":"update_schedule_schedules__schedule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Schedules"],"summary":"Delete Schedule","operationId":"delete_schedule_schedules__schedule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/enable":{"post":{"tags":["Schedules"],"summary":"Enable Schedule","operationId":"enable_schedule_schedules__schedule_id__enable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/disable":{"post":{"tags":["Schedules"],"summary":"Disable Schedule","operationId":"disable_schedule_schedules__schedule_id__disable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/trigger":{"post":{"tags":["Schedules"],"summary":"Trigger Schedule","operationId":"trigger_schedule_schedules__schedule_id__trigger_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Schedule is disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler is not running or storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs":{"get":{"tags":["Schedules"],"summary":"List Schedule Runs","operationId":"list_schedule_runs_schedules__schedule_id__runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleRunResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs/{run_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule Run","operationId":"get_schedule_run_schedules__schedule_id__runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals":{"get":{"tags":["Approvals"],"summary":"List Approvals","operationId":"list_approvals_approvals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","approved","rejected","expired","cancelled"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"source_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"}},{"name":"approval_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["required","audit"],"type":"string"},{"type":"null"}],"title":"Approval Type"}},{"name":"pause_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"schedule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"}},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ApprovalResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/count":{"get":{"tags":["Approvals"],"summary":"Get Approval Count","operationId":"get_approval_count_approvals_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalCountResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/{approval_id}/status":{"get":{"tags":["Approvals"],"summary":"Get Approval Status","operationId":"get_approval_status_approvals__approval_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalStatusResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/{approval_id}":{"get":{"tags":["Approvals"],"summary":"Get Approval","operationId":"get_approval_approvals__approval_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Approvals"],"summary":"Delete Approval","operationId":"delete_approval_approvals__approval_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/{approval_id}/resolve":{"post":{"tags":["Approvals"],"summary":"Resolve Approval","operationId":"resolve_approval_approvals__approval_id__resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResolve"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/service-accounts":{"post":{"tags":["Service Accounts"],"summary":"Create Service Account","description":"Mint a service account token. The plaintext token is returned exactly once.","operationId":"create_service_account_service_accounts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreateResponse"}}}},"400":{"description":"Requested scopes are invalid, or privileged scopes were not explicitly allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"An active service account with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"get":{"tags":["Service Accounts"],"summary":"List Service Accounts","description":"List service accounts. Returns metadata and display prefixes only - never hashes or plaintext.","operationId":"list_service_accounts_service_accounts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Revoked"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ServiceAccountResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts/{service_account_id}":{"delete":{"tags":["Service Accounts"],"summary":"Revoke Service Account","description":"Revoke an existing service account.\n\nTakes effect immediately on this worker (the local verification cache entry is evicted) and within the cache TTL on other workers.","operationId":"revoke_service_account_service_accounts__service_account_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"service_account_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Service account not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/registry":{"get":{"tags":["Registry"],"summary":"List Registry","description":"List all resources in the registry with optional filtering.","operationId":"list_registry","security":[{"HTTPBearer":[]}],"parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RegistryResourceType"},{"type":"null"}],"description":"Filter by resource type","title":"Resource Type"},"description":"Filter by resource type"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (partial match)","title":"Name"},"description":"Filter by name (partial match)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_RegistryContentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}}},"components":{"schemas":{"A2ARequest_DataPart":{"description":"Represents a structured data segment (e.g., JSON) within a message or artifact.","properties":{"data":{"additionalProperties":true,"title":"Data","type":"object"},"kind":{"const":"data","default":"data","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["data"],"title":"DataPart","type":"object"},"A2ARequest_FilePart":{"description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI.","properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_FileWithBytes"},{"$ref":"#/components/schemas/A2ARequest_FileWithUri"}],"title":"File"},"kind":{"const":"file","default":"file","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["file"],"title":"FilePart","type":"object"},"A2ARequest_FileWithBytes":{"description":"Represents a file with its content provided directly as a base64-encoded string.","properties":{"bytes":{"title":"Bytes","type":"string"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"}},"required":["bytes"],"title":"FileWithBytes","type":"object"},"A2ARequest_FileWithUri":{"description":"Represents a file with its content located at a specific URI.","properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"FileWithUri","type":"object"},"A2ARequest_Message":{"description":"Represents a single message in the conversation between a user and an agent.","properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"kind":{"const":"message","default":"message","title":"Kind","type":"string"},"messageId":{"title":"Messageid","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/A2ARequest_Part"},"title":"Parts","type":"array"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/A2ARequest_Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Taskid"}},"required":["messageId","parts","role"],"title":"Message","type":"object"},"A2ARequest_MessageSendConfiguration":{"description":"Defines configuration options for a `message/send` or `message/stream` request.","properties":{"acceptedOutputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Acceptedoutputmodes"},"blocking":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Blocking"},"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"pushNotificationConfig":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationConfig"},{"type":"null"}],"default":null}},"title":"MessageSendConfiguration","type":"object"},"A2ARequest_MessageSendParams":{"description":"Defines the parameters for a request to send a message to an agent. This can be used\nto create a new task, continue an existing one, or restart a task.","properties":{"configuration":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_MessageSendConfiguration"},{"type":"null"}],"default":null},"message":{"$ref":"#/components/schemas/A2ARequest_Message"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["message"],"title":"MessageSendParams","type":"object"},"A2ARequest_Part":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_TextPart"},{"$ref":"#/components/schemas/A2ARequest_FilePart"},{"$ref":"#/components/schemas/A2ARequest_DataPart"}],"title":"Part"},"A2ARequest_PushNotificationAuthenticationInfo":{"description":"Defines authentication details for a push notification endpoint.","properties":{"credentials":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Credentials"},"schemes":{"items":{"type":"string"},"title":"Schemes","type":"array"}},"required":["schemes"],"title":"PushNotificationAuthenticationInfo","type":"object"},"A2ARequest_PushNotificationConfig":{"description":"Defines the configuration for setting up push notifications for task updates.","properties":{"authentication":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationAuthenticationInfo"},{"type":"null"}],"default":null},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Id"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Token"},"url":{"title":"Url","type":"string"}},"required":["url"],"title":"PushNotificationConfig","type":"object"},"A2ARequest_Role":{"description":"Identifies the sender of the message. `user` for the client, `agent` for the service.","enum":["agent","user"],"title":"Role","type":"string"},"A2ARequest_TextPart":{"description":"Represents a text segment within a message or artifact.","properties":{"kind":{"const":"text","default":"text","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"text":{"title":"Text","type":"string"}},"required":["text"],"title":"TextPart","type":"object"},"ActivityMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"activity","title":"Role","default":"activity"},"activityType":{"type":"string","title":"Activitytype"},"content":{"additionalProperties":true,"type":"object","title":"Content"}},"additionalProperties":true,"type":"object","required":["id","activityType","content"],"title":"ActivityMessage","description":"An activity progress message emitted between chat messages."},"AgentResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"extra_messages":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Messages"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"AgentResponse"},"AgentSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_session_id":{"type":"string","title":"Agent Session Id","description":"Unique agent session identifier"},"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID used in this session"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"agent_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Data","description":"Agent-specific data"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["agent_session_id","session_id","session_name"],"title":"AgentSessionDetailSchema"},"AgentSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the agent"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the agent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the agent"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the agent"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","title":"AgentSummaryResponse"},"ApprovalCountResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"ApprovalCountResponse","description":"Response model for pending approval count."},"ApprovalResolve":{"properties":{"status":{"type":"string","pattern":"^(approved|rejected)$","title":"Status"},"resolved_by":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Resolved By"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"}},"type":"object","required":["status"],"title":"ApprovalResolve","description":"Request body for resolving (approve/reject) an approval."},"ApprovalResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"},"source_type":{"type":"string","title":"Source Type"},"approval_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Type"},"pause_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Args"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"},"schedule_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Run Id"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"},"run_status":{"anyOf":[{"$ref":"#/components/schemas/RunStatus"},{"type":"null"}]}},"type":"object","required":["id","run_id","session_id","status","source_type"],"title":"ApprovalResponse","description":"Response model for a single approval."},"ApprovalStatusResponse":{"properties":{"approval_id":{"type":"string","title":"Approval Id"},"status":{"type":"string","title":"Status"},"run_id":{"type":"string","title":"Run Id"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"}},"type":"object","required":["approval_id","status","run_id"],"title":"ApprovalStatusResponse","description":"Lightweight response model for polling approval status."},"Artifact":{"properties":{"artifactId":{"type":"string","title":"Artifactid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"}},"type":"object","required":["artifactId","parts"],"title":"Artifact","description":"Represents a file, data structure, or other resource generated by an agent during a task."},"AssistantMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"assistant","title":"Role","default":"assistant"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"},"toolCalls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},{"type":"null"}],"title":"Toolcalls"}},"additionalProperties":true,"type":"object","required":["id"],"title":"AssistantMessage","description":"An assistant message."},"AudioInputContent":{"properties":{"type":{"type":"string","const":"audio","title":"Type","default":"audio"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"AudioInputContent","description":"An audio input content fragment."},"BackgroundRunResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the background run."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the background run."},"status":{"type":"string","title":"Status","description":"Initial run status."}},"type":"object","required":["run_id","session_id","status"],"title":"BackgroundRunResponse"},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"BadRequestResponse","example":{"detail":"Bad request","error_code":"BAD_REQUEST"}},"BinaryInputContent":{"properties":{"type":{"type":"string","const":"binary","title":"Type","default":"binary"},"mimeType":{"type":"string","title":"Mimetype"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"additionalProperties":true,"type":"object","required":["mimeType"],"title":"BinaryInputContent","description":"A deprecated binary payload reference in a multimodal user message."},"Body_continue_agent_run":{"properties":{"tools":{"type":"string","title":"Tools","description":"JSON string of tool call results to continue the paused run","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Optional new user-message text to append to the run before resuming. Use for continuing a COMPLETED run with a follow-up, or adding context to a RUNNING/ERROR resume."},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","description":"When true, clone the run with a new ``run_id`` before resuming. The original is untouched; the clone becomes a sibling within the same session, with ``forked_from_run_id`` set.","default":false},"regenerate":{"type":"boolean","title":"Regenerate","description":"Sugar: regenerate the last response of this run. Auto-computes ``continue_from='last_user'`` to land just after the last user message. Pair with ``additional_instructions`` to steer the new output. By default the original response is hidden from history (replaced); pass ``replace_original=false`` to keep both the original and the regenerated response visible side by side.","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original","description":"Only valid with ``regenerate=true``. Controls history visibility of the original response; the original run is always retained in storage. Defaults to true: the original is marked REGENERATED and hidden from history so the new response replaces it. Pass false to keep both the original and regenerated responses visible."},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions","description":"Only valid with ``regenerate=true``: extra guidance appended as a user message before re-generation. Friendly alias for ``input``."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run continue in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false}},"type":"object","title":"Body_continue_agent_run"},"Body_continue_team_run":{"properties":{"requirements":{"type":"string","title":"Requirements","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input"},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","default":false},"regenerate":{"type":"boolean","title":"Regenerate","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original"},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"stream":{"type":"boolean","title":"Stream","default":true},"background":{"type":"boolean","title":"Background","default":false}},"type":"object","title":"Body_continue_team_run"},"Body_continue_workflow_run":{"properties":{"step_requirements":{"type":"string","title":"Step Requirements","description":"JSON string of step requirement objects with resolution status","default":""},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}},"type":"object","title":"Body_continue_workflow_run"},"Body_create_agent_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the agent"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Agent version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic agent construction"}},"type":"object","required":["message"],"title":"Body_create_agent_run"},"Body_create_team_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the team"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"monitor":{"type":"boolean","title":"Monitor","description":"Enable monitoring and logging for this run","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Team version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic team construction"}},"type":"object","required":["message"],"title":"Body_create_team_run"},"Body_create_workflow_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the workflow"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run workflow in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Workflow version to use for this run"},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow construction"}},"type":"object","required":["message"],"title":"Body_create_workflow_run"},"Body_rename_session":{"properties":{"session_name":{"type":"string","title":"Session Name","description":"New name for the session"}},"type":"object","required":["session_name"],"title":"Body_rename_session"},"Body_resume_agent_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_agent_run_stream"},"Body_resume_team_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_team_run_stream"},"Body_resume_workflow_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_workflow_run_stream"},"Body_update_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"Content metadata as JSON string"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"Reader ID. In Agno 2.7.4, local knowledge validates the value, but the content patch does not apply or persist the reader change."}},"type":"object","title":"Body_update_content"},"Body_upload_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated from file/URL if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description for context"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"URL to fetch content from (JSON array or single URL string)"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object for additional content properties"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File","description":"File to upload for processing"},"text_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Content","description":"Raw text content to process"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for content processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply during processing"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size to use for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap to use for processing"}},"type":"object","title":"Body_upload_content"},"Body_upload_remote_content":{"properties":{"config_id":{"type":"string","title":"Config Id","description":"ID of the configured remote content source (from /knowledge/config)"},"path":{"type":"string","title":"Path","description":"Path to file or folder in the remote source"},"source_params":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Params","description":"JSON object of per-request parameters forwarded to the source's factory. Used for provider-specific routing that shouldn't be baked into the config. Currently supported keys: GitHub accepts 'repo' ('owner/repo'), letting one configured GitHub source serve multiple repositories the credentials can access."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap for processing"}},"type":"object","required":["config_id","path"],"title":"Body_upload_remote_content"},"ChatConfig":{"properties":{"quick_prompts":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Quick Prompts"}},"type":"object","required":["quick_prompts"],"title":"ChatConfig","description":"Configuration for the Chat page of the AgentOS"},"ChunkerSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["key"],"title":"ChunkerSchema"},"ComponentConfigResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"version":{"type":"integer","title":"Version"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"type":"string","title":"Stage"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","version","stage","config","created_at"],"title":"ComponentConfigResponse"},"ComponentCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Display name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id","description":"Unique identifier for the entity. Auto-generated from name if not provided."},"component_type":{"$ref":"#/components/schemas/ComponentType","description":"Type of entity: agent, team, or workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config","description":"Optional configuration"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["name","component_type"],"title":"ComponentCreate"},"ComponentResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"component_type":{"$ref":"#/components/schemas/ComponentType"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","component_type","created_at"],"title":"ComponentResponse"},"ComponentType":{"type":"string","enum":["agent","team","workflow"],"title":"ComponentType"},"ComponentUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"component_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"}},"type":"object","title":"ComponentUpdate"},"ConfigCreate":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config","description":"The configuration data"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Optional version number"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links","description":"Optional links to child components"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["config"],"title":"ConfigCreate"},"ConfigResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the OS instance"},"available_models":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Models","description":"List of available models"},"os_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Database","description":"ID of the database used for the OS instance"},"databases":{"items":{"type":"string"},"type":"array","title":"Databases","description":"List of database IDs used by the components of the OS instance"},"chat":{"anyOf":[{"$ref":"#/components/schemas/ChatConfig"},{"type":"null"}],"description":"Chat configuration"},"manifest":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Manifest"},"type":"object"},{"type":"null"}],"title":"Manifest","description":"Per-entity UI metadata keyed by agent/team/workflow id"},"session":{"anyOf":[{"$ref":"#/components/schemas/SessionConfig"},{"type":"null"}],"description":"Session configuration"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/MetricsConfig"},{"type":"null"}],"description":"Metrics configuration"},"memory":{"anyOf":[{"$ref":"#/components/schemas/MemoryConfig"},{"type":"null"}],"description":"Memory configuration"},"learning":{"anyOf":[{"$ref":"#/components/schemas/LearningConfig"},{"type":"null"}],"description":"Learning configuration"},"knowledge":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeConfig"},{"type":"null"}],"description":"Knowledge configuration"},"evals":{"anyOf":[{"$ref":"#/components/schemas/EvalsConfig"},{"type":"null"}],"description":"Evaluations configuration"},"traces":{"anyOf":[{"$ref":"#/components/schemas/TracesConfig"},{"type":"null"}],"description":"Traces configuration"},"agents":{"items":{"$ref":"#/components/schemas/AgentSummaryResponse"},"type":"array","title":"Agents","description":"List of registered agents"},"teams":{"items":{"$ref":"#/components/schemas/TeamSummaryResponse"},"type":"array","title":"Teams","description":"List of registered teams"},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Workflows","description":"List of registered workflows"},"interfaces":{"items":{"$ref":"#/components/schemas/InterfaceResponse"},"type":"array","title":"Interfaces","description":"List of available interfaces"}},"type":"object","required":["os_id","databases","agents","teams","workflows","interfaces"],"title":"ConfigResponse","description":"Response schema for the general config endpoint"},"ConfigResponseSchema":{"properties":{"readers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ReaderSchema"},"type":"object"},{"type":"null"}],"title":"Readers","description":"Available content readers"},"readersForType":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Readersfortype","description":"Mapping of content types to reader IDs"},"chunkers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ChunkerSchema"},"type":"object"},{"type":"null"}],"title":"Chunkers","description":"Available chunking strategies"},"filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filters","description":"Available filter tags"},"vector_dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/VectorDbSchema"},"type":"array"},{"type":"null"}],"title":"Vector Dbs","description":"Configured vector databases"},"remote_content_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"type":"array"},{"type":"null"}],"title":"Remote Content Sources","description":"Configured remote content sources (S3, GCS, SharePoint, GitHub)"}},"type":"object","title":"ConfigResponseSchema"},"ConfigUpdate":{"properties":{"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","title":"ConfigUpdate"},"ConflictResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ConflictResponse","example":{"detail":"Resource conflict"}},"ContentResponseSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the content"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"MIME type of the content"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"},"linked_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linked To","description":"ID of related content if linked"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata as key-value pairs"},"access_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Access Count","description":"Number of times content has been accessed"},"status":{"anyOf":[{"$ref":"#/components/schemas/ContentStatus"},{"type":"null"}],"description":"Processing status of the content"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message","description":"Status message or error details"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when content was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when content was last updated"}},"type":"object","required":["id"],"title":"ContentResponseSchema"},"ContentStatus":{"type":"string","enum":["processing","completed","failed"],"title":"ContentStatus","description":"Enumeration of possible content processing statuses."},"ContentStatusResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Content ID"},"status":{"$ref":"#/components/schemas/ContentStatus","description":"Current processing status of the content"},"status_message":{"type":"string","title":"Status Message","description":"Status message or error details","default":""}},"type":"object","required":["status"],"title":"ContentStatusResponse","description":"Response model for content status endpoint."},"Context":{"properties":{"description":{"type":"string","title":"Description"},"value":{"type":"string","title":"Value"}},"additionalProperties":true,"type":"object","required":["description","value"],"title":"Context","description":"Additional context for the agent."},"CreateSessionRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session ID (generated if not provided)"},"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Initial session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"}},"type":"object","title":"CreateSessionRequest"},"DataPart":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data"},"kind":{"type":"string","const":"data","title":"Kind","default":"data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["data"],"title":"DataPart","description":"Represents a structured data segment (e.g., JSON) within a message or artifact."},"DatabaseConfig_EvalsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/EvalsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[EvalsDomainConfig]"},"DatabaseConfig_LearningDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/LearningDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[LearningDomainConfig]"},"DatabaseConfig_MemoryDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MemoryDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MemoryDomainConfig]"},"DatabaseConfig_MetricsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MetricsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MetricsDomainConfig]"},"DatabaseConfig_SessionDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/SessionDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[SessionDomainConfig]"},"DatabaseConfig_TracesDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/TracesDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[TracesDomainConfig]"},"DayAggregatedMetrics":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the metrics record"},"agent_runs_count":{"type":"integer","minimum":0.0,"title":"Agent Runs Count","description":"Total number of agent runs"},"agent_sessions_count":{"type":"integer","minimum":0.0,"title":"Agent Sessions Count","description":"Total number of agent sessions"},"team_runs_count":{"type":"integer","minimum":0.0,"title":"Team Runs Count","description":"Total number of team runs"},"team_sessions_count":{"type":"integer","minimum":0.0,"title":"Team Sessions Count","description":"Total number of team sessions"},"workflow_runs_count":{"type":"integer","minimum":0.0,"title":"Workflow Runs Count","description":"Total number of workflow runs"},"workflow_sessions_count":{"type":"integer","minimum":0.0,"title":"Workflow Sessions Count","description":"Total number of workflow sessions"},"users_count":{"type":"integer","minimum":0.0,"title":"Users Count","description":"Total number of unique users"},"token_metrics":{"additionalProperties":true,"type":"object","title":"Token Metrics","description":"Token usage metrics (input, output, cached, etc.)"},"model_metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Model Metrics","description":"Metrics grouped by model (model_id, provider, count)"},"date":{"type":"string","format":"date-time","title":"Date","description":"Date for which these metrics are aggregated"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when metrics were created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when metrics were last updated"}},"type":"object","required":["id","agent_runs_count","agent_sessions_count","team_runs_count","team_sessions_count","workflow_runs_count","workflow_sessions_count","users_count","token_metrics","model_metrics","date","created_at","updated_at"],"title":"DayAggregatedMetrics","description":"Aggregated metrics for a given day"},"DeleteEvalRunsRequest":{"properties":{"eval_run_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Eval Run Ids","description":"List of evaluation run IDs to delete"}},"type":"object","required":["eval_run_ids"],"title":"DeleteEvalRunsRequest"},"DeleteMemoriesRequest":{"properties":{"memory_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Memory Ids","description":"List of memory IDs to delete"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID to filter memories for deletion"}},"type":"object","required":["memory_ids"],"title":"DeleteMemoriesRequest"},"DeleteSessionRequest":{"properties":{"session_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Session Ids","description":"List of session IDs to delete"},"session_types":{"items":{"$ref":"#/components/schemas/SessionType"},"type":"array","minItems":1,"title":"Session Types","description":"Types of sessions to delete"}},"type":"object","required":["session_ids","session_types"],"title":"DeleteSessionRequest"},"DeveloperMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"developer","title":"Role","default":"developer"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"DeveloperMessage","description":"A developer message."},"DocumentInputContent":{"properties":{"type":{"type":"string","const":"document","title":"Type","default":"document"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"DocumentInputContent","description":"A document input content fragment."},"EvalFilterType":{"type":"string","enum":["agent","team","workflow"],"title":"EvalFilterType"},"EvalRunInput":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID to evaluate"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID to evaluate"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID to use for evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation to run (accuracy, performance, or reliability)"},"input":{"type":"string","minLength":1,"title":"Input","description":"Input text/query for the evaluation"},"additional_guidelines":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Guidelines","description":"Additional guidelines for the evaluation"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for the evaluation"},"num_iterations":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Num Iterations","description":"Number of times to run the evaluation","default":1},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for this evaluation run"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output","description":"Expected output for accuracy evaluation"},"criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criteria","description":"Evaluation criteria for agent-as-judge evaluation"},"scoring_strategy":{"anyOf":[{"type":"string","enum":["numeric","binary"]},{"type":"null"}],"title":"Scoring Strategy","description":"Scoring strategy: 'numeric' (1-10 with threshold) or 'binary' (PASS/FAIL)","default":"binary"},"threshold":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Threshold","description":"Score threshold for pass/fail (1-10), only used with numeric scoring","default":7},"warmup_runs":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Warmup Runs","description":"Number of warmup runs before measuring performance","default":0},"expected_tool_calls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expected Tool Calls","description":"Expected tool calls for reliability evaluation"},"allow_additional_tool_calls":{"type":"boolean","title":"Allow Additional Tool Calls","description":"When True, tool calls not in expected_tool_calls are allowed (subset matching)","default":false},"expected_tool_call_arguments":{"anyOf":[{"additionalProperties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Expected Tool Call Arguments","description":"Expected arguments for specific tool calls, e.g. {\"tool_name\": {\"arg_name\": \"expected_value\"}} or {\"tool_name\": [{\"arg_name\": \"val1\"}, {\"arg_name\": \"val2\"}]}"}},"type":"object","required":["eval_type","input"],"title":"EvalRunInput"},"EvalSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the evaluation run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that was evaluated"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID used in evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that was evaluated"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was evaluated"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the evaluation run"},"evaluated_component_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluated Component Name","description":"Name of the evaluated component"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation (accuracy, performance, or reliability)"},"eval_data":{"additionalProperties":true,"type":"object","title":"Eval Data","description":"Evaluation results and metrics"},"eval_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eval Input","description":"Input parameters used for the evaluation"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when evaluation was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when evaluation was last updated"}},"type":"object","required":["id","eval_type","eval_data"],"title":"EvalSchema"},"EvalType":{"type":"string","enum":["accuracy","agent_as_judge","performance","reliability"],"title":"EvalType"},"EvalsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_EvalsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"EvalsConfig","description":"Configuration for the Evals domain of the AgentOS"},"EvalsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"EvalsDomainConfig","description":"Configuration for the Evals domain of the AgentOS"},"FilePart":{"properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/FileWithBytes"},{"$ref":"#/components/schemas/FileWithUri"}],"title":"File"},"kind":{"type":"string","const":"file","title":"Kind","default":"file"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["file"],"title":"FilePart","description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI."},"FileWithBytes":{"properties":{"bytes":{"type":"string","title":"Bytes"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["bytes"],"title":"FileWithBytes","description":"Represents a file with its content provided directly as a base64-encoded string."},"FileWithUri":{"properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uri":{"type":"string","title":"Uri"}},"type":"object","required":["uri"],"title":"FileWithUri","description":"Represents a file with its content located at a specific URI."},"FilterFieldSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Column/field name used in filter expressions"},"label":{"type":"string","title":"Label","description":"Human-readable display label for the UI"},"type":{"type":"string","title":"Type","description":"Field data type: string, number, datetime, enum"},"operators":{"items":{"type":"string"},"type":"array","title":"Operators","description":"List of valid filter operators for this field"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values","description":"Allowed enum values (for autocomplete/dropdown)"}},"type":"object","required":["key","label","type","operators"],"title":"FilterFieldSchema","description":"Schema describing a single filterable field for the frontend filter bar."},"FilterSchemaResponse":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FilterFieldSchema"},"type":"array","title":"Fields","description":"Available filterable fields"},"logical_operators":{"items":{"type":"string"},"type":"array","title":"Logical Operators","description":"Logical operators for combining filter clauses","default":["AND","OR"]}},"type":"object","required":["fields"],"title":"FilterSchemaResponse","description":"Response for the filter schema endpoint. Tells the FE what fields, operators, and values are available."},"ForbiddenResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ForbiddenResponse","example":{"detail":"Insufficient permissions"}},"FunctionCall":{"properties":{"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"additionalProperties":true,"type":"object","required":["name","arguments"],"title":"FunctionCall","description":"Name and arguments of a function call."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Health status of the service"},"instantiated_at":{"type":"string","format":"date-time","title":"Instantiated At","description":"Timestamp when service was instantiated"}},"type":"object","required":["status","instantiated_at"],"title":"HealthResponse","example":{"instantiated_at":"2025-06-10T12:00:00Z","status":"ok"}},"ImageInputContent":{"properties":{"type":{"type":"string","const":"image","title":"Type","default":"image"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"ImageInputContent","description":"An image input content fragment."},"InfoResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"agno_version":{"type":"string","title":"Agno Version","description":"Version of the agno framework"},"agent_count":{"type":"integer","title":"Agent Count","description":"Number of agents registered in the OS","default":0},"team_count":{"type":"integer","title":"Team Count","description":"Number of teams registered in the OS","default":0},"workflow_count":{"type":"integer","title":"Workflow Count","description":"Number of workflows registered in the OS","default":0},"mcp":{"$ref":"#/components/schemas/McpInfo","description":"MCP server availability for this OS instance"},"auth_mode":{"type":"string","enum":["none","security_key","jwt"],"title":"Auth Mode","description":"Authentication mode enforced on the REST/WS plane of this OS instance. MCP OAuth, when enabled, is described separately under `mcp.oauth`.","default":"none"}},"type":"object","required":["os_id","agno_version"],"title":"InfoResponse","description":"Response schema for the /info endpoint returning lightweight OS metadata."},"InputContentDataSource":{"properties":{"type":{"type":"string","const":"data","title":"Type","default":"data"},"value":{"type":"string","title":"Value"},"mimeType":{"type":"string","title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value","mimeType"],"title":"InputContentDataSource","description":"Inline base64-encoded source."},"InputContentUrlSource":{"properties":{"type":{"type":"string","const":"url","title":"Type","default":"url"},"value":{"type":"string","title":"Value"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value"],"title":"InputContentUrlSource","description":"URL-referenced source."},"InterfaceResponse":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the interface"},"version":{"type":"string","title":"Version","description":"Version of the interface"},"route":{"type":"string","title":"Route","description":"API route path"}},"type":"object","required":["type","version","route"],"title":"InterfaceResponse"},"InternalServerErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"InternalServerErrorResponse","example":{"detail":"Internal server error","error_code":"INTERNAL_SERVER_ERROR"}},"KnowledgeConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeDatabaseConfig"},"type":"array"},{"type":"null"}],"title":"Dbs"},"knowledge_instances":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeInstanceConfig"},"type":"array"},{"type":"null"}],"title":"Knowledge Instances"}},"type":"object","title":"KnowledgeConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeDatabaseConfig":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeDomainConfig"},{"type":"null"}]},"tables":{"items":{"type":"string"},"type":"array","title":"Tables","default":[]}},"type":"object","required":["db_id"],"title":"KnowledgeDatabaseConfig","description":"Configuration for a knowledge database with its tables"},"KnowledgeDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"KnowledgeDomainConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeInstanceConfig":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"db_id":{"type":"string","title":"Db Id"},"table":{"type":"string","title":"Table"}},"type":"object","required":["id","name","db_id","table"],"title":"KnowledgeInstanceConfig","description":"Configuration for a single knowledge instance"},"LearningConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_LearningDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"LearningConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningCreate":{"properties":{"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"content":{"additionalProperties":true,"type":"object","title":"Content","description":"The learning content payload"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID. When the request is authenticated, must match the JWT subject or be omitted/null (which creates a global / non-user-scoped record)."},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"}},"type":"object","required":["learning_type","content"],"title":"LearningCreate","description":"Request body for creating a learning record."},"LearningDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"LearningDomainConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningResponse":{"properties":{"learning_id":{"type":"string","title":"Learning Id","description":"Unique identifier for the learning record"},"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID (for entity-specific learnings)"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type (e.g. 'person', 'company')"},"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"The learning content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Creation timestamp (Unix epoch seconds)"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp (Unix epoch seconds)"}},"type":"object","required":["learning_id","learning_type"],"title":"LearningResponse","description":"A single learning record as returned by the API."},"LearningUpdate":{"properties":{"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Replacement content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Replacement metadata"}},"type":"object","title":"LearningUpdate","description":"Request body for updating a learning record. Identity fields are immutable."},"LearningUserStats":{"properties":{"user_id":{"type":"string","title":"User Id","description":"The user ID"},"last_learning_updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Learning Updated At","description":"Most recent learning update for this user (Unix epoch seconds)"}},"type":"object","required":["user_id"],"title":"LearningUserStats","description":"A user that owns learning records, with their most recent activity.\n\nUsed as a lightweight index for the per-user view: list users here, then drill into a\nsingle user's records via ``GET /learnings?user_id=...``. No per-user count is returned\n-- the user-scoped stores (``user_profile``, ``user_memory``) keep a single record per\nuser, so a record count would always be 1; the actual memory count lives in that\nrecord's ``content``."},"Manifest":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"},"quick_prompts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quick Prompts"}},"type":"object","title":"Manifest","description":"OS-level UI metadata for an agent/team/workflow.\n\nFields here are AgentOS UI metadata only. ``description`` is unrelated to\n``Agent.description`` / ``Team.description`` / ``Workflow.description``,\nwhich are sent to the model.\n\nRendering surfaces:\n- ``description``, ``labels``: home/landing card\n- ``quick_prompts``: chat page"},"McpInfo":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the MCP server is enabled on this OS instance","default":false},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Path where the MCP server is mounted, null when disabled"},"oauth":{"anyOf":[{"$ref":"#/components/schemas/McpOAuthInfo"},{"type":"null"}],"description":"OAuth discovery details when the MCP endpoint is OAuth-protected, null otherwise"}},"type":"object","title":"McpInfo","description":"MCP server availability for the /info endpoint."},"McpOAuthInfo":{"properties":{"authorization_servers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorization Servers","description":"Issuer URL(s) of the authorization server(s) protecting the MCP endpoint"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource","description":"RFC 9728 resource URL advertised for the MCP endpoint"}},"type":"object","title":"McpOAuthInfo","description":"OAuth discovery details for an MCP endpoint protected by ``AgentOS(mcp_auth=...)``."},"MemoryConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MemoryDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MemoryConfig","description":"Configuration for the Memory domain of the AgentOS"},"MemoryDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MemoryDomainConfig","description":"Configuration for the Memory domain of the AgentOS"},"Message":{"properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"kind":{"type":"string","const":"message","title":"Kind","default":"message"},"messageId":{"type":"string","title":"Messageid"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taskid"}},"type":"object","required":["messageId","parts","role"],"title":"Message","description":"Represents a single message in the conversation between a user and an agent."},"Meta":{"properties":{"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of results per page","default":20},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number","default":1}},"type":"object","title":"Meta","description":"Inline metadata schema for pagination."},"MetricsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MetricsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MetricsConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MetricsDomainConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsResponse":{"properties":{"metrics":{"items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"type":"array","title":"Metrics","description":"List of daily aggregated metrics"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp of the most recent metrics update"}},"type":"object","required":["metrics"],"title":"MetricsResponse"},"Model":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"Model"},"ModelResponse":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the model"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"ModelResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"NotFoundResponse","example":{"detail":"Not found","error_code":"NOT_FOUND"}},"NotImplementedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"NotImplementedResponse","example":{"detail":"Operation not supported for this resource type"}},"OptimizeMemoriesRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID to optimize memories for"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model in `provider:model_id` format. Current examples include `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, and `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`."},"apply":{"type":"boolean","title":"Apply","description":"If True, apply optimization changes to database. If False, return preview only without saving.","default":true}},"type":"object","required":["user_id"],"title":"OptimizeMemoriesRequest","description":"Schema for memory optimization request"},"OptimizeMemoriesResponse":{"properties":{"memories":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Memories","description":"List of optimized memory objects"},"memories_before":{"type":"integer","minimum":0.0,"title":"Memories Before","description":"Number of memories before optimization"},"memories_after":{"type":"integer","minimum":0.0,"title":"Memories After","description":"Number of memories after optimization"},"tokens_before":{"type":"integer","minimum":0.0,"title":"Tokens Before","description":"Token count before optimization"},"tokens_after":{"type":"integer","minimum":0.0,"title":"Tokens After","description":"Token count after optimization"},"tokens_saved":{"type":"integer","minimum":0.0,"title":"Tokens Saved","description":"Number of tokens saved through optimization"},"reduction_percentage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Reduction Percentage","description":"Percentage of token reduction achieved"}},"type":"object","required":["memories","memories_before","memories_after","tokens_before","tokens_after","tokens_saved","reduction_percentage"],"title":"OptimizeMemoriesResponse","description":"Schema for memory optimization response"},"PaginatedResponse_ApprovalResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ApprovalResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ApprovalResponse]"},"PaginatedResponse_ComponentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ComponentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ComponentResponse]"},"PaginatedResponse_ContentResponseSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentResponseSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ContentResponseSchema]"},"PaginatedResponse_EvalSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EvalSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[EvalSchema]"},"PaginatedResponse_LearningResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningResponse]"},"PaginatedResponse_LearningUserStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningUserStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningUserStats]"},"PaginatedResponse_RegistryContentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RegistryContentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[RegistryContentResponse]"},"PaginatedResponse_ScheduleResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleResponse]"},"PaginatedResponse_ScheduleRunResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleRunResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleRunResponse]"},"PaginatedResponse_ServiceAccountResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ServiceAccountResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ServiceAccountResponse]"},"PaginatedResponse_SessionSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SessionSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[SessionSchema]"},"PaginatedResponse_TraceDetail_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceDetail"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceDetail]"},"PaginatedResponse_TraceSessionStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSessionStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSessionStats]"},"PaginatedResponse_TraceSummary_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSummary"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSummary]"},"PaginatedResponse_UserMemorySchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserMemorySchema]"},"PaginatedResponse_UserStatsSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserStatsSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserStatsSchema]"},"PaginatedResponse_VectorSearchResult_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VectorSearchResult"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[VectorSearchResult]"},"PaginationInfo":{"properties":{"page":{"type":"integer","minimum":0.0,"title":"Page","description":"Current page number (0-indexed)","default":0},"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of items per page","default":20},"total_pages":{"type":"integer","minimum":0.0,"title":"Total Pages","description":"Total number of pages","default":0},"total_count":{"type":"integer","minimum":0.0,"title":"Total Count","description":"Total count of items","default":0},"search_time_ms":{"type":"number","minimum":0.0,"title":"Search Time Ms","description":"Search execution time in milliseconds","default":0}},"type":"object","title":"PaginationInfo"},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/DataPart"}],"title":"Part"},"ReaderSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the reader"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the reader"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the reader's capabilities"},"chunkers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chunkers","description":"List of supported chunking strategies"}},"type":"object","required":["id"],"title":"ReaderSchema"},"ReasoningMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"reasoning","title":"Role","default":"reasoning"},"content":{"type":"string","title":"Content"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"ReasoningMessage","description":"A reasoning message containing the agent's internal reasoning process."},"RegistryContentResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/RegistryResourceType"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name","type"],"title":"RegistryContentResponse"},"RegistryResourceType":{"type":"string","enum":["tool","model","db","vector_db","schema","function","agent","team","knowledge","memory_manager","session_summary_manager"],"title":"RegistryResourceType","description":"Types of resources that can be stored in a registry."},"RemoteContentSourceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content source"},"name":{"type":"string","title":"Name","description":"Display name for the content source"},"type":{"type":"string","title":"Type","description":"Type of content source (s3, gcs, sharepoint, github, azureblob)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Default path prefix for this source"}},"type":"object","required":["id","name","type"],"title":"RemoteContentSourceSchema","description":"Schema for remote content source configuration."},"ResumeEntry":{"properties":{"interruptId":{"type":"string","title":"Interruptid"},"status":{"type":"string","enum":["resolved","cancelled"],"title":"Status"},"payload":{"anyOf":[{},{"type":"null"}],"title":"Payload"}},"additionalProperties":true,"type":"object","required":["interruptId","status"],"title":"ResumeEntry","description":"A per-interrupt response in the resume array of a RunAgentInput."},"Role":{"type":"string","enum":["agent","user"],"title":"Role","description":"Identifies the sender of the message. `user` for the client, `agent` for the service."},"RunAgentInput":{"properties":{"threadId":{"type":"string","title":"Threadid"},"runId":{"type":"string","title":"Runid"},"parentRunId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentrunid"},"state":{"title":"State"},"messages":{"items":{"oneOf":[{"$ref":"#/components/schemas/DeveloperMessage"},{"$ref":"#/components/schemas/SystemMessage"},{"$ref":"#/components/schemas/AssistantMessage"},{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/ToolMessage"},{"$ref":"#/components/schemas/ActivityMessage"},{"$ref":"#/components/schemas/ReasoningMessage"}],"discriminator":{"propertyName":"role","mapping":{"activity":"#/components/schemas/ActivityMessage","assistant":"#/components/schemas/AssistantMessage","developer":"#/components/schemas/DeveloperMessage","reasoning":"#/components/schemas/ReasoningMessage","system":"#/components/schemas/SystemMessage","tool":"#/components/schemas/ToolMessage","user":"#/components/schemas/UserMessage"}}},"type":"array","title":"Messages"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","title":"Tools"},"context":{"items":{"$ref":"#/components/schemas/Context"},"type":"array","title":"Context"},"forwardedProps":{"title":"Forwardedprops"},"resume":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResumeEntry"},"type":"array"},{"type":"null"}],"title":"Resume"}},"additionalProperties":true,"type":"object","required":["threadId","runId","state","messages","tools","context","forwardedProps"],"title":"RunAgentInput","description":"Input for running an agent."},"RunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that executed this run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"RunSchema"},"RunStatus":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","PAUSED","CANCELLED","ERROR","REGENERATED"],"title":"RunStatus","description":"State of the main run response"},"ScheduleCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"cron_expr":{"type":"string","maxLength":128,"title":"Cron Expr"},"endpoint":{"type":"string","maxLength":512,"title":"Endpoint"},"method":{"type":"string","maxLength":10,"title":"Method","default":"POST"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"type":"string","maxLength":64,"title":"Timezone","default":"UTC"},"timeout_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Timeout Seconds","default":3600},"max_retries":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Max Retries","default":0},"retry_delay_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Retry Delay Seconds","default":60}},"type":"object","required":["name","cron_expr","endpoint"],"title":"ScheduleCreate"},"ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"cron_expr":{"type":"string","title":"Cron Expr"},"timezone":{"type":"string","title":"Timezone"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"max_retries":{"type":"integer","title":"Max Retries"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","method","endpoint","cron_expr","timezone","timeout_seconds","max_retries","retry_delay_seconds","enabled"],"title":"ScheduleResponse"},"ScheduleRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"schedule_id":{"type":"string","title":"Schedule Id"},"attempt":{"type":"integer","title":"Attempt"},"triggered_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triggered At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"status":{"type":"string","title":"Status"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","schedule_id","attempt","status"],"title":"ScheduleRunResponse"},"ScheduleStateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","enabled"],"title":"ScheduleStateResponse","description":"Trimmed response for state-changing operations (enable/disable)."},"ScheduleUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"cron_expr":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Cron Expr"},"endpoint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Endpoint"},"method":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Method"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Timezone"},"timeout_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":1.0},{"type":"null"}],"title":"Timeout Seconds"},"max_retries":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Max Retries"},"retry_delay_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":1.0},{"type":"null"}],"title":"Retry Delay Seconds"}},"type":"object","title":"ScheduleUpdate"},"ScopeItem":{"properties":{"scope":{"type":"string","title":"Scope","description":"Scope string, e.g. 'agents:*:run'"},"effect":{"type":"string","enum":["allow","deny"],"title":"Effect","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["scope"],"title":"ScopeItem","description":"Write shape for one scope grant \u2014 the canonical RBAC payload for every scope-bearing API.\n\nEndpoints that take scopes accept these objects only (a bare string is a validation\nerror). ``effect`` is constrained here so every consumer rejects typos at the model\nlayer; whether ``deny`` is *semantically* legal stays per-endpoint (roles support\ndeny rules, service-account tokens are pure grants and reject it)."},"ScopeSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Scope id (always null here; kept for shape parity with the cloud RBAC API, which addresses scopes individually)"},"raw":{"type":"string","title":"Raw","description":"Original scope string, e.g. 'agents:*:run'"},"namespace":{"type":"string","title":"Namespace","description":"Resource namespace, e.g. 'agents'"},"sub_namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Namespace","description":"Specific resource id or wildcard '*'"},"permission":{"type":"string","title":"Permission","description":"Action, e.g. 'read' / 'run' / 'write'"},"value":{"type":"string","title":"Value","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["raw","namespace","permission"],"title":"ScopeSchema","description":"Read shape for one scope \u2014 the parsed RBAC payload shared by every scope-bearing API.\n\nMirrors the cloud RBAC scope shape ({raw, namespace, sub_namespace, permission, value})\nso a frontend renders scopes from any AgentOS API with one integration."},"SendMessageRequest":{"description":"Represents a JSON-RPC request for the `message/send` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/send","default":"message/send","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendMessageRequest","type":"object"},"SendMessageSuccessResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id"},"jsonrpc":{"type":"string","const":"2.0","title":"Jsonrpc","default":"2.0"},"result":{"anyOf":[{"$ref":"#/components/schemas/Task"},{"$ref":"#/components/schemas/Message"}],"title":"Result"}},"type":"object","required":["result"],"title":"SendMessageSuccessResponse","description":"Represents a successful JSON-RPC response for the `message/send` method."},"SendStreamingMessageRequest":{"description":"Represents a JSON-RPC request for the `message/stream` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/stream","default":"message/stream","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendStreamingMessageRequest","type":"object"},"ServiceAccountCreate":{"properties":{"name":{"type":"string","maxLength":63,"title":"Name","description":"Machine identity name (lowercase slug), e.g. 'claude-code' or 'github-actions'"},"scopes":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScopeItem"},"type":"array"},{"type":"null"}],"title":"Scopes","description":"Scopes granted to the token, as {scope, effect} objects (the shared RBAC write shape; token scopes are grants, so only effect='allow' is accepted). Defaults to run and read scopes: agents:run, teams:run, workflows:run, sessions:read"},"expires_in_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Expires In Days","description":"Days until the token expires (default: 90)","default":90},"never_expires":{"type":"boolean","title":"Never Expires","description":"Mint a non-expiring token. Must be set explicitly; overrides expires_in_days.","default":false},"allow_privileged_scopes":{"type":"boolean","title":"Allow Privileged Scopes","description":"Required to grant privileged scopes: any write or delete action, the admin scope, or any service_accounts scope. Privileged tokens must be deliberate, never accidental.","default":false}},"type":"object","required":["name"],"title":"ServiceAccountCreate"},"ServiceAccountCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"token":{"type":"string","title":"Token","description":"The plaintext token. Shown exactly once - store it securely now."}},"type":"object","required":["id","name","principal","token_prefix","created_at","token"],"title":"ServiceAccountCreateResponse","description":"Returned once, at creation. The token is never retrievable again."},"ServiceAccountResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","name","principal","token_prefix","created_at"],"title":"ServiceAccountResponse","description":"Service account metadata. Never includes the token hash or plaintext."},"ServiceUnavailableResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ServiceUnavailableResponse","example":{"detail":"Feature not supported by the configured service"}},"SessionConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_SessionDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"SessionConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"SessionDomainConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier for the session"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state data of the session"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when session was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when session was last updated"},"session_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type","description":"Type of session: agent, team, or workflow"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["session_id","session_name"],"title":"SessionSchema"},"SessionType":{"type":"string","enum":["agent","team","workflow"],"title":"SessionType"},"SlackChallengeResponse":{"properties":{"challenge":{"type":"string","title":"Challenge","description":"Challenge string to echo back to Slack"}},"type":"object","required":["challenge"],"title":"SlackChallengeResponse"},"SlackEventResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"}},"type":"object","title":"SlackEventResponse"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"SourceFileSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Full path/key of the file"},"name":{"type":"string","title":"Name","description":"Display name (filename)"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"File size in bytes"},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified","description":"ISO 8601 timestamp of last modification"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"MIME type of the file"}},"type":"object","required":["key","name"],"title":"SourceFileSchema","description":"Schema for a file in a content source."},"SourceFilesResponseSchema":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"ID of the content source"},"source_name":{"type":"string","title":"Source Name","description":"Name of the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Prefix filter that was applied"},"folders":{"items":{"$ref":"#/components/schemas/SourceFolderSchema"},"type":"array","title":"Folders","description":"Subfolders at this level"},"files":{"items":{"$ref":"#/components/schemas/SourceFileSchema"},"type":"array","title":"Files","description":"List of files at this level"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["source_id","source_name","meta"],"title":"SourceFilesResponseSchema","description":"Response schema for listing files in a content source."},"SourceFolderSchema":{"properties":{"prefix":{"type":"string","title":"Prefix","description":"Full prefix to use for navigating into this folder"},"name":{"type":"string","title":"Name","description":"Display name of the folder"},"is_empty":{"type":"boolean","title":"Is Empty","description":"Whether the folder contains any files","default":false}},"type":"object","required":["prefix","name"],"title":"SourceFolderSchema","description":"Schema for a folder in a content source."},"SystemMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"system","title":"Role","default":"system"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"SystemMessage","description":"A system message."},"Task":{"properties":{"artifacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Artifact"},"type":"array"},{"type":"null"}],"title":"Artifacts"},"contextId":{"type":"string","title":"Contextid"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"History"},"id":{"type":"string","title":"Id"},"kind":{"type":"string","const":"task","title":"Kind","default":"task"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"status":{"$ref":"#/components/schemas/TaskStatus"}},"type":"object","required":["contextId","id","status"],"title":"Task","description":"Represents a single, stateful operation or conversation between a client and an agent."},"TaskState":{"type":"string","enum":["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"],"title":"TaskState","description":"Defines the lifecycle states of a Task."},"TaskStatus":{"properties":{"message":{"anyOf":[{"$ref":"#/components/schemas/Message"},{"type":"null"}]},"state":{"$ref":"#/components/schemas/TaskState"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp","examples":["2023-10-27T10:00:00Z"]}},"type":"object","required":["state"],"title":"TaskStatus","description":"Represents the status of a task at a specific point in time."},"TeamResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"members":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"$ref":"#/components/schemas/TeamResponse"}]},"type":"array"},{"type":"null"}],"title":"Members"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"TeamResponse"},"TeamRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the team run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that executed this run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the team run"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this team run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this team run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this team run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this team run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"TeamRunSchema"},"TeamSessionDetailSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID used in this session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of team interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"team_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Team Data","description":"Team-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"}},"type":"object","required":["session_id","session_name"],"title":"TeamSessionDetailSchema"},"TeamSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the team"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the team"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the team"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Team execution mode (coordinate, route, broadcast, tasks)"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the team leader"}},"type":"object","title":"TeamSummaryResponse"},"TelegramStatusResponse":{"properties":{"status":{"type":"string","title":"Status","default":"available"}},"type":"object","title":"TelegramStatusResponse"},"TelegramWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status"}},"type":"object","required":["status"],"title":"TelegramWebhookResponse"},"TextInputContent":{"properties":{"type":{"type":"string","const":"text","title":"Type","default":"text"},"text":{"type":"string","title":"Text"}},"additionalProperties":true,"type":"object","required":["text"],"title":"TextInputContent","description":"A text fragment in a multimodal user message."},"TextPart":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"TextPart","description":"Represents a text segment within a message or artifact."},"Tool":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{},{"type":"null"}],"title":"Parameters"}},"additionalProperties":true,"type":"object","required":["name","description"],"title":"Tool","description":"A tool definition."},"ToolCall":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/FunctionCall"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","function"],"title":"ToolCall","description":"A tool call, modelled after OpenAI tool calls."},"ToolMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"tool","title":"Role","default":"tool"},"content":{"type":"string","title":"Content"},"toolCallId":{"type":"string","title":"Toolcallid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content","toolCallId"],"title":"ToolMessage","description":"A tool result message."},"TraceDetail":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent/workflow"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the agent/workflow"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"},"tree":{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array","title":"Tree","description":"Hierarchical tree of spans (root nodes)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at","tree"],"title":"TraceDetail","description":"Detailed trace information with hierarchical span tree"},"TraceNode":{"properties":{"id":{"type":"string","title":"Id","description":"Span ID"},"name":{"type":"string","title":"Name","description":"Span name (e.g., 'agent.run', 'llm.invoke')"},"type":{"type":"string","title":"Type","description":"Span kind (AGENT, TEAM, WORKFLOW, LLM, TOOL)"},"duration":{"type":"string","title":"Duration","description":"Human-readable duration (e.g., '123ms', '1.5s')"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"End time (Pydantic auto-serializes to ISO 8601)"},"status":{"type":"string","title":"Status","description":"Status code (OK, ERROR)"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the span"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the span"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"spans":{"anyOf":[{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array"},{"type":"null"}],"title":"Spans","description":"Child spans in the trace hierarchy"},"step_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Type","description":"Workflow step type (Step, Condition, function, Agent, Team)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional span attributes and data"},"extra_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Data","description":"Flexible field for custom attributes and additional data"}},"type":"object","required":["id","name","type","duration","start_time","end_time","status"],"title":"TraceNode","description":"Recursive node structure for rendering trace hierarchy in the frontend"},"TraceSearchGroupBy":{"type":"string","enum":["run","session"],"title":"TraceSearchGroupBy","description":"Grouping options for trace search results."},"TraceSearchRequest":{"properties":{"filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter","description":"FilterExpr DSL as JSON dict. Supports operators: EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH, AND, OR, NOT."},"group_by":{"$ref":"#/components/schemas/TraceSearchGroupBy","description":"Grouping mode: 'run' returns individual TraceDetail, 'session' returns aggregated TraceSessionStats.","default":"run"},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number (1-indexed)","default":1},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"Number of traces per page (max 100)","default":20}},"type":"object","title":"TraceSearchRequest","description":"Request body for POST /traces/search with advanced filtering.\n\nThe filter field accepts a FilterExpr DSL dict supporting composable queries\nwith AND/OR/NOT logic and operators like EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH.\n\nExample for run grouping (default):\n {\n \"filter\": {\n \"op\": \"AND\",\n \"conditions\": [\n {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n {\"op\": \"CONTAINS\", \"key\": \"user_id\", \"value\": \"admin\"}\n ]\n },\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n }\n\nExample for session grouping:\n {\n \"filter\": {\"op\": \"EQ\", \"key\": \"agent_id\", \"value\": \"my-agent\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n }"},"TraceSessionStats":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID(s) used in the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID associated with the session"},"total_traces":{"type":"integer","title":"Total Traces","description":"Total number of traces in this session"},"first_trace_at":{"type":"string","format":"date-time","title":"First Trace At","description":"Time of first trace (Pydantic auto-serializes to ISO 8601)"},"last_trace_at":{"type":"string","format":"date-time","title":"Last Trace At","description":"Time of last trace (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["session_id","total_traces","first_trace_at","last_trace_at"],"title":"TraceSessionStats","description":"Aggregated trace statistics grouped by session"},"TraceSummary":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR, UNSET)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at"],"title":"TraceSummary","description":"Summary information for trace list view"},"TracesConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_TracesDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"TracesConfig","description":"Configuration for the Traces domain of the AgentOS"},"TracesDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"TracesDomainConfig","description":"Configuration for the Traces domain of the AgentOS"},"UnauthenticatedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"UnauthenticatedResponse","example":{"detail":"Unauthenticated access","error_code":"UNAUTHENTICATED"}},"UpdateEvalRunRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"New name for the evaluation run"}},"type":"object","required":["name"],"title":"UpdateEvalRunRequest"},"UpdateSessionRequest":{"properties":{"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Updated session name"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Updated session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Updated metadata"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary","description":"Session summary"}},"type":"object","title":"UpdateSessionRequest"},"UserMemoryCreateSchema":{"properties":{"memory":{"type":"string","maxLength":5000,"minLength":1,"title":"Memory","description":"Memory content text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags to categorize the memory"}},"type":"object","required":["memory"],"title":"UserMemoryCreateSchema","description":"Define the payload expected for creating a new user memory"},"UserMemorySchema":{"properties":{"memory_id":{"type":"string","title":"Memory Id","description":"Unique identifier for the memory"},"memory":{"type":"string","title":"Memory","description":"Memory content text"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags associated with the memory"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID associated with this memory"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with this memory"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when memory was last updated"}},"type":"object","required":["memory_id","memory"],"title":"UserMemorySchema"},"UserMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"user","title":"Role","default":"user"},"content":{"anyOf":[{"type":"string"},{"items":{"oneOf":[{"$ref":"#/components/schemas/TextInputContent"},{"$ref":"#/components/schemas/ImageInputContent"},{"$ref":"#/components/schemas/AudioInputContent"},{"$ref":"#/components/schemas/VideoInputContent"},{"$ref":"#/components/schemas/DocumentInputContent"},{"$ref":"#/components/schemas/BinaryInputContent"}],"discriminator":{"propertyName":"type","mapping":{"audio":"#/components/schemas/AudioInputContent","binary":"#/components/schemas/BinaryInputContent","document":"#/components/schemas/DocumentInputContent","image":"#/components/schemas/ImageInputContent","text":"#/components/schemas/TextInputContent","video":"#/components/schemas/VideoInputContent"}}},"type":"array"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"UserMessage","description":"A user message supporting text or multimodal content."},"UserStatsSchema":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"total_memories":{"type":"integer","minimum":0.0,"title":"Total Memories","description":"Total number of memories for this user"},"last_memory_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Memory Updated At","description":"Timestamp of the most recent memory update"}},"type":"object","required":["user_id","total_memories"],"title":"UserStatsSchema","description":"Schema for user memory statistics"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"ValidationErrorResponse","example":{"detail":"Validation error","error_code":"VALIDATION_ERROR"}},"VectorDbSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the vector database"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the vector database"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the vector database"},"search_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Search Types","description":"List of supported search types (vector, keyword, hybrid)"}},"type":"object","required":["id"],"title":"VectorDbSchema"},"VectorSearchRequestSchema":{"properties":{"query":{"type":"string","title":"Query","description":"The search query text"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database ID to search in"},"knowledge_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledge Id","description":"Knowledge base ID to search in"},"vector_db_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vector Db Ids","description":"List of vector database IDs to search in"},"search_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Type","description":"The type of search to perform (vector, keyword, hybrid)"},"max_results":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Max Results","description":"The maximum number of results to return"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Filters to apply to the search results"},"meta":{"anyOf":[{"$ref":"#/components/schemas/Meta"},{"type":"null"}],"description":"Pagination metadata. Limit and page number to return a subset of results."}},"type":"object","required":["query"],"title":"VectorSearchRequestSchema","description":"Schema for vector search request."},"VectorSearchResult":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the search result document"},"content":{"type":"string","title":"Content","description":"Content text of the document"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the document"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Metadata associated with the document"},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"Usage statistics (e.g., token counts)"},"reranking_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reranking Score","description":"Reranking score for relevance"},"content_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Id","description":"ID of the source content"},"content_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Origin","description":"Origin URL or source of the content"},"size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"}},"type":"object","required":["id","content"],"title":"VectorSearchResult","description":"Schema for search result documents."},"VideoInputContent":{"properties":{"type":{"type":"string","const":"video","title":"Type","default":"video"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"VideoInputContent","description":"A video input content fragment."},"WhatsAppWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status","default":"ok"}},"type":"object","title":"WhatsAppWebhookResponse"},"WorkflowResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema","description":"Input schema for the workflow"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps","description":"List of workflow steps"},"agent":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"type":"null"}],"description":"Agent configuration if used"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamResponse"},{"type":"null"}],"description":"Team configuration if used"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"workflow_agent":{"type":"boolean","title":"Workflow Agent","description":"Whether this workflow uses a WorkflowAgent","default":false},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowResponse"},"WorkflowRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the workflow run"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the workflow"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was executed"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the workflow"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"Type of content returned"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status of the workflow run"},"step_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Results","description":"Results from each workflow step"},"step_executor_runs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Executor Runs","description":"Executor runs for each step"},"step_requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Requirements","description":"HITL step requirements (resolved state for historical display)"},"pause_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Kind","description":"Kind of HITL pause: 'step' or 'executor'"},"paused_step_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Step Name","description":"Name of the step that caused the pause"},"paused_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Paused Step Index","description":"Index of the step that caused the pause"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the workflow"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the workflow"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the workflow"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the workflow"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the workflow"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"}},"type":"object","required":["run_id"],"title":"WorkflowRunSchema"},"WorkflowSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID used in this session"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name","description":"Name of the workflow"},"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Data","description":"Complete session data"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current workflow state"},"workflow_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Data","description":"Workflow-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["session_id","session_name"],"title":"WorkflowSessionDetailSchema"},"WorkflowSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowSummaryResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} +{"openapi":"3.1.0","info":{"title":"Agno API Reference","description":"The all-in-one, private, secure agent platform that runs in your cloud.","version":"2.7.4"},"paths":{"/":{"get":{"tags":["Home"],"summary":"API Information","description":"Return the AgentOS instance name, ID, and version.","operationId":"get_api_info","responses":{"200":{"description":"API information retrieved successfully","content":{"application/json":{"schema":{"properties":{"name":{"type":"string","title":"Name"},"id":{"type":"string","title":"Id"},"version":{"type":"string","title":"Version"}},"type":"object","required":["name","id","version"],"title":"ApiInfoResponse"},"examples":{"home":{"summary":"Example home response","value":{"name":"AgentOS API","id":"demo-os","version":"1.0.0"}}}}}}}}},"/health":{"get":{"tags":["Health"],"summary":"Health Check","description":"Check the health status of the AgentOS API. Returns a simple status indicator.","operationId":"health_check","responses":{"200":{"description":"API is healthy and operational","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"},"example":{"status":"ok","instantiated_at":"2025-06-10T12:00:00Z"}}}}}}},"/info":{"get":{"tags":["Core"],"summary":"Get OS Info","description":"Return lightweight, unauthenticated metadata about this AgentOS instance.","operationId":"get_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoResponse"}}}}}}},"/config":{"get":{"tags":["Core"],"summary":"Get OS Configuration","description":"Retrieve the complete configuration of the AgentOS instance, including:\n\n- Available models and databases\n- Registered agents, teams, and workflows\n- Chat, session, memory, knowledge, and evaluation configurations\n- Available interfaces and their routes","operationId":"get_config","responses":{"200":{"description":"OS configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"},"example":{"description":"Example AgentOS configuration","available_models":[],"databases":["9c884dc4-9066-448c-9074-ef49ec7eb73c"],"session":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Sessions"}}]},"metrics":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Metrics"}}]},"memory":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Memory"}}]},"knowledge":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Knowledge"}}]},"evals":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Evals"}}]},"agents":[{"id":"main-agent","name":"Main Agent","db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c"}],"teams":[],"workflows":[],"interfaces":[],"os_id":"demo"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/models":{"get":{"tags":["Core"],"summary":"Get Available Models","description":"Retrieve a list of all unique models currently used by agents and teams in this OS instance. This includes the model ID and provider information for each model.","operationId":"get_models","responses":{"200":{"description":"List of models retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Response Get Models"},"example":[{"id":"gpt-4","provider":"openai"},{"id":"claude-3-sonnet","provider":"anthropic"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}/runs":{"post":{"tags":["Agents"],"summary":"Create Agent Run","description":"Execute an agent with a message and optional media files. Supports both streaming and non-streaming responses.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_agent_run"}}}},"responses":{"200":{"description":"Agent run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"examples":{"event_stream":{"summary":"Example event stream response","value":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Agents"],"summary":"List Agent Runs","description":"List runs for an agent within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_agent_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED","title":"Status"},"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RunSchema"},"type":"array","title":"Response List Agent Runs"}}}},"400":{"description":"Run listing is unavailable for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Agent resolution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/cancel":{"post":{"tags":["Agents"],"summary":"Cancel Agent Run","description":"Cancel a currently executing agent run. This will attempt to stop the agent's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/continue":{"post":{"tags":["Agents"],"summary":"Continue Agent Run","description":"Advance a persisted agent run from its current state. Dispatches on the body shape and the persisted run state (see ADR-003 in specs/agno/features/checkpointing/decisions.md).\n\n**Variants:**\n- PAUSED + tools provided \u2192 apply HITL tool results, resume\n- PAUSED + resolved admin approval (empty tools) \u2192 apply resolution, resume\n- RUNNING / ERROR (no unresolved HITL requirements) \u2192 resume from last persisted state\n- COMPLETED + new tools \u2192 continue with appended messages\n\n**Tools Parameter:**\nJSON string containing array of tool execution objects with results. Optional \u2014 only required when the persisted run has unresolved HITL requirements.","operationId":"continue_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_agent_run"}}}},"responses":{"200":{"description":"Agent run continued successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid JSON in tools field or invalid tool structure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Run has a pending admin approval and cannot be continued by the user yet."},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/sessions/{session_id}/fork":{"post":{"tags":["Agents"],"summary":"Fork Agent Session","description":"Deep-copy a session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_agent_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents":{"get":{"tags":["Agents"],"summary":"List All Agents","description":"Retrieve a comprehensive list of all agents configured in this OS instance.\n\n**Returns:**\n- Agent metadata (ID, name, description)\n- Model configuration and capabilities\n- Available tools and their configurations\n- Session, knowledge, memory, and reasoning settings\n- Only meaningful (non-default) configurations are included","operationId":"get_agents","responses":{"200":{"description":"List of agents retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentResponse"},"type":"array","title":"Response Get Agents"},"example":[{"id":"main-agent","name":"Main Agent","db_id":"c6bf0644-feb8-4930-a305-380dae5ad6aa","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Details","description":"Retrieve detailed configuration and capabilities of a specific agent.\n\n**Returns comprehensive agent information including:**\n- Model configuration and provider details\n- Complete tool inventory and configurations\n- Session management settings\n- Knowledge base and memory configurations\n- Reasoning capabilities and settings\n- System prompts and response formatting options","operationId":"get_agent","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Agent details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"},"example":{"id":"main-agent","name":"Main Agent","db_id":"9e064c70-6821-4840-a333-ce6230908a70","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Run","description":"Retrieve the status and output of an agent run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Agents"],"summary":"List Agent Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_agent_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Agents"],"summary":"Get Agent Run Checkpoint Snapshot","description":"Return a derived run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_agent_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/resume":{"post":{"tags":["Agents"],"summary":"Resume Agent Run Stream","description":"Resume an SSE stream for an agent run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_agent_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_agent_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Not supported for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs":{"post":{"tags":["Teams"],"summary":"Create Team Run","description":"Execute a team collaboration with multiple agents working together on a task.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_team_run"}}}},"responses":{"200":{"description":"Team run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Teams"],"summary":"List Team Runs","description":"List runs for a team within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_team_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/cancel":{"post":{"tags":["Teams"],"summary":"Cancel Team Run","description":"Cancel a currently executing team run. This will attempt to stop the team's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel team run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/resume":{"post":{"tags":["Teams"],"summary":"Resume Team Run Stream","description":"Resume an SSE stream for a team run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_team_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_team_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory teams. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/continue":{"post":{"tags":["Teams"],"summary":"Continue Team Run","description":"Continue a paused or incomplete team run with updated requirements.\n\n**Use Cases:**\n- Resume execution after tool approval/rejection\n- Provide manual tool execution results\n- Resume after admin approval (requirements can be empty; resolution fetched from DB)\n\n**Requirements Parameter:**\nJSON string containing array of requirement objects with tool execution results.\nCan be empty when an admin-required approval has been resolved.","operationId":"continue_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_team_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid requirements or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Team run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is not paused and cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/sessions/{session_id}/fork":{"post":{"tags":["Teams"],"summary":"Fork Team Session","description":"Deep-copy a team session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_team_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams":{"get":{"tags":["Teams"],"summary":"List All Teams","description":"Retrieve a comprehensive list of all teams configured in this OS instance.\n\n**Returns team information including:**\n- Team metadata (ID, name, description, execution mode)\n- Model configuration for team coordination\n- Team member roster with roles and capabilities\n- Knowledge sharing and memory configurations","operationId":"get_teams","responses":{"200":{"description":"List of teams retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamResponse"},"type":"array","title":"Response Get Teams"},"example":[{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"agno_memories","app_url":"/memory/1","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/teams/{team_id}":{"get":{"tags":["Teams"],"summary":"Get Team Details","description":"Retrieve detailed configuration and member information for a specific team.","operationId":"get_team","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"},"example":{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}":{"get":{"tags":["Teams"],"summary":"Get Team Run","description":"Retrieve the status and output of a team run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Teams"],"summary":"List Team Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored team run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_team_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Teams"],"summary":"Get Team Run Checkpoint Snapshot","description":"Return a derived team run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_team_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows":{"get":{"tags":["Workflows"],"summary":"List All Workflows","description":"Retrieve a comprehensive list of all workflows configured in this OS instance.\n\n**Return Information:**\n- Workflow metadata (ID, name, description)\n- Input schema requirements\n- Step sequence and execution flow\n- Associated agents and teams","operationId":"get_workflows","responses":{"200":{"description":"List of workflows retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Response Get Workflows"},"example":[{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/workflows/{workflow_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Details","description":"Retrieve detailed configuration and step information for a specific workflow.","operationId":"get_workflow","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Workflow version to retrieve","title":"Version"},"description":"Workflow version to retrieve"}],"responses":{"200":{"description":"Workflow details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"},"example":{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs":{"post":{"tags":["Workflows"],"summary":"Execute Workflow","description":"Execute a workflow with the provided input data. Workflows can run in streaming or batch mode.\n\n**Execution Modes:**\n- **Streaming (`stream=true`)**: Real-time step-by-step execution updates via SSE\n- **Non-Streaming (`stream=false`)**: Complete workflow execution with final result\n\n**Workflow Execution Process:**\n1. Input validation against workflow schema\n2. Sequential or parallel step execution based on workflow design\n3. Data flow between steps with transformation\n4. Error handling and automatic retries where configured\n5. Final result compilation and response\n\n**Session Management:**\nWorkflows support session continuity for stateful execution across multiple runs.","operationId":"create_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_run"}}}},"responses":{"200":{"description":"Workflow executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid input data or workflow configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Workflow execution error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"List Workflow Runs","description":"List runs for a workflow within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_workflow_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/continue":{"post":{"tags":["Workflows"],"summary":"Continue Workflow Run","description":"Continue a paused workflow run with resolved requirements.\n\n**Use Cases:**\n- Resume after step-level HITL (confirmation, user input, router selection)\n- Resume after executor-level HITL (agent/team tool confirmation within a step)\n\n**Requirements Parameter:**\nJSON string containing the resolved step requirements.","operationId":"continue_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_workflow_run"}}}},"responses":{"200":{"description":"Workflow run continued successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: StepCompleted\ndata: {\"step_name\": \"step1\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid JSON in requirements field","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is not paused. Only PAUSED runs can be continued."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/cancel":{"post":{"tags":["Workflows"],"summary":"Cancel Workflow Run","description":"Cancel a currently executing workflow run, stopping all active steps and cleanup.\n**Note:** Complex workflows with multiple parallel steps may take time to fully cancel.","operationId":"cancel_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found, or the requested run was not found in the caller's session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel workflow run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/resume":{"post":{"tags":["Workflows"],"summary":"Resume Workflow Run Stream","description":"Resume an SSE stream for a workflow run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_workflow_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_workflow_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory workflows. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Run","description":"Retrieve the status and output of a workflow run. Use this to poll for run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/slack/events":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Receives incoming Slack events (messages, mentions, thread starts).\n\n**URL Verification:** On first setup, Slack sends a `url_verification` challenge. The endpoint echoes back the challenge string.\n\n**Event Processing:** Normal events are acknowledged immediately with `{\"status\": \"ok\"}` and processed in the background. This prevents Slack's 3-second retry timeout.\n\n**Retry Handling:** Events with `X-Slack-Retry-Num` header are duplicates and return 200 without reprocessing.\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Event Subscriptions > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for creating a Slack App or use the [manifest](/agent-os/interfaces/slack/setup#2-create-the-slack-app) for quick setup.\n","operationId":"slack_events_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SlackChallengeResponse"},{"$ref":"#/components/schemas/SlackEventResponse"}],"title":"Response Slack Events Simple Agent"}}}},"400":{"description":"Missing Slack headers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured, or the event body is not valid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number (present on retried events)"}]}},"/slack/interactions":{"post":{"tags":["Slack"],"summary":"Slack Interactions","description":"Handles Slack interactive components for Human-in-the-Loop (HITL) workflows.\n\n**Supported Actions:**\n- `row_approve` - Approve a pending tool call\n- `row_reject` - Reject a pending tool call\n- `submit_pause` - Submit form data for a paused workflow\n- `check_status` - Check an admin approval and resume an approved run\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Interactivity & Shortcuts > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for step-by-step instructions or the [HITL guide](/agent-os/interfaces/slack/hitl) for approval workflows.\n","operationId":"slack_interactions_simple_agent","responses":{"200":{"description":"Interaction accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackEventResponse"}}}},"400":{"description":"Missing Slack headers or malformed interaction payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number. Retried interactions return 200 without reprocessing."}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"URL-encoded JSON interaction payload (Slack sends interactive component data as a single form field)"}}}}}}}},"/whatsapp/status":{"get":{"tags":["Whatsapp"],"summary":"Status","operationId":"whatsapp_status_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"WhatsAppStatusResponse","example":{"status":"available"}}}}}}}},"/whatsapp/webhook":{"get":{"tags":["Whatsapp"],"summary":"Whatsapp Verify","description":"Handle WhatsApp webhook verification","operationId":"whatsapp_verify_simple_agent","responses":{"200":{"description":"Webhook challenge accepted","content":{"text/plain":{"schema":{"type":"string"},"example":"challenge-token"}}},"400":{"description":"No challenge was provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid verify token or mode","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Webhook verification is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"hub.mode","in":"query","required":true,"schema":{"type":"string"},"description":"Webhook verification mode. Meta sends `subscribe`."},{"name":"hub.verify_token","in":"query","required":true,"schema":{"type":"string"},"description":"Verification token configured for the WhatsApp interface."},{"name":"hub.challenge","in":"query","required":true,"schema":{"type":"string"},"description":"Challenge returned as plain text after successful verification."}]},"post":{"tags":["Whatsapp"],"summary":"Whatsapp Webhook","description":"Process incoming WhatsApp messages","operationId":"whatsapp_webhook_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppWebhookResponse"}}}},"403":{"description":"Invalid webhook signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Signature validation is not configured, or the JSON body is malformed or is not an object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Hub-Signature-256","in":"header","required":true,"schema":{"type":"string"},"description":"SHA-256 HMAC signature for the raw request body, prefixed with `sha256=`"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}},"/telegram/status":{"get":{"tags":["Telegram"],"summary":"Telegram Status","operationId":"telegram_status_simple-agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramStatusResponse"}}}}}}},"/telegram/webhook":{"post":{"tags":["Telegram"],"summary":"Telegram Webhook","operationId":"telegram_webhook_simple-agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramWebhookResponse"}}}},"403":{"description":"Invalid webhook secret token"}}}},"/agui":{"post":{"tags":["AGUI"],"summary":"Run Agent","operationId":"run_agent_agui_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentInput"}}},"required":true},"responses":{"200":{"description":"Server-sent event stream","content":{"text/event-stream":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/status":{"get":{"tags":["AGUI"],"summary":"Get Status","operationId":"get_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/a2a/agents/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Agent Card","operationId":"get_agent_card_a2a_agents__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Agent","description":"Send a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"A2A is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/agents/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Agent Task","description":"Get the status and result of an agent task by ID.","operationId":"get_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Agent Task","description":"Cancel a running agent task.","operationId":"cancel_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Agent","description":"Stream a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/teams/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Team Card","operationId":"get_team_card_a2a_teams__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Team","description":"Send a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/teams/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Team Task","description":"Get the status and result of a team task by ID.","operationId":"get_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Team Task","description":"Cancel a running team task.","operationId":"cancel_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Team","description":"Stream a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/workflows/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Workflow Card","operationId":"get_workflow_card_a2a_workflows__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/workflows/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Workflow","description":"Send a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/workflows/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Workflow","description":"Stream a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/message/send":{"post":{"tags":["A2A"],"summary":"Send Message","description":"[DEPRECATED] Send a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"send_message","responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/a2a/message/stream":{"post":{"tags":["A2A"],"summary":"Stream Message","description":"[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message","responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/sessions":{"get":{"tags":["Sessions"],"summary":"List Sessions","description":"Retrieve paginated list of sessions with filtering and sorting options. Supports filtering by session type (agent, team, workflow), component, user, and name. Sessions represent conversation histories and execution contexts.","operationId":"get_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types.","title":"Type"},"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types."},{"name":"component_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by component ID (agent/team/workflow ID)","title":"Component Id"},"description":"Filter sessions by component ID (agent/team/workflow ID)"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by user ID","title":"User Id"},"description":"Filter sessions by user ID"},{"name":"session_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by name (partial match)","title":"Session Name"},"description":"Filter sessions by name (partial match)"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of sessions to return per page","default":20,"title":"Limit"},"description":"Number of sessions to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort sessions by","default":"created_at","title":"Sort By"},"description":"Field to sort sessions by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query sessions from","title":"Db Id"},"description":"Database ID to query sessions from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Sessions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_SessionSchema_"},"example":{"session_example":{"summary":"Example session response","value":{"data":[{"session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_state":{},"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}]}}}}}},"400":{"description":"Invalid session type or filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in query parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Sessions"],"summary":"Create New Session","description":"Create a new empty session with optional configuration. Useful for pre-creating sessions with specific session_state, metadata, or other properties before running any agent/team/workflow interactions. The session can later be used by providing its session_id in run requests.","operationId":"create_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SessionType","description":"Type of session to create (agent, team, or workflow)","default":"agent"},"description":"Type of session to create (agent, team, or workflow)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to create session in","title":"Db Id"},"description":"Database ID to create session in"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest","description":"Session configuration data","default":{}}}}},"responses":{"201":{"description":"Session created successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Create Session"},"examples":{"agent_session_example":{"summary":"Example created agent session","value":{"user_id":"user-123","agent_session_id":"new-session-id","session_id":"new-session-id","session_name":"New Session","session_state":{"key":"value"},"metadata":{"key":"value"},"agent_id":"agent-1","created_at":"2025-10-21T12:00:00Z","updated_at":"2025-10-21T12:00:00Z"}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A session with the supplied session_id already exists"},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Multiple Sessions","description":"Delete multiple sessions by their IDs in a single operation. This action cannot be undone and will permanently remove all specified sessions and their runs.","operationId":"delete_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSessionRequest"}}}},"responses":{"204":{"description":"Sessions deleted successfully"},"400":{"description":"Invalid request - session IDs and types length mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["Sessions"],"summary":"Get Session by ID","description":"Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow).","operationId":"get_session_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to retrieve","title":"Session Id"},"description":"Session ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query session from","title":"User Id"},"description":"User ID to query session from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query session from","title":"Db Id"},"description":"Database ID to query session from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query session from","title":"Table"},"description":"Table to query session from"}],"responses":{"200":{"description":"Session details retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Get Session By Id"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Session","description":"Permanently delete a specific session and all its associated runs. This action cannot be undone and will remove all conversation history.","operationId":"delete_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to delete","title":"Session Id"},"description":"Session ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Sessions"],"summary":"Update Session","description":"Update session properties such as session_name, session_state, metadata, or summary. Use this endpoint to modify the session name, update state, add metadata, or update the session summary.","operationId":"update_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to update","title":"Session Id"},"description":"Session ID to update"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID","title":"User Id"},"description":"User ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update operation","title":"Db Id"},"description":"Database ID to use for update operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update operation","title":"Table"},"description":"Table to use for update operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest","description":"Session update data"}}}},"responses":{"200":{"description":"Session updated successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Update Session"},"examples":{"update_summary":{"summary":"Update session summary","value":{"summary":{"summary":"The user discussed project planning with the agent.","updated_at":"2025-10-21T14:30:00Z"}}},"update_metadata":{"summary":"Update session metadata","value":{"metadata":{"tags":["planning","project"],"priority":"high"}}},"update_session_name":{"summary":"Update session name","value":{"session_name":"Updated Session Name"}},"update_session_state":{"summary":"Update session state","value":{"session_state":{"step":"completed","context":"Project planning finished","progress":100}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs":{"get":{"tags":["Sessions"],"summary":"Get Session Runs","description":"Retrieve all runs (executions) for a specific session with optional timestamp filtering. Runs represent individual interactions or executions within a session. Response schema varies based on session type.","operationId":"get_session_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get runs from","title":"Session Id"},"description":"Session ID to get runs from"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query runs from","title":"User Id"},"description":"User ID to query runs from"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created after this Unix timestamp (epoch time in seconds)","title":"Created After"},"description":"Filter runs created after this Unix timestamp (epoch time in seconds)"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created before this Unix timestamp (epoch time in seconds)","title":"Created Before"},"description":"Filter runs created before this Unix timestamp (epoch time in seconds)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query runs from","title":"Db Id"},"description":"Database ID to query runs from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query runs from","title":"Table"},"description":"Table to query runs from"}],"responses":{"200":{"description":"Session runs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}]},"title":"Response Get Session Runs"},"examples":{"completed_run":{"summary":"Example completed run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"","run_input":"Which tools do you have access to?","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","run_response_format":"text","reasoning_content":"","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069},"messages":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-08 17:52:10.101003.\n\n\nYou have the capability to retain memories from previous interactions with the user, but have not had any interactions with the user yet.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757346730},{"content":"Which tools do you have access to?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757346730},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138},"created_at":1757346730}],"events":[{"created_at":1757346730,"event":"RunStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","model":"gpt-4o","model_provider":"OpenAI"},{"created_at":1757346733,"event":"MemoryUpdateStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"MemoryUpdateCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"RunCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","content_type":"str","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069}}],"created_at":"2025-09-08T15:52:10Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found or has no runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs/{run_id}":{"get":{"tags":["Sessions"],"summary":"Get Run by ID","description":"Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run).","operationId":"get_session_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get run from","title":"Session Id"},"description":"Session ID to get run from"},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","description":"Run ID to retrieve","title":"Run Id"},"description":"Run ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query run from","title":"User Id"},"description":"User ID to query run from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query run from","title":"Db Id"},"description":"Database ID to query run from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query run from","title":"Table"},"description":"Table to query run from"}],"responses":{"200":{"description":"Run retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}],"title":"Response Get Session Run"},"examples":{"agent_run":{"summary":"Example agent run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"user_123","run_input":"Which tools do you have access to?","content":"I don't have access to external tools.","created_at":1728499200}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/rename":{"post":{"tags":["Sessions"],"summary":"Rename Session","description":"Update the name of an existing session. Useful for organizing and categorizing sessions with meaningful names for better identification and management.","operationId":"rename_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to rename","title":"Session Id"},"description":"Session ID to rename"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope rename to","title":"User Id"},"description":"User ID to scope rename to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for rename operation","title":"Db Id"},"description":"Database ID to use for rename operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_rename_session"}}}},"responses":{"200":{"description":"Session renamed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Rename Session"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Invalid session name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type or validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories":{"post":{"tags":["Memory"],"summary":"Create Memory","description":"Create a new user memory with content and associated topics. Memories are used to store contextual information for users across conversations.","operationId":"create_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for memory storage","title":"Db Id"},"description":"Database ID to use for memory storage"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for memory storage","title":"Table"},"description":"Table to use for memory storage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"mem-123","memory":"User prefers technical explanations with code examples","topics":["preferences","communication_style","technical"],"user_id":"user-456","created_at":"2024-01-15T10:30:00Z","updated_at":"2024-01-15T10:30:00Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Memory"],"summary":"Delete Multiple Memories","description":"Delete multiple user memories by their IDs in a single operation. This action cannot be undone and all specified memories will be permanently removed.","operationId":"delete_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMemoriesRequest"}}}},"responses":{"204":{"description":"Memories deleted successfully"},"400":{"description":"Invalid request - empty memory_ids list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"List Memories","description":"Retrieve paginated list of user memories with filtering and search capabilities. Filter by user, agent, team, topics, or search within memory content.","operationId":"get_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by user ID","title":"User Id"},"description":"Filter memories by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by agent ID","title":"Agent Id"},"description":"Filter memories by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by team ID","title":"Team Id"},"description":"Filter memories by team ID"},{"name":"search_content","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fuzzy search within memory content","title":"Search Content"},"description":"Fuzzy search within memory content"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of memories to return per page","default":20,"title":"Limit"},"description":"Number of memories to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort memories by","default":"updated_at","title":"Sort By"},"description":"Field to sort memories by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memories from","title":"Db Id"},"description":"Database ID to query memories from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Comma-separated list of topics to filter by","examples":["preferences,technical,communication_style"],"title":"Topics"},"description":"Comma-separated list of topics to filter by"}],"responses":{"200":{"description":"Memories retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserMemorySchema_"},"example":{"data":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories/{memory_id}":{"delete":{"tags":["Memory"],"summary":"Delete Memory","description":"Permanently delete a specific user memory. This action cannot be undone.","operationId":"delete_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to delete","title":"Memory Id"},"description":"Memory ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to delete memory for","title":"User Id"},"description":"User ID to delete memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Memory deleted successfully"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"Get Memory by ID","description":"Retrieve detailed information about a specific user memory by its ID.","operationId":"get_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to retrieve","title":"Memory Id"},"description":"Memory ID to retrieve"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query memory for","title":"User Id"},"description":"User ID to query memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memory from","title":"Db Id"},"description":"Database ID to query memory from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query memory from","title":"Table"},"description":"Table to query memory from"}],"responses":{"200":{"description":"Memory retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Memory"],"summary":"Update Memory","description":"Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values.","operationId":"update_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to update","title":"Memory Id"},"description":"Memory ID to update"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update","title":"Db Id"},"description":"Database ID to use for update"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update","title":"Table"},"description":"Table to use for update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memory_topics":{"get":{"tags":["Memory"],"summary":"Get Memory Topics","description":"Retrieve all unique topics associated with memories in the system. Useful for filtering and categorizing memories by topic.","operationId":"get_memory_topics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter topics for","title":"User Id"},"description":"User ID to filter topics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query topics from","title":"Db Id"},"description":"Database ID to query topics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query topics from","title":"Table"},"description":"Table to query topics from"}],"responses":{"200":{"description":"Memory topics retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Get Memory Topics"},"example":["preferences","communication_style","technical","industry","compliance","code_examples","requirements","healthcare","finance"]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/user_memory_stats":{"get":{"tags":["Memory"],"summary":"Get User Memory Statistics","description":"Retrieve paginated statistics about memory usage by user. Provides insights into user engagement and memory distribution across users.","operationId":"get_user_memory_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of user statistics to return per page","default":20,"title":"Limit"},"description":"Number of user statistics to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter statistics for","title":"User Id"},"description":"User ID to filter statistics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query statistics from","title":"Table"},"description":"Table to query statistics from"}],"responses":{"200":{"description":"User memory statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserStatsSchema_"},"example":{"data":[{"user_id":"123","total_memories":3,"last_memory_updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve user statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/optimize-memories":{"post":{"tags":["Memory"],"summary":"Optimize User Memories","description":"Optimize all memories for a user with the summarize strategy. The operation combines the user's memories into one summary. Set `apply=false` to preview the result without saving it. Specify a custom model as `provider:model_id`, for example `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, or `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`.","operationId":"optimize_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for optimization","title":"Db Id"},"description":"Database ID to use for optimization"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for optimization","title":"Table"},"description":"Table to use for optimization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesRequest"}}}},"responses":{"200":{"description":"Memories optimized successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesResponse"},"example":{"memories":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User has a 3-year-old golden retriever named Max who loves fetch and walks. Lives in San Francisco's Mission district, works as a product manager in tech. Enjoys hiking Bay Area trails, trying new restaurants (especially Japanese, Thai, Mexican), and learning piano for 1.5 years.","topics":["pets","location","work","hobbies","food_preferences"],"user_id":"user2","updated_at":"2025-11-18T10:30:00Z"}],"memories_before":4,"memories_after":1,"tokens_before":450,"tokens_after":180,"tokens_saved":270,"reduction_percentage":60.0}}}},"400":{"description":"Bad request - User ID is required or invalid model string format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No memories found for user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to optimize memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings":{"get":{"tags":["Learnings"],"summary":"List Learnings","description":"List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) \u2014 this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`).","operationId":"list_learnings","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by learning type","title":"Learning Type"},"description":"Filter by learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"namespace","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by namespace","title":"Namespace"},"description":"Filter by namespace"},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity ID","title":"Entity Id"},"description":"Filter by entity ID"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity type","title":"Entity Type"},"description":"Filter by entity type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":100,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used).","title":"Sort By"},"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used)."},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Learnings"],"summary":"Create Learning","description":"Create a new learning record. For the identity-keyed learning types (`user_profile`, `user_memory`, `session_context`, `entity_memory`) the record id is derived deterministically from the identity fields so it reconciles with what the agent reads/writes \u2014 provide those fields (else 422), and if a record already exists the request is rejected with 409 (use PATCH to update it). Other types get a generated id. For a scoped (non-admin) caller, the body's `user_id` must be omitted/null or match the caller (mismatch \u2192 403); admins and unscoped callers may set any `user_id`.","operationId":"create_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users":{"get":{"tags":["Learnings"],"summary":"List Learning Users","description":"List the users that own learning records, with a per-user count and last-updated timestamp. Intended as the entry point for a per-user view: list users here, then drill into a single user's learnings via `GET /learnings?user_id=...`. Records with no owner (`user_id IS NULL`) are excluded. Pass `learning_type` to restrict the grouping to a single store (e.g. `user_profile` or `user_memory`). For a scoped (non-admin) caller results are bound to that user; an explicit `user_id` that differs is rejected with 403. Admins and unscoped callers list all users. Sortable by `user_id` or `last_learning_updated_at` (the default).","operationId":"list_learning_users","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the grouping to a single learning type","title":"Learning Type"},"description":"Restrict the grouping to a single learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the result to a single user","title":"User Id"},"description":"Restrict the result to a single user"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by: user_id or last_learning_updated_at (the default)","title":"Sort By"},"description":"Field to sort by: user_id or last_learning_updated_at (the default)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningUserStats_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users/{user_id}":{"delete":{"tags":["Learnings"],"summary":"Delete Learning User","description":"Delete the learning records owned by a user. By default removes every learning type backed by the agno_learnings table (user_profile, user_memory, and any user-scoped entity records); pass `learning_type` to restrict deletion to a single store. Records with no owner (`user_id IS NULL`) are not affected. For a scoped (non-admin) caller, only their own learnings may be deleted; a different `user_id` is rejected with 403. Admins and unscoped callers may delete any user's learnings. Returns 204 even if the user had no matching records.","operationId":"delete_learning_user","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The user whose learnings should be deleted","title":"User Id"},"description":"The user whose learnings should be deleted"},{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings","title":"Learning Type"},"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/{learning_id}":{"get":{"tags":["Learnings"],"summary":"Get Learning","description":"Retrieve a single learning record by its ID.","operationId":"get_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Learnings"],"summary":"Update Learning","description":"Update a learning record. Only `content` and `metadata` may be modified; identity fields (user_id, agent_id, team_id, etc.) are immutable. Provided fields fully replace the existing values. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) are readable by any caller but may only be modified by an admin.","operationId":"update_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Learnings"],"summary":"Delete Learning","description":"Permanently delete a learning record by its ID. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) may only be deleted by an admin.","operationId":"delete_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs":{"get":{"tags":["Evals"],"summary":"List Evaluation Runs","description":"Retrieve paginated evaluation runs with filtering and sorting options. Filter by agent, team, workflow, model, or evaluation type.","operationId":"get_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Workflow ID","title":"Workflow Id"},"description":"Workflow ID"},{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model ID","title":"Model Id"},"description":"Model ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EvalFilterType"},{"type":"null"}],"description":"Filter type","title":"Type"},"description":"Filter type"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of eval runs to return","default":20,"title":"Limit"},"description":"Number of eval runs to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"eval_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)","examples":["accuracy,agent_as_judge,performance,reliability"],"title":"Eval Types"},"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)"}],"responses":{"200":{"description":"Evaluation runs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_EvalSchema_"},"example":{"data":[{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Evals"],"summary":"Delete Evaluation Runs","description":"Delete multiple evaluation runs by their IDs. This action cannot be undone.","operationId":"delete_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvalRunsRequest"}}}},"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Deletion failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Evals"],"summary":"Execute Evaluation","description":"Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both.","operationId":"run_eval","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for evaluation","title":"Db Id"},"description":"Database ID to use for evaluation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for evaluation","title":"Table"},"description":"Table to use for evaluation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRunInput"}}}},"responses":{"200":{"description":"Evaluation executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"f2b2d72f-e9e2-4f0e-8810-0a7e1ff58614","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Invalid request - provide either agent_id or team_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs/{eval_run_id}":{"get":{"tags":["Evals"],"summary":"Get Evaluation Run","description":"Retrieve detailed results and metrics for a specific evaluation run.","operationId":"get_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query eval run from","title":"Table"},"description":"Table to query eval run from"}],"responses":{"200":{"description":"Evaluation run details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Evals"],"summary":"Update Evaluation Run","description":"Update the name or other properties of an existing evaluation run.","operationId":"update_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvalRunRequest"}}}},"responses":{"200":{"description":"Evaluation run updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update evaluation run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics":{"get":{"tags":["Metrics"],"summary":"Get AgentOS Metrics","description":"Retrieve AgentOS metrics and analytics data for a specified date range. If no date range is specified, returns all available metrics.","operationId":"get_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"starting_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Starting date for metrics range (YYYY-MM-DD format)","title":"Starting Date"},"description":"Starting date for metrics range (YYYY-MM-DD format)"},{"name":"ending_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Ending date for metrics range (YYYY-MM-DD format)","title":"Ending Date"},"description":"Ending date for metrics range (YYYY-MM-DD format)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query metrics from","title":"Db Id"},"description":"Database ID to query metrics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Metrics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"},"example":{"metrics":[{"id":"7bf39658-a00a-484c-8a28-67fd8a9ddb2a","agent_runs_count":5,"agent_sessions_count":5,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":448,"output_tokens":148,"total_tokens":596,"audio_tokens":0,"input_audio_tokens":0,"output_audio_tokens":0,"cached_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":5}],"date":"2025-07-31T00:00:00Z","created_at":"2025-07-31T12:38:52Z","updated_at":"2025-07-31T12:49:01Z"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Metrics retrieval failed. In Agno 2.7.4, invalid or ambiguous database selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics/refresh":{"post":{"tags":["Metrics"],"summary":"Refresh Metrics","description":"Manually trigger recalculation of system metrics from raw data. This operation analyzes system activity logs and regenerates aggregated metrics. Useful for ensuring metrics are up-to-date or after system maintenance.","operationId":"refresh_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for metrics calculation","title":"Db Id"},"description":"Database ID to use for metrics calculation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for metrics calculation","title":"Table"},"description":"Table to use for metrics calculation"}],"responses":{"200":{"description":"Metrics refreshed successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"title":"Response Refresh Metrics"},"example":[{"id":"e77c9531-818b-47a5-99cd-59fed61e5403","agent_runs_count":2,"agent_sessions_count":2,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":256,"output_tokens":441,"total_tokens":697,"audio_total_tokens":0,"audio_input_tokens":0,"audio_output_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":2}],"date":"2025-08-12T00:00:00Z","created_at":"2025-08-12T08:01:47Z","updated_at":"2025-08-12T08:01:47Z"}]}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Refresh failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content":{"post":{"tags":["Knowledge"],"summary":"Upload Content","description":"Upload content to the knowledge base. Supports file uploads, text content, or URLs. Content is processed asynchronously in the background. Supports custom readers and chunking strategies.","operationId":"upload_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_content"}}}},"responses":{"202":{"description":"Content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-123","name":"example-document.pdf","description":"Sample document for processing","metadata":{"category":"documentation","priority":"high"},"status":"processing"}}}},"400":{"description":"Invalid request - malformed metadata or missing content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in form data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"List Content","description":"Retrieve paginated list of all content in the knowledge base with filtering and sorting options. Filter by status, content type, or metadata properties.","operationId":"get_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of content entries to return","default":20,"title":"Limit"},"description":"Number of content entries to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ContentResponseSchema_"},"example":{"data":[{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}],"meta":{"page":1,"limit":20,"total_pages":1,"total_count":2}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete All Content","description":"Permanently remove all content from the knowledge base. This is a destructive operation that cannot be undone. Use with extreme caution.","operationId":"delete_all_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete all content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/remote-content":{"post":{"tags":["Knowledge"],"summary":"Upload Remote Content","description":"Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.","operationId":"upload_remote_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_upload_remote_content"}}}},"responses":{"202":{"description":"Remote content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-456","name":"reports/q1-2024.pdf","description":"Q1 Report from S3","metadata":{"source":"s3-docs"},"status":"processing"}}}},"400":{"description":"Invalid request - unknown config or missing path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}":{"patch":{"tags":["Knowledge"],"summary":"Update Content","description":"Update content name, description, or metadata without re-uploading it. In Agno 2.7.4, this endpoint accepts `reader_id`. Local knowledge validates the value, but the content patch does not apply or persist the reader change.","operationId":"update_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","description":"Content ID","title":"Content Id"},"description":"Content ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_update_content"}}}},"responses":{"200":{"description":"Content updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Invalid request - malformed metadata or invalid reader_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"Get Content by ID","description":"Retrieve detailed information about a specific content item including processing status and metadata.","operationId":"get_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete Content by ID","description":"Permanently remove a specific content item from the knowledge base. This action cannot be undone.","operationId":"delete_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}/status":{"get":{"tags":["Knowledge"],"summary":"Get Content Status","description":"Retrieve the current processing status of a content item. Useful for monitoring asynchronous content processing progress and identifying any processing errors.","operationId":"get_content_status","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content status retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentStatusResponse"},"examples":{"completed":{"summary":"Example completed content status","value":{"status":"completed","status_message":""}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/search":{"post":{"tags":["Knowledge"],"summary":"Search Knowledge","description":"Search the knowledge base for relevant documents using query, filters and search type.","operationId":"search_knowledge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VectorSearchRequestSchema"}}},"required":true},"responses":{"200":{"description":"Search results retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_VectorSearchResult_"},"example":{"data":[{"id":"doc_123","content":"Jordan Mitchell - Software Engineer with skills in JavaScript, React, Python","name":"cv_1","meta_data":{"page":1,"chunk":1},"usage":{"total_tokens":14},"reranking_score":0.95,"content_id":"content_456"}],"meta":{"page":1,"limit":20,"total_pages":2,"total_count":35}}}}},"400":{"description":"Invalid search parameters"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No documents found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/knowledge/config":{"get":{"tags":["Knowledge"],"summary":"Get Config","description":"Retrieve available readers, chunkers, and configuration options for content processing. This endpoint provides metadata about supported file types, processing strategies, and filters.","operationId":"get_knowledge_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Knowledge configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponseSchema"},"example":{"readers":{"website":{"id":"website","name":"WebsiteReader","description":"Reads website files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"firecrawl":{"id":"firecrawl","name":"FirecrawlReader","description":"Reads firecrawl files","chunkers":["SemanticChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"youtube":{"id":"youtube","name":"YoutubeReader","description":"Reads youtube files","chunkers":["RecursiveChunker","AgenticChunker","DocumentChunker","SemanticChunker","FixedSizeChunker"]},"web_search":{"id":"web_search","name":"WebSearchReader","description":"Reads web_search files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"arxiv":{"id":"arxiv","name":"ArxivReader","description":"Reads arxiv files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"csv":{"id":"csv","name":"CsvReader","description":"Reads csv files","chunkers":["RowChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"docling":{"id":"docling","name":"DoclingReader","description":"Converts multiple document formats like PDF, DOCX, PPTX, images, HTML, etc. using IBM's Docling library","chunkers":["AgenticChunker","CodeChunker","DocumentChunker","FixedSizeChunker","RecursiveChunker","SemanticChunker"]},"docx":{"id":"docx","name":"DocxReader","description":"Reads docx files","chunkers":["DocumentChunker","FixedSizeChunker","SemanticChunker","AgenticChunker","RecursiveChunker"]},"gcs":{"id":"gcs","name":"GcsReader","description":"Reads gcs files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"json":{"id":"json","name":"JsonReader","description":"Reads json files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"markdown":{"id":"markdown","name":"MarkdownReader","description":"Reads markdown files","chunkers":["MarkdownChunker","DocumentChunker","AgenticChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"pdf":{"id":"pdf","name":"PdfReader","description":"Reads pdf files","chunkers":["DocumentChunker","FixedSizeChunker","AgenticChunker","SemanticChunker","RecursiveChunker"]},"text":{"id":"text","name":"TextReader","description":"Reads text files","chunkers":["CodeChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]}},"readersForType":{"url":["url","website","firecrawl","youtube","web_search","gcs"],"youtube":["youtube"],"text":["web_search"],"topic":["arxiv"],"file":["csv","gcs"],".csv":["csv","field_labeled_csv","docling"],".xlsx":["excel","docling"],".xls":["excel"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["excel"],"application/vnd.ms-excel":["excel"],".docx":["docx","docling"],".dotx":["docling"],".docm":["docling"],".dotm":["docling"],".pptx":["docling","pptx"],".potx":["docling"],".ppsx":["docling"],".pptm":["docling"],".ppsm":["docling"],".potm":["docling"],".doc":["docx"],".json":["json"],".md":["markdown","docling"],".pdf":["pdf","docling"],".txt":["text"],".html":["docling"],".htm":["docling"],".xhtml":["docling"],".xml":["docling"],".nxml":["docling"],".xbrl":["docling"],".adoc":["docling"],".asciidoc":["docling"],".asc":["docling"],".xlsm":["docling"],".tex":["docling"],".latex":["docling"],".tar.gz":["docling"],".vtt":["docling"],".png":["docling"],".jpeg":["docling"],".jpg":["docling"],".tiff":["docling"],".tif":["docling"],".bmp":["docling"],".webp":["docling"],".wav":["docling"],".mp3":["docling"],".m4a":["docling"],".aac":["docling"],".ogg":["docling"],".flac":["docling"],".mp4":["docling"],".avi":["docling"],".mov":["docling"]},"chunkers":{"AgenticChunker":{"key":"AgenticChunker","name":"AgenticChunker","description":"Chunking strategy that uses an LLM to determine natural breakpoints in the text","metadata":{"chunk_size":5000}},"CodeChunker":{"key":"CodeChunker","name":"CodeChunker","description":"The CodeChunker splits code into chunks based on its structure, leveraging Abstract Syntax Trees (ASTs) to create contextually relevant segments","metadata":{"chunk_size":2048}},"DocumentChunker":{"key":"DocumentChunker","name":"DocumentChunker","description":"A chunking strategy that splits text based on document structure like paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"FixedSizeChunker":{"key":"FixedSizeChunker","name":"FixedSizeChunker","description":"Chunking strategy that splits text into fixed-size chunks with optional overlap","metadata":{"chunk_size":5000,"chunk_overlap":0}},"MarkdownChunker":{"key":"MarkdownChunker","name":"MarkdownChunker","description":"A chunking strategy that splits markdown based on structure like headers, paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RecursiveChunker":{"key":"RecursiveChunker","name":"RecursiveChunker","description":"Chunking strategy that recursively splits text into chunks by finding natural break points","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RowChunker":{"key":"RowChunker","name":"RowChunker","description":"RowChunking chunking strategy","metadata":{}},"SemanticChunker":{"key":"SemanticChunker","name":"SemanticChunker","description":"Chunking strategy that splits text into semantic chunks using chonkie","metadata":{"chunk_size":5000}}},"vector_dbs":[{"id":"vector_db_1","name":"Vector DB 1","description":"Vector DB 1 description","search_types":["vector","keyword","hybrid"]}],"filters":["filter_tag_1","filter_tag2"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources":{"get":{"tags":["Knowledge"],"summary":"List Content Sources","description":"List all registered content sources (S3, GCS, SharePoint, GitHub) for the knowledge base.","operationId":"list_content_sources","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Content sources retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"title":"Response List Content Sources"},"example":[{"id":"company-s3","name":"Company Documents","type":"s3","prefix":"documents/"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources/{source_id}/files":{"get":{"tags":["Knowledge"],"summary":"List Files in Source","description":"List available files and folders in a specific content source. Supports pagination and folder navigation.","operationId":"list_source_files","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the content source","title":"Source Id"},"description":"ID of the content source"},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Path prefix to filter files","title":"Prefix"},"description":"Path prefix to filter files"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of files per page","default":100,"title":"Limit"},"description":"Number of files per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"delimiter","in":"query","required":false,"schema":{"type":"string","description":"Folder delimiter (enables folder grouping)","default":"/","title":"Delimiter"},"description":"Folder delimiter (enables folder grouping)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Files listed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceFilesResponseSchema"},"example":{"source_id":"company-s3","source_name":"Company Documents","prefix":"reports/","folders":[{"prefix":"reports/2024/","name":"2024","is_empty":false}],"files":[{"key":"reports/annual-summary.pdf","name":"annual-summary.pdf","size":102400,"last_modified":"2024-01-15T10:30:00Z","content_type":"application/pdf"}],"meta":{"page":1,"limit":100,"total_pages":1,"total_count":1}}}}},"400":{"description":"Unsupported source type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base or content source not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces":{"get":{"tags":["Traces","Traces"],"summary":"List Traces","description":"Retrieve a paginated list of execution traces with optional filtering.\n\n**Traces provide observability into:**\n- Agent execution flows\n- Model invocations and token usage\n- Tool calls and their results\n- Errors and performance bottlenecks\n\n**Filtering Options:**\n- By run, session, user, or agent ID\n- By status (OK, ERROR)\n- By time range\n\n**Pagination:**\n- Use `page` (1-indexed) and `limit` parameters\n- Response includes pagination metadata (total_pages, total_count, etc.)\n\n**Response Format:**\nReturns summary information for each trace. Use GET `/traces/{trace_id}` for detailed hierarchy.","operationId":"get_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run ID","title":"Run Id"},"description":"Filter by run ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status (OK, ERROR)","title":"Status"},"description":"Filter by status (OK, ERROR)"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of traces per page","default":20,"title":"Limit"},"description":"Number of traces per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"responses":{"200":{"description":"List of traces retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSummary_"},"example":{"data":[{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","total_spans":4,"error_count":0,"input":"What is the stock price of NVDA?","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"agent_stock","created_at":"2025-11-19T10:30:00+00:00"}],"meta":{"page":1,"limit":20,"total_pages":5,"total_count":95}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/filter-schema":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Filter Schema","description":"Returns the available filterable fields, their types, valid operators, and enum values.\n\nThe frontend uses this to dynamically build the filter bar UI:\n- Field dropdown populated from `fields[].key`\n- Operator dropdown changes per field type\n- Value input shows autocomplete for enum fields (e.g., status)\n- Logical operators (AND, OR) for combining clauses","operationId":"get_traces_filter_schema","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterSchemaResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/traces/{trace_id}":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace or Span Detail","description":"Retrieve detailed trace information with hierarchical span tree, or a specific span within the trace.\n\n**Without span_id parameter:**\nReturns the full trace with hierarchical span tree:\n- Trace metadata (ID, status, duration, context)\n- Hierarchical tree of all spans\n- Each span includes timing, status, and type-specific metadata\n\n**With span_id parameter:**\nReturns details for a specific span within the trace:\n- Span metadata (ID, name, type, timing)\n- Status and error information\n- Type-specific attributes (model, tokens, tool params, etc.)\n\n**Span Hierarchy (full trace):**\nThe `tree` field contains root spans, each with potential `children`.\nThis recursive structure represents the execution flow:\n```\nAgent.run (root)\n \u251c\u2500 LLM.invoke\n \u251c\u2500 Tool.execute\n \u2502 \u2514\u2500 LLM.invoke (nested)\n \u2514\u2500 LLM.invoke\n```\n\n**Span Types:**\n- `AGENT`: Agent execution with input/output\n- `LLM`: Model invocations with tokens and prompts\n- `TOOL`: Tool calls with parameters and results","operationId":"get_trace","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}},{"name":"span_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Span ID to retrieve specific span","title":"Span Id"},"description":"Optional: Span ID to retrieve specific span"},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Run ID to retrieve trace for","title":"Run Id"},"description":"Optional: Run ID to retrieve trace for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query trace from","title":"Db Id"},"description":"Database ID to query trace from"}],"responses":{"200":{"description":"Trace or span detail retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TraceDetail"},{"$ref":"#/components/schemas/TraceNode"}],"title":"Response Get Trace"},"examples":{"full_trace":{"summary":"Full trace with hierarchy (no span_id)","value":{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","end_time":"2025-11-19T10:30:01.200000+00:00","total_spans":4,"error_count":0,"input":"What is Tesla stock price?","output":"The current price of Tesla (TSLA) is $245.67.","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"stock_agent","created_at":"2025-11-19T10:30:00+00:00","tree":[{"id":"span1","name":"Stock_Price_Agent.run","type":"AGENT","duration":"1.2s","status":"OK","spans":[]}]}},"single_span":{"summary":"Single span detail (with span_id)","value":{"id":"span2","name":"gpt-4o-mini.invoke","type":"LLM","duration":"800ms","status":"OK","metadata":{"model":"gpt-4o-mini","input_tokens":120}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Trace or span not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/trace_session_stats":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Statistics by Session","description":"Retrieve aggregated trace statistics grouped by session ID with pagination.\n\n**Provides insights into:**\n- Total traces per session\n- First and last trace timestamps per session\n- Associated user and agent information\n\n**Filtering Options:**\n- By user ID\n- By agent ID\n\n**Use Cases:**\n- Monitor session-level activity\n- Track conversation flows\n- Identify high-activity sessions\n- Analyze user engagement patterns","operationId":"get_trace_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of sessions per page","default":20,"title":"Limit"},"description":"Number of sessions per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"}],"responses":{"200":{"description":"Trace statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"},"example":{"data":[{"session_id":"37029bc6-1794-4ba8-a629-1efedc53dcad","user_id":"kaustubh@agno.com","agent_id":"hackernews-agent","total_traces":5,"first_trace_at":"2025-11-19T10:15:16+00:00","last_trace_at":"2025-11-19T10:21:30+00:00"}],"meta":{"page":1,"limit":20,"total_pages":3,"total_count":45}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/search":{"post":{"tags":["Traces","Traces"],"summary":"Search Traces with Advanced Filters","description":"Search traces using the FilterExpr DSL for complex, composable queries.\n\n**Group By Mode:**\n- `run` (default): Returns `PaginatedResponse[TraceDetail]` with full span trees\n- `session`: Returns `PaginatedResponse[TraceSessionStats]` with aggregated session stats\n\n**Supported Operators:**\n- Comparison: `EQ`, `NEQ`, `GT`, `GTE`, `LT`, `LTE`\n- Inclusion: `IN`\n- String matching: `CONTAINS` (case-insensitive substring), `STARTSWITH` (prefix)\n- Logical: `AND`, `OR`, `NOT`\n\n**Filterable Fields:**\ntrace_id, name, status, start_time, end_time, duration_ms, run_id, session_id, user_id, agent_id, team_id, workflow_id, created_at\n\n**Example Request Body (runs):**\n```json\n{\n \"filter\": {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n}\n```\n\n**Example Request Body (sessions):**\n```json\n{\n \"filter\": {\"op\": \"CONTAINS\", \"key\": \"agent_id\", \"value\": \"stock\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n}\n```","operationId":"search_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PaginatedResponse_TraceDetail_"},{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"}],"title":"Response Search Traces"}}}},"400":{"description":"Invalid filter expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/all/migrate":{"post":{"tags":["Database"],"summary":"Migrate All Databases","description":"Migrate all database schemas to the given target version. If a target version is not provided, all databases will be migrated to the latest version.","operationId":"migrate_all_databases","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"All databases migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"All databases migrated successfully to version 3.0.0"}}}},"207":{"description":"Some database migrations failed","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"},"failed":{"type":"object","additionalProperties":{"type":"string"},"title":"Failed"}},"type":"object","required":["message","failed"],"title":"PartialMigrationResponse"},"example":{"message":"Migrated 2/3 databases to latest version","failed":{"archive-db":"Migration failed"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/{db_id}/migrate":{"post":{"tags":["Database"],"summary":"Migrate Database","description":"Migrate the given database schema to the given target version. If a target version is not provided, the database will be migrated to the latest version.","operationId":"migrate_database","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"Database migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"Database migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Database not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components":{"get":{"tags":["Components"],"summary":"List Components","description":"Retrieve a paginated list of components with optional filtering by type.","operationId":"list_components","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ComponentType"},{"type":"null"}],"description":"Filter by type: agent, team, workflow","title":"Component Type"},"description":"Filter by type: agent, team, workflow"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ComponentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Component","description":"Create a new component (agent, team, or workflow) with initial config.","operationId":"create_component","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}":{"get":{"tags":["Components"],"summary":"Get Component","description":"Retrieve a component by ID.","operationId":"get_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Components"],"summary":"Update Component","description":"Partially update a component by ID.","operationId":"update_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentUpdate","description":"Component fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Component","description":"Soft-delete a component by ID. Component configs and links remain stored.","operationId":"delete_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs":{"get":{"tags":["Components"],"summary":"List Configs","description":"List all configs for a component.","operationId":"list_configs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"include_config","in":"query","required":false,"schema":{"type":"boolean","description":"Include full config blob","default":true,"title":"Include Config"},"description":"Include full config blob"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComponentConfigResponse"},"title":"Response List Configs"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Config Version","description":"Create a new config version for a component.","operationId":"create_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigCreate","description":"Config data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}":{"patch":{"tags":["Components"],"summary":"Update Draft Config","description":"Update an existing draft config. Cannot update published configs.","operationId":"update_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigUpdate","description":"Config fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Components"],"summary":"Get Config Version","description":"Get a specific config version by number.","operationId":"get_config_version","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Config Version","description":"Delete a specific config version. Agno v2.7.4 rejects the current version. Synchronous SQLite and PostgreSQL storage allow deletion of a published non-current version.","operationId":"delete_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/current":{"get":{"tags":["Components"],"summary":"Get Current Config","description":"Get the current config version for a component.","operationId":"get_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}/set-current":{"post":{"tags":["Components"],"summary":"Set Current Config Version","description":"Set a published config version as current (for rollback).","operationId":"set_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/schedules":{"get":{"tags":["Schedules"],"summary":"List Schedules","operationId":"list_schedules_schedules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"post":{"tags":["Schedules"],"summary":"Create Schedule","operationId":"create_schedule_schedules_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule","operationId":"get_schedule_schedules__schedule_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"patch":{"tags":["Schedules"],"summary":"Update Schedule","operationId":"update_schedule_schedules__schedule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Schedules"],"summary":"Delete Schedule","operationId":"delete_schedule_schedules__schedule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/enable":{"post":{"tags":["Schedules"],"summary":"Enable Schedule","operationId":"enable_schedule_schedules__schedule_id__enable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/disable":{"post":{"tags":["Schedules"],"summary":"Disable Schedule","operationId":"disable_schedule_schedules__schedule_id__disable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/trigger":{"post":{"tags":["Schedules"],"summary":"Trigger Schedule","operationId":"trigger_schedule_schedules__schedule_id__trigger_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Schedule is disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler is not running or storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs":{"get":{"tags":["Schedules"],"summary":"List Schedule Runs","operationId":"list_schedule_runs_schedules__schedule_id__runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleRunResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs/{run_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule Run","operationId":"get_schedule_run_schedules__schedule_id__runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals":{"get":{"tags":["Approvals"],"summary":"List Approvals","operationId":"list_approvals_approvals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","approved","rejected","expired","cancelled"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"source_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"}},{"name":"approval_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["required","audit"],"type":"string"},{"type":"null"}],"title":"Approval Type"}},{"name":"pause_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"schedule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"}},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ApprovalResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approvals could not be listed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/count":{"get":{"tags":["Approvals"],"summary":"Get Approval Count","operationId":"get_approval_count_approvals_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalCountResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval count could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/status":{"get":{"tags":["Approvals"],"summary":"Get Approval Status","operationId":"get_approval_status_approvals__approval_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalStatusResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval status could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}":{"get":{"tags":["Approvals"],"summary":"Get Approval","operationId":"get_approval_approvals__approval_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Approvals"],"summary":"Delete Approval","operationId":"delete_approval_approvals__approval_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval is not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/resolve":{"post":{"tags":["Approvals"],"summary":"Resolve Approval","operationId":"resolve_approval_approvals__approval_id__resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResolve"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Approval has already been resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts":{"post":{"tags":["Service Accounts"],"summary":"Create Service Account","description":"Mint a service account token. The plaintext token is returned exactly once.","operationId":"create_service_account_service_accounts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreateResponse"}}}},"400":{"description":"Requested scopes are invalid, or privileged scopes were not explicitly allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"An active service account with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"get":{"tags":["Service Accounts"],"summary":"List Service Accounts","description":"List service accounts. Returns metadata and display prefixes only - never hashes or plaintext.","operationId":"list_service_accounts_service_accounts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Revoked"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ServiceAccountResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts/{service_account_id}":{"delete":{"tags":["Service Accounts"],"summary":"Revoke Service Account","description":"Revoke an existing service account.\n\nTakes effect immediately on this worker (the local verification cache entry is evicted) and within the cache TTL on other workers.","operationId":"revoke_service_account_service_accounts__service_account_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"service_account_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Service account not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/registry":{"get":{"tags":["Registry"],"summary":"List Registry","description":"List all resources in the registry with optional filtering.","operationId":"list_registry","security":[{"HTTPBearer":[]}],"parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RegistryResourceType"},{"type":"null"}],"description":"Filter by resource type","title":"Resource Type"},"description":"Filter by resource type"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (partial match)","title":"Name"},"description":"Filter by name (partial match)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_RegistryContentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}}},"components":{"schemas":{"A2ARequest_DataPart":{"description":"Represents a structured data segment (e.g., JSON) within a message or artifact.","properties":{"data":{"additionalProperties":true,"title":"Data","type":"object"},"kind":{"const":"data","default":"data","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["data"],"title":"DataPart","type":"object"},"A2ARequest_FilePart":{"description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI.","properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_FileWithBytes"},{"$ref":"#/components/schemas/A2ARequest_FileWithUri"}],"title":"File"},"kind":{"const":"file","default":"file","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["file"],"title":"FilePart","type":"object"},"A2ARequest_FileWithBytes":{"description":"Represents a file with its content provided directly as a base64-encoded string.","properties":{"bytes":{"title":"Bytes","type":"string"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"}},"required":["bytes"],"title":"FileWithBytes","type":"object"},"A2ARequest_FileWithUri":{"description":"Represents a file with its content located at a specific URI.","properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"FileWithUri","type":"object"},"A2ARequest_Message":{"description":"Represents a single message in the conversation between a user and an agent.","properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"kind":{"const":"message","default":"message","title":"Kind","type":"string"},"messageId":{"title":"Messageid","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/A2ARequest_Part"},"title":"Parts","type":"array"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/A2ARequest_Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Taskid"}},"required":["messageId","parts","role"],"title":"Message","type":"object"},"A2ARequest_MessageSendConfiguration":{"description":"Defines configuration options for a `message/send` or `message/stream` request.","properties":{"acceptedOutputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Acceptedoutputmodes"},"blocking":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Blocking"},"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"pushNotificationConfig":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationConfig"},{"type":"null"}],"default":null}},"title":"MessageSendConfiguration","type":"object"},"A2ARequest_MessageSendParams":{"description":"Defines the parameters for a request to send a message to an agent. This can be used\nto create a new task, continue an existing one, or restart a task.","properties":{"configuration":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_MessageSendConfiguration"},{"type":"null"}],"default":null},"message":{"$ref":"#/components/schemas/A2ARequest_Message"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["message"],"title":"MessageSendParams","type":"object"},"A2ARequest_Part":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_TextPart"},{"$ref":"#/components/schemas/A2ARequest_FilePart"},{"$ref":"#/components/schemas/A2ARequest_DataPart"}],"title":"Part"},"A2ARequest_PushNotificationAuthenticationInfo":{"description":"Defines authentication details for a push notification endpoint.","properties":{"credentials":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Credentials"},"schemes":{"items":{"type":"string"},"title":"Schemes","type":"array"}},"required":["schemes"],"title":"PushNotificationAuthenticationInfo","type":"object"},"A2ARequest_PushNotificationConfig":{"description":"Defines the configuration for setting up push notifications for task updates.","properties":{"authentication":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationAuthenticationInfo"},{"type":"null"}],"default":null},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Id"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Token"},"url":{"title":"Url","type":"string"}},"required":["url"],"title":"PushNotificationConfig","type":"object"},"A2ARequest_Role":{"description":"Identifies the sender of the message. `user` for the client, `agent` for the service.","enum":["agent","user"],"title":"Role","type":"string"},"A2ARequest_TextPart":{"description":"Represents a text segment within a message or artifact.","properties":{"kind":{"const":"text","default":"text","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"text":{"title":"Text","type":"string"}},"required":["text"],"title":"TextPart","type":"object"},"ActivityMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"activity","title":"Role","default":"activity"},"activityType":{"type":"string","title":"Activitytype"},"content":{"additionalProperties":true,"type":"object","title":"Content"}},"additionalProperties":true,"type":"object","required":["id","activityType","content"],"title":"ActivityMessage","description":"An activity progress message emitted between chat messages."},"AgentResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"extra_messages":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Messages"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"AgentResponse"},"AgentSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_session_id":{"type":"string","title":"Agent Session Id","description":"Unique agent session identifier"},"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID used in this session"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"agent_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Data","description":"Agent-specific data"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["agent_session_id","session_id","session_name"],"title":"AgentSessionDetailSchema"},"AgentSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the agent"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the agent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the agent"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the agent"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","title":"AgentSummaryResponse"},"ApprovalCountResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"ApprovalCountResponse","description":"Response model for pending approval count."},"ApprovalResolve":{"properties":{"status":{"type":"string","pattern":"^(approved|rejected)$","title":"Status"},"resolved_by":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Resolved By"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"}},"type":"object","required":["status"],"title":"ApprovalResolve","description":"Request body for resolving (approve/reject) an approval."},"ApprovalResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"},"source_type":{"type":"string","title":"Source Type"},"approval_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Type"},"pause_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Args"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"},"schedule_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Run Id"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"},"run_status":{"anyOf":[{"$ref":"#/components/schemas/RunStatus"},{"type":"null"}]}},"type":"object","required":["id","run_id","session_id","status","source_type"],"title":"ApprovalResponse","description":"Response model for a single approval."},"ApprovalStatusResponse":{"properties":{"approval_id":{"type":"string","title":"Approval Id"},"status":{"type":"string","title":"Status"},"run_id":{"type":"string","title":"Run Id"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"}},"type":"object","required":["approval_id","status","run_id"],"title":"ApprovalStatusResponse","description":"Lightweight response model for polling approval status."},"Artifact":{"properties":{"artifactId":{"type":"string","title":"Artifactid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"}},"type":"object","required":["artifactId","parts"],"title":"Artifact","description":"Represents a file, data structure, or other resource generated by an agent during a task."},"AssistantMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"assistant","title":"Role","default":"assistant"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"},"toolCalls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},{"type":"null"}],"title":"Toolcalls"}},"additionalProperties":true,"type":"object","required":["id"],"title":"AssistantMessage","description":"An assistant message."},"AudioInputContent":{"properties":{"type":{"type":"string","const":"audio","title":"Type","default":"audio"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"AudioInputContent","description":"An audio input content fragment."},"BackgroundRunResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the background run."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the background run."},"status":{"type":"string","title":"Status","description":"Initial run status."}},"type":"object","required":["run_id","session_id","status"],"title":"BackgroundRunResponse"},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"BadRequestResponse","example":{"detail":"Bad request","error_code":"BAD_REQUEST"}},"BinaryInputContent":{"properties":{"type":{"type":"string","const":"binary","title":"Type","default":"binary"},"mimeType":{"type":"string","title":"Mimetype"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"additionalProperties":true,"type":"object","required":["mimeType"],"title":"BinaryInputContent","description":"A deprecated binary payload reference in a multimodal user message."},"Body_continue_agent_run":{"properties":{"tools":{"type":"string","title":"Tools","description":"JSON string of tool call results to continue the paused run","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Optional new user-message text to append to the run before resuming. Use for continuing a COMPLETED run with a follow-up, or adding context to a RUNNING/ERROR resume."},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","description":"When true, clone the run with a new ``run_id`` before resuming. The original is untouched; the clone becomes a sibling within the same session, with ``forked_from_run_id`` set.","default":false},"regenerate":{"type":"boolean","title":"Regenerate","description":"Sugar: regenerate the last response of this run. Auto-computes ``continue_from='last_user'`` to land just after the last user message. Pair with ``additional_instructions`` to steer the new output. By default the original response is hidden from history (replaced); pass ``replace_original=false`` to keep both the original and the regenerated response visible side by side.","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original","description":"Only valid with ``regenerate=true``. Controls history visibility of the original response; the original run is always retained in storage. Defaults to true: the original is marked REGENERATED and hidden from history so the new response replaces it. Pass false to keep both the original and regenerated responses visible."},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions","description":"Only valid with ``regenerate=true``: extra guidance appended as a user message before re-generation. Friendly alias for ``input``."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run continue in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false}},"type":"object","title":"Body_continue_agent_run"},"Body_continue_team_run":{"properties":{"requirements":{"type":"string","title":"Requirements","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input"},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","default":false},"regenerate":{"type":"boolean","title":"Regenerate","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original"},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"stream":{"type":"boolean","title":"Stream","default":true},"background":{"type":"boolean","title":"Background","default":false}},"type":"object","title":"Body_continue_team_run"},"Body_continue_workflow_run":{"properties":{"step_requirements":{"type":"string","title":"Step Requirements","description":"JSON string of step requirement objects with resolution status","default":""},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}},"type":"object","title":"Body_continue_workflow_run"},"Body_create_agent_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the agent"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Agent version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic agent construction"}},"type":"object","required":["message"],"title":"Body_create_agent_run"},"Body_create_team_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the team"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"monitor":{"type":"boolean","title":"Monitor","description":"Enable monitoring and logging for this run","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Team version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic team construction"}},"type":"object","required":["message"],"title":"Body_create_team_run"},"Body_create_workflow_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the workflow"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run workflow in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Workflow version to use for this run"},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow construction"}},"type":"object","required":["message"],"title":"Body_create_workflow_run"},"Body_rename_session":{"properties":{"session_name":{"type":"string","title":"Session Name","description":"New name for the session"}},"type":"object","required":["session_name"],"title":"Body_rename_session"},"Body_resume_agent_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_agent_run_stream"},"Body_resume_team_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_team_run_stream"},"Body_resume_workflow_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_workflow_run_stream"},"Body_update_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"Content metadata as JSON string"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"Reader ID. In Agno 2.7.4, local knowledge validates the value, but the content patch does not apply or persist the reader change."}},"type":"object","title":"Body_update_content"},"Body_upload_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated from file/URL if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description for context"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"URL to fetch content from (JSON array or single URL string)"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object for additional content properties"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File","description":"File to upload for processing"},"text_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Content","description":"Raw text content to process"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for content processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply during processing"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size to use for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap to use for processing"}},"type":"object","title":"Body_upload_content"},"Body_upload_remote_content":{"properties":{"config_id":{"type":"string","title":"Config Id","description":"ID of the configured remote content source (from /knowledge/config)"},"path":{"type":"string","title":"Path","description":"Path to file or folder in the remote source"},"source_params":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Params","description":"JSON object of per-request parameters forwarded to the source's factory. Used for provider-specific routing that shouldn't be baked into the config. Currently supported keys: GitHub accepts 'repo' ('owner/repo'), letting one configured GitHub source serve multiple repositories the credentials can access."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap for processing"}},"type":"object","required":["config_id","path"],"title":"Body_upload_remote_content"},"ChatConfig":{"properties":{"quick_prompts":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Quick Prompts"}},"type":"object","required":["quick_prompts"],"title":"ChatConfig","description":"Configuration for the Chat page of the AgentOS"},"ChunkerSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["key"],"title":"ChunkerSchema"},"ComponentConfigResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"version":{"type":"integer","title":"Version"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"type":"string","title":"Stage"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","version","stage","config","created_at"],"title":"ComponentConfigResponse"},"ComponentCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Display name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id","description":"Unique identifier for the entity. Auto-generated from name if not provided."},"component_type":{"$ref":"#/components/schemas/ComponentType","description":"Type of entity: agent, team, or workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config","description":"Optional configuration"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["name","component_type"],"title":"ComponentCreate"},"ComponentResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"component_type":{"$ref":"#/components/schemas/ComponentType"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","component_type","created_at"],"title":"ComponentResponse"},"ComponentType":{"type":"string","enum":["agent","team","workflow"],"title":"ComponentType"},"ComponentUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"component_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"}},"type":"object","title":"ComponentUpdate"},"ConfigCreate":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config","description":"The configuration data"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Optional version number"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links","description":"Optional links to child components"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["config"],"title":"ConfigCreate"},"ConfigResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the OS instance"},"available_models":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Models","description":"List of available models"},"os_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Database","description":"ID of the database used for the OS instance"},"databases":{"items":{"type":"string"},"type":"array","title":"Databases","description":"List of database IDs used by the components of the OS instance"},"chat":{"anyOf":[{"$ref":"#/components/schemas/ChatConfig"},{"type":"null"}],"description":"Chat configuration"},"manifest":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Manifest"},"type":"object"},{"type":"null"}],"title":"Manifest","description":"Per-entity UI metadata keyed by agent/team/workflow id"},"session":{"anyOf":[{"$ref":"#/components/schemas/SessionConfig"},{"type":"null"}],"description":"Session configuration"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/MetricsConfig"},{"type":"null"}],"description":"Metrics configuration"},"memory":{"anyOf":[{"$ref":"#/components/schemas/MemoryConfig"},{"type":"null"}],"description":"Memory configuration"},"learning":{"anyOf":[{"$ref":"#/components/schemas/LearningConfig"},{"type":"null"}],"description":"Learning configuration"},"knowledge":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeConfig"},{"type":"null"}],"description":"Knowledge configuration"},"evals":{"anyOf":[{"$ref":"#/components/schemas/EvalsConfig"},{"type":"null"}],"description":"Evaluations configuration"},"traces":{"anyOf":[{"$ref":"#/components/schemas/TracesConfig"},{"type":"null"}],"description":"Traces configuration"},"agents":{"items":{"$ref":"#/components/schemas/AgentSummaryResponse"},"type":"array","title":"Agents","description":"List of registered agents"},"teams":{"items":{"$ref":"#/components/schemas/TeamSummaryResponse"},"type":"array","title":"Teams","description":"List of registered teams"},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Workflows","description":"List of registered workflows"},"interfaces":{"items":{"$ref":"#/components/schemas/InterfaceResponse"},"type":"array","title":"Interfaces","description":"List of available interfaces"}},"type":"object","required":["os_id","databases","agents","teams","workflows","interfaces"],"title":"ConfigResponse","description":"Response schema for the general config endpoint"},"ConfigResponseSchema":{"properties":{"readers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ReaderSchema"},"type":"object"},{"type":"null"}],"title":"Readers","description":"Available content readers"},"readersForType":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Readersfortype","description":"Mapping of content types to reader IDs"},"chunkers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ChunkerSchema"},"type":"object"},{"type":"null"}],"title":"Chunkers","description":"Available chunking strategies"},"filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filters","description":"Available filter tags"},"vector_dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/VectorDbSchema"},"type":"array"},{"type":"null"}],"title":"Vector Dbs","description":"Configured vector databases"},"remote_content_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"type":"array"},{"type":"null"}],"title":"Remote Content Sources","description":"Configured remote content sources (S3, GCS, SharePoint, GitHub)"}},"type":"object","title":"ConfigResponseSchema"},"ConfigUpdate":{"properties":{"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","title":"ConfigUpdate"},"ConflictResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ConflictResponse","example":{"detail":"Resource conflict"}},"ContentResponseSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the content"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"MIME type of the content"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"},"linked_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linked To","description":"ID of related content if linked"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata as key-value pairs"},"access_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Access Count","description":"Number of times content has been accessed"},"status":{"anyOf":[{"$ref":"#/components/schemas/ContentStatus"},{"type":"null"}],"description":"Processing status of the content"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message","description":"Status message or error details"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when content was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when content was last updated"}},"type":"object","required":["id"],"title":"ContentResponseSchema"},"ContentStatus":{"type":"string","enum":["processing","completed","failed"],"title":"ContentStatus","description":"Enumeration of possible content processing statuses."},"ContentStatusResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Content ID"},"status":{"$ref":"#/components/schemas/ContentStatus","description":"Current processing status of the content"},"status_message":{"type":"string","title":"Status Message","description":"Status message or error details","default":""}},"type":"object","required":["status"],"title":"ContentStatusResponse","description":"Response model for content status endpoint."},"Context":{"properties":{"description":{"type":"string","title":"Description"},"value":{"type":"string","title":"Value"}},"additionalProperties":true,"type":"object","required":["description","value"],"title":"Context","description":"Additional context for the agent."},"CreateSessionRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session ID (generated if not provided)"},"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Initial session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"}},"type":"object","title":"CreateSessionRequest"},"DataPart":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data"},"kind":{"type":"string","const":"data","title":"Kind","default":"data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["data"],"title":"DataPart","description":"Represents a structured data segment (e.g., JSON) within a message or artifact."},"DatabaseConfig_EvalsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/EvalsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[EvalsDomainConfig]"},"DatabaseConfig_LearningDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/LearningDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[LearningDomainConfig]"},"DatabaseConfig_MemoryDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MemoryDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MemoryDomainConfig]"},"DatabaseConfig_MetricsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MetricsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MetricsDomainConfig]"},"DatabaseConfig_SessionDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/SessionDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[SessionDomainConfig]"},"DatabaseConfig_TracesDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/TracesDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[TracesDomainConfig]"},"DayAggregatedMetrics":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the metrics record"},"agent_runs_count":{"type":"integer","minimum":0.0,"title":"Agent Runs Count","description":"Total number of agent runs"},"agent_sessions_count":{"type":"integer","minimum":0.0,"title":"Agent Sessions Count","description":"Total number of agent sessions"},"team_runs_count":{"type":"integer","minimum":0.0,"title":"Team Runs Count","description":"Total number of team runs"},"team_sessions_count":{"type":"integer","minimum":0.0,"title":"Team Sessions Count","description":"Total number of team sessions"},"workflow_runs_count":{"type":"integer","minimum":0.0,"title":"Workflow Runs Count","description":"Total number of workflow runs"},"workflow_sessions_count":{"type":"integer","minimum":0.0,"title":"Workflow Sessions Count","description":"Total number of workflow sessions"},"users_count":{"type":"integer","minimum":0.0,"title":"Users Count","description":"Total number of unique users"},"token_metrics":{"additionalProperties":true,"type":"object","title":"Token Metrics","description":"Token usage metrics (input, output, cached, etc.)"},"model_metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Model Metrics","description":"Metrics grouped by model (model_id, provider, count)"},"date":{"type":"string","format":"date-time","title":"Date","description":"Date for which these metrics are aggregated"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when metrics were created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when metrics were last updated"}},"type":"object","required":["id","agent_runs_count","agent_sessions_count","team_runs_count","team_sessions_count","workflow_runs_count","workflow_sessions_count","users_count","token_metrics","model_metrics","date","created_at","updated_at"],"title":"DayAggregatedMetrics","description":"Aggregated metrics for a given day"},"DeleteEvalRunsRequest":{"properties":{"eval_run_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Eval Run Ids","description":"List of evaluation run IDs to delete"}},"type":"object","required":["eval_run_ids"],"title":"DeleteEvalRunsRequest"},"DeleteMemoriesRequest":{"properties":{"memory_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Memory Ids","description":"List of memory IDs to delete"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID to filter memories for deletion"}},"type":"object","required":["memory_ids"],"title":"DeleteMemoriesRequest"},"DeleteSessionRequest":{"properties":{"session_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Session Ids","description":"List of session IDs to delete"},"session_types":{"items":{"$ref":"#/components/schemas/SessionType"},"type":"array","minItems":1,"title":"Session Types","description":"Types of sessions to delete"}},"type":"object","required":["session_ids","session_types"],"title":"DeleteSessionRequest"},"DeveloperMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"developer","title":"Role","default":"developer"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"DeveloperMessage","description":"A developer message."},"DocumentInputContent":{"properties":{"type":{"type":"string","const":"document","title":"Type","default":"document"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"DocumentInputContent","description":"A document input content fragment."},"EvalFilterType":{"type":"string","enum":["agent","team","workflow"],"title":"EvalFilterType"},"EvalRunInput":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID to evaluate"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID to evaluate"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID to use for evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation to run (accuracy, performance, or reliability)"},"input":{"type":"string","minLength":1,"title":"Input","description":"Input text/query for the evaluation"},"additional_guidelines":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Guidelines","description":"Additional guidelines for the evaluation"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for the evaluation"},"num_iterations":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Num Iterations","description":"Number of times to run the evaluation","default":1},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for this evaluation run"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output","description":"Expected output for accuracy evaluation"},"criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criteria","description":"Evaluation criteria for agent-as-judge evaluation"},"scoring_strategy":{"anyOf":[{"type":"string","enum":["numeric","binary"]},{"type":"null"}],"title":"Scoring Strategy","description":"Scoring strategy: 'numeric' (1-10 with threshold) or 'binary' (PASS/FAIL)","default":"binary"},"threshold":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Threshold","description":"Score threshold for pass/fail (1-10), only used with numeric scoring","default":7},"warmup_runs":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Warmup Runs","description":"Number of warmup runs before measuring performance","default":0},"expected_tool_calls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expected Tool Calls","description":"Expected tool calls for reliability evaluation"},"allow_additional_tool_calls":{"type":"boolean","title":"Allow Additional Tool Calls","description":"When True, tool calls not in expected_tool_calls are allowed (subset matching)","default":false},"expected_tool_call_arguments":{"anyOf":[{"additionalProperties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Expected Tool Call Arguments","description":"Expected arguments for specific tool calls, e.g. {\"tool_name\": {\"arg_name\": \"expected_value\"}} or {\"tool_name\": [{\"arg_name\": \"val1\"}, {\"arg_name\": \"val2\"}]}"}},"type":"object","required":["eval_type","input"],"title":"EvalRunInput"},"EvalSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the evaluation run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that was evaluated"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID used in evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that was evaluated"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was evaluated"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the evaluation run"},"evaluated_component_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluated Component Name","description":"Name of the evaluated component"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation (accuracy, performance, or reliability)"},"eval_data":{"additionalProperties":true,"type":"object","title":"Eval Data","description":"Evaluation results and metrics"},"eval_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eval Input","description":"Input parameters used for the evaluation"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when evaluation was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when evaluation was last updated"}},"type":"object","required":["id","eval_type","eval_data"],"title":"EvalSchema"},"EvalType":{"type":"string","enum":["accuracy","agent_as_judge","performance","reliability"],"title":"EvalType"},"EvalsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_EvalsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"EvalsConfig","description":"Configuration for the Evals domain of the AgentOS"},"EvalsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"EvalsDomainConfig","description":"Configuration for the Evals domain of the AgentOS"},"FilePart":{"properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/FileWithBytes"},{"$ref":"#/components/schemas/FileWithUri"}],"title":"File"},"kind":{"type":"string","const":"file","title":"Kind","default":"file"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["file"],"title":"FilePart","description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI."},"FileWithBytes":{"properties":{"bytes":{"type":"string","title":"Bytes"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["bytes"],"title":"FileWithBytes","description":"Represents a file with its content provided directly as a base64-encoded string."},"FileWithUri":{"properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uri":{"type":"string","title":"Uri"}},"type":"object","required":["uri"],"title":"FileWithUri","description":"Represents a file with its content located at a specific URI."},"FilterFieldSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Column/field name used in filter expressions"},"label":{"type":"string","title":"Label","description":"Human-readable display label for the UI"},"type":{"type":"string","title":"Type","description":"Field data type: string, number, datetime, enum"},"operators":{"items":{"type":"string"},"type":"array","title":"Operators","description":"List of valid filter operators for this field"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values","description":"Allowed enum values (for autocomplete/dropdown)"}},"type":"object","required":["key","label","type","operators"],"title":"FilterFieldSchema","description":"Schema describing a single filterable field for the frontend filter bar."},"FilterSchemaResponse":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FilterFieldSchema"},"type":"array","title":"Fields","description":"Available filterable fields"},"logical_operators":{"items":{"type":"string"},"type":"array","title":"Logical Operators","description":"Logical operators for combining filter clauses","default":["AND","OR"]}},"type":"object","required":["fields"],"title":"FilterSchemaResponse","description":"Response for the filter schema endpoint. Tells the FE what fields, operators, and values are available."},"ForbiddenResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ForbiddenResponse","example":{"detail":"Insufficient permissions"}},"FunctionCall":{"properties":{"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"additionalProperties":true,"type":"object","required":["name","arguments"],"title":"FunctionCall","description":"Name and arguments of a function call."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Health status of the service"},"instantiated_at":{"type":"string","format":"date-time","title":"Instantiated At","description":"Timestamp when service was instantiated"}},"type":"object","required":["status","instantiated_at"],"title":"HealthResponse","example":{"instantiated_at":"2025-06-10T12:00:00Z","status":"ok"}},"ImageInputContent":{"properties":{"type":{"type":"string","const":"image","title":"Type","default":"image"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"ImageInputContent","description":"An image input content fragment."},"InfoResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"agno_version":{"type":"string","title":"Agno Version","description":"Version of the agno framework"},"agent_count":{"type":"integer","title":"Agent Count","description":"Number of agents registered in the OS","default":0},"team_count":{"type":"integer","title":"Team Count","description":"Number of teams registered in the OS","default":0},"workflow_count":{"type":"integer","title":"Workflow Count","description":"Number of workflows registered in the OS","default":0},"mcp":{"$ref":"#/components/schemas/McpInfo","description":"MCP server availability for this OS instance"},"auth_mode":{"type":"string","enum":["none","security_key","jwt"],"title":"Auth Mode","description":"Authentication mode enforced on the REST/WS plane of this OS instance. MCP OAuth, when enabled, is described separately under `mcp.oauth`.","default":"none"}},"type":"object","required":["os_id","agno_version"],"title":"InfoResponse","description":"Response schema for the /info endpoint returning lightweight OS metadata."},"InputContentDataSource":{"properties":{"type":{"type":"string","const":"data","title":"Type","default":"data"},"value":{"type":"string","title":"Value"},"mimeType":{"type":"string","title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value","mimeType"],"title":"InputContentDataSource","description":"Inline base64-encoded source."},"InputContentUrlSource":{"properties":{"type":{"type":"string","const":"url","title":"Type","default":"url"},"value":{"type":"string","title":"Value"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value"],"title":"InputContentUrlSource","description":"URL-referenced source."},"InterfaceResponse":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the interface"},"version":{"type":"string","title":"Version","description":"Version of the interface"},"route":{"type":"string","title":"Route","description":"API route path"}},"type":"object","required":["type","version","route"],"title":"InterfaceResponse"},"InternalServerErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"InternalServerErrorResponse","example":{"detail":"Internal server error","error_code":"INTERNAL_SERVER_ERROR"}},"KnowledgeConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeDatabaseConfig"},"type":"array"},{"type":"null"}],"title":"Dbs"},"knowledge_instances":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeInstanceConfig"},"type":"array"},{"type":"null"}],"title":"Knowledge Instances"}},"type":"object","title":"KnowledgeConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeDatabaseConfig":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeDomainConfig"},{"type":"null"}]},"tables":{"items":{"type":"string"},"type":"array","title":"Tables","default":[]}},"type":"object","required":["db_id"],"title":"KnowledgeDatabaseConfig","description":"Configuration for a knowledge database with its tables"},"KnowledgeDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"KnowledgeDomainConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeInstanceConfig":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"db_id":{"type":"string","title":"Db Id"},"table":{"type":"string","title":"Table"}},"type":"object","required":["id","name","db_id","table"],"title":"KnowledgeInstanceConfig","description":"Configuration for a single knowledge instance"},"LearningConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_LearningDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"LearningConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningCreate":{"properties":{"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"content":{"additionalProperties":true,"type":"object","title":"Content","description":"The learning content payload"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID. When the request is authenticated, must match the JWT subject or be omitted/null (which creates a global / non-user-scoped record)."},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"}},"type":"object","required":["learning_type","content"],"title":"LearningCreate","description":"Request body for creating a learning record."},"LearningDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"LearningDomainConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningResponse":{"properties":{"learning_id":{"type":"string","title":"Learning Id","description":"Unique identifier for the learning record"},"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID (for entity-specific learnings)"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type (e.g. 'person', 'company')"},"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"The learning content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Creation timestamp (Unix epoch seconds)"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp (Unix epoch seconds)"}},"type":"object","required":["learning_id","learning_type"],"title":"LearningResponse","description":"A single learning record as returned by the API."},"LearningUpdate":{"properties":{"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Replacement content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Replacement metadata"}},"type":"object","title":"LearningUpdate","description":"Request body for updating a learning record. Identity fields are immutable."},"LearningUserStats":{"properties":{"user_id":{"type":"string","title":"User Id","description":"The user ID"},"last_learning_updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Learning Updated At","description":"Most recent learning update for this user (Unix epoch seconds)"}},"type":"object","required":["user_id"],"title":"LearningUserStats","description":"A user that owns learning records, with their most recent activity.\n\nUsed as a lightweight index for the per-user view: list users here, then drill into a\nsingle user's records via ``GET /learnings?user_id=...``. No per-user count is returned\n-- the user-scoped stores (``user_profile``, ``user_memory``) keep a single record per\nuser, so a record count would always be 1; the actual memory count lives in that\nrecord's ``content``."},"Manifest":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"},"quick_prompts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quick Prompts"}},"type":"object","title":"Manifest","description":"OS-level UI metadata for an agent/team/workflow.\n\nFields here are AgentOS UI metadata only. ``description`` is unrelated to\n``Agent.description`` / ``Team.description`` / ``Workflow.description``,\nwhich are sent to the model.\n\nRendering surfaces:\n- ``description``, ``labels``: home/landing card\n- ``quick_prompts``: chat page"},"McpInfo":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the MCP server is enabled on this OS instance","default":false},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Path where the MCP server is mounted, null when disabled"},"oauth":{"anyOf":[{"$ref":"#/components/schemas/McpOAuthInfo"},{"type":"null"}],"description":"OAuth discovery details when the MCP endpoint is OAuth-protected, null otherwise"}},"type":"object","title":"McpInfo","description":"MCP server availability for the /info endpoint."},"McpOAuthInfo":{"properties":{"authorization_servers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorization Servers","description":"Issuer URL(s) of the authorization server(s) protecting the MCP endpoint"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource","description":"RFC 9728 resource URL advertised for the MCP endpoint"}},"type":"object","title":"McpOAuthInfo","description":"OAuth discovery details for an MCP endpoint protected by ``AgentOS(mcp_auth=...)``."},"MemoryConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MemoryDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MemoryConfig","description":"Configuration for the Memory domain of the AgentOS"},"MemoryDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MemoryDomainConfig","description":"Configuration for the Memory domain of the AgentOS"},"Message":{"properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"kind":{"type":"string","const":"message","title":"Kind","default":"message"},"messageId":{"type":"string","title":"Messageid"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taskid"}},"type":"object","required":["messageId","parts","role"],"title":"Message","description":"Represents a single message in the conversation between a user and an agent."},"Meta":{"properties":{"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of results per page","default":20},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number","default":1}},"type":"object","title":"Meta","description":"Inline metadata schema for pagination."},"MetricsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MetricsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MetricsConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MetricsDomainConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsResponse":{"properties":{"metrics":{"items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"type":"array","title":"Metrics","description":"List of daily aggregated metrics"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp of the most recent metrics update"}},"type":"object","required":["metrics"],"title":"MetricsResponse"},"Model":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"Model"},"ModelResponse":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the model"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"ModelResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"NotFoundResponse","example":{"detail":"Not found","error_code":"NOT_FOUND"}},"NotImplementedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"NotImplementedResponse","example":{"detail":"Operation not supported for this resource type"}},"OptimizeMemoriesRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID to optimize memories for"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model in `provider:model_id` format. Current examples include `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, and `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`."},"apply":{"type":"boolean","title":"Apply","description":"If True, apply optimization changes to database. If False, return preview only without saving.","default":true}},"type":"object","required":["user_id"],"title":"OptimizeMemoriesRequest","description":"Schema for memory optimization request"},"OptimizeMemoriesResponse":{"properties":{"memories":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Memories","description":"List of optimized memory objects"},"memories_before":{"type":"integer","minimum":0.0,"title":"Memories Before","description":"Number of memories before optimization"},"memories_after":{"type":"integer","minimum":0.0,"title":"Memories After","description":"Number of memories after optimization"},"tokens_before":{"type":"integer","minimum":0.0,"title":"Tokens Before","description":"Token count before optimization"},"tokens_after":{"type":"integer","minimum":0.0,"title":"Tokens After","description":"Token count after optimization"},"tokens_saved":{"type":"integer","minimum":0.0,"title":"Tokens Saved","description":"Number of tokens saved through optimization"},"reduction_percentage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Reduction Percentage","description":"Percentage of token reduction achieved"}},"type":"object","required":["memories","memories_before","memories_after","tokens_before","tokens_after","tokens_saved","reduction_percentage"],"title":"OptimizeMemoriesResponse","description":"Schema for memory optimization response"},"PaginatedResponse_ApprovalResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ApprovalResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ApprovalResponse]"},"PaginatedResponse_ComponentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ComponentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ComponentResponse]"},"PaginatedResponse_ContentResponseSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentResponseSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ContentResponseSchema]"},"PaginatedResponse_EvalSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EvalSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[EvalSchema]"},"PaginatedResponse_LearningResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningResponse]"},"PaginatedResponse_LearningUserStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningUserStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningUserStats]"},"PaginatedResponse_RegistryContentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RegistryContentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[RegistryContentResponse]"},"PaginatedResponse_ScheduleResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleResponse]"},"PaginatedResponse_ScheduleRunResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleRunResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleRunResponse]"},"PaginatedResponse_ServiceAccountResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ServiceAccountResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ServiceAccountResponse]"},"PaginatedResponse_SessionSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SessionSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[SessionSchema]"},"PaginatedResponse_TraceDetail_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceDetail"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceDetail]"},"PaginatedResponse_TraceSessionStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSessionStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSessionStats]"},"PaginatedResponse_TraceSummary_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSummary"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSummary]"},"PaginatedResponse_UserMemorySchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserMemorySchema]"},"PaginatedResponse_UserStatsSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserStatsSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserStatsSchema]"},"PaginatedResponse_VectorSearchResult_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VectorSearchResult"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[VectorSearchResult]"},"PaginationInfo":{"properties":{"page":{"type":"integer","minimum":0.0,"title":"Page","description":"Current page number (0-indexed)","default":0},"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of items per page","default":20},"total_pages":{"type":"integer","minimum":0.0,"title":"Total Pages","description":"Total number of pages","default":0},"total_count":{"type":"integer","minimum":0.0,"title":"Total Count","description":"Total count of items","default":0},"search_time_ms":{"type":"number","minimum":0.0,"title":"Search Time Ms","description":"Search execution time in milliseconds","default":0}},"type":"object","title":"PaginationInfo"},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/DataPart"}],"title":"Part"},"ReaderSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the reader"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the reader"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the reader's capabilities"},"chunkers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chunkers","description":"List of supported chunking strategies"}},"type":"object","required":["id"],"title":"ReaderSchema"},"ReasoningMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"reasoning","title":"Role","default":"reasoning"},"content":{"type":"string","title":"Content"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"ReasoningMessage","description":"A reasoning message containing the agent's internal reasoning process."},"RegistryContentResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/RegistryResourceType"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name","type"],"title":"RegistryContentResponse"},"RegistryResourceType":{"type":"string","enum":["tool","model","db","vector_db","schema","function","agent","team","knowledge","memory_manager","session_summary_manager"],"title":"RegistryResourceType","description":"Types of resources that can be stored in a registry."},"RemoteContentSourceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content source"},"name":{"type":"string","title":"Name","description":"Display name for the content source"},"type":{"type":"string","title":"Type","description":"Type of content source (s3, gcs, sharepoint, github, azureblob)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Default path prefix for this source"}},"type":"object","required":["id","name","type"],"title":"RemoteContentSourceSchema","description":"Schema for remote content source configuration."},"ResumeEntry":{"properties":{"interruptId":{"type":"string","title":"Interruptid"},"status":{"type":"string","enum":["resolved","cancelled"],"title":"Status"},"payload":{"anyOf":[{},{"type":"null"}],"title":"Payload"}},"additionalProperties":true,"type":"object","required":["interruptId","status"],"title":"ResumeEntry","description":"A per-interrupt response in the resume array of a RunAgentInput."},"Role":{"type":"string","enum":["agent","user"],"title":"Role","description":"Identifies the sender of the message. `user` for the client, `agent` for the service."},"RunAgentInput":{"properties":{"threadId":{"type":"string","title":"Threadid"},"runId":{"type":"string","title":"Runid"},"parentRunId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentrunid"},"state":{"title":"State"},"messages":{"items":{"oneOf":[{"$ref":"#/components/schemas/DeveloperMessage"},{"$ref":"#/components/schemas/SystemMessage"},{"$ref":"#/components/schemas/AssistantMessage"},{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/ToolMessage"},{"$ref":"#/components/schemas/ActivityMessage"},{"$ref":"#/components/schemas/ReasoningMessage"}],"discriminator":{"propertyName":"role","mapping":{"activity":"#/components/schemas/ActivityMessage","assistant":"#/components/schemas/AssistantMessage","developer":"#/components/schemas/DeveloperMessage","reasoning":"#/components/schemas/ReasoningMessage","system":"#/components/schemas/SystemMessage","tool":"#/components/schemas/ToolMessage","user":"#/components/schemas/UserMessage"}}},"type":"array","title":"Messages"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","title":"Tools"},"context":{"items":{"$ref":"#/components/schemas/Context"},"type":"array","title":"Context"},"forwardedProps":{"title":"Forwardedprops"},"resume":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResumeEntry"},"type":"array"},{"type":"null"}],"title":"Resume"}},"additionalProperties":true,"type":"object","required":["threadId","runId","state","messages","tools","context","forwardedProps"],"title":"RunAgentInput","description":"Input for running an agent."},"RunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that executed this run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"RunSchema"},"RunStatus":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","PAUSED","CANCELLED","ERROR","REGENERATED"],"title":"RunStatus","description":"State of the main run response"},"ScheduleCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"cron_expr":{"type":"string","maxLength":128,"title":"Cron Expr"},"endpoint":{"type":"string","maxLength":512,"title":"Endpoint"},"method":{"type":"string","maxLength":10,"title":"Method","default":"POST"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"type":"string","maxLength":64,"title":"Timezone","default":"UTC"},"timeout_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Timeout Seconds","default":3600},"max_retries":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Max Retries","default":0},"retry_delay_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Retry Delay Seconds","default":60}},"type":"object","required":["name","cron_expr","endpoint"],"title":"ScheduleCreate"},"ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"cron_expr":{"type":"string","title":"Cron Expr"},"timezone":{"type":"string","title":"Timezone"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"max_retries":{"type":"integer","title":"Max Retries"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","method","endpoint","cron_expr","timezone","timeout_seconds","max_retries","retry_delay_seconds","enabled"],"title":"ScheduleResponse"},"ScheduleRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"schedule_id":{"type":"string","title":"Schedule Id"},"attempt":{"type":"integer","title":"Attempt"},"triggered_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triggered At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"status":{"type":"string","title":"Status"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","schedule_id","attempt","status"],"title":"ScheduleRunResponse"},"ScheduleStateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","enabled"],"title":"ScheduleStateResponse","description":"Trimmed response for state-changing operations (enable/disable)."},"ScheduleUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"cron_expr":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Cron Expr"},"endpoint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Endpoint"},"method":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Method"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Timezone"},"timeout_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":1.0},{"type":"null"}],"title":"Timeout Seconds"},"max_retries":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Max Retries"},"retry_delay_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":1.0},{"type":"null"}],"title":"Retry Delay Seconds"}},"type":"object","title":"ScheduleUpdate"},"ScopeItem":{"properties":{"scope":{"type":"string","title":"Scope","description":"Scope string, e.g. 'agents:*:run'"},"effect":{"type":"string","enum":["allow","deny"],"title":"Effect","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["scope"],"title":"ScopeItem","description":"Write shape for one scope grant \u2014 the canonical RBAC payload for every scope-bearing API.\n\nEndpoints that take scopes accept these objects only (a bare string is a validation\nerror). ``effect`` is constrained here so every consumer rejects typos at the model\nlayer; whether ``deny`` is *semantically* legal stays per-endpoint (roles support\ndeny rules, service-account tokens are pure grants and reject it)."},"ScopeSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Scope id (always null here; kept for shape parity with the cloud RBAC API, which addresses scopes individually)"},"raw":{"type":"string","title":"Raw","description":"Original scope string, e.g. 'agents:*:run'"},"namespace":{"type":"string","title":"Namespace","description":"Resource namespace, e.g. 'agents'"},"sub_namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Namespace","description":"Specific resource id or wildcard '*'"},"permission":{"type":"string","title":"Permission","description":"Action, e.g. 'read' / 'run' / 'write'"},"value":{"type":"string","title":"Value","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["raw","namespace","permission"],"title":"ScopeSchema","description":"Read shape for one scope \u2014 the parsed RBAC payload shared by every scope-bearing API.\n\nMirrors the cloud RBAC scope shape ({raw, namespace, sub_namespace, permission, value})\nso a frontend renders scopes from any AgentOS API with one integration."},"SendMessageRequest":{"description":"Represents a JSON-RPC request for the `message/send` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/send","default":"message/send","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendMessageRequest","type":"object"},"SendMessageSuccessResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id"},"jsonrpc":{"type":"string","const":"2.0","title":"Jsonrpc","default":"2.0"},"result":{"anyOf":[{"$ref":"#/components/schemas/Task"},{"$ref":"#/components/schemas/Message"}],"title":"Result"}},"type":"object","required":["result"],"title":"SendMessageSuccessResponse","description":"Represents a successful JSON-RPC response for the `message/send` method."},"SendStreamingMessageRequest":{"description":"Represents a JSON-RPC request for the `message/stream` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/stream","default":"message/stream","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendStreamingMessageRequest","type":"object"},"ServiceAccountCreate":{"properties":{"name":{"type":"string","maxLength":63,"title":"Name","description":"Machine identity name (lowercase slug), e.g. 'claude-code' or 'github-actions'"},"scopes":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScopeItem"},"type":"array"},{"type":"null"}],"title":"Scopes","description":"Scopes granted to the token, as {scope, effect} objects (the shared RBAC write shape; token scopes are grants, so only effect='allow' is accepted). Defaults to run and read scopes: agents:run, teams:run, workflows:run, sessions:read"},"expires_in_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Expires In Days","description":"Days until the token expires (default: 90)","default":90},"never_expires":{"type":"boolean","title":"Never Expires","description":"Mint a non-expiring token. Must be set explicitly; overrides expires_in_days.","default":false},"allow_privileged_scopes":{"type":"boolean","title":"Allow Privileged Scopes","description":"Required to grant privileged scopes: any write or delete action, the admin scope, or any service_accounts scope. Privileged tokens must be deliberate, never accidental.","default":false}},"type":"object","required":["name"],"title":"ServiceAccountCreate"},"ServiceAccountCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"token":{"type":"string","title":"Token","description":"The plaintext token. Shown exactly once - store it securely now."}},"type":"object","required":["id","name","principal","token_prefix","created_at","token"],"title":"ServiceAccountCreateResponse","description":"Returned once, at creation. The token is never retrievable again."},"ServiceAccountResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","name","principal","token_prefix","created_at"],"title":"ServiceAccountResponse","description":"Service account metadata. Never includes the token hash or plaintext."},"ServiceUnavailableResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ServiceUnavailableResponse","example":{"detail":"Feature not supported by the configured service"}},"SessionConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_SessionDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"SessionConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"SessionDomainConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier for the session"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state data of the session"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when session was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when session was last updated"},"session_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type","description":"Type of session: agent, team, or workflow"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["session_id","session_name"],"title":"SessionSchema"},"SessionType":{"type":"string","enum":["agent","team","workflow"],"title":"SessionType"},"SlackChallengeResponse":{"properties":{"challenge":{"type":"string","title":"Challenge","description":"Challenge string to echo back to Slack"}},"type":"object","required":["challenge"],"title":"SlackChallengeResponse"},"SlackEventResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"}},"type":"object","title":"SlackEventResponse"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"SourceFileSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Full path/key of the file"},"name":{"type":"string","title":"Name","description":"Display name (filename)"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"File size in bytes"},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified","description":"ISO 8601 timestamp of last modification"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"MIME type of the file"}},"type":"object","required":["key","name"],"title":"SourceFileSchema","description":"Schema for a file in a content source."},"SourceFilesResponseSchema":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"ID of the content source"},"source_name":{"type":"string","title":"Source Name","description":"Name of the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Prefix filter that was applied"},"folders":{"items":{"$ref":"#/components/schemas/SourceFolderSchema"},"type":"array","title":"Folders","description":"Subfolders at this level"},"files":{"items":{"$ref":"#/components/schemas/SourceFileSchema"},"type":"array","title":"Files","description":"List of files at this level"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["source_id","source_name","meta"],"title":"SourceFilesResponseSchema","description":"Response schema for listing files in a content source."},"SourceFolderSchema":{"properties":{"prefix":{"type":"string","title":"Prefix","description":"Full prefix to use for navigating into this folder"},"name":{"type":"string","title":"Name","description":"Display name of the folder"},"is_empty":{"type":"boolean","title":"Is Empty","description":"Whether the folder contains any files","default":false}},"type":"object","required":["prefix","name"],"title":"SourceFolderSchema","description":"Schema for a folder in a content source."},"SystemMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"system","title":"Role","default":"system"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"SystemMessage","description":"A system message."},"Task":{"properties":{"artifacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Artifact"},"type":"array"},{"type":"null"}],"title":"Artifacts"},"contextId":{"type":"string","title":"Contextid"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"History"},"id":{"type":"string","title":"Id"},"kind":{"type":"string","const":"task","title":"Kind","default":"task"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"status":{"$ref":"#/components/schemas/TaskStatus"}},"type":"object","required":["contextId","id","status"],"title":"Task","description":"Represents a single, stateful operation or conversation between a client and an agent."},"TaskState":{"type":"string","enum":["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"],"title":"TaskState","description":"Defines the lifecycle states of a Task."},"TaskStatus":{"properties":{"message":{"anyOf":[{"$ref":"#/components/schemas/Message"},{"type":"null"}]},"state":{"$ref":"#/components/schemas/TaskState"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp","examples":["2023-10-27T10:00:00Z"]}},"type":"object","required":["state"],"title":"TaskStatus","description":"Represents the status of a task at a specific point in time."},"TeamResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"members":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"$ref":"#/components/schemas/TeamResponse"}]},"type":"array"},{"type":"null"}],"title":"Members"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"TeamResponse"},"TeamRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the team run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that executed this run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the team run"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this team run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this team run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this team run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this team run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"TeamRunSchema"},"TeamSessionDetailSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID used in this session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of team interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"team_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Team Data","description":"Team-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"}},"type":"object","required":["session_id","session_name"],"title":"TeamSessionDetailSchema"},"TeamSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the team"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the team"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the team"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Team execution mode (coordinate, route, broadcast, tasks)"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the team leader"}},"type":"object","title":"TeamSummaryResponse"},"TelegramStatusResponse":{"properties":{"status":{"type":"string","title":"Status","default":"available"}},"type":"object","title":"TelegramStatusResponse"},"TelegramWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status"}},"type":"object","required":["status"],"title":"TelegramWebhookResponse"},"TextInputContent":{"properties":{"type":{"type":"string","const":"text","title":"Type","default":"text"},"text":{"type":"string","title":"Text"}},"additionalProperties":true,"type":"object","required":["text"],"title":"TextInputContent","description":"A text fragment in a multimodal user message."},"TextPart":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"TextPart","description":"Represents a text segment within a message or artifact."},"Tool":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{},{"type":"null"}],"title":"Parameters"}},"additionalProperties":true,"type":"object","required":["name","description"],"title":"Tool","description":"A tool definition."},"ToolCall":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/FunctionCall"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","function"],"title":"ToolCall","description":"A tool call, modelled after OpenAI tool calls."},"ToolMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"tool","title":"Role","default":"tool"},"content":{"type":"string","title":"Content"},"toolCallId":{"type":"string","title":"Toolcallid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content","toolCallId"],"title":"ToolMessage","description":"A tool result message."},"TraceDetail":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent/workflow"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the agent/workflow"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"},"tree":{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array","title":"Tree","description":"Hierarchical tree of spans (root nodes)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at","tree"],"title":"TraceDetail","description":"Detailed trace information with hierarchical span tree"},"TraceNode":{"properties":{"id":{"type":"string","title":"Id","description":"Span ID"},"name":{"type":"string","title":"Name","description":"Span name (e.g., 'agent.run', 'llm.invoke')"},"type":{"type":"string","title":"Type","description":"Span kind (AGENT, TEAM, WORKFLOW, LLM, TOOL)"},"duration":{"type":"string","title":"Duration","description":"Human-readable duration (e.g., '123ms', '1.5s')"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"End time (Pydantic auto-serializes to ISO 8601)"},"status":{"type":"string","title":"Status","description":"Status code (OK, ERROR)"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the span"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the span"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"spans":{"anyOf":[{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array"},{"type":"null"}],"title":"Spans","description":"Child spans in the trace hierarchy"},"step_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Type","description":"Workflow step type (Step, Condition, function, Agent, Team)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional span attributes and data"},"extra_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Data","description":"Flexible field for custom attributes and additional data"}},"type":"object","required":["id","name","type","duration","start_time","end_time","status"],"title":"TraceNode","description":"Recursive node structure for rendering trace hierarchy in the frontend"},"TraceSearchGroupBy":{"type":"string","enum":["run","session"],"title":"TraceSearchGroupBy","description":"Grouping options for trace search results."},"TraceSearchRequest":{"properties":{"filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter","description":"FilterExpr DSL as JSON dict. Supports operators: EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH, AND, OR, NOT."},"group_by":{"$ref":"#/components/schemas/TraceSearchGroupBy","description":"Grouping mode: 'run' returns individual TraceDetail, 'session' returns aggregated TraceSessionStats.","default":"run"},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number (1-indexed)","default":1},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"Number of traces per page (max 100)","default":20}},"type":"object","title":"TraceSearchRequest","description":"Request body for POST /traces/search with advanced filtering.\n\nThe filter field accepts a FilterExpr DSL dict supporting composable queries\nwith AND/OR/NOT logic and operators like EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH.\n\nExample for run grouping (default):\n {\n \"filter\": {\n \"op\": \"AND\",\n \"conditions\": [\n {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n {\"op\": \"CONTAINS\", \"key\": \"user_id\", \"value\": \"admin\"}\n ]\n },\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n }\n\nExample for session grouping:\n {\n \"filter\": {\"op\": \"EQ\", \"key\": \"agent_id\", \"value\": \"my-agent\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n }"},"TraceSessionStats":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID(s) used in the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID associated with the session"},"total_traces":{"type":"integer","title":"Total Traces","description":"Total number of traces in this session"},"first_trace_at":{"type":"string","format":"date-time","title":"First Trace At","description":"Time of first trace (Pydantic auto-serializes to ISO 8601)"},"last_trace_at":{"type":"string","format":"date-time","title":"Last Trace At","description":"Time of last trace (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["session_id","total_traces","first_trace_at","last_trace_at"],"title":"TraceSessionStats","description":"Aggregated trace statistics grouped by session"},"TraceSummary":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR, UNSET)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at"],"title":"TraceSummary","description":"Summary information for trace list view"},"TracesConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_TracesDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"TracesConfig","description":"Configuration for the Traces domain of the AgentOS"},"TracesDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"TracesDomainConfig","description":"Configuration for the Traces domain of the AgentOS"},"UnauthenticatedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"UnauthenticatedResponse","example":{"detail":"Unauthenticated access","error_code":"UNAUTHENTICATED"}},"UpdateEvalRunRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"New name for the evaluation run"}},"type":"object","required":["name"],"title":"UpdateEvalRunRequest"},"UpdateSessionRequest":{"properties":{"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Updated session name"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Updated session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Updated metadata"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary","description":"Session summary"}},"type":"object","title":"UpdateSessionRequest"},"UserMemoryCreateSchema":{"properties":{"memory":{"type":"string","maxLength":5000,"minLength":1,"title":"Memory","description":"Memory content text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags to categorize the memory"}},"type":"object","required":["memory"],"title":"UserMemoryCreateSchema","description":"Define the payload expected for creating a new user memory"},"UserMemorySchema":{"properties":{"memory_id":{"type":"string","title":"Memory Id","description":"Unique identifier for the memory"},"memory":{"type":"string","title":"Memory","description":"Memory content text"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags associated with the memory"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID associated with this memory"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with this memory"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when memory was last updated"}},"type":"object","required":["memory_id","memory"],"title":"UserMemorySchema"},"UserMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"user","title":"Role","default":"user"},"content":{"anyOf":[{"type":"string"},{"items":{"oneOf":[{"$ref":"#/components/schemas/TextInputContent"},{"$ref":"#/components/schemas/ImageInputContent"},{"$ref":"#/components/schemas/AudioInputContent"},{"$ref":"#/components/schemas/VideoInputContent"},{"$ref":"#/components/schemas/DocumentInputContent"},{"$ref":"#/components/schemas/BinaryInputContent"}],"discriminator":{"propertyName":"type","mapping":{"audio":"#/components/schemas/AudioInputContent","binary":"#/components/schemas/BinaryInputContent","document":"#/components/schemas/DocumentInputContent","image":"#/components/schemas/ImageInputContent","text":"#/components/schemas/TextInputContent","video":"#/components/schemas/VideoInputContent"}}},"type":"array"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"UserMessage","description":"A user message supporting text or multimodal content."},"UserStatsSchema":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"total_memories":{"type":"integer","minimum":0.0,"title":"Total Memories","description":"Total number of memories for this user"},"last_memory_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Memory Updated At","description":"Timestamp of the most recent memory update"}},"type":"object","required":["user_id","total_memories"],"title":"UserStatsSchema","description":"Schema for user memory statistics"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"ValidationErrorResponse","example":{"detail":"Validation error","error_code":"VALIDATION_ERROR"}},"VectorDbSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the vector database"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the vector database"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the vector database"},"search_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Search Types","description":"List of supported search types (vector, keyword, hybrid)"}},"type":"object","required":["id"],"title":"VectorDbSchema"},"VectorSearchRequestSchema":{"properties":{"query":{"type":"string","title":"Query","description":"The search query text"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database ID to search in"},"knowledge_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledge Id","description":"Knowledge base ID to search in"},"vector_db_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vector Db Ids","description":"List of vector database IDs to search in"},"search_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Type","description":"The type of search to perform (vector, keyword, hybrid)"},"max_results":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Max Results","description":"The maximum number of results to return"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Filters to apply to the search results"},"meta":{"anyOf":[{"$ref":"#/components/schemas/Meta"},{"type":"null"}],"description":"Pagination metadata. Limit and page number to return a subset of results."}},"type":"object","required":["query"],"title":"VectorSearchRequestSchema","description":"Schema for vector search request."},"VectorSearchResult":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the search result document"},"content":{"type":"string","title":"Content","description":"Content text of the document"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the document"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Metadata associated with the document"},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"Usage statistics (e.g., token counts)"},"reranking_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reranking Score","description":"Reranking score for relevance"},"content_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Id","description":"ID of the source content"},"content_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Origin","description":"Origin URL or source of the content"},"size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"}},"type":"object","required":["id","content"],"title":"VectorSearchResult","description":"Schema for search result documents."},"VideoInputContent":{"properties":{"type":{"type":"string","const":"video","title":"Type","default":"video"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"VideoInputContent","description":"A video input content fragment."},"WhatsAppWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status","default":"ok"}},"type":"object","title":"WhatsAppWebhookResponse"},"WorkflowResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema","description":"Input schema for the workflow"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps","description":"List of workflow steps"},"agent":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"type":"null"}],"description":"Agent configuration if used"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamResponse"},{"type":"null"}],"description":"Team configuration if used"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"workflow_agent":{"type":"boolean","title":"Workflow Agent","description":"Whether this workflow uses a WorkflowAgent","default":false},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowResponse"},"WorkflowRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the workflow run"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the workflow"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was executed"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the workflow"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"Type of content returned"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status of the workflow run"},"step_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Results","description":"Results from each workflow step"},"step_executor_runs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Executor Runs","description":"Executor runs for each step"},"step_requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Requirements","description":"HITL step requirements (resolved state for historical display)"},"pause_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Kind","description":"Kind of HITL pause: 'step' or 'executor'"},"paused_step_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Step Name","description":"Name of the step that caused the pause"},"paused_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Paused Step Index","description":"Index of the step that caused the pause"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the workflow"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the workflow"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the workflow"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the workflow"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the workflow"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"}},"type":"object","required":["run_id"],"title":"WorkflowRunSchema"},"WorkflowSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID used in this session"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name","description":"Name of the workflow"},"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Data","description":"Complete session data"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current workflow state"},"workflow_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Data","description":"Workflow-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["session_id","session_name"],"title":"WorkflowSessionDetailSchema"},"WorkflowSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowSummaryResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} diff --git a/reference-api/openapi.yaml b/reference-api/openapi.yaml index bca9fcac3..48de0c150 100644 --- a/reference-api/openapi.yaml +++ b/reference-api/openapi.yaml @@ -524,12 +524,15 @@ paths: description: Agent run continued successfully content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/RunSchema' text/event-stream: example: |+ event: RunContent data: {"created_at": 1757348314, "run_id": "123..."} + schema: + type: string '400': description: Invalid JSON in tools field or invalid tool structure content: @@ -1080,9 +1083,9 @@ paths: '200': description: SSE stream of catch-up and/or live events content: - application/json: - schema: {} - text/event-stream: {} + text/event-stream: + schema: + type: string '400': description: Not supported for remote agents content: @@ -1403,7 +1406,9 @@ paths: '200': description: SSE stream of catch-up and/or live events content: - text/event-stream: {} + text/event-stream: + schema: + type: string '400': description: Stream resumption is unavailable for remote and factory teams. Non-admin callers must provide `session_id`. content: @@ -1479,17 +1484,20 @@ paths: $ref: '#/components/schemas/Body_continue_team_run' responses: '200': - description: Team run continued successfully + description: A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts. content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/TeamRunSchema' text/event-stream: example: |+ event: RunContent data: {"created_at": 1757348314, "run_id": "123..."} + schema: + type: string '400': - description: Invalid JSON in requirements field or invalid requirement structure + description: Invalid requirements or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote team content: application/json: schema: @@ -1501,21 +1509,29 @@ paths: schema: $ref: '#/components/schemas/UnauthenticatedResponse' '403': - description: Run has a pending admin approval and cannot be continued by the user yet. + description: Team run access denied, or a required admin approval is unresolved + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': - description: Team not found + description: Team, session, or run not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' '409': - description: Run is not paused (e.g. run is already running, continued, or errored). Only PAUSED runs can be continued. + description: Run is not paused and cannot be continued + content: + application/json: + schema: + $ref: '#/components/schemas/ConflictResponse' '422': description: Validation Error content: application/json: schema: - $ref: '#/components/schemas/ValidationErrorResponse' + $ref: '#/components/schemas/HTTPValidationError' '500': description: Internal Server Error content: @@ -2427,12 +2443,15 @@ paths: description: Workflow run continued successfully content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/WorkflowRunSchema' text/event-stream: example: |+ event: StepCompleted data: {"step_name": "step1"} + schema: + type: string '400': description: Invalid JSON in requirements field content: @@ -2589,9 +2608,9 @@ paths: '200': description: SSE stream of catch-up and/or live events content: - application/json: - schema: {} - text/event-stream: {} + text/event-stream: + schema: + type: string '400': description: Stream resumption is unavailable for remote and factory workflows. Non-admin callers must provide `session_id`. content: @@ -3700,8 +3719,6 @@ paths: '200': description: Streaming response with task updates content: - application/json: - schema: {} text/event-stream: example: |+ event: TaskStatusUpdateEvent @@ -3710,6 +3727,8 @@ paths: event: Message data: {"jsonrpc":"2.0","id":"request-123","result":{"messageId":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response"}]}} + schema: + type: string '400': description: Invalid request or unsupported method '404': @@ -11204,6 +11223,18 @@ paths: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + '500': + description: Approvals could not be listed + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerErrorResponse' + '503': + description: Approvals are not supported by the configured database + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' /approvals/count: get: tags: @@ -11246,6 +11277,18 @@ paths: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + '500': + description: Approval count could not be retrieved + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerErrorResponse' + '503': + description: Approvals are not supported by the configured database + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' /approvals/{approval_id}/status: get: tags: @@ -11280,12 +11323,30 @@ paths: application/json: schema: $ref: '#/components/schemas/ForbiddenResponse' + '404': + description: Approval not found or not visible to the caller + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + '500': + description: Approval status could not be retrieved + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerErrorResponse' + '503': + description: Approvals are not supported by the configured database + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' /approvals/{approval_id}: get: tags: @@ -11320,12 +11381,30 @@ paths: application/json: schema: $ref: '#/components/schemas/ForbiddenResponse' + '404': + description: Approval not found or not visible to the caller + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + '500': + description: Approval could not be retrieved + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerErrorResponse' + '503': + description: Approvals are not supported by the configured database + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' delete: tags: - Approvals @@ -11355,12 +11434,30 @@ paths: application/json: schema: $ref: '#/components/schemas/ForbiddenResponse' + '404': + description: Approval is not available to the caller + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + '500': + description: Approval could not be deleted + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerErrorResponse' + '503': + description: Approvals are not supported by the configured database + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' /approvals/{approval_id}/resolve: post: tags: @@ -11401,12 +11498,36 @@ paths: application/json: schema: $ref: '#/components/schemas/ForbiddenResponse' + '404': + description: Approval not found or not available to the caller + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponse' + '409': + description: Approval has already been resolved + content: + application/json: + schema: + $ref: '#/components/schemas/ConflictResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + '500': + description: Approval could not be resolved + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerErrorResponse' + '503': + description: Approvals are not supported by the configured database + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' /service-accounts: post: tags: diff --git a/reference-api/schema/approvals/get-approval-count.mdx b/reference-api/schema/approvals/get-approval-count.mdx index da274df1d..c0998ca05 100644 --- a/reference-api/schema/approvals/get-approval-count.mdx +++ b/reference-api/schema/approvals/get-approval-count.mdx @@ -3,5 +3,5 @@ openapi: get /approvals/count --- - This endpoint counts pending approvals. With user isolation enabled, non-admin requests are scoped to the user ID in the JWT even when `user_id` is supplied. Authentication failures can return `401`, and databases without approval support can return `503`; the current OpenAPI operation declares only `200` and `422`. + This endpoint counts pending approvals. With user isolation enabled, non-admin requests are scoped to the user ID in the JWT even when `user_id` is supplied. Authentication and authorization failures can return `401` or `403`. Databases without approval support return `503`. diff --git a/scripts/examples_sync/apply_oneoffs.py b/scripts/examples_sync/apply_oneoffs.py index c4b8ffe1d..861ee364d 100644 --- a/scripts/examples_sync/apply_oneoffs.py +++ b/scripts/examples_sync/apply_oneoffs.py @@ -2180,7 +2180,7 @@ def main() -> None: --- - This endpoint counts pending approvals. With user isolation enabled, non-admin requests are scoped to the user ID in the JWT even when `user_id` is supplied. Authentication failures can return `401`, and databases without approval support can return `503`; the current OpenAPI operation declares only `200` and `422`. + This endpoint counts pending approvals. With user isolation enabled, non-admin requests are scoped to the user ID in the JWT even when `user_id` is supplied. Authentication and authorization failures can return `401` or `403`. Databases without approval support return `503`. """, ) root_sub( diff --git a/scripts/examples_sync/generate.py b/scripts/examples_sync/generate.py index f09d6a4dc..2d3514ab4 100644 --- a/scripts/examples_sync/generate.py +++ b/scripts/examples_sync/generate.py @@ -1887,6 +1887,13 @@ "91_tools/mcp/airbnb.py": { "intro_override": "Connect an OpenAI `gpt-4o` agent to the Airbnb MCP server over stdio and search property listings.", }, + "91_tools/mcp/multiple_servers.py": { + "pre_code_warning": ( + "The pinned source docstring names AccuWeather and `ACCUWEATHER_API_KEY`, but the code " + "starts Airbnb and Brave MCP servers and reads `BRAVE_API_KEY`. Follow the generated " + "environment steps below; no AccuWeather credential is used." + ), + }, "91_tools/google/gmail/daily_digest.py": { "intro_override": "Group recent emails by category and record a priority for each message in a structured daily digest.", }, diff --git a/scripts/make_openapi.py b/scripts/make_openapi.py index c246c84eb..f0e114dd4 100644 --- a/scripts/make_openapi.py +++ b/scripts/make_openapi.py @@ -340,6 +340,55 @@ def sort_responses(operation: dict) -> None: assert get_json_schema == {} get_json_schema["$ref"] = f"#/components/schemas/{run_schema}" + continue_run = spec["paths"][f"/{component}/{{{id_parameter}}}/runs/{{run_id}}/continue"]["post"] + continue_json_schema = continue_run["responses"]["200"]["content"]["application/json"][ + "schema" + ] + assert continue_json_schema == {} + continue_json_schema["$ref"] = f"#/components/schemas/{run_schema}" + continue_sse = continue_run["responses"]["200"]["content"]["text/event-stream"] + assert "schema" not in continue_sse + continue_sse["schema"] = {"type": "string"} + + continue_team_run = spec["paths"]["/teams/{team_id}/runs/{run_id}/continue"]["post"] + continue_team_responses = continue_team_run["responses"] + assert continue_team_responses["200"]["description"] == "Team run continued successfully" + continue_team_responses["200"]["description"] = ( + "A non-streaming run response or a server-sent event stream. Streaming execution failures " + "are delivered as events after the stream starts." + ) + assert continue_team_responses["400"]["description"] == ( + "Invalid JSON in requirements field or invalid requirement structure" + ) + continue_team_responses["400"]["description"] = ( + "Invalid requirements or continuation boundary, missing local session ID, rejected input, " + "or background streaming requested for a remote team" + ) + assert continue_team_responses["403"] == { + "description": "Run has a pending admin approval and cannot be continued by the user yet." + } + continue_team_responses["403"] = response_ref( + "Team run access denied, or a required admin approval is unresolved", + "ForbiddenResponse", + ) + assert continue_team_responses["404"]["description"] == "Team not found" + continue_team_responses["404"]["description"] = "Team, session, or run not found" + assert continue_team_responses["409"] == { + "description": ( + "Run is not paused (e.g. run is already running, continued, or errored). " + "Only PAUSED runs can be continued." + ) + } + continue_team_responses["409"] = response_ref( + "Run is not paused and cannot be continued", + "ConflictResponse", + ) + continue_team_validation = continue_team_responses["422"]["content"]["application/json"][ + "schema" + ] + assert continue_team_validation == {"$ref": "#/components/schemas/ValidationErrorResponse"} + continue_team_validation["$ref"] = "#/components/schemas/HTTPValidationError" + update_content = spec["paths"]["/knowledge/content/{content_id}"]["patch"] assert update_content["description"] == ( "Update content properties such as name, description, metadata, or processing configuration. " @@ -520,6 +569,98 @@ def sort_responses(operation: dict) -> None: ) sort_responses(list_service_accounts) + approval_operations = ( + ( + "/approvals", + "get", + "200", + ( + ( + "503", + "Approvals are not supported by the configured database", + "ServiceUnavailableResponse", + ), + ("500", "Approvals could not be listed", "InternalServerErrorResponse"), + ), + ), + ( + "/approvals/count", + "get", + "200", + ( + ( + "503", + "Approvals are not supported by the configured database", + "ServiceUnavailableResponse", + ), + ("500", "Approval count could not be retrieved", "InternalServerErrorResponse"), + ), + ), + ( + "/approvals/{approval_id}/status", + "get", + "200", + ( + ("404", "Approval not found or not visible to the caller", "NotFoundResponse"), + ("500", "Approval status could not be retrieved", "InternalServerErrorResponse"), + ( + "503", + "Approvals are not supported by the configured database", + "ServiceUnavailableResponse", + ), + ), + ), + ( + "/approvals/{approval_id}", + "get", + "200", + ( + ("404", "Approval not found or not visible to the caller", "NotFoundResponse"), + ("500", "Approval could not be retrieved", "InternalServerErrorResponse"), + ( + "503", + "Approvals are not supported by the configured database", + "ServiceUnavailableResponse", + ), + ), + ), + ( + "/approvals/{approval_id}/resolve", + "post", + "200", + ( + ("404", "Approval not found or not available to the caller", "NotFoundResponse"), + ("409", "Approval has already been resolved", "ConflictResponse"), + ("500", "Approval could not be resolved", "InternalServerErrorResponse"), + ( + "503", + "Approvals are not supported by the configured database", + "ServiceUnavailableResponse", + ), + ), + ), + ( + "/approvals/{approval_id}", + "delete", + "204", + ( + ("404", "Approval is not available to the caller", "NotFoundResponse"), + ("500", "Approval could not be deleted", "InternalServerErrorResponse"), + ( + "503", + "Approvals are not supported by the configured database", + "ServiceUnavailableResponse", + ), + ), + ), + ) + for path, method, success_status, additions in approval_operations: + operation = spec["paths"][path][method] + assert set(operation["responses"]) == {success_status, "422"}, operation["operationId"] + for status, description, schema_name in additions: + add_response(operation, status, description, schema_name) + sort_responses(operation) + schedule_operations = ( ("/schedules", "get", "200", (("503", "Scheduler storage is unavailable", "ServiceUnavailableResponse"),)), ( @@ -967,11 +1108,26 @@ def sort_responses(operation: dict) -> None: ) sort_responses(operation) + deprecated_stream = spec["paths"]["/a2a/message/stream"]["post"] + deprecated_stream_content = deprecated_stream["responses"]["200"]["content"] + assert deprecated_stream_content["application/json"]["schema"] == {} + assert "text/event-stream" in deprecated_stream_content + del deprecated_stream_content["application/json"] + deprecated_stream_content["text/event-stream"]["schema"] = {"type": "string"} + + resume_paths = ( + "/agents/{agent_id}/runs/{run_id}/resume", + "/teams/{team_id}/runs/{run_id}/resume", + "/workflows/{workflow_id}/runs/{run_id}/resume", + ) + for path in resume_paths: + resume_content = spec["paths"][path]["post"]["responses"]["200"]["content"] + assert resume_content["application/json"]["schema"] == {} + assert "text/event-stream" in resume_content + del resume_content["application/json"] + resume_content["text/event-stream"]["schema"] = {"type": "string"} + resume_team = spec["paths"]["/teams/{team_id}/runs/{run_id}/resume"]["post"] - team_success_content = resume_team["responses"]["200"]["content"] - assert team_success_content["application/json"]["schema"] == {} - assert "text/event-stream" in team_success_content - del team_success_content["application/json"] assert resume_team["responses"]["400"]["description"] == "Not supported for remote teams" resume_team["responses"]["400"]["description"] = ( "Stream resumption is unavailable for remote and factory teams. " diff --git a/telemetry.mdx b/telemetry.mdx index 9ef40a1bd..5f4ac91ff 100644 --- a/telemetry.mdx +++ b/telemetry.mdx @@ -8,7 +8,7 @@ keywords: telemetry, privacy, data collection, usage tracking, disable telemetry When telemetry is enabled, Agno sends per-event usage metadata to `https://os-api.agno.com` by default. Agents, teams, and workflows send an event for each run. Evals send an event for each evaluation, and AgentOS sends an event when it launches. -Telemetry payloads do not include prompts, responses, or API keys. They include raw component, session, and run IDs. Your application can supply these IDs, so do not encode sensitive data in them. +Telemetry payloads do not include prompts or responses. They include raw component, session, and run IDs. Parser and output model configuration is serialized with each model's `to_dict()` method, which can include user-supplied request fields such as `extra_headers`, `extra_query`, or `extra_body`. Do not place credentials or other sensitive data in those fields or IDs when telemetry is enabled. ## Data Collected From cfd3de0642b90c574a09a3251773a4329e87024d Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 06:42:49 +0100 Subject: [PATCH 20/47] docs: finalize team continuation contract --- reference-api/openapi.json | 2 +- reference-api/openapi.yaml | 8 +++++++- scripts/make_openapi.py | 9 ++++++++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/reference-api/openapi.json b/reference-api/openapi.json index c9719de3c..313d537da 100644 --- a/reference-api/openapi.json +++ b/reference-api/openapi.json @@ -1 +1 @@ -{"openapi":"3.1.0","info":{"title":"Agno API Reference","description":"The all-in-one, private, secure agent platform that runs in your cloud.","version":"2.7.4"},"paths":{"/":{"get":{"tags":["Home"],"summary":"API Information","description":"Return the AgentOS instance name, ID, and version.","operationId":"get_api_info","responses":{"200":{"description":"API information retrieved successfully","content":{"application/json":{"schema":{"properties":{"name":{"type":"string","title":"Name"},"id":{"type":"string","title":"Id"},"version":{"type":"string","title":"Version"}},"type":"object","required":["name","id","version"],"title":"ApiInfoResponse"},"examples":{"home":{"summary":"Example home response","value":{"name":"AgentOS API","id":"demo-os","version":"1.0.0"}}}}}}}}},"/health":{"get":{"tags":["Health"],"summary":"Health Check","description":"Check the health status of the AgentOS API. Returns a simple status indicator.","operationId":"health_check","responses":{"200":{"description":"API is healthy and operational","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"},"example":{"status":"ok","instantiated_at":"2025-06-10T12:00:00Z"}}}}}}},"/info":{"get":{"tags":["Core"],"summary":"Get OS Info","description":"Return lightweight, unauthenticated metadata about this AgentOS instance.","operationId":"get_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoResponse"}}}}}}},"/config":{"get":{"tags":["Core"],"summary":"Get OS Configuration","description":"Retrieve the complete configuration of the AgentOS instance, including:\n\n- Available models and databases\n- Registered agents, teams, and workflows\n- Chat, session, memory, knowledge, and evaluation configurations\n- Available interfaces and their routes","operationId":"get_config","responses":{"200":{"description":"OS configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"},"example":{"description":"Example AgentOS configuration","available_models":[],"databases":["9c884dc4-9066-448c-9074-ef49ec7eb73c"],"session":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Sessions"}}]},"metrics":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Metrics"}}]},"memory":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Memory"}}]},"knowledge":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Knowledge"}}]},"evals":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Evals"}}]},"agents":[{"id":"main-agent","name":"Main Agent","db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c"}],"teams":[],"workflows":[],"interfaces":[],"os_id":"demo"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/models":{"get":{"tags":["Core"],"summary":"Get Available Models","description":"Retrieve a list of all unique models currently used by agents and teams in this OS instance. This includes the model ID and provider information for each model.","operationId":"get_models","responses":{"200":{"description":"List of models retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Response Get Models"},"example":[{"id":"gpt-4","provider":"openai"},{"id":"claude-3-sonnet","provider":"anthropic"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}/runs":{"post":{"tags":["Agents"],"summary":"Create Agent Run","description":"Execute an agent with a message and optional media files. Supports both streaming and non-streaming responses.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_agent_run"}}}},"responses":{"200":{"description":"Agent run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"examples":{"event_stream":{"summary":"Example event stream response","value":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Agents"],"summary":"List Agent Runs","description":"List runs for an agent within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_agent_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED","title":"Status"},"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RunSchema"},"type":"array","title":"Response List Agent Runs"}}}},"400":{"description":"Run listing is unavailable for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Agent resolution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/cancel":{"post":{"tags":["Agents"],"summary":"Cancel Agent Run","description":"Cancel a currently executing agent run. This will attempt to stop the agent's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/continue":{"post":{"tags":["Agents"],"summary":"Continue Agent Run","description":"Advance a persisted agent run from its current state. Dispatches on the body shape and the persisted run state (see ADR-003 in specs/agno/features/checkpointing/decisions.md).\n\n**Variants:**\n- PAUSED + tools provided \u2192 apply HITL tool results, resume\n- PAUSED + resolved admin approval (empty tools) \u2192 apply resolution, resume\n- RUNNING / ERROR (no unresolved HITL requirements) \u2192 resume from last persisted state\n- COMPLETED + new tools \u2192 continue with appended messages\n\n**Tools Parameter:**\nJSON string containing array of tool execution objects with results. Optional \u2014 only required when the persisted run has unresolved HITL requirements.","operationId":"continue_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_agent_run"}}}},"responses":{"200":{"description":"Agent run continued successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid JSON in tools field or invalid tool structure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Run has a pending admin approval and cannot be continued by the user yet."},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/sessions/{session_id}/fork":{"post":{"tags":["Agents"],"summary":"Fork Agent Session","description":"Deep-copy a session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_agent_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents":{"get":{"tags":["Agents"],"summary":"List All Agents","description":"Retrieve a comprehensive list of all agents configured in this OS instance.\n\n**Returns:**\n- Agent metadata (ID, name, description)\n- Model configuration and capabilities\n- Available tools and their configurations\n- Session, knowledge, memory, and reasoning settings\n- Only meaningful (non-default) configurations are included","operationId":"get_agents","responses":{"200":{"description":"List of agents retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentResponse"},"type":"array","title":"Response Get Agents"},"example":[{"id":"main-agent","name":"Main Agent","db_id":"c6bf0644-feb8-4930-a305-380dae5ad6aa","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Details","description":"Retrieve detailed configuration and capabilities of a specific agent.\n\n**Returns comprehensive agent information including:**\n- Model configuration and provider details\n- Complete tool inventory and configurations\n- Session management settings\n- Knowledge base and memory configurations\n- Reasoning capabilities and settings\n- System prompts and response formatting options","operationId":"get_agent","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Agent details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"},"example":{"id":"main-agent","name":"Main Agent","db_id":"9e064c70-6821-4840-a333-ce6230908a70","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Run","description":"Retrieve the status and output of an agent run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Agents"],"summary":"List Agent Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_agent_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Agents"],"summary":"Get Agent Run Checkpoint Snapshot","description":"Return a derived run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_agent_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/resume":{"post":{"tags":["Agents"],"summary":"Resume Agent Run Stream","description":"Resume an SSE stream for an agent run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_agent_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_agent_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Not supported for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs":{"post":{"tags":["Teams"],"summary":"Create Team Run","description":"Execute a team collaboration with multiple agents working together on a task.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_team_run"}}}},"responses":{"200":{"description":"Team run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Teams"],"summary":"List Team Runs","description":"List runs for a team within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_team_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/cancel":{"post":{"tags":["Teams"],"summary":"Cancel Team Run","description":"Cancel a currently executing team run. This will attempt to stop the team's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel team run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/resume":{"post":{"tags":["Teams"],"summary":"Resume Team Run Stream","description":"Resume an SSE stream for a team run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_team_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_team_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory teams. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/continue":{"post":{"tags":["Teams"],"summary":"Continue Team Run","description":"Continue a paused or incomplete team run with updated requirements.\n\n**Use Cases:**\n- Resume execution after tool approval/rejection\n- Provide manual tool execution results\n- Resume after admin approval (requirements can be empty; resolution fetched from DB)\n\n**Requirements Parameter:**\nJSON string containing array of requirement objects with tool execution results.\nCan be empty when an admin-required approval has been resolved.","operationId":"continue_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_team_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid requirements or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Team run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is not paused and cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/sessions/{session_id}/fork":{"post":{"tags":["Teams"],"summary":"Fork Team Session","description":"Deep-copy a team session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_team_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams":{"get":{"tags":["Teams"],"summary":"List All Teams","description":"Retrieve a comprehensive list of all teams configured in this OS instance.\n\n**Returns team information including:**\n- Team metadata (ID, name, description, execution mode)\n- Model configuration for team coordination\n- Team member roster with roles and capabilities\n- Knowledge sharing and memory configurations","operationId":"get_teams","responses":{"200":{"description":"List of teams retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamResponse"},"type":"array","title":"Response Get Teams"},"example":[{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"agno_memories","app_url":"/memory/1","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/teams/{team_id}":{"get":{"tags":["Teams"],"summary":"Get Team Details","description":"Retrieve detailed configuration and member information for a specific team.","operationId":"get_team","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"},"example":{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}":{"get":{"tags":["Teams"],"summary":"Get Team Run","description":"Retrieve the status and output of a team run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Teams"],"summary":"List Team Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored team run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_team_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Teams"],"summary":"Get Team Run Checkpoint Snapshot","description":"Return a derived team run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_team_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows":{"get":{"tags":["Workflows"],"summary":"List All Workflows","description":"Retrieve a comprehensive list of all workflows configured in this OS instance.\n\n**Return Information:**\n- Workflow metadata (ID, name, description)\n- Input schema requirements\n- Step sequence and execution flow\n- Associated agents and teams","operationId":"get_workflows","responses":{"200":{"description":"List of workflows retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Response Get Workflows"},"example":[{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/workflows/{workflow_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Details","description":"Retrieve detailed configuration and step information for a specific workflow.","operationId":"get_workflow","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Workflow version to retrieve","title":"Version"},"description":"Workflow version to retrieve"}],"responses":{"200":{"description":"Workflow details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"},"example":{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs":{"post":{"tags":["Workflows"],"summary":"Execute Workflow","description":"Execute a workflow with the provided input data. Workflows can run in streaming or batch mode.\n\n**Execution Modes:**\n- **Streaming (`stream=true`)**: Real-time step-by-step execution updates via SSE\n- **Non-Streaming (`stream=false`)**: Complete workflow execution with final result\n\n**Workflow Execution Process:**\n1. Input validation against workflow schema\n2. Sequential or parallel step execution based on workflow design\n3. Data flow between steps with transformation\n4. Error handling and automatic retries where configured\n5. Final result compilation and response\n\n**Session Management:**\nWorkflows support session continuity for stateful execution across multiple runs.","operationId":"create_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_run"}}}},"responses":{"200":{"description":"Workflow executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid input data or workflow configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Workflow execution error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"List Workflow Runs","description":"List runs for a workflow within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_workflow_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/continue":{"post":{"tags":["Workflows"],"summary":"Continue Workflow Run","description":"Continue a paused workflow run with resolved requirements.\n\n**Use Cases:**\n- Resume after step-level HITL (confirmation, user input, router selection)\n- Resume after executor-level HITL (agent/team tool confirmation within a step)\n\n**Requirements Parameter:**\nJSON string containing the resolved step requirements.","operationId":"continue_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_workflow_run"}}}},"responses":{"200":{"description":"Workflow run continued successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: StepCompleted\ndata: {\"step_name\": \"step1\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid JSON in requirements field","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is not paused. Only PAUSED runs can be continued."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/cancel":{"post":{"tags":["Workflows"],"summary":"Cancel Workflow Run","description":"Cancel a currently executing workflow run, stopping all active steps and cleanup.\n**Note:** Complex workflows with multiple parallel steps may take time to fully cancel.","operationId":"cancel_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found, or the requested run was not found in the caller's session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel workflow run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/resume":{"post":{"tags":["Workflows"],"summary":"Resume Workflow Run Stream","description":"Resume an SSE stream for a workflow run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_workflow_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_workflow_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory workflows. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Run","description":"Retrieve the status and output of a workflow run. Use this to poll for run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/slack/events":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Receives incoming Slack events (messages, mentions, thread starts).\n\n**URL Verification:** On first setup, Slack sends a `url_verification` challenge. The endpoint echoes back the challenge string.\n\n**Event Processing:** Normal events are acknowledged immediately with `{\"status\": \"ok\"}` and processed in the background. This prevents Slack's 3-second retry timeout.\n\n**Retry Handling:** Events with `X-Slack-Retry-Num` header are duplicates and return 200 without reprocessing.\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Event Subscriptions > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for creating a Slack App or use the [manifest](/agent-os/interfaces/slack/setup#2-create-the-slack-app) for quick setup.\n","operationId":"slack_events_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SlackChallengeResponse"},{"$ref":"#/components/schemas/SlackEventResponse"}],"title":"Response Slack Events Simple Agent"}}}},"400":{"description":"Missing Slack headers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured, or the event body is not valid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number (present on retried events)"}]}},"/slack/interactions":{"post":{"tags":["Slack"],"summary":"Slack Interactions","description":"Handles Slack interactive components for Human-in-the-Loop (HITL) workflows.\n\n**Supported Actions:**\n- `row_approve` - Approve a pending tool call\n- `row_reject` - Reject a pending tool call\n- `submit_pause` - Submit form data for a paused workflow\n- `check_status` - Check an admin approval and resume an approved run\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Interactivity & Shortcuts > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for step-by-step instructions or the [HITL guide](/agent-os/interfaces/slack/hitl) for approval workflows.\n","operationId":"slack_interactions_simple_agent","responses":{"200":{"description":"Interaction accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackEventResponse"}}}},"400":{"description":"Missing Slack headers or malformed interaction payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number. Retried interactions return 200 without reprocessing."}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"URL-encoded JSON interaction payload (Slack sends interactive component data as a single form field)"}}}}}}}},"/whatsapp/status":{"get":{"tags":["Whatsapp"],"summary":"Status","operationId":"whatsapp_status_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"WhatsAppStatusResponse","example":{"status":"available"}}}}}}}},"/whatsapp/webhook":{"get":{"tags":["Whatsapp"],"summary":"Whatsapp Verify","description":"Handle WhatsApp webhook verification","operationId":"whatsapp_verify_simple_agent","responses":{"200":{"description":"Webhook challenge accepted","content":{"text/plain":{"schema":{"type":"string"},"example":"challenge-token"}}},"400":{"description":"No challenge was provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid verify token or mode","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Webhook verification is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"hub.mode","in":"query","required":true,"schema":{"type":"string"},"description":"Webhook verification mode. Meta sends `subscribe`."},{"name":"hub.verify_token","in":"query","required":true,"schema":{"type":"string"},"description":"Verification token configured for the WhatsApp interface."},{"name":"hub.challenge","in":"query","required":true,"schema":{"type":"string"},"description":"Challenge returned as plain text after successful verification."}]},"post":{"tags":["Whatsapp"],"summary":"Whatsapp Webhook","description":"Process incoming WhatsApp messages","operationId":"whatsapp_webhook_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppWebhookResponse"}}}},"403":{"description":"Invalid webhook signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Signature validation is not configured, or the JSON body is malformed or is not an object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Hub-Signature-256","in":"header","required":true,"schema":{"type":"string"},"description":"SHA-256 HMAC signature for the raw request body, prefixed with `sha256=`"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}},"/telegram/status":{"get":{"tags":["Telegram"],"summary":"Telegram Status","operationId":"telegram_status_simple-agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramStatusResponse"}}}}}}},"/telegram/webhook":{"post":{"tags":["Telegram"],"summary":"Telegram Webhook","operationId":"telegram_webhook_simple-agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramWebhookResponse"}}}},"403":{"description":"Invalid webhook secret token"}}}},"/agui":{"post":{"tags":["AGUI"],"summary":"Run Agent","operationId":"run_agent_agui_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentInput"}}},"required":true},"responses":{"200":{"description":"Server-sent event stream","content":{"text/event-stream":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/status":{"get":{"tags":["AGUI"],"summary":"Get Status","operationId":"get_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/a2a/agents/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Agent Card","operationId":"get_agent_card_a2a_agents__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Agent","description":"Send a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"A2A is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/agents/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Agent Task","description":"Get the status and result of an agent task by ID.","operationId":"get_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Agent Task","description":"Cancel a running agent task.","operationId":"cancel_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Agent","description":"Stream a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/teams/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Team Card","operationId":"get_team_card_a2a_teams__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Team","description":"Send a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/teams/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Team Task","description":"Get the status and result of a team task by ID.","operationId":"get_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Team Task","description":"Cancel a running team task.","operationId":"cancel_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Team","description":"Stream a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/workflows/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Workflow Card","operationId":"get_workflow_card_a2a_workflows__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/workflows/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Workflow","description":"Send a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/workflows/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Workflow","description":"Stream a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/message/send":{"post":{"tags":["A2A"],"summary":"Send Message","description":"[DEPRECATED] Send a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"send_message","responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/a2a/message/stream":{"post":{"tags":["A2A"],"summary":"Stream Message","description":"[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message","responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/sessions":{"get":{"tags":["Sessions"],"summary":"List Sessions","description":"Retrieve paginated list of sessions with filtering and sorting options. Supports filtering by session type (agent, team, workflow), component, user, and name. Sessions represent conversation histories and execution contexts.","operationId":"get_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types.","title":"Type"},"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types."},{"name":"component_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by component ID (agent/team/workflow ID)","title":"Component Id"},"description":"Filter sessions by component ID (agent/team/workflow ID)"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by user ID","title":"User Id"},"description":"Filter sessions by user ID"},{"name":"session_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by name (partial match)","title":"Session Name"},"description":"Filter sessions by name (partial match)"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of sessions to return per page","default":20,"title":"Limit"},"description":"Number of sessions to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort sessions by","default":"created_at","title":"Sort By"},"description":"Field to sort sessions by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query sessions from","title":"Db Id"},"description":"Database ID to query sessions from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Sessions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_SessionSchema_"},"example":{"session_example":{"summary":"Example session response","value":{"data":[{"session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_state":{},"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}]}}}}}},"400":{"description":"Invalid session type or filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in query parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Sessions"],"summary":"Create New Session","description":"Create a new empty session with optional configuration. Useful for pre-creating sessions with specific session_state, metadata, or other properties before running any agent/team/workflow interactions. The session can later be used by providing its session_id in run requests.","operationId":"create_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SessionType","description":"Type of session to create (agent, team, or workflow)","default":"agent"},"description":"Type of session to create (agent, team, or workflow)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to create session in","title":"Db Id"},"description":"Database ID to create session in"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest","description":"Session configuration data","default":{}}}}},"responses":{"201":{"description":"Session created successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Create Session"},"examples":{"agent_session_example":{"summary":"Example created agent session","value":{"user_id":"user-123","agent_session_id":"new-session-id","session_id":"new-session-id","session_name":"New Session","session_state":{"key":"value"},"metadata":{"key":"value"},"agent_id":"agent-1","created_at":"2025-10-21T12:00:00Z","updated_at":"2025-10-21T12:00:00Z"}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A session with the supplied session_id already exists"},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Multiple Sessions","description":"Delete multiple sessions by their IDs in a single operation. This action cannot be undone and will permanently remove all specified sessions and their runs.","operationId":"delete_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSessionRequest"}}}},"responses":{"204":{"description":"Sessions deleted successfully"},"400":{"description":"Invalid request - session IDs and types length mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["Sessions"],"summary":"Get Session by ID","description":"Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow).","operationId":"get_session_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to retrieve","title":"Session Id"},"description":"Session ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query session from","title":"User Id"},"description":"User ID to query session from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query session from","title":"Db Id"},"description":"Database ID to query session from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query session from","title":"Table"},"description":"Table to query session from"}],"responses":{"200":{"description":"Session details retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Get Session By Id"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Session","description":"Permanently delete a specific session and all its associated runs. This action cannot be undone and will remove all conversation history.","operationId":"delete_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to delete","title":"Session Id"},"description":"Session ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Sessions"],"summary":"Update Session","description":"Update session properties such as session_name, session_state, metadata, or summary. Use this endpoint to modify the session name, update state, add metadata, or update the session summary.","operationId":"update_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to update","title":"Session Id"},"description":"Session ID to update"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID","title":"User Id"},"description":"User ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update operation","title":"Db Id"},"description":"Database ID to use for update operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update operation","title":"Table"},"description":"Table to use for update operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest","description":"Session update data"}}}},"responses":{"200":{"description":"Session updated successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Update Session"},"examples":{"update_summary":{"summary":"Update session summary","value":{"summary":{"summary":"The user discussed project planning with the agent.","updated_at":"2025-10-21T14:30:00Z"}}},"update_metadata":{"summary":"Update session metadata","value":{"metadata":{"tags":["planning","project"],"priority":"high"}}},"update_session_name":{"summary":"Update session name","value":{"session_name":"Updated Session Name"}},"update_session_state":{"summary":"Update session state","value":{"session_state":{"step":"completed","context":"Project planning finished","progress":100}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs":{"get":{"tags":["Sessions"],"summary":"Get Session Runs","description":"Retrieve all runs (executions) for a specific session with optional timestamp filtering. Runs represent individual interactions or executions within a session. Response schema varies based on session type.","operationId":"get_session_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get runs from","title":"Session Id"},"description":"Session ID to get runs from"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query runs from","title":"User Id"},"description":"User ID to query runs from"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created after this Unix timestamp (epoch time in seconds)","title":"Created After"},"description":"Filter runs created after this Unix timestamp (epoch time in seconds)"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created before this Unix timestamp (epoch time in seconds)","title":"Created Before"},"description":"Filter runs created before this Unix timestamp (epoch time in seconds)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query runs from","title":"Db Id"},"description":"Database ID to query runs from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query runs from","title":"Table"},"description":"Table to query runs from"}],"responses":{"200":{"description":"Session runs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}]},"title":"Response Get Session Runs"},"examples":{"completed_run":{"summary":"Example completed run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"","run_input":"Which tools do you have access to?","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","run_response_format":"text","reasoning_content":"","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069},"messages":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-08 17:52:10.101003.\n\n\nYou have the capability to retain memories from previous interactions with the user, but have not had any interactions with the user yet.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757346730},{"content":"Which tools do you have access to?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757346730},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138},"created_at":1757346730}],"events":[{"created_at":1757346730,"event":"RunStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","model":"gpt-4o","model_provider":"OpenAI"},{"created_at":1757346733,"event":"MemoryUpdateStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"MemoryUpdateCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"RunCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","content_type":"str","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069}}],"created_at":"2025-09-08T15:52:10Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found or has no runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs/{run_id}":{"get":{"tags":["Sessions"],"summary":"Get Run by ID","description":"Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run).","operationId":"get_session_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get run from","title":"Session Id"},"description":"Session ID to get run from"},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","description":"Run ID to retrieve","title":"Run Id"},"description":"Run ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query run from","title":"User Id"},"description":"User ID to query run from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query run from","title":"Db Id"},"description":"Database ID to query run from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query run from","title":"Table"},"description":"Table to query run from"}],"responses":{"200":{"description":"Run retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}],"title":"Response Get Session Run"},"examples":{"agent_run":{"summary":"Example agent run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"user_123","run_input":"Which tools do you have access to?","content":"I don't have access to external tools.","created_at":1728499200}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/rename":{"post":{"tags":["Sessions"],"summary":"Rename Session","description":"Update the name of an existing session. Useful for organizing and categorizing sessions with meaningful names for better identification and management.","operationId":"rename_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to rename","title":"Session Id"},"description":"Session ID to rename"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope rename to","title":"User Id"},"description":"User ID to scope rename to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for rename operation","title":"Db Id"},"description":"Database ID to use for rename operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_rename_session"}}}},"responses":{"200":{"description":"Session renamed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Rename Session"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Invalid session name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type or validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories":{"post":{"tags":["Memory"],"summary":"Create Memory","description":"Create a new user memory with content and associated topics. Memories are used to store contextual information for users across conversations.","operationId":"create_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for memory storage","title":"Db Id"},"description":"Database ID to use for memory storage"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for memory storage","title":"Table"},"description":"Table to use for memory storage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"mem-123","memory":"User prefers technical explanations with code examples","topics":["preferences","communication_style","technical"],"user_id":"user-456","created_at":"2024-01-15T10:30:00Z","updated_at":"2024-01-15T10:30:00Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Memory"],"summary":"Delete Multiple Memories","description":"Delete multiple user memories by their IDs in a single operation. This action cannot be undone and all specified memories will be permanently removed.","operationId":"delete_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMemoriesRequest"}}}},"responses":{"204":{"description":"Memories deleted successfully"},"400":{"description":"Invalid request - empty memory_ids list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"List Memories","description":"Retrieve paginated list of user memories with filtering and search capabilities. Filter by user, agent, team, topics, or search within memory content.","operationId":"get_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by user ID","title":"User Id"},"description":"Filter memories by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by agent ID","title":"Agent Id"},"description":"Filter memories by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by team ID","title":"Team Id"},"description":"Filter memories by team ID"},{"name":"search_content","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fuzzy search within memory content","title":"Search Content"},"description":"Fuzzy search within memory content"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of memories to return per page","default":20,"title":"Limit"},"description":"Number of memories to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort memories by","default":"updated_at","title":"Sort By"},"description":"Field to sort memories by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memories from","title":"Db Id"},"description":"Database ID to query memories from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Comma-separated list of topics to filter by","examples":["preferences,technical,communication_style"],"title":"Topics"},"description":"Comma-separated list of topics to filter by"}],"responses":{"200":{"description":"Memories retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserMemorySchema_"},"example":{"data":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories/{memory_id}":{"delete":{"tags":["Memory"],"summary":"Delete Memory","description":"Permanently delete a specific user memory. This action cannot be undone.","operationId":"delete_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to delete","title":"Memory Id"},"description":"Memory ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to delete memory for","title":"User Id"},"description":"User ID to delete memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Memory deleted successfully"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"Get Memory by ID","description":"Retrieve detailed information about a specific user memory by its ID.","operationId":"get_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to retrieve","title":"Memory Id"},"description":"Memory ID to retrieve"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query memory for","title":"User Id"},"description":"User ID to query memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memory from","title":"Db Id"},"description":"Database ID to query memory from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query memory from","title":"Table"},"description":"Table to query memory from"}],"responses":{"200":{"description":"Memory retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Memory"],"summary":"Update Memory","description":"Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values.","operationId":"update_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to update","title":"Memory Id"},"description":"Memory ID to update"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update","title":"Db Id"},"description":"Database ID to use for update"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update","title":"Table"},"description":"Table to use for update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memory_topics":{"get":{"tags":["Memory"],"summary":"Get Memory Topics","description":"Retrieve all unique topics associated with memories in the system. Useful for filtering and categorizing memories by topic.","operationId":"get_memory_topics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter topics for","title":"User Id"},"description":"User ID to filter topics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query topics from","title":"Db Id"},"description":"Database ID to query topics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query topics from","title":"Table"},"description":"Table to query topics from"}],"responses":{"200":{"description":"Memory topics retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Get Memory Topics"},"example":["preferences","communication_style","technical","industry","compliance","code_examples","requirements","healthcare","finance"]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/user_memory_stats":{"get":{"tags":["Memory"],"summary":"Get User Memory Statistics","description":"Retrieve paginated statistics about memory usage by user. Provides insights into user engagement and memory distribution across users.","operationId":"get_user_memory_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of user statistics to return per page","default":20,"title":"Limit"},"description":"Number of user statistics to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter statistics for","title":"User Id"},"description":"User ID to filter statistics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query statistics from","title":"Table"},"description":"Table to query statistics from"}],"responses":{"200":{"description":"User memory statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserStatsSchema_"},"example":{"data":[{"user_id":"123","total_memories":3,"last_memory_updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve user statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/optimize-memories":{"post":{"tags":["Memory"],"summary":"Optimize User Memories","description":"Optimize all memories for a user with the summarize strategy. The operation combines the user's memories into one summary. Set `apply=false` to preview the result without saving it. Specify a custom model as `provider:model_id`, for example `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, or `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`.","operationId":"optimize_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for optimization","title":"Db Id"},"description":"Database ID to use for optimization"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for optimization","title":"Table"},"description":"Table to use for optimization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesRequest"}}}},"responses":{"200":{"description":"Memories optimized successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesResponse"},"example":{"memories":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User has a 3-year-old golden retriever named Max who loves fetch and walks. Lives in San Francisco's Mission district, works as a product manager in tech. Enjoys hiking Bay Area trails, trying new restaurants (especially Japanese, Thai, Mexican), and learning piano for 1.5 years.","topics":["pets","location","work","hobbies","food_preferences"],"user_id":"user2","updated_at":"2025-11-18T10:30:00Z"}],"memories_before":4,"memories_after":1,"tokens_before":450,"tokens_after":180,"tokens_saved":270,"reduction_percentage":60.0}}}},"400":{"description":"Bad request - User ID is required or invalid model string format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No memories found for user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to optimize memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings":{"get":{"tags":["Learnings"],"summary":"List Learnings","description":"List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) \u2014 this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`).","operationId":"list_learnings","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by learning type","title":"Learning Type"},"description":"Filter by learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"namespace","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by namespace","title":"Namespace"},"description":"Filter by namespace"},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity ID","title":"Entity Id"},"description":"Filter by entity ID"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity type","title":"Entity Type"},"description":"Filter by entity type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":100,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used).","title":"Sort By"},"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used)."},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Learnings"],"summary":"Create Learning","description":"Create a new learning record. For the identity-keyed learning types (`user_profile`, `user_memory`, `session_context`, `entity_memory`) the record id is derived deterministically from the identity fields so it reconciles with what the agent reads/writes \u2014 provide those fields (else 422), and if a record already exists the request is rejected with 409 (use PATCH to update it). Other types get a generated id. For a scoped (non-admin) caller, the body's `user_id` must be omitted/null or match the caller (mismatch \u2192 403); admins and unscoped callers may set any `user_id`.","operationId":"create_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users":{"get":{"tags":["Learnings"],"summary":"List Learning Users","description":"List the users that own learning records, with a per-user count and last-updated timestamp. Intended as the entry point for a per-user view: list users here, then drill into a single user's learnings via `GET /learnings?user_id=...`. Records with no owner (`user_id IS NULL`) are excluded. Pass `learning_type` to restrict the grouping to a single store (e.g. `user_profile` or `user_memory`). For a scoped (non-admin) caller results are bound to that user; an explicit `user_id` that differs is rejected with 403. Admins and unscoped callers list all users. Sortable by `user_id` or `last_learning_updated_at` (the default).","operationId":"list_learning_users","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the grouping to a single learning type","title":"Learning Type"},"description":"Restrict the grouping to a single learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the result to a single user","title":"User Id"},"description":"Restrict the result to a single user"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by: user_id or last_learning_updated_at (the default)","title":"Sort By"},"description":"Field to sort by: user_id or last_learning_updated_at (the default)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningUserStats_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users/{user_id}":{"delete":{"tags":["Learnings"],"summary":"Delete Learning User","description":"Delete the learning records owned by a user. By default removes every learning type backed by the agno_learnings table (user_profile, user_memory, and any user-scoped entity records); pass `learning_type` to restrict deletion to a single store. Records with no owner (`user_id IS NULL`) are not affected. For a scoped (non-admin) caller, only their own learnings may be deleted; a different `user_id` is rejected with 403. Admins and unscoped callers may delete any user's learnings. Returns 204 even if the user had no matching records.","operationId":"delete_learning_user","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The user whose learnings should be deleted","title":"User Id"},"description":"The user whose learnings should be deleted"},{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings","title":"Learning Type"},"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/{learning_id}":{"get":{"tags":["Learnings"],"summary":"Get Learning","description":"Retrieve a single learning record by its ID.","operationId":"get_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Learnings"],"summary":"Update Learning","description":"Update a learning record. Only `content` and `metadata` may be modified; identity fields (user_id, agent_id, team_id, etc.) are immutable. Provided fields fully replace the existing values. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) are readable by any caller but may only be modified by an admin.","operationId":"update_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Learnings"],"summary":"Delete Learning","description":"Permanently delete a learning record by its ID. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) may only be deleted by an admin.","operationId":"delete_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs":{"get":{"tags":["Evals"],"summary":"List Evaluation Runs","description":"Retrieve paginated evaluation runs with filtering and sorting options. Filter by agent, team, workflow, model, or evaluation type.","operationId":"get_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Workflow ID","title":"Workflow Id"},"description":"Workflow ID"},{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model ID","title":"Model Id"},"description":"Model ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EvalFilterType"},{"type":"null"}],"description":"Filter type","title":"Type"},"description":"Filter type"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of eval runs to return","default":20,"title":"Limit"},"description":"Number of eval runs to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"eval_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)","examples":["accuracy,agent_as_judge,performance,reliability"],"title":"Eval Types"},"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)"}],"responses":{"200":{"description":"Evaluation runs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_EvalSchema_"},"example":{"data":[{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Evals"],"summary":"Delete Evaluation Runs","description":"Delete multiple evaluation runs by their IDs. This action cannot be undone.","operationId":"delete_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvalRunsRequest"}}}},"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Deletion failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Evals"],"summary":"Execute Evaluation","description":"Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both.","operationId":"run_eval","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for evaluation","title":"Db Id"},"description":"Database ID to use for evaluation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for evaluation","title":"Table"},"description":"Table to use for evaluation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRunInput"}}}},"responses":{"200":{"description":"Evaluation executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"f2b2d72f-e9e2-4f0e-8810-0a7e1ff58614","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Invalid request - provide either agent_id or team_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs/{eval_run_id}":{"get":{"tags":["Evals"],"summary":"Get Evaluation Run","description":"Retrieve detailed results and metrics for a specific evaluation run.","operationId":"get_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query eval run from","title":"Table"},"description":"Table to query eval run from"}],"responses":{"200":{"description":"Evaluation run details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Evals"],"summary":"Update Evaluation Run","description":"Update the name or other properties of an existing evaluation run.","operationId":"update_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvalRunRequest"}}}},"responses":{"200":{"description":"Evaluation run updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update evaluation run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics":{"get":{"tags":["Metrics"],"summary":"Get AgentOS Metrics","description":"Retrieve AgentOS metrics and analytics data for a specified date range. If no date range is specified, returns all available metrics.","operationId":"get_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"starting_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Starting date for metrics range (YYYY-MM-DD format)","title":"Starting Date"},"description":"Starting date for metrics range (YYYY-MM-DD format)"},{"name":"ending_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Ending date for metrics range (YYYY-MM-DD format)","title":"Ending Date"},"description":"Ending date for metrics range (YYYY-MM-DD format)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query metrics from","title":"Db Id"},"description":"Database ID to query metrics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Metrics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"},"example":{"metrics":[{"id":"7bf39658-a00a-484c-8a28-67fd8a9ddb2a","agent_runs_count":5,"agent_sessions_count":5,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":448,"output_tokens":148,"total_tokens":596,"audio_tokens":0,"input_audio_tokens":0,"output_audio_tokens":0,"cached_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":5}],"date":"2025-07-31T00:00:00Z","created_at":"2025-07-31T12:38:52Z","updated_at":"2025-07-31T12:49:01Z"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Metrics retrieval failed. In Agno 2.7.4, invalid or ambiguous database selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics/refresh":{"post":{"tags":["Metrics"],"summary":"Refresh Metrics","description":"Manually trigger recalculation of system metrics from raw data. This operation analyzes system activity logs and regenerates aggregated metrics. Useful for ensuring metrics are up-to-date or after system maintenance.","operationId":"refresh_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for metrics calculation","title":"Db Id"},"description":"Database ID to use for metrics calculation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for metrics calculation","title":"Table"},"description":"Table to use for metrics calculation"}],"responses":{"200":{"description":"Metrics refreshed successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"title":"Response Refresh Metrics"},"example":[{"id":"e77c9531-818b-47a5-99cd-59fed61e5403","agent_runs_count":2,"agent_sessions_count":2,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":256,"output_tokens":441,"total_tokens":697,"audio_total_tokens":0,"audio_input_tokens":0,"audio_output_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":2}],"date":"2025-08-12T00:00:00Z","created_at":"2025-08-12T08:01:47Z","updated_at":"2025-08-12T08:01:47Z"}]}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Refresh failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content":{"post":{"tags":["Knowledge"],"summary":"Upload Content","description":"Upload content to the knowledge base. Supports file uploads, text content, or URLs. Content is processed asynchronously in the background. Supports custom readers and chunking strategies.","operationId":"upload_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_content"}}}},"responses":{"202":{"description":"Content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-123","name":"example-document.pdf","description":"Sample document for processing","metadata":{"category":"documentation","priority":"high"},"status":"processing"}}}},"400":{"description":"Invalid request - malformed metadata or missing content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in form data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"List Content","description":"Retrieve paginated list of all content in the knowledge base with filtering and sorting options. Filter by status, content type, or metadata properties.","operationId":"get_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of content entries to return","default":20,"title":"Limit"},"description":"Number of content entries to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ContentResponseSchema_"},"example":{"data":[{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}],"meta":{"page":1,"limit":20,"total_pages":1,"total_count":2}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete All Content","description":"Permanently remove all content from the knowledge base. This is a destructive operation that cannot be undone. Use with extreme caution.","operationId":"delete_all_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete all content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/remote-content":{"post":{"tags":["Knowledge"],"summary":"Upload Remote Content","description":"Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.","operationId":"upload_remote_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_upload_remote_content"}}}},"responses":{"202":{"description":"Remote content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-456","name":"reports/q1-2024.pdf","description":"Q1 Report from S3","metadata":{"source":"s3-docs"},"status":"processing"}}}},"400":{"description":"Invalid request - unknown config or missing path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}":{"patch":{"tags":["Knowledge"],"summary":"Update Content","description":"Update content name, description, or metadata without re-uploading it. In Agno 2.7.4, this endpoint accepts `reader_id`. Local knowledge validates the value, but the content patch does not apply or persist the reader change.","operationId":"update_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","description":"Content ID","title":"Content Id"},"description":"Content ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_update_content"}}}},"responses":{"200":{"description":"Content updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Invalid request - malformed metadata or invalid reader_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"Get Content by ID","description":"Retrieve detailed information about a specific content item including processing status and metadata.","operationId":"get_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete Content by ID","description":"Permanently remove a specific content item from the knowledge base. This action cannot be undone.","operationId":"delete_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}/status":{"get":{"tags":["Knowledge"],"summary":"Get Content Status","description":"Retrieve the current processing status of a content item. Useful for monitoring asynchronous content processing progress and identifying any processing errors.","operationId":"get_content_status","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content status retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentStatusResponse"},"examples":{"completed":{"summary":"Example completed content status","value":{"status":"completed","status_message":""}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/search":{"post":{"tags":["Knowledge"],"summary":"Search Knowledge","description":"Search the knowledge base for relevant documents using query, filters and search type.","operationId":"search_knowledge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VectorSearchRequestSchema"}}},"required":true},"responses":{"200":{"description":"Search results retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_VectorSearchResult_"},"example":{"data":[{"id":"doc_123","content":"Jordan Mitchell - Software Engineer with skills in JavaScript, React, Python","name":"cv_1","meta_data":{"page":1,"chunk":1},"usage":{"total_tokens":14},"reranking_score":0.95,"content_id":"content_456"}],"meta":{"page":1,"limit":20,"total_pages":2,"total_count":35}}}}},"400":{"description":"Invalid search parameters"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No documents found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/knowledge/config":{"get":{"tags":["Knowledge"],"summary":"Get Config","description":"Retrieve available readers, chunkers, and configuration options for content processing. This endpoint provides metadata about supported file types, processing strategies, and filters.","operationId":"get_knowledge_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Knowledge configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponseSchema"},"example":{"readers":{"website":{"id":"website","name":"WebsiteReader","description":"Reads website files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"firecrawl":{"id":"firecrawl","name":"FirecrawlReader","description":"Reads firecrawl files","chunkers":["SemanticChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"youtube":{"id":"youtube","name":"YoutubeReader","description":"Reads youtube files","chunkers":["RecursiveChunker","AgenticChunker","DocumentChunker","SemanticChunker","FixedSizeChunker"]},"web_search":{"id":"web_search","name":"WebSearchReader","description":"Reads web_search files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"arxiv":{"id":"arxiv","name":"ArxivReader","description":"Reads arxiv files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"csv":{"id":"csv","name":"CsvReader","description":"Reads csv files","chunkers":["RowChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"docling":{"id":"docling","name":"DoclingReader","description":"Converts multiple document formats like PDF, DOCX, PPTX, images, HTML, etc. using IBM's Docling library","chunkers":["AgenticChunker","CodeChunker","DocumentChunker","FixedSizeChunker","RecursiveChunker","SemanticChunker"]},"docx":{"id":"docx","name":"DocxReader","description":"Reads docx files","chunkers":["DocumentChunker","FixedSizeChunker","SemanticChunker","AgenticChunker","RecursiveChunker"]},"gcs":{"id":"gcs","name":"GcsReader","description":"Reads gcs files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"json":{"id":"json","name":"JsonReader","description":"Reads json files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"markdown":{"id":"markdown","name":"MarkdownReader","description":"Reads markdown files","chunkers":["MarkdownChunker","DocumentChunker","AgenticChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"pdf":{"id":"pdf","name":"PdfReader","description":"Reads pdf files","chunkers":["DocumentChunker","FixedSizeChunker","AgenticChunker","SemanticChunker","RecursiveChunker"]},"text":{"id":"text","name":"TextReader","description":"Reads text files","chunkers":["CodeChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]}},"readersForType":{"url":["url","website","firecrawl","youtube","web_search","gcs"],"youtube":["youtube"],"text":["web_search"],"topic":["arxiv"],"file":["csv","gcs"],".csv":["csv","field_labeled_csv","docling"],".xlsx":["excel","docling"],".xls":["excel"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["excel"],"application/vnd.ms-excel":["excel"],".docx":["docx","docling"],".dotx":["docling"],".docm":["docling"],".dotm":["docling"],".pptx":["docling","pptx"],".potx":["docling"],".ppsx":["docling"],".pptm":["docling"],".ppsm":["docling"],".potm":["docling"],".doc":["docx"],".json":["json"],".md":["markdown","docling"],".pdf":["pdf","docling"],".txt":["text"],".html":["docling"],".htm":["docling"],".xhtml":["docling"],".xml":["docling"],".nxml":["docling"],".xbrl":["docling"],".adoc":["docling"],".asciidoc":["docling"],".asc":["docling"],".xlsm":["docling"],".tex":["docling"],".latex":["docling"],".tar.gz":["docling"],".vtt":["docling"],".png":["docling"],".jpeg":["docling"],".jpg":["docling"],".tiff":["docling"],".tif":["docling"],".bmp":["docling"],".webp":["docling"],".wav":["docling"],".mp3":["docling"],".m4a":["docling"],".aac":["docling"],".ogg":["docling"],".flac":["docling"],".mp4":["docling"],".avi":["docling"],".mov":["docling"]},"chunkers":{"AgenticChunker":{"key":"AgenticChunker","name":"AgenticChunker","description":"Chunking strategy that uses an LLM to determine natural breakpoints in the text","metadata":{"chunk_size":5000}},"CodeChunker":{"key":"CodeChunker","name":"CodeChunker","description":"The CodeChunker splits code into chunks based on its structure, leveraging Abstract Syntax Trees (ASTs) to create contextually relevant segments","metadata":{"chunk_size":2048}},"DocumentChunker":{"key":"DocumentChunker","name":"DocumentChunker","description":"A chunking strategy that splits text based on document structure like paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"FixedSizeChunker":{"key":"FixedSizeChunker","name":"FixedSizeChunker","description":"Chunking strategy that splits text into fixed-size chunks with optional overlap","metadata":{"chunk_size":5000,"chunk_overlap":0}},"MarkdownChunker":{"key":"MarkdownChunker","name":"MarkdownChunker","description":"A chunking strategy that splits markdown based on structure like headers, paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RecursiveChunker":{"key":"RecursiveChunker","name":"RecursiveChunker","description":"Chunking strategy that recursively splits text into chunks by finding natural break points","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RowChunker":{"key":"RowChunker","name":"RowChunker","description":"RowChunking chunking strategy","metadata":{}},"SemanticChunker":{"key":"SemanticChunker","name":"SemanticChunker","description":"Chunking strategy that splits text into semantic chunks using chonkie","metadata":{"chunk_size":5000}}},"vector_dbs":[{"id":"vector_db_1","name":"Vector DB 1","description":"Vector DB 1 description","search_types":["vector","keyword","hybrid"]}],"filters":["filter_tag_1","filter_tag2"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources":{"get":{"tags":["Knowledge"],"summary":"List Content Sources","description":"List all registered content sources (S3, GCS, SharePoint, GitHub) for the knowledge base.","operationId":"list_content_sources","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Content sources retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"title":"Response List Content Sources"},"example":[{"id":"company-s3","name":"Company Documents","type":"s3","prefix":"documents/"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources/{source_id}/files":{"get":{"tags":["Knowledge"],"summary":"List Files in Source","description":"List available files and folders in a specific content source. Supports pagination and folder navigation.","operationId":"list_source_files","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the content source","title":"Source Id"},"description":"ID of the content source"},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Path prefix to filter files","title":"Prefix"},"description":"Path prefix to filter files"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of files per page","default":100,"title":"Limit"},"description":"Number of files per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"delimiter","in":"query","required":false,"schema":{"type":"string","description":"Folder delimiter (enables folder grouping)","default":"/","title":"Delimiter"},"description":"Folder delimiter (enables folder grouping)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Files listed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceFilesResponseSchema"},"example":{"source_id":"company-s3","source_name":"Company Documents","prefix":"reports/","folders":[{"prefix":"reports/2024/","name":"2024","is_empty":false}],"files":[{"key":"reports/annual-summary.pdf","name":"annual-summary.pdf","size":102400,"last_modified":"2024-01-15T10:30:00Z","content_type":"application/pdf"}],"meta":{"page":1,"limit":100,"total_pages":1,"total_count":1}}}}},"400":{"description":"Unsupported source type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base or content source not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces":{"get":{"tags":["Traces","Traces"],"summary":"List Traces","description":"Retrieve a paginated list of execution traces with optional filtering.\n\n**Traces provide observability into:**\n- Agent execution flows\n- Model invocations and token usage\n- Tool calls and their results\n- Errors and performance bottlenecks\n\n**Filtering Options:**\n- By run, session, user, or agent ID\n- By status (OK, ERROR)\n- By time range\n\n**Pagination:**\n- Use `page` (1-indexed) and `limit` parameters\n- Response includes pagination metadata (total_pages, total_count, etc.)\n\n**Response Format:**\nReturns summary information for each trace. Use GET `/traces/{trace_id}` for detailed hierarchy.","operationId":"get_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run ID","title":"Run Id"},"description":"Filter by run ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status (OK, ERROR)","title":"Status"},"description":"Filter by status (OK, ERROR)"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of traces per page","default":20,"title":"Limit"},"description":"Number of traces per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"responses":{"200":{"description":"List of traces retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSummary_"},"example":{"data":[{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","total_spans":4,"error_count":0,"input":"What is the stock price of NVDA?","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"agent_stock","created_at":"2025-11-19T10:30:00+00:00"}],"meta":{"page":1,"limit":20,"total_pages":5,"total_count":95}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/filter-schema":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Filter Schema","description":"Returns the available filterable fields, their types, valid operators, and enum values.\n\nThe frontend uses this to dynamically build the filter bar UI:\n- Field dropdown populated from `fields[].key`\n- Operator dropdown changes per field type\n- Value input shows autocomplete for enum fields (e.g., status)\n- Logical operators (AND, OR) for combining clauses","operationId":"get_traces_filter_schema","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterSchemaResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/traces/{trace_id}":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace or Span Detail","description":"Retrieve detailed trace information with hierarchical span tree, or a specific span within the trace.\n\n**Without span_id parameter:**\nReturns the full trace with hierarchical span tree:\n- Trace metadata (ID, status, duration, context)\n- Hierarchical tree of all spans\n- Each span includes timing, status, and type-specific metadata\n\n**With span_id parameter:**\nReturns details for a specific span within the trace:\n- Span metadata (ID, name, type, timing)\n- Status and error information\n- Type-specific attributes (model, tokens, tool params, etc.)\n\n**Span Hierarchy (full trace):**\nThe `tree` field contains root spans, each with potential `children`.\nThis recursive structure represents the execution flow:\n```\nAgent.run (root)\n \u251c\u2500 LLM.invoke\n \u251c\u2500 Tool.execute\n \u2502 \u2514\u2500 LLM.invoke (nested)\n \u2514\u2500 LLM.invoke\n```\n\n**Span Types:**\n- `AGENT`: Agent execution with input/output\n- `LLM`: Model invocations with tokens and prompts\n- `TOOL`: Tool calls with parameters and results","operationId":"get_trace","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}},{"name":"span_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Span ID to retrieve specific span","title":"Span Id"},"description":"Optional: Span ID to retrieve specific span"},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Run ID to retrieve trace for","title":"Run Id"},"description":"Optional: Run ID to retrieve trace for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query trace from","title":"Db Id"},"description":"Database ID to query trace from"}],"responses":{"200":{"description":"Trace or span detail retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TraceDetail"},{"$ref":"#/components/schemas/TraceNode"}],"title":"Response Get Trace"},"examples":{"full_trace":{"summary":"Full trace with hierarchy (no span_id)","value":{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","end_time":"2025-11-19T10:30:01.200000+00:00","total_spans":4,"error_count":0,"input":"What is Tesla stock price?","output":"The current price of Tesla (TSLA) is $245.67.","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"stock_agent","created_at":"2025-11-19T10:30:00+00:00","tree":[{"id":"span1","name":"Stock_Price_Agent.run","type":"AGENT","duration":"1.2s","status":"OK","spans":[]}]}},"single_span":{"summary":"Single span detail (with span_id)","value":{"id":"span2","name":"gpt-4o-mini.invoke","type":"LLM","duration":"800ms","status":"OK","metadata":{"model":"gpt-4o-mini","input_tokens":120}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Trace or span not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/trace_session_stats":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Statistics by Session","description":"Retrieve aggregated trace statistics grouped by session ID with pagination.\n\n**Provides insights into:**\n- Total traces per session\n- First and last trace timestamps per session\n- Associated user and agent information\n\n**Filtering Options:**\n- By user ID\n- By agent ID\n\n**Use Cases:**\n- Monitor session-level activity\n- Track conversation flows\n- Identify high-activity sessions\n- Analyze user engagement patterns","operationId":"get_trace_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of sessions per page","default":20,"title":"Limit"},"description":"Number of sessions per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"}],"responses":{"200":{"description":"Trace statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"},"example":{"data":[{"session_id":"37029bc6-1794-4ba8-a629-1efedc53dcad","user_id":"kaustubh@agno.com","agent_id":"hackernews-agent","total_traces":5,"first_trace_at":"2025-11-19T10:15:16+00:00","last_trace_at":"2025-11-19T10:21:30+00:00"}],"meta":{"page":1,"limit":20,"total_pages":3,"total_count":45}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/search":{"post":{"tags":["Traces","Traces"],"summary":"Search Traces with Advanced Filters","description":"Search traces using the FilterExpr DSL for complex, composable queries.\n\n**Group By Mode:**\n- `run` (default): Returns `PaginatedResponse[TraceDetail]` with full span trees\n- `session`: Returns `PaginatedResponse[TraceSessionStats]` with aggregated session stats\n\n**Supported Operators:**\n- Comparison: `EQ`, `NEQ`, `GT`, `GTE`, `LT`, `LTE`\n- Inclusion: `IN`\n- String matching: `CONTAINS` (case-insensitive substring), `STARTSWITH` (prefix)\n- Logical: `AND`, `OR`, `NOT`\n\n**Filterable Fields:**\ntrace_id, name, status, start_time, end_time, duration_ms, run_id, session_id, user_id, agent_id, team_id, workflow_id, created_at\n\n**Example Request Body (runs):**\n```json\n{\n \"filter\": {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n}\n```\n\n**Example Request Body (sessions):**\n```json\n{\n \"filter\": {\"op\": \"CONTAINS\", \"key\": \"agent_id\", \"value\": \"stock\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n}\n```","operationId":"search_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PaginatedResponse_TraceDetail_"},{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"}],"title":"Response Search Traces"}}}},"400":{"description":"Invalid filter expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/all/migrate":{"post":{"tags":["Database"],"summary":"Migrate All Databases","description":"Migrate all database schemas to the given target version. If a target version is not provided, all databases will be migrated to the latest version.","operationId":"migrate_all_databases","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"All databases migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"All databases migrated successfully to version 3.0.0"}}}},"207":{"description":"Some database migrations failed","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"},"failed":{"type":"object","additionalProperties":{"type":"string"},"title":"Failed"}},"type":"object","required":["message","failed"],"title":"PartialMigrationResponse"},"example":{"message":"Migrated 2/3 databases to latest version","failed":{"archive-db":"Migration failed"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/{db_id}/migrate":{"post":{"tags":["Database"],"summary":"Migrate Database","description":"Migrate the given database schema to the given target version. If a target version is not provided, the database will be migrated to the latest version.","operationId":"migrate_database","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"Database migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"Database migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Database not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components":{"get":{"tags":["Components"],"summary":"List Components","description":"Retrieve a paginated list of components with optional filtering by type.","operationId":"list_components","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ComponentType"},{"type":"null"}],"description":"Filter by type: agent, team, workflow","title":"Component Type"},"description":"Filter by type: agent, team, workflow"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ComponentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Component","description":"Create a new component (agent, team, or workflow) with initial config.","operationId":"create_component","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}":{"get":{"tags":["Components"],"summary":"Get Component","description":"Retrieve a component by ID.","operationId":"get_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Components"],"summary":"Update Component","description":"Partially update a component by ID.","operationId":"update_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentUpdate","description":"Component fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Component","description":"Soft-delete a component by ID. Component configs and links remain stored.","operationId":"delete_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs":{"get":{"tags":["Components"],"summary":"List Configs","description":"List all configs for a component.","operationId":"list_configs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"include_config","in":"query","required":false,"schema":{"type":"boolean","description":"Include full config blob","default":true,"title":"Include Config"},"description":"Include full config blob"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComponentConfigResponse"},"title":"Response List Configs"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Config Version","description":"Create a new config version for a component.","operationId":"create_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigCreate","description":"Config data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}":{"patch":{"tags":["Components"],"summary":"Update Draft Config","description":"Update an existing draft config. Cannot update published configs.","operationId":"update_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigUpdate","description":"Config fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Components"],"summary":"Get Config Version","description":"Get a specific config version by number.","operationId":"get_config_version","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Config Version","description":"Delete a specific config version. Agno v2.7.4 rejects the current version. Synchronous SQLite and PostgreSQL storage allow deletion of a published non-current version.","operationId":"delete_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/current":{"get":{"tags":["Components"],"summary":"Get Current Config","description":"Get the current config version for a component.","operationId":"get_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}/set-current":{"post":{"tags":["Components"],"summary":"Set Current Config Version","description":"Set a published config version as current (for rollback).","operationId":"set_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/schedules":{"get":{"tags":["Schedules"],"summary":"List Schedules","operationId":"list_schedules_schedules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"post":{"tags":["Schedules"],"summary":"Create Schedule","operationId":"create_schedule_schedules_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule","operationId":"get_schedule_schedules__schedule_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"patch":{"tags":["Schedules"],"summary":"Update Schedule","operationId":"update_schedule_schedules__schedule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Schedules"],"summary":"Delete Schedule","operationId":"delete_schedule_schedules__schedule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/enable":{"post":{"tags":["Schedules"],"summary":"Enable Schedule","operationId":"enable_schedule_schedules__schedule_id__enable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/disable":{"post":{"tags":["Schedules"],"summary":"Disable Schedule","operationId":"disable_schedule_schedules__schedule_id__disable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/trigger":{"post":{"tags":["Schedules"],"summary":"Trigger Schedule","operationId":"trigger_schedule_schedules__schedule_id__trigger_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Schedule is disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler is not running or storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs":{"get":{"tags":["Schedules"],"summary":"List Schedule Runs","operationId":"list_schedule_runs_schedules__schedule_id__runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleRunResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs/{run_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule Run","operationId":"get_schedule_run_schedules__schedule_id__runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals":{"get":{"tags":["Approvals"],"summary":"List Approvals","operationId":"list_approvals_approvals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","approved","rejected","expired","cancelled"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"source_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"}},{"name":"approval_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["required","audit"],"type":"string"},{"type":"null"}],"title":"Approval Type"}},{"name":"pause_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"schedule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"}},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ApprovalResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approvals could not be listed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/count":{"get":{"tags":["Approvals"],"summary":"Get Approval Count","operationId":"get_approval_count_approvals_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalCountResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval count could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/status":{"get":{"tags":["Approvals"],"summary":"Get Approval Status","operationId":"get_approval_status_approvals__approval_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalStatusResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval status could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}":{"get":{"tags":["Approvals"],"summary":"Get Approval","operationId":"get_approval_approvals__approval_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Approvals"],"summary":"Delete Approval","operationId":"delete_approval_approvals__approval_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval is not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/resolve":{"post":{"tags":["Approvals"],"summary":"Resolve Approval","operationId":"resolve_approval_approvals__approval_id__resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResolve"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Approval has already been resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts":{"post":{"tags":["Service Accounts"],"summary":"Create Service Account","description":"Mint a service account token. The plaintext token is returned exactly once.","operationId":"create_service_account_service_accounts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreateResponse"}}}},"400":{"description":"Requested scopes are invalid, or privileged scopes were not explicitly allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"An active service account with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"get":{"tags":["Service Accounts"],"summary":"List Service Accounts","description":"List service accounts. Returns metadata and display prefixes only - never hashes or plaintext.","operationId":"list_service_accounts_service_accounts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Revoked"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ServiceAccountResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts/{service_account_id}":{"delete":{"tags":["Service Accounts"],"summary":"Revoke Service Account","description":"Revoke an existing service account.\n\nTakes effect immediately on this worker (the local verification cache entry is evicted) and within the cache TTL on other workers.","operationId":"revoke_service_account_service_accounts__service_account_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"service_account_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Service account not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/registry":{"get":{"tags":["Registry"],"summary":"List Registry","description":"List all resources in the registry with optional filtering.","operationId":"list_registry","security":[{"HTTPBearer":[]}],"parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RegistryResourceType"},{"type":"null"}],"description":"Filter by resource type","title":"Resource Type"},"description":"Filter by resource type"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (partial match)","title":"Name"},"description":"Filter by name (partial match)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_RegistryContentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}}},"components":{"schemas":{"A2ARequest_DataPart":{"description":"Represents a structured data segment (e.g., JSON) within a message or artifact.","properties":{"data":{"additionalProperties":true,"title":"Data","type":"object"},"kind":{"const":"data","default":"data","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["data"],"title":"DataPart","type":"object"},"A2ARequest_FilePart":{"description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI.","properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_FileWithBytes"},{"$ref":"#/components/schemas/A2ARequest_FileWithUri"}],"title":"File"},"kind":{"const":"file","default":"file","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["file"],"title":"FilePart","type":"object"},"A2ARequest_FileWithBytes":{"description":"Represents a file with its content provided directly as a base64-encoded string.","properties":{"bytes":{"title":"Bytes","type":"string"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"}},"required":["bytes"],"title":"FileWithBytes","type":"object"},"A2ARequest_FileWithUri":{"description":"Represents a file with its content located at a specific URI.","properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"FileWithUri","type":"object"},"A2ARequest_Message":{"description":"Represents a single message in the conversation between a user and an agent.","properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"kind":{"const":"message","default":"message","title":"Kind","type":"string"},"messageId":{"title":"Messageid","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/A2ARequest_Part"},"title":"Parts","type":"array"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/A2ARequest_Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Taskid"}},"required":["messageId","parts","role"],"title":"Message","type":"object"},"A2ARequest_MessageSendConfiguration":{"description":"Defines configuration options for a `message/send` or `message/stream` request.","properties":{"acceptedOutputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Acceptedoutputmodes"},"blocking":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Blocking"},"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"pushNotificationConfig":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationConfig"},{"type":"null"}],"default":null}},"title":"MessageSendConfiguration","type":"object"},"A2ARequest_MessageSendParams":{"description":"Defines the parameters for a request to send a message to an agent. This can be used\nto create a new task, continue an existing one, or restart a task.","properties":{"configuration":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_MessageSendConfiguration"},{"type":"null"}],"default":null},"message":{"$ref":"#/components/schemas/A2ARequest_Message"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["message"],"title":"MessageSendParams","type":"object"},"A2ARequest_Part":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_TextPart"},{"$ref":"#/components/schemas/A2ARequest_FilePart"},{"$ref":"#/components/schemas/A2ARequest_DataPart"}],"title":"Part"},"A2ARequest_PushNotificationAuthenticationInfo":{"description":"Defines authentication details for a push notification endpoint.","properties":{"credentials":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Credentials"},"schemes":{"items":{"type":"string"},"title":"Schemes","type":"array"}},"required":["schemes"],"title":"PushNotificationAuthenticationInfo","type":"object"},"A2ARequest_PushNotificationConfig":{"description":"Defines the configuration for setting up push notifications for task updates.","properties":{"authentication":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationAuthenticationInfo"},{"type":"null"}],"default":null},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Id"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Token"},"url":{"title":"Url","type":"string"}},"required":["url"],"title":"PushNotificationConfig","type":"object"},"A2ARequest_Role":{"description":"Identifies the sender of the message. `user` for the client, `agent` for the service.","enum":["agent","user"],"title":"Role","type":"string"},"A2ARequest_TextPart":{"description":"Represents a text segment within a message or artifact.","properties":{"kind":{"const":"text","default":"text","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"text":{"title":"Text","type":"string"}},"required":["text"],"title":"TextPart","type":"object"},"ActivityMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"activity","title":"Role","default":"activity"},"activityType":{"type":"string","title":"Activitytype"},"content":{"additionalProperties":true,"type":"object","title":"Content"}},"additionalProperties":true,"type":"object","required":["id","activityType","content"],"title":"ActivityMessage","description":"An activity progress message emitted between chat messages."},"AgentResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"extra_messages":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Messages"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"AgentResponse"},"AgentSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_session_id":{"type":"string","title":"Agent Session Id","description":"Unique agent session identifier"},"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID used in this session"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"agent_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Data","description":"Agent-specific data"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["agent_session_id","session_id","session_name"],"title":"AgentSessionDetailSchema"},"AgentSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the agent"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the agent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the agent"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the agent"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","title":"AgentSummaryResponse"},"ApprovalCountResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"ApprovalCountResponse","description":"Response model for pending approval count."},"ApprovalResolve":{"properties":{"status":{"type":"string","pattern":"^(approved|rejected)$","title":"Status"},"resolved_by":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Resolved By"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"}},"type":"object","required":["status"],"title":"ApprovalResolve","description":"Request body for resolving (approve/reject) an approval."},"ApprovalResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"},"source_type":{"type":"string","title":"Source Type"},"approval_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Type"},"pause_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Args"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"},"schedule_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Run Id"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"},"run_status":{"anyOf":[{"$ref":"#/components/schemas/RunStatus"},{"type":"null"}]}},"type":"object","required":["id","run_id","session_id","status","source_type"],"title":"ApprovalResponse","description":"Response model for a single approval."},"ApprovalStatusResponse":{"properties":{"approval_id":{"type":"string","title":"Approval Id"},"status":{"type":"string","title":"Status"},"run_id":{"type":"string","title":"Run Id"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"}},"type":"object","required":["approval_id","status","run_id"],"title":"ApprovalStatusResponse","description":"Lightweight response model for polling approval status."},"Artifact":{"properties":{"artifactId":{"type":"string","title":"Artifactid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"}},"type":"object","required":["artifactId","parts"],"title":"Artifact","description":"Represents a file, data structure, or other resource generated by an agent during a task."},"AssistantMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"assistant","title":"Role","default":"assistant"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"},"toolCalls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},{"type":"null"}],"title":"Toolcalls"}},"additionalProperties":true,"type":"object","required":["id"],"title":"AssistantMessage","description":"An assistant message."},"AudioInputContent":{"properties":{"type":{"type":"string","const":"audio","title":"Type","default":"audio"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"AudioInputContent","description":"An audio input content fragment."},"BackgroundRunResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the background run."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the background run."},"status":{"type":"string","title":"Status","description":"Initial run status."}},"type":"object","required":["run_id","session_id","status"],"title":"BackgroundRunResponse"},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"BadRequestResponse","example":{"detail":"Bad request","error_code":"BAD_REQUEST"}},"BinaryInputContent":{"properties":{"type":{"type":"string","const":"binary","title":"Type","default":"binary"},"mimeType":{"type":"string","title":"Mimetype"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"additionalProperties":true,"type":"object","required":["mimeType"],"title":"BinaryInputContent","description":"A deprecated binary payload reference in a multimodal user message."},"Body_continue_agent_run":{"properties":{"tools":{"type":"string","title":"Tools","description":"JSON string of tool call results to continue the paused run","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Optional new user-message text to append to the run before resuming. Use for continuing a COMPLETED run with a follow-up, or adding context to a RUNNING/ERROR resume."},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","description":"When true, clone the run with a new ``run_id`` before resuming. The original is untouched; the clone becomes a sibling within the same session, with ``forked_from_run_id`` set.","default":false},"regenerate":{"type":"boolean","title":"Regenerate","description":"Sugar: regenerate the last response of this run. Auto-computes ``continue_from='last_user'`` to land just after the last user message. Pair with ``additional_instructions`` to steer the new output. By default the original response is hidden from history (replaced); pass ``replace_original=false`` to keep both the original and the regenerated response visible side by side.","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original","description":"Only valid with ``regenerate=true``. Controls history visibility of the original response; the original run is always retained in storage. Defaults to true: the original is marked REGENERATED and hidden from history so the new response replaces it. Pass false to keep both the original and regenerated responses visible."},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions","description":"Only valid with ``regenerate=true``: extra guidance appended as a user message before re-generation. Friendly alias for ``input``."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run continue in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false}},"type":"object","title":"Body_continue_agent_run"},"Body_continue_team_run":{"properties":{"requirements":{"type":"string","title":"Requirements","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input"},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","default":false},"regenerate":{"type":"boolean","title":"Regenerate","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original"},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"stream":{"type":"boolean","title":"Stream","default":true},"background":{"type":"boolean","title":"Background","default":false}},"type":"object","title":"Body_continue_team_run"},"Body_continue_workflow_run":{"properties":{"step_requirements":{"type":"string","title":"Step Requirements","description":"JSON string of step requirement objects with resolution status","default":""},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}},"type":"object","title":"Body_continue_workflow_run"},"Body_create_agent_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the agent"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Agent version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic agent construction"}},"type":"object","required":["message"],"title":"Body_create_agent_run"},"Body_create_team_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the team"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"monitor":{"type":"boolean","title":"Monitor","description":"Enable monitoring and logging for this run","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Team version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic team construction"}},"type":"object","required":["message"],"title":"Body_create_team_run"},"Body_create_workflow_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the workflow"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run workflow in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Workflow version to use for this run"},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow construction"}},"type":"object","required":["message"],"title":"Body_create_workflow_run"},"Body_rename_session":{"properties":{"session_name":{"type":"string","title":"Session Name","description":"New name for the session"}},"type":"object","required":["session_name"],"title":"Body_rename_session"},"Body_resume_agent_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_agent_run_stream"},"Body_resume_team_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_team_run_stream"},"Body_resume_workflow_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_workflow_run_stream"},"Body_update_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"Content metadata as JSON string"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"Reader ID. In Agno 2.7.4, local knowledge validates the value, but the content patch does not apply or persist the reader change."}},"type":"object","title":"Body_update_content"},"Body_upload_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated from file/URL if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description for context"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"URL to fetch content from (JSON array or single URL string)"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object for additional content properties"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File","description":"File to upload for processing"},"text_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Content","description":"Raw text content to process"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for content processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply during processing"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size to use for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap to use for processing"}},"type":"object","title":"Body_upload_content"},"Body_upload_remote_content":{"properties":{"config_id":{"type":"string","title":"Config Id","description":"ID of the configured remote content source (from /knowledge/config)"},"path":{"type":"string","title":"Path","description":"Path to file or folder in the remote source"},"source_params":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Params","description":"JSON object of per-request parameters forwarded to the source's factory. Used for provider-specific routing that shouldn't be baked into the config. Currently supported keys: GitHub accepts 'repo' ('owner/repo'), letting one configured GitHub source serve multiple repositories the credentials can access."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap for processing"}},"type":"object","required":["config_id","path"],"title":"Body_upload_remote_content"},"ChatConfig":{"properties":{"quick_prompts":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Quick Prompts"}},"type":"object","required":["quick_prompts"],"title":"ChatConfig","description":"Configuration for the Chat page of the AgentOS"},"ChunkerSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["key"],"title":"ChunkerSchema"},"ComponentConfigResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"version":{"type":"integer","title":"Version"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"type":"string","title":"Stage"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","version","stage","config","created_at"],"title":"ComponentConfigResponse"},"ComponentCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Display name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id","description":"Unique identifier for the entity. Auto-generated from name if not provided."},"component_type":{"$ref":"#/components/schemas/ComponentType","description":"Type of entity: agent, team, or workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config","description":"Optional configuration"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["name","component_type"],"title":"ComponentCreate"},"ComponentResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"component_type":{"$ref":"#/components/schemas/ComponentType"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","component_type","created_at"],"title":"ComponentResponse"},"ComponentType":{"type":"string","enum":["agent","team","workflow"],"title":"ComponentType"},"ComponentUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"component_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"}},"type":"object","title":"ComponentUpdate"},"ConfigCreate":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config","description":"The configuration data"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Optional version number"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links","description":"Optional links to child components"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["config"],"title":"ConfigCreate"},"ConfigResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the OS instance"},"available_models":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Models","description":"List of available models"},"os_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Database","description":"ID of the database used for the OS instance"},"databases":{"items":{"type":"string"},"type":"array","title":"Databases","description":"List of database IDs used by the components of the OS instance"},"chat":{"anyOf":[{"$ref":"#/components/schemas/ChatConfig"},{"type":"null"}],"description":"Chat configuration"},"manifest":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Manifest"},"type":"object"},{"type":"null"}],"title":"Manifest","description":"Per-entity UI metadata keyed by agent/team/workflow id"},"session":{"anyOf":[{"$ref":"#/components/schemas/SessionConfig"},{"type":"null"}],"description":"Session configuration"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/MetricsConfig"},{"type":"null"}],"description":"Metrics configuration"},"memory":{"anyOf":[{"$ref":"#/components/schemas/MemoryConfig"},{"type":"null"}],"description":"Memory configuration"},"learning":{"anyOf":[{"$ref":"#/components/schemas/LearningConfig"},{"type":"null"}],"description":"Learning configuration"},"knowledge":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeConfig"},{"type":"null"}],"description":"Knowledge configuration"},"evals":{"anyOf":[{"$ref":"#/components/schemas/EvalsConfig"},{"type":"null"}],"description":"Evaluations configuration"},"traces":{"anyOf":[{"$ref":"#/components/schemas/TracesConfig"},{"type":"null"}],"description":"Traces configuration"},"agents":{"items":{"$ref":"#/components/schemas/AgentSummaryResponse"},"type":"array","title":"Agents","description":"List of registered agents"},"teams":{"items":{"$ref":"#/components/schemas/TeamSummaryResponse"},"type":"array","title":"Teams","description":"List of registered teams"},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Workflows","description":"List of registered workflows"},"interfaces":{"items":{"$ref":"#/components/schemas/InterfaceResponse"},"type":"array","title":"Interfaces","description":"List of available interfaces"}},"type":"object","required":["os_id","databases","agents","teams","workflows","interfaces"],"title":"ConfigResponse","description":"Response schema for the general config endpoint"},"ConfigResponseSchema":{"properties":{"readers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ReaderSchema"},"type":"object"},{"type":"null"}],"title":"Readers","description":"Available content readers"},"readersForType":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Readersfortype","description":"Mapping of content types to reader IDs"},"chunkers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ChunkerSchema"},"type":"object"},{"type":"null"}],"title":"Chunkers","description":"Available chunking strategies"},"filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filters","description":"Available filter tags"},"vector_dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/VectorDbSchema"},"type":"array"},{"type":"null"}],"title":"Vector Dbs","description":"Configured vector databases"},"remote_content_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"type":"array"},{"type":"null"}],"title":"Remote Content Sources","description":"Configured remote content sources (S3, GCS, SharePoint, GitHub)"}},"type":"object","title":"ConfigResponseSchema"},"ConfigUpdate":{"properties":{"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","title":"ConfigUpdate"},"ConflictResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ConflictResponse","example":{"detail":"Resource conflict"}},"ContentResponseSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the content"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"MIME type of the content"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"},"linked_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linked To","description":"ID of related content if linked"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata as key-value pairs"},"access_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Access Count","description":"Number of times content has been accessed"},"status":{"anyOf":[{"$ref":"#/components/schemas/ContentStatus"},{"type":"null"}],"description":"Processing status of the content"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message","description":"Status message or error details"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when content was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when content was last updated"}},"type":"object","required":["id"],"title":"ContentResponseSchema"},"ContentStatus":{"type":"string","enum":["processing","completed","failed"],"title":"ContentStatus","description":"Enumeration of possible content processing statuses."},"ContentStatusResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Content ID"},"status":{"$ref":"#/components/schemas/ContentStatus","description":"Current processing status of the content"},"status_message":{"type":"string","title":"Status Message","description":"Status message or error details","default":""}},"type":"object","required":["status"],"title":"ContentStatusResponse","description":"Response model for content status endpoint."},"Context":{"properties":{"description":{"type":"string","title":"Description"},"value":{"type":"string","title":"Value"}},"additionalProperties":true,"type":"object","required":["description","value"],"title":"Context","description":"Additional context for the agent."},"CreateSessionRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session ID (generated if not provided)"},"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Initial session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"}},"type":"object","title":"CreateSessionRequest"},"DataPart":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data"},"kind":{"type":"string","const":"data","title":"Kind","default":"data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["data"],"title":"DataPart","description":"Represents a structured data segment (e.g., JSON) within a message or artifact."},"DatabaseConfig_EvalsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/EvalsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[EvalsDomainConfig]"},"DatabaseConfig_LearningDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/LearningDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[LearningDomainConfig]"},"DatabaseConfig_MemoryDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MemoryDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MemoryDomainConfig]"},"DatabaseConfig_MetricsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MetricsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MetricsDomainConfig]"},"DatabaseConfig_SessionDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/SessionDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[SessionDomainConfig]"},"DatabaseConfig_TracesDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/TracesDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[TracesDomainConfig]"},"DayAggregatedMetrics":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the metrics record"},"agent_runs_count":{"type":"integer","minimum":0.0,"title":"Agent Runs Count","description":"Total number of agent runs"},"agent_sessions_count":{"type":"integer","minimum":0.0,"title":"Agent Sessions Count","description":"Total number of agent sessions"},"team_runs_count":{"type":"integer","minimum":0.0,"title":"Team Runs Count","description":"Total number of team runs"},"team_sessions_count":{"type":"integer","minimum":0.0,"title":"Team Sessions Count","description":"Total number of team sessions"},"workflow_runs_count":{"type":"integer","minimum":0.0,"title":"Workflow Runs Count","description":"Total number of workflow runs"},"workflow_sessions_count":{"type":"integer","minimum":0.0,"title":"Workflow Sessions Count","description":"Total number of workflow sessions"},"users_count":{"type":"integer","minimum":0.0,"title":"Users Count","description":"Total number of unique users"},"token_metrics":{"additionalProperties":true,"type":"object","title":"Token Metrics","description":"Token usage metrics (input, output, cached, etc.)"},"model_metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Model Metrics","description":"Metrics grouped by model (model_id, provider, count)"},"date":{"type":"string","format":"date-time","title":"Date","description":"Date for which these metrics are aggregated"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when metrics were created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when metrics were last updated"}},"type":"object","required":["id","agent_runs_count","agent_sessions_count","team_runs_count","team_sessions_count","workflow_runs_count","workflow_sessions_count","users_count","token_metrics","model_metrics","date","created_at","updated_at"],"title":"DayAggregatedMetrics","description":"Aggregated metrics for a given day"},"DeleteEvalRunsRequest":{"properties":{"eval_run_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Eval Run Ids","description":"List of evaluation run IDs to delete"}},"type":"object","required":["eval_run_ids"],"title":"DeleteEvalRunsRequest"},"DeleteMemoriesRequest":{"properties":{"memory_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Memory Ids","description":"List of memory IDs to delete"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID to filter memories for deletion"}},"type":"object","required":["memory_ids"],"title":"DeleteMemoriesRequest"},"DeleteSessionRequest":{"properties":{"session_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Session Ids","description":"List of session IDs to delete"},"session_types":{"items":{"$ref":"#/components/schemas/SessionType"},"type":"array","minItems":1,"title":"Session Types","description":"Types of sessions to delete"}},"type":"object","required":["session_ids","session_types"],"title":"DeleteSessionRequest"},"DeveloperMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"developer","title":"Role","default":"developer"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"DeveloperMessage","description":"A developer message."},"DocumentInputContent":{"properties":{"type":{"type":"string","const":"document","title":"Type","default":"document"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"DocumentInputContent","description":"A document input content fragment."},"EvalFilterType":{"type":"string","enum":["agent","team","workflow"],"title":"EvalFilterType"},"EvalRunInput":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID to evaluate"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID to evaluate"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID to use for evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation to run (accuracy, performance, or reliability)"},"input":{"type":"string","minLength":1,"title":"Input","description":"Input text/query for the evaluation"},"additional_guidelines":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Guidelines","description":"Additional guidelines for the evaluation"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for the evaluation"},"num_iterations":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Num Iterations","description":"Number of times to run the evaluation","default":1},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for this evaluation run"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output","description":"Expected output for accuracy evaluation"},"criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criteria","description":"Evaluation criteria for agent-as-judge evaluation"},"scoring_strategy":{"anyOf":[{"type":"string","enum":["numeric","binary"]},{"type":"null"}],"title":"Scoring Strategy","description":"Scoring strategy: 'numeric' (1-10 with threshold) or 'binary' (PASS/FAIL)","default":"binary"},"threshold":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Threshold","description":"Score threshold for pass/fail (1-10), only used with numeric scoring","default":7},"warmup_runs":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Warmup Runs","description":"Number of warmup runs before measuring performance","default":0},"expected_tool_calls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expected Tool Calls","description":"Expected tool calls for reliability evaluation"},"allow_additional_tool_calls":{"type":"boolean","title":"Allow Additional Tool Calls","description":"When True, tool calls not in expected_tool_calls are allowed (subset matching)","default":false},"expected_tool_call_arguments":{"anyOf":[{"additionalProperties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Expected Tool Call Arguments","description":"Expected arguments for specific tool calls, e.g. {\"tool_name\": {\"arg_name\": \"expected_value\"}} or {\"tool_name\": [{\"arg_name\": \"val1\"}, {\"arg_name\": \"val2\"}]}"}},"type":"object","required":["eval_type","input"],"title":"EvalRunInput"},"EvalSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the evaluation run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that was evaluated"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID used in evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that was evaluated"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was evaluated"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the evaluation run"},"evaluated_component_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluated Component Name","description":"Name of the evaluated component"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation (accuracy, performance, or reliability)"},"eval_data":{"additionalProperties":true,"type":"object","title":"Eval Data","description":"Evaluation results and metrics"},"eval_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eval Input","description":"Input parameters used for the evaluation"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when evaluation was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when evaluation was last updated"}},"type":"object","required":["id","eval_type","eval_data"],"title":"EvalSchema"},"EvalType":{"type":"string","enum":["accuracy","agent_as_judge","performance","reliability"],"title":"EvalType"},"EvalsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_EvalsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"EvalsConfig","description":"Configuration for the Evals domain of the AgentOS"},"EvalsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"EvalsDomainConfig","description":"Configuration for the Evals domain of the AgentOS"},"FilePart":{"properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/FileWithBytes"},{"$ref":"#/components/schemas/FileWithUri"}],"title":"File"},"kind":{"type":"string","const":"file","title":"Kind","default":"file"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["file"],"title":"FilePart","description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI."},"FileWithBytes":{"properties":{"bytes":{"type":"string","title":"Bytes"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["bytes"],"title":"FileWithBytes","description":"Represents a file with its content provided directly as a base64-encoded string."},"FileWithUri":{"properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uri":{"type":"string","title":"Uri"}},"type":"object","required":["uri"],"title":"FileWithUri","description":"Represents a file with its content located at a specific URI."},"FilterFieldSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Column/field name used in filter expressions"},"label":{"type":"string","title":"Label","description":"Human-readable display label for the UI"},"type":{"type":"string","title":"Type","description":"Field data type: string, number, datetime, enum"},"operators":{"items":{"type":"string"},"type":"array","title":"Operators","description":"List of valid filter operators for this field"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values","description":"Allowed enum values (for autocomplete/dropdown)"}},"type":"object","required":["key","label","type","operators"],"title":"FilterFieldSchema","description":"Schema describing a single filterable field for the frontend filter bar."},"FilterSchemaResponse":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FilterFieldSchema"},"type":"array","title":"Fields","description":"Available filterable fields"},"logical_operators":{"items":{"type":"string"},"type":"array","title":"Logical Operators","description":"Logical operators for combining filter clauses","default":["AND","OR"]}},"type":"object","required":["fields"],"title":"FilterSchemaResponse","description":"Response for the filter schema endpoint. Tells the FE what fields, operators, and values are available."},"ForbiddenResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ForbiddenResponse","example":{"detail":"Insufficient permissions"}},"FunctionCall":{"properties":{"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"additionalProperties":true,"type":"object","required":["name","arguments"],"title":"FunctionCall","description":"Name and arguments of a function call."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Health status of the service"},"instantiated_at":{"type":"string","format":"date-time","title":"Instantiated At","description":"Timestamp when service was instantiated"}},"type":"object","required":["status","instantiated_at"],"title":"HealthResponse","example":{"instantiated_at":"2025-06-10T12:00:00Z","status":"ok"}},"ImageInputContent":{"properties":{"type":{"type":"string","const":"image","title":"Type","default":"image"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"ImageInputContent","description":"An image input content fragment."},"InfoResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"agno_version":{"type":"string","title":"Agno Version","description":"Version of the agno framework"},"agent_count":{"type":"integer","title":"Agent Count","description":"Number of agents registered in the OS","default":0},"team_count":{"type":"integer","title":"Team Count","description":"Number of teams registered in the OS","default":0},"workflow_count":{"type":"integer","title":"Workflow Count","description":"Number of workflows registered in the OS","default":0},"mcp":{"$ref":"#/components/schemas/McpInfo","description":"MCP server availability for this OS instance"},"auth_mode":{"type":"string","enum":["none","security_key","jwt"],"title":"Auth Mode","description":"Authentication mode enforced on the REST/WS plane of this OS instance. MCP OAuth, when enabled, is described separately under `mcp.oauth`.","default":"none"}},"type":"object","required":["os_id","agno_version"],"title":"InfoResponse","description":"Response schema for the /info endpoint returning lightweight OS metadata."},"InputContentDataSource":{"properties":{"type":{"type":"string","const":"data","title":"Type","default":"data"},"value":{"type":"string","title":"Value"},"mimeType":{"type":"string","title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value","mimeType"],"title":"InputContentDataSource","description":"Inline base64-encoded source."},"InputContentUrlSource":{"properties":{"type":{"type":"string","const":"url","title":"Type","default":"url"},"value":{"type":"string","title":"Value"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value"],"title":"InputContentUrlSource","description":"URL-referenced source."},"InterfaceResponse":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the interface"},"version":{"type":"string","title":"Version","description":"Version of the interface"},"route":{"type":"string","title":"Route","description":"API route path"}},"type":"object","required":["type","version","route"],"title":"InterfaceResponse"},"InternalServerErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"InternalServerErrorResponse","example":{"detail":"Internal server error","error_code":"INTERNAL_SERVER_ERROR"}},"KnowledgeConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeDatabaseConfig"},"type":"array"},{"type":"null"}],"title":"Dbs"},"knowledge_instances":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeInstanceConfig"},"type":"array"},{"type":"null"}],"title":"Knowledge Instances"}},"type":"object","title":"KnowledgeConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeDatabaseConfig":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeDomainConfig"},{"type":"null"}]},"tables":{"items":{"type":"string"},"type":"array","title":"Tables","default":[]}},"type":"object","required":["db_id"],"title":"KnowledgeDatabaseConfig","description":"Configuration for a knowledge database with its tables"},"KnowledgeDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"KnowledgeDomainConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeInstanceConfig":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"db_id":{"type":"string","title":"Db Id"},"table":{"type":"string","title":"Table"}},"type":"object","required":["id","name","db_id","table"],"title":"KnowledgeInstanceConfig","description":"Configuration for a single knowledge instance"},"LearningConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_LearningDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"LearningConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningCreate":{"properties":{"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"content":{"additionalProperties":true,"type":"object","title":"Content","description":"The learning content payload"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID. When the request is authenticated, must match the JWT subject or be omitted/null (which creates a global / non-user-scoped record)."},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"}},"type":"object","required":["learning_type","content"],"title":"LearningCreate","description":"Request body for creating a learning record."},"LearningDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"LearningDomainConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningResponse":{"properties":{"learning_id":{"type":"string","title":"Learning Id","description":"Unique identifier for the learning record"},"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID (for entity-specific learnings)"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type (e.g. 'person', 'company')"},"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"The learning content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Creation timestamp (Unix epoch seconds)"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp (Unix epoch seconds)"}},"type":"object","required":["learning_id","learning_type"],"title":"LearningResponse","description":"A single learning record as returned by the API."},"LearningUpdate":{"properties":{"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Replacement content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Replacement metadata"}},"type":"object","title":"LearningUpdate","description":"Request body for updating a learning record. Identity fields are immutable."},"LearningUserStats":{"properties":{"user_id":{"type":"string","title":"User Id","description":"The user ID"},"last_learning_updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Learning Updated At","description":"Most recent learning update for this user (Unix epoch seconds)"}},"type":"object","required":["user_id"],"title":"LearningUserStats","description":"A user that owns learning records, with their most recent activity.\n\nUsed as a lightweight index for the per-user view: list users here, then drill into a\nsingle user's records via ``GET /learnings?user_id=...``. No per-user count is returned\n-- the user-scoped stores (``user_profile``, ``user_memory``) keep a single record per\nuser, so a record count would always be 1; the actual memory count lives in that\nrecord's ``content``."},"Manifest":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"},"quick_prompts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quick Prompts"}},"type":"object","title":"Manifest","description":"OS-level UI metadata for an agent/team/workflow.\n\nFields here are AgentOS UI metadata only. ``description`` is unrelated to\n``Agent.description`` / ``Team.description`` / ``Workflow.description``,\nwhich are sent to the model.\n\nRendering surfaces:\n- ``description``, ``labels``: home/landing card\n- ``quick_prompts``: chat page"},"McpInfo":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the MCP server is enabled on this OS instance","default":false},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Path where the MCP server is mounted, null when disabled"},"oauth":{"anyOf":[{"$ref":"#/components/schemas/McpOAuthInfo"},{"type":"null"}],"description":"OAuth discovery details when the MCP endpoint is OAuth-protected, null otherwise"}},"type":"object","title":"McpInfo","description":"MCP server availability for the /info endpoint."},"McpOAuthInfo":{"properties":{"authorization_servers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorization Servers","description":"Issuer URL(s) of the authorization server(s) protecting the MCP endpoint"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource","description":"RFC 9728 resource URL advertised for the MCP endpoint"}},"type":"object","title":"McpOAuthInfo","description":"OAuth discovery details for an MCP endpoint protected by ``AgentOS(mcp_auth=...)``."},"MemoryConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MemoryDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MemoryConfig","description":"Configuration for the Memory domain of the AgentOS"},"MemoryDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MemoryDomainConfig","description":"Configuration for the Memory domain of the AgentOS"},"Message":{"properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"kind":{"type":"string","const":"message","title":"Kind","default":"message"},"messageId":{"type":"string","title":"Messageid"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taskid"}},"type":"object","required":["messageId","parts","role"],"title":"Message","description":"Represents a single message in the conversation between a user and an agent."},"Meta":{"properties":{"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of results per page","default":20},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number","default":1}},"type":"object","title":"Meta","description":"Inline metadata schema for pagination."},"MetricsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MetricsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MetricsConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MetricsDomainConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsResponse":{"properties":{"metrics":{"items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"type":"array","title":"Metrics","description":"List of daily aggregated metrics"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp of the most recent metrics update"}},"type":"object","required":["metrics"],"title":"MetricsResponse"},"Model":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"Model"},"ModelResponse":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the model"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"ModelResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"NotFoundResponse","example":{"detail":"Not found","error_code":"NOT_FOUND"}},"NotImplementedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"NotImplementedResponse","example":{"detail":"Operation not supported for this resource type"}},"OptimizeMemoriesRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID to optimize memories for"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model in `provider:model_id` format. Current examples include `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, and `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`."},"apply":{"type":"boolean","title":"Apply","description":"If True, apply optimization changes to database. If False, return preview only without saving.","default":true}},"type":"object","required":["user_id"],"title":"OptimizeMemoriesRequest","description":"Schema for memory optimization request"},"OptimizeMemoriesResponse":{"properties":{"memories":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Memories","description":"List of optimized memory objects"},"memories_before":{"type":"integer","minimum":0.0,"title":"Memories Before","description":"Number of memories before optimization"},"memories_after":{"type":"integer","minimum":0.0,"title":"Memories After","description":"Number of memories after optimization"},"tokens_before":{"type":"integer","minimum":0.0,"title":"Tokens Before","description":"Token count before optimization"},"tokens_after":{"type":"integer","minimum":0.0,"title":"Tokens After","description":"Token count after optimization"},"tokens_saved":{"type":"integer","minimum":0.0,"title":"Tokens Saved","description":"Number of tokens saved through optimization"},"reduction_percentage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Reduction Percentage","description":"Percentage of token reduction achieved"}},"type":"object","required":["memories","memories_before","memories_after","tokens_before","tokens_after","tokens_saved","reduction_percentage"],"title":"OptimizeMemoriesResponse","description":"Schema for memory optimization response"},"PaginatedResponse_ApprovalResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ApprovalResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ApprovalResponse]"},"PaginatedResponse_ComponentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ComponentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ComponentResponse]"},"PaginatedResponse_ContentResponseSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentResponseSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ContentResponseSchema]"},"PaginatedResponse_EvalSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EvalSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[EvalSchema]"},"PaginatedResponse_LearningResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningResponse]"},"PaginatedResponse_LearningUserStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningUserStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningUserStats]"},"PaginatedResponse_RegistryContentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RegistryContentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[RegistryContentResponse]"},"PaginatedResponse_ScheduleResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleResponse]"},"PaginatedResponse_ScheduleRunResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleRunResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleRunResponse]"},"PaginatedResponse_ServiceAccountResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ServiceAccountResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ServiceAccountResponse]"},"PaginatedResponse_SessionSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SessionSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[SessionSchema]"},"PaginatedResponse_TraceDetail_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceDetail"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceDetail]"},"PaginatedResponse_TraceSessionStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSessionStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSessionStats]"},"PaginatedResponse_TraceSummary_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSummary"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSummary]"},"PaginatedResponse_UserMemorySchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserMemorySchema]"},"PaginatedResponse_UserStatsSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserStatsSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserStatsSchema]"},"PaginatedResponse_VectorSearchResult_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VectorSearchResult"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[VectorSearchResult]"},"PaginationInfo":{"properties":{"page":{"type":"integer","minimum":0.0,"title":"Page","description":"Current page number (0-indexed)","default":0},"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of items per page","default":20},"total_pages":{"type":"integer","minimum":0.0,"title":"Total Pages","description":"Total number of pages","default":0},"total_count":{"type":"integer","minimum":0.0,"title":"Total Count","description":"Total count of items","default":0},"search_time_ms":{"type":"number","minimum":0.0,"title":"Search Time Ms","description":"Search execution time in milliseconds","default":0}},"type":"object","title":"PaginationInfo"},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/DataPart"}],"title":"Part"},"ReaderSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the reader"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the reader"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the reader's capabilities"},"chunkers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chunkers","description":"List of supported chunking strategies"}},"type":"object","required":["id"],"title":"ReaderSchema"},"ReasoningMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"reasoning","title":"Role","default":"reasoning"},"content":{"type":"string","title":"Content"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"ReasoningMessage","description":"A reasoning message containing the agent's internal reasoning process."},"RegistryContentResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/RegistryResourceType"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name","type"],"title":"RegistryContentResponse"},"RegistryResourceType":{"type":"string","enum":["tool","model","db","vector_db","schema","function","agent","team","knowledge","memory_manager","session_summary_manager"],"title":"RegistryResourceType","description":"Types of resources that can be stored in a registry."},"RemoteContentSourceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content source"},"name":{"type":"string","title":"Name","description":"Display name for the content source"},"type":{"type":"string","title":"Type","description":"Type of content source (s3, gcs, sharepoint, github, azureblob)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Default path prefix for this source"}},"type":"object","required":["id","name","type"],"title":"RemoteContentSourceSchema","description":"Schema for remote content source configuration."},"ResumeEntry":{"properties":{"interruptId":{"type":"string","title":"Interruptid"},"status":{"type":"string","enum":["resolved","cancelled"],"title":"Status"},"payload":{"anyOf":[{},{"type":"null"}],"title":"Payload"}},"additionalProperties":true,"type":"object","required":["interruptId","status"],"title":"ResumeEntry","description":"A per-interrupt response in the resume array of a RunAgentInput."},"Role":{"type":"string","enum":["agent","user"],"title":"Role","description":"Identifies the sender of the message. `user` for the client, `agent` for the service."},"RunAgentInput":{"properties":{"threadId":{"type":"string","title":"Threadid"},"runId":{"type":"string","title":"Runid"},"parentRunId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentrunid"},"state":{"title":"State"},"messages":{"items":{"oneOf":[{"$ref":"#/components/schemas/DeveloperMessage"},{"$ref":"#/components/schemas/SystemMessage"},{"$ref":"#/components/schemas/AssistantMessage"},{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/ToolMessage"},{"$ref":"#/components/schemas/ActivityMessage"},{"$ref":"#/components/schemas/ReasoningMessage"}],"discriminator":{"propertyName":"role","mapping":{"activity":"#/components/schemas/ActivityMessage","assistant":"#/components/schemas/AssistantMessage","developer":"#/components/schemas/DeveloperMessage","reasoning":"#/components/schemas/ReasoningMessage","system":"#/components/schemas/SystemMessage","tool":"#/components/schemas/ToolMessage","user":"#/components/schemas/UserMessage"}}},"type":"array","title":"Messages"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","title":"Tools"},"context":{"items":{"$ref":"#/components/schemas/Context"},"type":"array","title":"Context"},"forwardedProps":{"title":"Forwardedprops"},"resume":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResumeEntry"},"type":"array"},{"type":"null"}],"title":"Resume"}},"additionalProperties":true,"type":"object","required":["threadId","runId","state","messages","tools","context","forwardedProps"],"title":"RunAgentInput","description":"Input for running an agent."},"RunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that executed this run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"RunSchema"},"RunStatus":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","PAUSED","CANCELLED","ERROR","REGENERATED"],"title":"RunStatus","description":"State of the main run response"},"ScheduleCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"cron_expr":{"type":"string","maxLength":128,"title":"Cron Expr"},"endpoint":{"type":"string","maxLength":512,"title":"Endpoint"},"method":{"type":"string","maxLength":10,"title":"Method","default":"POST"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"type":"string","maxLength":64,"title":"Timezone","default":"UTC"},"timeout_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Timeout Seconds","default":3600},"max_retries":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Max Retries","default":0},"retry_delay_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Retry Delay Seconds","default":60}},"type":"object","required":["name","cron_expr","endpoint"],"title":"ScheduleCreate"},"ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"cron_expr":{"type":"string","title":"Cron Expr"},"timezone":{"type":"string","title":"Timezone"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"max_retries":{"type":"integer","title":"Max Retries"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","method","endpoint","cron_expr","timezone","timeout_seconds","max_retries","retry_delay_seconds","enabled"],"title":"ScheduleResponse"},"ScheduleRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"schedule_id":{"type":"string","title":"Schedule Id"},"attempt":{"type":"integer","title":"Attempt"},"triggered_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triggered At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"status":{"type":"string","title":"Status"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","schedule_id","attempt","status"],"title":"ScheduleRunResponse"},"ScheduleStateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","enabled"],"title":"ScheduleStateResponse","description":"Trimmed response for state-changing operations (enable/disable)."},"ScheduleUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"cron_expr":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Cron Expr"},"endpoint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Endpoint"},"method":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Method"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Timezone"},"timeout_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":1.0},{"type":"null"}],"title":"Timeout Seconds"},"max_retries":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Max Retries"},"retry_delay_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":1.0},{"type":"null"}],"title":"Retry Delay Seconds"}},"type":"object","title":"ScheduleUpdate"},"ScopeItem":{"properties":{"scope":{"type":"string","title":"Scope","description":"Scope string, e.g. 'agents:*:run'"},"effect":{"type":"string","enum":["allow","deny"],"title":"Effect","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["scope"],"title":"ScopeItem","description":"Write shape for one scope grant \u2014 the canonical RBAC payload for every scope-bearing API.\n\nEndpoints that take scopes accept these objects only (a bare string is a validation\nerror). ``effect`` is constrained here so every consumer rejects typos at the model\nlayer; whether ``deny`` is *semantically* legal stays per-endpoint (roles support\ndeny rules, service-account tokens are pure grants and reject it)."},"ScopeSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Scope id (always null here; kept for shape parity with the cloud RBAC API, which addresses scopes individually)"},"raw":{"type":"string","title":"Raw","description":"Original scope string, e.g. 'agents:*:run'"},"namespace":{"type":"string","title":"Namespace","description":"Resource namespace, e.g. 'agents'"},"sub_namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Namespace","description":"Specific resource id or wildcard '*'"},"permission":{"type":"string","title":"Permission","description":"Action, e.g. 'read' / 'run' / 'write'"},"value":{"type":"string","title":"Value","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["raw","namespace","permission"],"title":"ScopeSchema","description":"Read shape for one scope \u2014 the parsed RBAC payload shared by every scope-bearing API.\n\nMirrors the cloud RBAC scope shape ({raw, namespace, sub_namespace, permission, value})\nso a frontend renders scopes from any AgentOS API with one integration."},"SendMessageRequest":{"description":"Represents a JSON-RPC request for the `message/send` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/send","default":"message/send","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendMessageRequest","type":"object"},"SendMessageSuccessResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id"},"jsonrpc":{"type":"string","const":"2.0","title":"Jsonrpc","default":"2.0"},"result":{"anyOf":[{"$ref":"#/components/schemas/Task"},{"$ref":"#/components/schemas/Message"}],"title":"Result"}},"type":"object","required":["result"],"title":"SendMessageSuccessResponse","description":"Represents a successful JSON-RPC response for the `message/send` method."},"SendStreamingMessageRequest":{"description":"Represents a JSON-RPC request for the `message/stream` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/stream","default":"message/stream","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendStreamingMessageRequest","type":"object"},"ServiceAccountCreate":{"properties":{"name":{"type":"string","maxLength":63,"title":"Name","description":"Machine identity name (lowercase slug), e.g. 'claude-code' or 'github-actions'"},"scopes":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScopeItem"},"type":"array"},{"type":"null"}],"title":"Scopes","description":"Scopes granted to the token, as {scope, effect} objects (the shared RBAC write shape; token scopes are grants, so only effect='allow' is accepted). Defaults to run and read scopes: agents:run, teams:run, workflows:run, sessions:read"},"expires_in_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Expires In Days","description":"Days until the token expires (default: 90)","default":90},"never_expires":{"type":"boolean","title":"Never Expires","description":"Mint a non-expiring token. Must be set explicitly; overrides expires_in_days.","default":false},"allow_privileged_scopes":{"type":"boolean","title":"Allow Privileged Scopes","description":"Required to grant privileged scopes: any write or delete action, the admin scope, or any service_accounts scope. Privileged tokens must be deliberate, never accidental.","default":false}},"type":"object","required":["name"],"title":"ServiceAccountCreate"},"ServiceAccountCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"token":{"type":"string","title":"Token","description":"The plaintext token. Shown exactly once - store it securely now."}},"type":"object","required":["id","name","principal","token_prefix","created_at","token"],"title":"ServiceAccountCreateResponse","description":"Returned once, at creation. The token is never retrievable again."},"ServiceAccountResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","name","principal","token_prefix","created_at"],"title":"ServiceAccountResponse","description":"Service account metadata. Never includes the token hash or plaintext."},"ServiceUnavailableResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ServiceUnavailableResponse","example":{"detail":"Feature not supported by the configured service"}},"SessionConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_SessionDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"SessionConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"SessionDomainConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier for the session"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state data of the session"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when session was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when session was last updated"},"session_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type","description":"Type of session: agent, team, or workflow"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["session_id","session_name"],"title":"SessionSchema"},"SessionType":{"type":"string","enum":["agent","team","workflow"],"title":"SessionType"},"SlackChallengeResponse":{"properties":{"challenge":{"type":"string","title":"Challenge","description":"Challenge string to echo back to Slack"}},"type":"object","required":["challenge"],"title":"SlackChallengeResponse"},"SlackEventResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"}},"type":"object","title":"SlackEventResponse"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"SourceFileSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Full path/key of the file"},"name":{"type":"string","title":"Name","description":"Display name (filename)"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"File size in bytes"},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified","description":"ISO 8601 timestamp of last modification"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"MIME type of the file"}},"type":"object","required":["key","name"],"title":"SourceFileSchema","description":"Schema for a file in a content source."},"SourceFilesResponseSchema":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"ID of the content source"},"source_name":{"type":"string","title":"Source Name","description":"Name of the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Prefix filter that was applied"},"folders":{"items":{"$ref":"#/components/schemas/SourceFolderSchema"},"type":"array","title":"Folders","description":"Subfolders at this level"},"files":{"items":{"$ref":"#/components/schemas/SourceFileSchema"},"type":"array","title":"Files","description":"List of files at this level"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["source_id","source_name","meta"],"title":"SourceFilesResponseSchema","description":"Response schema for listing files in a content source."},"SourceFolderSchema":{"properties":{"prefix":{"type":"string","title":"Prefix","description":"Full prefix to use for navigating into this folder"},"name":{"type":"string","title":"Name","description":"Display name of the folder"},"is_empty":{"type":"boolean","title":"Is Empty","description":"Whether the folder contains any files","default":false}},"type":"object","required":["prefix","name"],"title":"SourceFolderSchema","description":"Schema for a folder in a content source."},"SystemMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"system","title":"Role","default":"system"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"SystemMessage","description":"A system message."},"Task":{"properties":{"artifacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Artifact"},"type":"array"},{"type":"null"}],"title":"Artifacts"},"contextId":{"type":"string","title":"Contextid"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"History"},"id":{"type":"string","title":"Id"},"kind":{"type":"string","const":"task","title":"Kind","default":"task"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"status":{"$ref":"#/components/schemas/TaskStatus"}},"type":"object","required":["contextId","id","status"],"title":"Task","description":"Represents a single, stateful operation or conversation between a client and an agent."},"TaskState":{"type":"string","enum":["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"],"title":"TaskState","description":"Defines the lifecycle states of a Task."},"TaskStatus":{"properties":{"message":{"anyOf":[{"$ref":"#/components/schemas/Message"},{"type":"null"}]},"state":{"$ref":"#/components/schemas/TaskState"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp","examples":["2023-10-27T10:00:00Z"]}},"type":"object","required":["state"],"title":"TaskStatus","description":"Represents the status of a task at a specific point in time."},"TeamResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"members":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"$ref":"#/components/schemas/TeamResponse"}]},"type":"array"},{"type":"null"}],"title":"Members"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"TeamResponse"},"TeamRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the team run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that executed this run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the team run"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this team run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this team run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this team run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this team run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"TeamRunSchema"},"TeamSessionDetailSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID used in this session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of team interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"team_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Team Data","description":"Team-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"}},"type":"object","required":["session_id","session_name"],"title":"TeamSessionDetailSchema"},"TeamSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the team"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the team"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the team"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Team execution mode (coordinate, route, broadcast, tasks)"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the team leader"}},"type":"object","title":"TeamSummaryResponse"},"TelegramStatusResponse":{"properties":{"status":{"type":"string","title":"Status","default":"available"}},"type":"object","title":"TelegramStatusResponse"},"TelegramWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status"}},"type":"object","required":["status"],"title":"TelegramWebhookResponse"},"TextInputContent":{"properties":{"type":{"type":"string","const":"text","title":"Type","default":"text"},"text":{"type":"string","title":"Text"}},"additionalProperties":true,"type":"object","required":["text"],"title":"TextInputContent","description":"A text fragment in a multimodal user message."},"TextPart":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"TextPart","description":"Represents a text segment within a message or artifact."},"Tool":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{},{"type":"null"}],"title":"Parameters"}},"additionalProperties":true,"type":"object","required":["name","description"],"title":"Tool","description":"A tool definition."},"ToolCall":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/FunctionCall"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","function"],"title":"ToolCall","description":"A tool call, modelled after OpenAI tool calls."},"ToolMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"tool","title":"Role","default":"tool"},"content":{"type":"string","title":"Content"},"toolCallId":{"type":"string","title":"Toolcallid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content","toolCallId"],"title":"ToolMessage","description":"A tool result message."},"TraceDetail":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent/workflow"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the agent/workflow"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"},"tree":{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array","title":"Tree","description":"Hierarchical tree of spans (root nodes)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at","tree"],"title":"TraceDetail","description":"Detailed trace information with hierarchical span tree"},"TraceNode":{"properties":{"id":{"type":"string","title":"Id","description":"Span ID"},"name":{"type":"string","title":"Name","description":"Span name (e.g., 'agent.run', 'llm.invoke')"},"type":{"type":"string","title":"Type","description":"Span kind (AGENT, TEAM, WORKFLOW, LLM, TOOL)"},"duration":{"type":"string","title":"Duration","description":"Human-readable duration (e.g., '123ms', '1.5s')"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"End time (Pydantic auto-serializes to ISO 8601)"},"status":{"type":"string","title":"Status","description":"Status code (OK, ERROR)"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the span"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the span"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"spans":{"anyOf":[{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array"},{"type":"null"}],"title":"Spans","description":"Child spans in the trace hierarchy"},"step_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Type","description":"Workflow step type (Step, Condition, function, Agent, Team)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional span attributes and data"},"extra_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Data","description":"Flexible field for custom attributes and additional data"}},"type":"object","required":["id","name","type","duration","start_time","end_time","status"],"title":"TraceNode","description":"Recursive node structure for rendering trace hierarchy in the frontend"},"TraceSearchGroupBy":{"type":"string","enum":["run","session"],"title":"TraceSearchGroupBy","description":"Grouping options for trace search results."},"TraceSearchRequest":{"properties":{"filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter","description":"FilterExpr DSL as JSON dict. Supports operators: EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH, AND, OR, NOT."},"group_by":{"$ref":"#/components/schemas/TraceSearchGroupBy","description":"Grouping mode: 'run' returns individual TraceDetail, 'session' returns aggregated TraceSessionStats.","default":"run"},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number (1-indexed)","default":1},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"Number of traces per page (max 100)","default":20}},"type":"object","title":"TraceSearchRequest","description":"Request body for POST /traces/search with advanced filtering.\n\nThe filter field accepts a FilterExpr DSL dict supporting composable queries\nwith AND/OR/NOT logic and operators like EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH.\n\nExample for run grouping (default):\n {\n \"filter\": {\n \"op\": \"AND\",\n \"conditions\": [\n {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n {\"op\": \"CONTAINS\", \"key\": \"user_id\", \"value\": \"admin\"}\n ]\n },\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n }\n\nExample for session grouping:\n {\n \"filter\": {\"op\": \"EQ\", \"key\": \"agent_id\", \"value\": \"my-agent\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n }"},"TraceSessionStats":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID(s) used in the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID associated with the session"},"total_traces":{"type":"integer","title":"Total Traces","description":"Total number of traces in this session"},"first_trace_at":{"type":"string","format":"date-time","title":"First Trace At","description":"Time of first trace (Pydantic auto-serializes to ISO 8601)"},"last_trace_at":{"type":"string","format":"date-time","title":"Last Trace At","description":"Time of last trace (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["session_id","total_traces","first_trace_at","last_trace_at"],"title":"TraceSessionStats","description":"Aggregated trace statistics grouped by session"},"TraceSummary":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR, UNSET)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at"],"title":"TraceSummary","description":"Summary information for trace list view"},"TracesConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_TracesDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"TracesConfig","description":"Configuration for the Traces domain of the AgentOS"},"TracesDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"TracesDomainConfig","description":"Configuration for the Traces domain of the AgentOS"},"UnauthenticatedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"UnauthenticatedResponse","example":{"detail":"Unauthenticated access","error_code":"UNAUTHENTICATED"}},"UpdateEvalRunRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"New name for the evaluation run"}},"type":"object","required":["name"],"title":"UpdateEvalRunRequest"},"UpdateSessionRequest":{"properties":{"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Updated session name"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Updated session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Updated metadata"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary","description":"Session summary"}},"type":"object","title":"UpdateSessionRequest"},"UserMemoryCreateSchema":{"properties":{"memory":{"type":"string","maxLength":5000,"minLength":1,"title":"Memory","description":"Memory content text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags to categorize the memory"}},"type":"object","required":["memory"],"title":"UserMemoryCreateSchema","description":"Define the payload expected for creating a new user memory"},"UserMemorySchema":{"properties":{"memory_id":{"type":"string","title":"Memory Id","description":"Unique identifier for the memory"},"memory":{"type":"string","title":"Memory","description":"Memory content text"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags associated with the memory"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID associated with this memory"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with this memory"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when memory was last updated"}},"type":"object","required":["memory_id","memory"],"title":"UserMemorySchema"},"UserMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"user","title":"Role","default":"user"},"content":{"anyOf":[{"type":"string"},{"items":{"oneOf":[{"$ref":"#/components/schemas/TextInputContent"},{"$ref":"#/components/schemas/ImageInputContent"},{"$ref":"#/components/schemas/AudioInputContent"},{"$ref":"#/components/schemas/VideoInputContent"},{"$ref":"#/components/schemas/DocumentInputContent"},{"$ref":"#/components/schemas/BinaryInputContent"}],"discriminator":{"propertyName":"type","mapping":{"audio":"#/components/schemas/AudioInputContent","binary":"#/components/schemas/BinaryInputContent","document":"#/components/schemas/DocumentInputContent","image":"#/components/schemas/ImageInputContent","text":"#/components/schemas/TextInputContent","video":"#/components/schemas/VideoInputContent"}}},"type":"array"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"UserMessage","description":"A user message supporting text or multimodal content."},"UserStatsSchema":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"total_memories":{"type":"integer","minimum":0.0,"title":"Total Memories","description":"Total number of memories for this user"},"last_memory_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Memory Updated At","description":"Timestamp of the most recent memory update"}},"type":"object","required":["user_id","total_memories"],"title":"UserStatsSchema","description":"Schema for user memory statistics"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"ValidationErrorResponse","example":{"detail":"Validation error","error_code":"VALIDATION_ERROR"}},"VectorDbSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the vector database"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the vector database"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the vector database"},"search_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Search Types","description":"List of supported search types (vector, keyword, hybrid)"}},"type":"object","required":["id"],"title":"VectorDbSchema"},"VectorSearchRequestSchema":{"properties":{"query":{"type":"string","title":"Query","description":"The search query text"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database ID to search in"},"knowledge_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledge Id","description":"Knowledge base ID to search in"},"vector_db_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vector Db Ids","description":"List of vector database IDs to search in"},"search_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Type","description":"The type of search to perform (vector, keyword, hybrid)"},"max_results":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Max Results","description":"The maximum number of results to return"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Filters to apply to the search results"},"meta":{"anyOf":[{"$ref":"#/components/schemas/Meta"},{"type":"null"}],"description":"Pagination metadata. Limit and page number to return a subset of results."}},"type":"object","required":["query"],"title":"VectorSearchRequestSchema","description":"Schema for vector search request."},"VectorSearchResult":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the search result document"},"content":{"type":"string","title":"Content","description":"Content text of the document"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the document"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Metadata associated with the document"},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"Usage statistics (e.g., token counts)"},"reranking_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reranking Score","description":"Reranking score for relevance"},"content_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Id","description":"ID of the source content"},"content_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Origin","description":"Origin URL or source of the content"},"size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"}},"type":"object","required":["id","content"],"title":"VectorSearchResult","description":"Schema for search result documents."},"VideoInputContent":{"properties":{"type":{"type":"string","const":"video","title":"Type","default":"video"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"VideoInputContent","description":"A video input content fragment."},"WhatsAppWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status","default":"ok"}},"type":"object","title":"WhatsAppWebhookResponse"},"WorkflowResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema","description":"Input schema for the workflow"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps","description":"List of workflow steps"},"agent":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"type":"null"}],"description":"Agent configuration if used"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamResponse"},{"type":"null"}],"description":"Team configuration if used"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"workflow_agent":{"type":"boolean","title":"Workflow Agent","description":"Whether this workflow uses a WorkflowAgent","default":false},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowResponse"},"WorkflowRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the workflow run"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the workflow"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was executed"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the workflow"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"Type of content returned"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status of the workflow run"},"step_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Results","description":"Results from each workflow step"},"step_executor_runs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Executor Runs","description":"Executor runs for each step"},"step_requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Requirements","description":"HITL step requirements (resolved state for historical display)"},"pause_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Kind","description":"Kind of HITL pause: 'step' or 'executor'"},"paused_step_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Step Name","description":"Name of the step that caused the pause"},"paused_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Paused Step Index","description":"Index of the step that caused the pause"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the workflow"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the workflow"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the workflow"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the workflow"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the workflow"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"}},"type":"object","required":["run_id"],"title":"WorkflowRunSchema"},"WorkflowSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID used in this session"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name","description":"Name of the workflow"},"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Data","description":"Complete session data"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current workflow state"},"workflow_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Data","description":"Workflow-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["session_id","session_name"],"title":"WorkflowSessionDetailSchema"},"WorkflowSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowSummaryResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} +{"openapi":"3.1.0","info":{"title":"Agno API Reference","description":"The all-in-one, private, secure agent platform that runs in your cloud.","version":"2.7.4"},"paths":{"/":{"get":{"tags":["Home"],"summary":"API Information","description":"Return the AgentOS instance name, ID, and version.","operationId":"get_api_info","responses":{"200":{"description":"API information retrieved successfully","content":{"application/json":{"schema":{"properties":{"name":{"type":"string","title":"Name"},"id":{"type":"string","title":"Id"},"version":{"type":"string","title":"Version"}},"type":"object","required":["name","id","version"],"title":"ApiInfoResponse"},"examples":{"home":{"summary":"Example home response","value":{"name":"AgentOS API","id":"demo-os","version":"1.0.0"}}}}}}}}},"/health":{"get":{"tags":["Health"],"summary":"Health Check","description":"Check the health status of the AgentOS API. Returns a simple status indicator.","operationId":"health_check","responses":{"200":{"description":"API is healthy and operational","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"},"example":{"status":"ok","instantiated_at":"2025-06-10T12:00:00Z"}}}}}}},"/info":{"get":{"tags":["Core"],"summary":"Get OS Info","description":"Return lightweight, unauthenticated metadata about this AgentOS instance.","operationId":"get_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoResponse"}}}}}}},"/config":{"get":{"tags":["Core"],"summary":"Get OS Configuration","description":"Retrieve the complete configuration of the AgentOS instance, including:\n\n- Available models and databases\n- Registered agents, teams, and workflows\n- Chat, session, memory, knowledge, and evaluation configurations\n- Available interfaces and their routes","operationId":"get_config","responses":{"200":{"description":"OS configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"},"example":{"description":"Example AgentOS configuration","available_models":[],"databases":["9c884dc4-9066-448c-9074-ef49ec7eb73c"],"session":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Sessions"}}]},"metrics":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Metrics"}}]},"memory":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Memory"}}]},"knowledge":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Knowledge"}}]},"evals":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Evals"}}]},"agents":[{"id":"main-agent","name":"Main Agent","db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c"}],"teams":[],"workflows":[],"interfaces":[],"os_id":"demo"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/models":{"get":{"tags":["Core"],"summary":"Get Available Models","description":"Retrieve a list of all unique models currently used by agents and teams in this OS instance. This includes the model ID and provider information for each model.","operationId":"get_models","responses":{"200":{"description":"List of models retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Response Get Models"},"example":[{"id":"gpt-4","provider":"openai"},{"id":"claude-3-sonnet","provider":"anthropic"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}/runs":{"post":{"tags":["Agents"],"summary":"Create Agent Run","description":"Execute an agent with a message and optional media files. Supports both streaming and non-streaming responses.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_agent_run"}}}},"responses":{"200":{"description":"Agent run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"examples":{"event_stream":{"summary":"Example event stream response","value":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Agents"],"summary":"List Agent Runs","description":"List runs for an agent within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_agent_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED","title":"Status"},"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RunSchema"},"type":"array","title":"Response List Agent Runs"}}}},"400":{"description":"Run listing is unavailable for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Agent resolution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/cancel":{"post":{"tags":["Agents"],"summary":"Cancel Agent Run","description":"Cancel a currently executing agent run. This will attempt to stop the agent's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/continue":{"post":{"tags":["Agents"],"summary":"Continue Agent Run","description":"Advance a persisted agent run from its current state. Dispatches on the body shape and the persisted run state (see ADR-003 in specs/agno/features/checkpointing/decisions.md).\n\n**Variants:**\n- PAUSED + tools provided \u2192 apply HITL tool results, resume\n- PAUSED + resolved admin approval (empty tools) \u2192 apply resolution, resume\n- RUNNING / ERROR (no unresolved HITL requirements) \u2192 resume from last persisted state\n- COMPLETED + new tools \u2192 continue with appended messages\n\n**Tools Parameter:**\nJSON string containing array of tool execution objects with results. Optional \u2014 only required when the persisted run has unresolved HITL requirements.","operationId":"continue_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_agent_run"}}}},"responses":{"200":{"description":"Agent run continued successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid JSON in tools field or invalid tool structure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Run has a pending admin approval and cannot be continued by the user yet."},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/sessions/{session_id}/fork":{"post":{"tags":["Agents"],"summary":"Fork Agent Session","description":"Deep-copy a session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_agent_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents":{"get":{"tags":["Agents"],"summary":"List All Agents","description":"Retrieve a comprehensive list of all agents configured in this OS instance.\n\n**Returns:**\n- Agent metadata (ID, name, description)\n- Model configuration and capabilities\n- Available tools and their configurations\n- Session, knowledge, memory, and reasoning settings\n- Only meaningful (non-default) configurations are included","operationId":"get_agents","responses":{"200":{"description":"List of agents retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentResponse"},"type":"array","title":"Response Get Agents"},"example":[{"id":"main-agent","name":"Main Agent","db_id":"c6bf0644-feb8-4930-a305-380dae5ad6aa","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Details","description":"Retrieve detailed configuration and capabilities of a specific agent.\n\n**Returns comprehensive agent information including:**\n- Model configuration and provider details\n- Complete tool inventory and configurations\n- Session management settings\n- Knowledge base and memory configurations\n- Reasoning capabilities and settings\n- System prompts and response formatting options","operationId":"get_agent","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Agent details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"},"example":{"id":"main-agent","name":"Main Agent","db_id":"9e064c70-6821-4840-a333-ce6230908a70","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Run","description":"Retrieve the status and output of an agent run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Agents"],"summary":"List Agent Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_agent_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Agents"],"summary":"Get Agent Run Checkpoint Snapshot","description":"Return a derived run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_agent_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/resume":{"post":{"tags":["Agents"],"summary":"Resume Agent Run Stream","description":"Resume an SSE stream for an agent run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_agent_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_agent_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Not supported for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs":{"post":{"tags":["Teams"],"summary":"Create Team Run","description":"Execute a team collaboration with multiple agents working together on a task.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_team_run"}}}},"responses":{"200":{"description":"Team run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Teams"],"summary":"List Team Runs","description":"List runs for a team within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_team_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/cancel":{"post":{"tags":["Teams"],"summary":"Cancel Team Run","description":"Cancel a currently executing team run. This will attempt to stop the team's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel team run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/resume":{"post":{"tags":["Teams"],"summary":"Resume Team Run Stream","description":"Resume an SSE stream for a team run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_team_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_team_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory teams. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/continue":{"post":{"tags":["Teams"],"summary":"Continue Team Run","description":"Continue a paused or incomplete team run with updated requirements.\n\n**Use Cases:**\n- Resume execution after tool approval/rejection\n- Provide manual tool execution results\n- Resume after admin approval (requirements can be empty; resolution fetched from DB)\n\n**Requirements Parameter:**\nJSON string containing array of requirement objects with tool execution results.\nCan be empty when an admin-required approval has been resolved.","operationId":"continue_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_team_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid requirements or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Team run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Remote team is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/teams/{team_id}/sessions/{session_id}/fork":{"post":{"tags":["Teams"],"summary":"Fork Team Session","description":"Deep-copy a team session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_team_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams":{"get":{"tags":["Teams"],"summary":"List All Teams","description":"Retrieve a comprehensive list of all teams configured in this OS instance.\n\n**Returns team information including:**\n- Team metadata (ID, name, description, execution mode)\n- Model configuration for team coordination\n- Team member roster with roles and capabilities\n- Knowledge sharing and memory configurations","operationId":"get_teams","responses":{"200":{"description":"List of teams retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamResponse"},"type":"array","title":"Response Get Teams"},"example":[{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"agno_memories","app_url":"/memory/1","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/teams/{team_id}":{"get":{"tags":["Teams"],"summary":"Get Team Details","description":"Retrieve detailed configuration and member information for a specific team.","operationId":"get_team","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"},"example":{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}":{"get":{"tags":["Teams"],"summary":"Get Team Run","description":"Retrieve the status and output of a team run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Teams"],"summary":"List Team Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored team run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_team_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Teams"],"summary":"Get Team Run Checkpoint Snapshot","description":"Return a derived team run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_team_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows":{"get":{"tags":["Workflows"],"summary":"List All Workflows","description":"Retrieve a comprehensive list of all workflows configured in this OS instance.\n\n**Return Information:**\n- Workflow metadata (ID, name, description)\n- Input schema requirements\n- Step sequence and execution flow\n- Associated agents and teams","operationId":"get_workflows","responses":{"200":{"description":"List of workflows retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Response Get Workflows"},"example":[{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/workflows/{workflow_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Details","description":"Retrieve detailed configuration and step information for a specific workflow.","operationId":"get_workflow","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Workflow version to retrieve","title":"Version"},"description":"Workflow version to retrieve"}],"responses":{"200":{"description":"Workflow details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"},"example":{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs":{"post":{"tags":["Workflows"],"summary":"Execute Workflow","description":"Execute a workflow with the provided input data. Workflows can run in streaming or batch mode.\n\n**Execution Modes:**\n- **Streaming (`stream=true`)**: Real-time step-by-step execution updates via SSE\n- **Non-Streaming (`stream=false`)**: Complete workflow execution with final result\n\n**Workflow Execution Process:**\n1. Input validation against workflow schema\n2. Sequential or parallel step execution based on workflow design\n3. Data flow between steps with transformation\n4. Error handling and automatic retries where configured\n5. Final result compilation and response\n\n**Session Management:**\nWorkflows support session continuity for stateful execution across multiple runs.","operationId":"create_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_run"}}}},"responses":{"200":{"description":"Workflow executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid input data or workflow configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Workflow execution error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"List Workflow Runs","description":"List runs for a workflow within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_workflow_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/continue":{"post":{"tags":["Workflows"],"summary":"Continue Workflow Run","description":"Continue a paused workflow run with resolved requirements.\n\n**Use Cases:**\n- Resume after step-level HITL (confirmation, user input, router selection)\n- Resume after executor-level HITL (agent/team tool confirmation within a step)\n\n**Requirements Parameter:**\nJSON string containing the resolved step requirements.","operationId":"continue_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_workflow_run"}}}},"responses":{"200":{"description":"Workflow run continued successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: StepCompleted\ndata: {\"step_name\": \"step1\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid JSON in requirements field","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is not paused. Only PAUSED runs can be continued."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/cancel":{"post":{"tags":["Workflows"],"summary":"Cancel Workflow Run","description":"Cancel a currently executing workflow run, stopping all active steps and cleanup.\n**Note:** Complex workflows with multiple parallel steps may take time to fully cancel.","operationId":"cancel_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found, or the requested run was not found in the caller's session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel workflow run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/resume":{"post":{"tags":["Workflows"],"summary":"Resume Workflow Run Stream","description":"Resume an SSE stream for a workflow run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_workflow_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_workflow_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory workflows. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Run","description":"Retrieve the status and output of a workflow run. Use this to poll for run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/slack/events":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Receives incoming Slack events (messages, mentions, thread starts).\n\n**URL Verification:** On first setup, Slack sends a `url_verification` challenge. The endpoint echoes back the challenge string.\n\n**Event Processing:** Normal events are acknowledged immediately with `{\"status\": \"ok\"}` and processed in the background. This prevents Slack's 3-second retry timeout.\n\n**Retry Handling:** Events with `X-Slack-Retry-Num` header are duplicates and return 200 without reprocessing.\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Event Subscriptions > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for creating a Slack App or use the [manifest](/agent-os/interfaces/slack/setup#2-create-the-slack-app) for quick setup.\n","operationId":"slack_events_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SlackChallengeResponse"},{"$ref":"#/components/schemas/SlackEventResponse"}],"title":"Response Slack Events Simple Agent"}}}},"400":{"description":"Missing Slack headers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured, or the event body is not valid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number (present on retried events)"}]}},"/slack/interactions":{"post":{"tags":["Slack"],"summary":"Slack Interactions","description":"Handles Slack interactive components for Human-in-the-Loop (HITL) workflows.\n\n**Supported Actions:**\n- `row_approve` - Approve a pending tool call\n- `row_reject` - Reject a pending tool call\n- `submit_pause` - Submit form data for a paused workflow\n- `check_status` - Check an admin approval and resume an approved run\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Interactivity & Shortcuts > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for step-by-step instructions or the [HITL guide](/agent-os/interfaces/slack/hitl) for approval workflows.\n","operationId":"slack_interactions_simple_agent","responses":{"200":{"description":"Interaction accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackEventResponse"}}}},"400":{"description":"Missing Slack headers or malformed interaction payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number. Retried interactions return 200 without reprocessing."}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"URL-encoded JSON interaction payload (Slack sends interactive component data as a single form field)"}}}}}}}},"/whatsapp/status":{"get":{"tags":["Whatsapp"],"summary":"Status","operationId":"whatsapp_status_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"WhatsAppStatusResponse","example":{"status":"available"}}}}}}}},"/whatsapp/webhook":{"get":{"tags":["Whatsapp"],"summary":"Whatsapp Verify","description":"Handle WhatsApp webhook verification","operationId":"whatsapp_verify_simple_agent","responses":{"200":{"description":"Webhook challenge accepted","content":{"text/plain":{"schema":{"type":"string"},"example":"challenge-token"}}},"400":{"description":"No challenge was provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid verify token or mode","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Webhook verification is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"hub.mode","in":"query","required":true,"schema":{"type":"string"},"description":"Webhook verification mode. Meta sends `subscribe`."},{"name":"hub.verify_token","in":"query","required":true,"schema":{"type":"string"},"description":"Verification token configured for the WhatsApp interface."},{"name":"hub.challenge","in":"query","required":true,"schema":{"type":"string"},"description":"Challenge returned as plain text after successful verification."}]},"post":{"tags":["Whatsapp"],"summary":"Whatsapp Webhook","description":"Process incoming WhatsApp messages","operationId":"whatsapp_webhook_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppWebhookResponse"}}}},"403":{"description":"Invalid webhook signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Signature validation is not configured, or the JSON body is malformed or is not an object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Hub-Signature-256","in":"header","required":true,"schema":{"type":"string"},"description":"SHA-256 HMAC signature for the raw request body, prefixed with `sha256=`"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}},"/telegram/status":{"get":{"tags":["Telegram"],"summary":"Telegram Status","operationId":"telegram_status_simple-agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramStatusResponse"}}}}}}},"/telegram/webhook":{"post":{"tags":["Telegram"],"summary":"Telegram Webhook","operationId":"telegram_webhook_simple-agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramWebhookResponse"}}}},"403":{"description":"Invalid webhook secret token"}}}},"/agui":{"post":{"tags":["AGUI"],"summary":"Run Agent","operationId":"run_agent_agui_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentInput"}}},"required":true},"responses":{"200":{"description":"Server-sent event stream","content":{"text/event-stream":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/status":{"get":{"tags":["AGUI"],"summary":"Get Status","operationId":"get_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/a2a/agents/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Agent Card","operationId":"get_agent_card_a2a_agents__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Agent","description":"Send a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"A2A is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/agents/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Agent Task","description":"Get the status and result of an agent task by ID.","operationId":"get_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Agent Task","description":"Cancel a running agent task.","operationId":"cancel_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Agent","description":"Stream a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/teams/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Team Card","operationId":"get_team_card_a2a_teams__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Team","description":"Send a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/teams/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Team Task","description":"Get the status and result of a team task by ID.","operationId":"get_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Team Task","description":"Cancel a running team task.","operationId":"cancel_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Team","description":"Stream a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/workflows/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Workflow Card","operationId":"get_workflow_card_a2a_workflows__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/workflows/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Workflow","description":"Send a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/workflows/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Workflow","description":"Stream a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/message/send":{"post":{"tags":["A2A"],"summary":"Send Message","description":"[DEPRECATED] Send a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"send_message","responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/a2a/message/stream":{"post":{"tags":["A2A"],"summary":"Stream Message","description":"[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message","responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/sessions":{"get":{"tags":["Sessions"],"summary":"List Sessions","description":"Retrieve paginated list of sessions with filtering and sorting options. Supports filtering by session type (agent, team, workflow), component, user, and name. Sessions represent conversation histories and execution contexts.","operationId":"get_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types.","title":"Type"},"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types."},{"name":"component_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by component ID (agent/team/workflow ID)","title":"Component Id"},"description":"Filter sessions by component ID (agent/team/workflow ID)"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by user ID","title":"User Id"},"description":"Filter sessions by user ID"},{"name":"session_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by name (partial match)","title":"Session Name"},"description":"Filter sessions by name (partial match)"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of sessions to return per page","default":20,"title":"Limit"},"description":"Number of sessions to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort sessions by","default":"created_at","title":"Sort By"},"description":"Field to sort sessions by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query sessions from","title":"Db Id"},"description":"Database ID to query sessions from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Sessions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_SessionSchema_"},"example":{"session_example":{"summary":"Example session response","value":{"data":[{"session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_state":{},"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}]}}}}}},"400":{"description":"Invalid session type or filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in query parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Sessions"],"summary":"Create New Session","description":"Create a new empty session with optional configuration. Useful for pre-creating sessions with specific session_state, metadata, or other properties before running any agent/team/workflow interactions. The session can later be used by providing its session_id in run requests.","operationId":"create_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SessionType","description":"Type of session to create (agent, team, or workflow)","default":"agent"},"description":"Type of session to create (agent, team, or workflow)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to create session in","title":"Db Id"},"description":"Database ID to create session in"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest","description":"Session configuration data","default":{}}}}},"responses":{"201":{"description":"Session created successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Create Session"},"examples":{"agent_session_example":{"summary":"Example created agent session","value":{"user_id":"user-123","agent_session_id":"new-session-id","session_id":"new-session-id","session_name":"New Session","session_state":{"key":"value"},"metadata":{"key":"value"},"agent_id":"agent-1","created_at":"2025-10-21T12:00:00Z","updated_at":"2025-10-21T12:00:00Z"}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A session with the supplied session_id already exists"},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Multiple Sessions","description":"Delete multiple sessions by their IDs in a single operation. This action cannot be undone and will permanently remove all specified sessions and their runs.","operationId":"delete_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSessionRequest"}}}},"responses":{"204":{"description":"Sessions deleted successfully"},"400":{"description":"Invalid request - session IDs and types length mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["Sessions"],"summary":"Get Session by ID","description":"Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow).","operationId":"get_session_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to retrieve","title":"Session Id"},"description":"Session ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query session from","title":"User Id"},"description":"User ID to query session from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query session from","title":"Db Id"},"description":"Database ID to query session from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query session from","title":"Table"},"description":"Table to query session from"}],"responses":{"200":{"description":"Session details retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Get Session By Id"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Session","description":"Permanently delete a specific session and all its associated runs. This action cannot be undone and will remove all conversation history.","operationId":"delete_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to delete","title":"Session Id"},"description":"Session ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Sessions"],"summary":"Update Session","description":"Update session properties such as session_name, session_state, metadata, or summary. Use this endpoint to modify the session name, update state, add metadata, or update the session summary.","operationId":"update_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to update","title":"Session Id"},"description":"Session ID to update"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID","title":"User Id"},"description":"User ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update operation","title":"Db Id"},"description":"Database ID to use for update operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update operation","title":"Table"},"description":"Table to use for update operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest","description":"Session update data"}}}},"responses":{"200":{"description":"Session updated successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Update Session"},"examples":{"update_summary":{"summary":"Update session summary","value":{"summary":{"summary":"The user discussed project planning with the agent.","updated_at":"2025-10-21T14:30:00Z"}}},"update_metadata":{"summary":"Update session metadata","value":{"metadata":{"tags":["planning","project"],"priority":"high"}}},"update_session_name":{"summary":"Update session name","value":{"session_name":"Updated Session Name"}},"update_session_state":{"summary":"Update session state","value":{"session_state":{"step":"completed","context":"Project planning finished","progress":100}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs":{"get":{"tags":["Sessions"],"summary":"Get Session Runs","description":"Retrieve all runs (executions) for a specific session with optional timestamp filtering. Runs represent individual interactions or executions within a session. Response schema varies based on session type.","operationId":"get_session_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get runs from","title":"Session Id"},"description":"Session ID to get runs from"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query runs from","title":"User Id"},"description":"User ID to query runs from"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created after this Unix timestamp (epoch time in seconds)","title":"Created After"},"description":"Filter runs created after this Unix timestamp (epoch time in seconds)"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created before this Unix timestamp (epoch time in seconds)","title":"Created Before"},"description":"Filter runs created before this Unix timestamp (epoch time in seconds)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query runs from","title":"Db Id"},"description":"Database ID to query runs from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query runs from","title":"Table"},"description":"Table to query runs from"}],"responses":{"200":{"description":"Session runs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}]},"title":"Response Get Session Runs"},"examples":{"completed_run":{"summary":"Example completed run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"","run_input":"Which tools do you have access to?","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","run_response_format":"text","reasoning_content":"","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069},"messages":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-08 17:52:10.101003.\n\n\nYou have the capability to retain memories from previous interactions with the user, but have not had any interactions with the user yet.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757346730},{"content":"Which tools do you have access to?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757346730},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138},"created_at":1757346730}],"events":[{"created_at":1757346730,"event":"RunStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","model":"gpt-4o","model_provider":"OpenAI"},{"created_at":1757346733,"event":"MemoryUpdateStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"MemoryUpdateCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"RunCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","content_type":"str","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069}}],"created_at":"2025-09-08T15:52:10Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found or has no runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs/{run_id}":{"get":{"tags":["Sessions"],"summary":"Get Run by ID","description":"Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run).","operationId":"get_session_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get run from","title":"Session Id"},"description":"Session ID to get run from"},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","description":"Run ID to retrieve","title":"Run Id"},"description":"Run ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query run from","title":"User Id"},"description":"User ID to query run from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query run from","title":"Db Id"},"description":"Database ID to query run from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query run from","title":"Table"},"description":"Table to query run from"}],"responses":{"200":{"description":"Run retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}],"title":"Response Get Session Run"},"examples":{"agent_run":{"summary":"Example agent run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"user_123","run_input":"Which tools do you have access to?","content":"I don't have access to external tools.","created_at":1728499200}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/rename":{"post":{"tags":["Sessions"],"summary":"Rename Session","description":"Update the name of an existing session. Useful for organizing and categorizing sessions with meaningful names for better identification and management.","operationId":"rename_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to rename","title":"Session Id"},"description":"Session ID to rename"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope rename to","title":"User Id"},"description":"User ID to scope rename to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for rename operation","title":"Db Id"},"description":"Database ID to use for rename operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_rename_session"}}}},"responses":{"200":{"description":"Session renamed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Rename Session"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Invalid session name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type or validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories":{"post":{"tags":["Memory"],"summary":"Create Memory","description":"Create a new user memory with content and associated topics. Memories are used to store contextual information for users across conversations.","operationId":"create_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for memory storage","title":"Db Id"},"description":"Database ID to use for memory storage"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for memory storage","title":"Table"},"description":"Table to use for memory storage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"mem-123","memory":"User prefers technical explanations with code examples","topics":["preferences","communication_style","technical"],"user_id":"user-456","created_at":"2024-01-15T10:30:00Z","updated_at":"2024-01-15T10:30:00Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Memory"],"summary":"Delete Multiple Memories","description":"Delete multiple user memories by their IDs in a single operation. This action cannot be undone and all specified memories will be permanently removed.","operationId":"delete_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMemoriesRequest"}}}},"responses":{"204":{"description":"Memories deleted successfully"},"400":{"description":"Invalid request - empty memory_ids list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"List Memories","description":"Retrieve paginated list of user memories with filtering and search capabilities. Filter by user, agent, team, topics, or search within memory content.","operationId":"get_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by user ID","title":"User Id"},"description":"Filter memories by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by agent ID","title":"Agent Id"},"description":"Filter memories by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by team ID","title":"Team Id"},"description":"Filter memories by team ID"},{"name":"search_content","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fuzzy search within memory content","title":"Search Content"},"description":"Fuzzy search within memory content"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of memories to return per page","default":20,"title":"Limit"},"description":"Number of memories to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort memories by","default":"updated_at","title":"Sort By"},"description":"Field to sort memories by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memories from","title":"Db Id"},"description":"Database ID to query memories from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Comma-separated list of topics to filter by","examples":["preferences,technical,communication_style"],"title":"Topics"},"description":"Comma-separated list of topics to filter by"}],"responses":{"200":{"description":"Memories retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserMemorySchema_"},"example":{"data":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories/{memory_id}":{"delete":{"tags":["Memory"],"summary":"Delete Memory","description":"Permanently delete a specific user memory. This action cannot be undone.","operationId":"delete_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to delete","title":"Memory Id"},"description":"Memory ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to delete memory for","title":"User Id"},"description":"User ID to delete memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Memory deleted successfully"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"Get Memory by ID","description":"Retrieve detailed information about a specific user memory by its ID.","operationId":"get_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to retrieve","title":"Memory Id"},"description":"Memory ID to retrieve"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query memory for","title":"User Id"},"description":"User ID to query memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memory from","title":"Db Id"},"description":"Database ID to query memory from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query memory from","title":"Table"},"description":"Table to query memory from"}],"responses":{"200":{"description":"Memory retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Memory"],"summary":"Update Memory","description":"Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values.","operationId":"update_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to update","title":"Memory Id"},"description":"Memory ID to update"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update","title":"Db Id"},"description":"Database ID to use for update"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update","title":"Table"},"description":"Table to use for update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memory_topics":{"get":{"tags":["Memory"],"summary":"Get Memory Topics","description":"Retrieve all unique topics associated with memories in the system. Useful for filtering and categorizing memories by topic.","operationId":"get_memory_topics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter topics for","title":"User Id"},"description":"User ID to filter topics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query topics from","title":"Db Id"},"description":"Database ID to query topics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query topics from","title":"Table"},"description":"Table to query topics from"}],"responses":{"200":{"description":"Memory topics retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Get Memory Topics"},"example":["preferences","communication_style","technical","industry","compliance","code_examples","requirements","healthcare","finance"]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/user_memory_stats":{"get":{"tags":["Memory"],"summary":"Get User Memory Statistics","description":"Retrieve paginated statistics about memory usage by user. Provides insights into user engagement and memory distribution across users.","operationId":"get_user_memory_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of user statistics to return per page","default":20,"title":"Limit"},"description":"Number of user statistics to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter statistics for","title":"User Id"},"description":"User ID to filter statistics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query statistics from","title":"Table"},"description":"Table to query statistics from"}],"responses":{"200":{"description":"User memory statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserStatsSchema_"},"example":{"data":[{"user_id":"123","total_memories":3,"last_memory_updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve user statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/optimize-memories":{"post":{"tags":["Memory"],"summary":"Optimize User Memories","description":"Optimize all memories for a user with the summarize strategy. The operation combines the user's memories into one summary. Set `apply=false` to preview the result without saving it. Specify a custom model as `provider:model_id`, for example `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, or `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`.","operationId":"optimize_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for optimization","title":"Db Id"},"description":"Database ID to use for optimization"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for optimization","title":"Table"},"description":"Table to use for optimization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesRequest"}}}},"responses":{"200":{"description":"Memories optimized successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesResponse"},"example":{"memories":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User has a 3-year-old golden retriever named Max who loves fetch and walks. Lives in San Francisco's Mission district, works as a product manager in tech. Enjoys hiking Bay Area trails, trying new restaurants (especially Japanese, Thai, Mexican), and learning piano for 1.5 years.","topics":["pets","location","work","hobbies","food_preferences"],"user_id":"user2","updated_at":"2025-11-18T10:30:00Z"}],"memories_before":4,"memories_after":1,"tokens_before":450,"tokens_after":180,"tokens_saved":270,"reduction_percentage":60.0}}}},"400":{"description":"Bad request - User ID is required or invalid model string format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No memories found for user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to optimize memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings":{"get":{"tags":["Learnings"],"summary":"List Learnings","description":"List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) \u2014 this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`).","operationId":"list_learnings","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by learning type","title":"Learning Type"},"description":"Filter by learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"namespace","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by namespace","title":"Namespace"},"description":"Filter by namespace"},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity ID","title":"Entity Id"},"description":"Filter by entity ID"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity type","title":"Entity Type"},"description":"Filter by entity type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":100,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used).","title":"Sort By"},"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used)."},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Learnings"],"summary":"Create Learning","description":"Create a new learning record. For the identity-keyed learning types (`user_profile`, `user_memory`, `session_context`, `entity_memory`) the record id is derived deterministically from the identity fields so it reconciles with what the agent reads/writes \u2014 provide those fields (else 422), and if a record already exists the request is rejected with 409 (use PATCH to update it). Other types get a generated id. For a scoped (non-admin) caller, the body's `user_id` must be omitted/null or match the caller (mismatch \u2192 403); admins and unscoped callers may set any `user_id`.","operationId":"create_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users":{"get":{"tags":["Learnings"],"summary":"List Learning Users","description":"List the users that own learning records, with a per-user count and last-updated timestamp. Intended as the entry point for a per-user view: list users here, then drill into a single user's learnings via `GET /learnings?user_id=...`. Records with no owner (`user_id IS NULL`) are excluded. Pass `learning_type` to restrict the grouping to a single store (e.g. `user_profile` or `user_memory`). For a scoped (non-admin) caller results are bound to that user; an explicit `user_id` that differs is rejected with 403. Admins and unscoped callers list all users. Sortable by `user_id` or `last_learning_updated_at` (the default).","operationId":"list_learning_users","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the grouping to a single learning type","title":"Learning Type"},"description":"Restrict the grouping to a single learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the result to a single user","title":"User Id"},"description":"Restrict the result to a single user"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by: user_id or last_learning_updated_at (the default)","title":"Sort By"},"description":"Field to sort by: user_id or last_learning_updated_at (the default)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningUserStats_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users/{user_id}":{"delete":{"tags":["Learnings"],"summary":"Delete Learning User","description":"Delete the learning records owned by a user. By default removes every learning type backed by the agno_learnings table (user_profile, user_memory, and any user-scoped entity records); pass `learning_type` to restrict deletion to a single store. Records with no owner (`user_id IS NULL`) are not affected. For a scoped (non-admin) caller, only their own learnings may be deleted; a different `user_id` is rejected with 403. Admins and unscoped callers may delete any user's learnings. Returns 204 even if the user had no matching records.","operationId":"delete_learning_user","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The user whose learnings should be deleted","title":"User Id"},"description":"The user whose learnings should be deleted"},{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings","title":"Learning Type"},"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/{learning_id}":{"get":{"tags":["Learnings"],"summary":"Get Learning","description":"Retrieve a single learning record by its ID.","operationId":"get_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Learnings"],"summary":"Update Learning","description":"Update a learning record. Only `content` and `metadata` may be modified; identity fields (user_id, agent_id, team_id, etc.) are immutable. Provided fields fully replace the existing values. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) are readable by any caller but may only be modified by an admin.","operationId":"update_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Learnings"],"summary":"Delete Learning","description":"Permanently delete a learning record by its ID. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) may only be deleted by an admin.","operationId":"delete_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs":{"get":{"tags":["Evals"],"summary":"List Evaluation Runs","description":"Retrieve paginated evaluation runs with filtering and sorting options. Filter by agent, team, workflow, model, or evaluation type.","operationId":"get_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Workflow ID","title":"Workflow Id"},"description":"Workflow ID"},{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model ID","title":"Model Id"},"description":"Model ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EvalFilterType"},{"type":"null"}],"description":"Filter type","title":"Type"},"description":"Filter type"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of eval runs to return","default":20,"title":"Limit"},"description":"Number of eval runs to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"eval_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)","examples":["accuracy,agent_as_judge,performance,reliability"],"title":"Eval Types"},"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)"}],"responses":{"200":{"description":"Evaluation runs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_EvalSchema_"},"example":{"data":[{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Evals"],"summary":"Delete Evaluation Runs","description":"Delete multiple evaluation runs by their IDs. This action cannot be undone.","operationId":"delete_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvalRunsRequest"}}}},"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Deletion failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Evals"],"summary":"Execute Evaluation","description":"Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both.","operationId":"run_eval","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for evaluation","title":"Db Id"},"description":"Database ID to use for evaluation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for evaluation","title":"Table"},"description":"Table to use for evaluation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRunInput"}}}},"responses":{"200":{"description":"Evaluation executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"f2b2d72f-e9e2-4f0e-8810-0a7e1ff58614","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Invalid request - provide either agent_id or team_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs/{eval_run_id}":{"get":{"tags":["Evals"],"summary":"Get Evaluation Run","description":"Retrieve detailed results and metrics for a specific evaluation run.","operationId":"get_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query eval run from","title":"Table"},"description":"Table to query eval run from"}],"responses":{"200":{"description":"Evaluation run details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Evals"],"summary":"Update Evaluation Run","description":"Update the name or other properties of an existing evaluation run.","operationId":"update_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvalRunRequest"}}}},"responses":{"200":{"description":"Evaluation run updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update evaluation run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics":{"get":{"tags":["Metrics"],"summary":"Get AgentOS Metrics","description":"Retrieve AgentOS metrics and analytics data for a specified date range. If no date range is specified, returns all available metrics.","operationId":"get_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"starting_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Starting date for metrics range (YYYY-MM-DD format)","title":"Starting Date"},"description":"Starting date for metrics range (YYYY-MM-DD format)"},{"name":"ending_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Ending date for metrics range (YYYY-MM-DD format)","title":"Ending Date"},"description":"Ending date for metrics range (YYYY-MM-DD format)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query metrics from","title":"Db Id"},"description":"Database ID to query metrics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Metrics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"},"example":{"metrics":[{"id":"7bf39658-a00a-484c-8a28-67fd8a9ddb2a","agent_runs_count":5,"agent_sessions_count":5,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":448,"output_tokens":148,"total_tokens":596,"audio_tokens":0,"input_audio_tokens":0,"output_audio_tokens":0,"cached_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":5}],"date":"2025-07-31T00:00:00Z","created_at":"2025-07-31T12:38:52Z","updated_at":"2025-07-31T12:49:01Z"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Metrics retrieval failed. In Agno 2.7.4, invalid or ambiguous database selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics/refresh":{"post":{"tags":["Metrics"],"summary":"Refresh Metrics","description":"Manually trigger recalculation of system metrics from raw data. This operation analyzes system activity logs and regenerates aggregated metrics. Useful for ensuring metrics are up-to-date or after system maintenance.","operationId":"refresh_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for metrics calculation","title":"Db Id"},"description":"Database ID to use for metrics calculation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for metrics calculation","title":"Table"},"description":"Table to use for metrics calculation"}],"responses":{"200":{"description":"Metrics refreshed successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"title":"Response Refresh Metrics"},"example":[{"id":"e77c9531-818b-47a5-99cd-59fed61e5403","agent_runs_count":2,"agent_sessions_count":2,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":256,"output_tokens":441,"total_tokens":697,"audio_total_tokens":0,"audio_input_tokens":0,"audio_output_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":2}],"date":"2025-08-12T00:00:00Z","created_at":"2025-08-12T08:01:47Z","updated_at":"2025-08-12T08:01:47Z"}]}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Refresh failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content":{"post":{"tags":["Knowledge"],"summary":"Upload Content","description":"Upload content to the knowledge base. Supports file uploads, text content, or URLs. Content is processed asynchronously in the background. Supports custom readers and chunking strategies.","operationId":"upload_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_content"}}}},"responses":{"202":{"description":"Content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-123","name":"example-document.pdf","description":"Sample document for processing","metadata":{"category":"documentation","priority":"high"},"status":"processing"}}}},"400":{"description":"Invalid request - malformed metadata or missing content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in form data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"List Content","description":"Retrieve paginated list of all content in the knowledge base with filtering and sorting options. Filter by status, content type, or metadata properties.","operationId":"get_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of content entries to return","default":20,"title":"Limit"},"description":"Number of content entries to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ContentResponseSchema_"},"example":{"data":[{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}],"meta":{"page":1,"limit":20,"total_pages":1,"total_count":2}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete All Content","description":"Permanently remove all content from the knowledge base. This is a destructive operation that cannot be undone. Use with extreme caution.","operationId":"delete_all_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete all content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/remote-content":{"post":{"tags":["Knowledge"],"summary":"Upload Remote Content","description":"Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.","operationId":"upload_remote_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_upload_remote_content"}}}},"responses":{"202":{"description":"Remote content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-456","name":"reports/q1-2024.pdf","description":"Q1 Report from S3","metadata":{"source":"s3-docs"},"status":"processing"}}}},"400":{"description":"Invalid request - unknown config or missing path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}":{"patch":{"tags":["Knowledge"],"summary":"Update Content","description":"Update content name, description, or metadata without re-uploading it. In Agno 2.7.4, this endpoint accepts `reader_id`. Local knowledge validates the value, but the content patch does not apply or persist the reader change.","operationId":"update_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","description":"Content ID","title":"Content Id"},"description":"Content ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_update_content"}}}},"responses":{"200":{"description":"Content updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Invalid request - malformed metadata or invalid reader_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"Get Content by ID","description":"Retrieve detailed information about a specific content item including processing status and metadata.","operationId":"get_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete Content by ID","description":"Permanently remove a specific content item from the knowledge base. This action cannot be undone.","operationId":"delete_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}/status":{"get":{"tags":["Knowledge"],"summary":"Get Content Status","description":"Retrieve the current processing status of a content item. Useful for monitoring asynchronous content processing progress and identifying any processing errors.","operationId":"get_content_status","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content status retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentStatusResponse"},"examples":{"completed":{"summary":"Example completed content status","value":{"status":"completed","status_message":""}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/search":{"post":{"tags":["Knowledge"],"summary":"Search Knowledge","description":"Search the knowledge base for relevant documents using query, filters and search type.","operationId":"search_knowledge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VectorSearchRequestSchema"}}},"required":true},"responses":{"200":{"description":"Search results retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_VectorSearchResult_"},"example":{"data":[{"id":"doc_123","content":"Jordan Mitchell - Software Engineer with skills in JavaScript, React, Python","name":"cv_1","meta_data":{"page":1,"chunk":1},"usage":{"total_tokens":14},"reranking_score":0.95,"content_id":"content_456"}],"meta":{"page":1,"limit":20,"total_pages":2,"total_count":35}}}}},"400":{"description":"Invalid search parameters"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No documents found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/knowledge/config":{"get":{"tags":["Knowledge"],"summary":"Get Config","description":"Retrieve available readers, chunkers, and configuration options for content processing. This endpoint provides metadata about supported file types, processing strategies, and filters.","operationId":"get_knowledge_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Knowledge configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponseSchema"},"example":{"readers":{"website":{"id":"website","name":"WebsiteReader","description":"Reads website files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"firecrawl":{"id":"firecrawl","name":"FirecrawlReader","description":"Reads firecrawl files","chunkers":["SemanticChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"youtube":{"id":"youtube","name":"YoutubeReader","description":"Reads youtube files","chunkers":["RecursiveChunker","AgenticChunker","DocumentChunker","SemanticChunker","FixedSizeChunker"]},"web_search":{"id":"web_search","name":"WebSearchReader","description":"Reads web_search files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"arxiv":{"id":"arxiv","name":"ArxivReader","description":"Reads arxiv files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"csv":{"id":"csv","name":"CsvReader","description":"Reads csv files","chunkers":["RowChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"docling":{"id":"docling","name":"DoclingReader","description":"Converts multiple document formats like PDF, DOCX, PPTX, images, HTML, etc. using IBM's Docling library","chunkers":["AgenticChunker","CodeChunker","DocumentChunker","FixedSizeChunker","RecursiveChunker","SemanticChunker"]},"docx":{"id":"docx","name":"DocxReader","description":"Reads docx files","chunkers":["DocumentChunker","FixedSizeChunker","SemanticChunker","AgenticChunker","RecursiveChunker"]},"gcs":{"id":"gcs","name":"GcsReader","description":"Reads gcs files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"json":{"id":"json","name":"JsonReader","description":"Reads json files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"markdown":{"id":"markdown","name":"MarkdownReader","description":"Reads markdown files","chunkers":["MarkdownChunker","DocumentChunker","AgenticChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"pdf":{"id":"pdf","name":"PdfReader","description":"Reads pdf files","chunkers":["DocumentChunker","FixedSizeChunker","AgenticChunker","SemanticChunker","RecursiveChunker"]},"text":{"id":"text","name":"TextReader","description":"Reads text files","chunkers":["CodeChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]}},"readersForType":{"url":["url","website","firecrawl","youtube","web_search","gcs"],"youtube":["youtube"],"text":["web_search"],"topic":["arxiv"],"file":["csv","gcs"],".csv":["csv","field_labeled_csv","docling"],".xlsx":["excel","docling"],".xls":["excel"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["excel"],"application/vnd.ms-excel":["excel"],".docx":["docx","docling"],".dotx":["docling"],".docm":["docling"],".dotm":["docling"],".pptx":["docling","pptx"],".potx":["docling"],".ppsx":["docling"],".pptm":["docling"],".ppsm":["docling"],".potm":["docling"],".doc":["docx"],".json":["json"],".md":["markdown","docling"],".pdf":["pdf","docling"],".txt":["text"],".html":["docling"],".htm":["docling"],".xhtml":["docling"],".xml":["docling"],".nxml":["docling"],".xbrl":["docling"],".adoc":["docling"],".asciidoc":["docling"],".asc":["docling"],".xlsm":["docling"],".tex":["docling"],".latex":["docling"],".tar.gz":["docling"],".vtt":["docling"],".png":["docling"],".jpeg":["docling"],".jpg":["docling"],".tiff":["docling"],".tif":["docling"],".bmp":["docling"],".webp":["docling"],".wav":["docling"],".mp3":["docling"],".m4a":["docling"],".aac":["docling"],".ogg":["docling"],".flac":["docling"],".mp4":["docling"],".avi":["docling"],".mov":["docling"]},"chunkers":{"AgenticChunker":{"key":"AgenticChunker","name":"AgenticChunker","description":"Chunking strategy that uses an LLM to determine natural breakpoints in the text","metadata":{"chunk_size":5000}},"CodeChunker":{"key":"CodeChunker","name":"CodeChunker","description":"The CodeChunker splits code into chunks based on its structure, leveraging Abstract Syntax Trees (ASTs) to create contextually relevant segments","metadata":{"chunk_size":2048}},"DocumentChunker":{"key":"DocumentChunker","name":"DocumentChunker","description":"A chunking strategy that splits text based on document structure like paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"FixedSizeChunker":{"key":"FixedSizeChunker","name":"FixedSizeChunker","description":"Chunking strategy that splits text into fixed-size chunks with optional overlap","metadata":{"chunk_size":5000,"chunk_overlap":0}},"MarkdownChunker":{"key":"MarkdownChunker","name":"MarkdownChunker","description":"A chunking strategy that splits markdown based on structure like headers, paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RecursiveChunker":{"key":"RecursiveChunker","name":"RecursiveChunker","description":"Chunking strategy that recursively splits text into chunks by finding natural break points","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RowChunker":{"key":"RowChunker","name":"RowChunker","description":"RowChunking chunking strategy","metadata":{}},"SemanticChunker":{"key":"SemanticChunker","name":"SemanticChunker","description":"Chunking strategy that splits text into semantic chunks using chonkie","metadata":{"chunk_size":5000}}},"vector_dbs":[{"id":"vector_db_1","name":"Vector DB 1","description":"Vector DB 1 description","search_types":["vector","keyword","hybrid"]}],"filters":["filter_tag_1","filter_tag2"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources":{"get":{"tags":["Knowledge"],"summary":"List Content Sources","description":"List all registered content sources (S3, GCS, SharePoint, GitHub) for the knowledge base.","operationId":"list_content_sources","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Content sources retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"title":"Response List Content Sources"},"example":[{"id":"company-s3","name":"Company Documents","type":"s3","prefix":"documents/"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources/{source_id}/files":{"get":{"tags":["Knowledge"],"summary":"List Files in Source","description":"List available files and folders in a specific content source. Supports pagination and folder navigation.","operationId":"list_source_files","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the content source","title":"Source Id"},"description":"ID of the content source"},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Path prefix to filter files","title":"Prefix"},"description":"Path prefix to filter files"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of files per page","default":100,"title":"Limit"},"description":"Number of files per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"delimiter","in":"query","required":false,"schema":{"type":"string","description":"Folder delimiter (enables folder grouping)","default":"/","title":"Delimiter"},"description":"Folder delimiter (enables folder grouping)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Files listed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceFilesResponseSchema"},"example":{"source_id":"company-s3","source_name":"Company Documents","prefix":"reports/","folders":[{"prefix":"reports/2024/","name":"2024","is_empty":false}],"files":[{"key":"reports/annual-summary.pdf","name":"annual-summary.pdf","size":102400,"last_modified":"2024-01-15T10:30:00Z","content_type":"application/pdf"}],"meta":{"page":1,"limit":100,"total_pages":1,"total_count":1}}}}},"400":{"description":"Unsupported source type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base or content source not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces":{"get":{"tags":["Traces","Traces"],"summary":"List Traces","description":"Retrieve a paginated list of execution traces with optional filtering.\n\n**Traces provide observability into:**\n- Agent execution flows\n- Model invocations and token usage\n- Tool calls and their results\n- Errors and performance bottlenecks\n\n**Filtering Options:**\n- By run, session, user, or agent ID\n- By status (OK, ERROR)\n- By time range\n\n**Pagination:**\n- Use `page` (1-indexed) and `limit` parameters\n- Response includes pagination metadata (total_pages, total_count, etc.)\n\n**Response Format:**\nReturns summary information for each trace. Use GET `/traces/{trace_id}` for detailed hierarchy.","operationId":"get_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run ID","title":"Run Id"},"description":"Filter by run ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status (OK, ERROR)","title":"Status"},"description":"Filter by status (OK, ERROR)"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of traces per page","default":20,"title":"Limit"},"description":"Number of traces per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"responses":{"200":{"description":"List of traces retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSummary_"},"example":{"data":[{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","total_spans":4,"error_count":0,"input":"What is the stock price of NVDA?","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"agent_stock","created_at":"2025-11-19T10:30:00+00:00"}],"meta":{"page":1,"limit":20,"total_pages":5,"total_count":95}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/filter-schema":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Filter Schema","description":"Returns the available filterable fields, their types, valid operators, and enum values.\n\nThe frontend uses this to dynamically build the filter bar UI:\n- Field dropdown populated from `fields[].key`\n- Operator dropdown changes per field type\n- Value input shows autocomplete for enum fields (e.g., status)\n- Logical operators (AND, OR) for combining clauses","operationId":"get_traces_filter_schema","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterSchemaResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/traces/{trace_id}":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace or Span Detail","description":"Retrieve detailed trace information with hierarchical span tree, or a specific span within the trace.\n\n**Without span_id parameter:**\nReturns the full trace with hierarchical span tree:\n- Trace metadata (ID, status, duration, context)\n- Hierarchical tree of all spans\n- Each span includes timing, status, and type-specific metadata\n\n**With span_id parameter:**\nReturns details for a specific span within the trace:\n- Span metadata (ID, name, type, timing)\n- Status and error information\n- Type-specific attributes (model, tokens, tool params, etc.)\n\n**Span Hierarchy (full trace):**\nThe `tree` field contains root spans, each with potential `children`.\nThis recursive structure represents the execution flow:\n```\nAgent.run (root)\n \u251c\u2500 LLM.invoke\n \u251c\u2500 Tool.execute\n \u2502 \u2514\u2500 LLM.invoke (nested)\n \u2514\u2500 LLM.invoke\n```\n\n**Span Types:**\n- `AGENT`: Agent execution with input/output\n- `LLM`: Model invocations with tokens and prompts\n- `TOOL`: Tool calls with parameters and results","operationId":"get_trace","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}},{"name":"span_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Span ID to retrieve specific span","title":"Span Id"},"description":"Optional: Span ID to retrieve specific span"},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Run ID to retrieve trace for","title":"Run Id"},"description":"Optional: Run ID to retrieve trace for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query trace from","title":"Db Id"},"description":"Database ID to query trace from"}],"responses":{"200":{"description":"Trace or span detail retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TraceDetail"},{"$ref":"#/components/schemas/TraceNode"}],"title":"Response Get Trace"},"examples":{"full_trace":{"summary":"Full trace with hierarchy (no span_id)","value":{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","end_time":"2025-11-19T10:30:01.200000+00:00","total_spans":4,"error_count":0,"input":"What is Tesla stock price?","output":"The current price of Tesla (TSLA) is $245.67.","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"stock_agent","created_at":"2025-11-19T10:30:00+00:00","tree":[{"id":"span1","name":"Stock_Price_Agent.run","type":"AGENT","duration":"1.2s","status":"OK","spans":[]}]}},"single_span":{"summary":"Single span detail (with span_id)","value":{"id":"span2","name":"gpt-4o-mini.invoke","type":"LLM","duration":"800ms","status":"OK","metadata":{"model":"gpt-4o-mini","input_tokens":120}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Trace or span not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/trace_session_stats":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Statistics by Session","description":"Retrieve aggregated trace statistics grouped by session ID with pagination.\n\n**Provides insights into:**\n- Total traces per session\n- First and last trace timestamps per session\n- Associated user and agent information\n\n**Filtering Options:**\n- By user ID\n- By agent ID\n\n**Use Cases:**\n- Monitor session-level activity\n- Track conversation flows\n- Identify high-activity sessions\n- Analyze user engagement patterns","operationId":"get_trace_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of sessions per page","default":20,"title":"Limit"},"description":"Number of sessions per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"}],"responses":{"200":{"description":"Trace statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"},"example":{"data":[{"session_id":"37029bc6-1794-4ba8-a629-1efedc53dcad","user_id":"kaustubh@agno.com","agent_id":"hackernews-agent","total_traces":5,"first_trace_at":"2025-11-19T10:15:16+00:00","last_trace_at":"2025-11-19T10:21:30+00:00"}],"meta":{"page":1,"limit":20,"total_pages":3,"total_count":45}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/search":{"post":{"tags":["Traces","Traces"],"summary":"Search Traces with Advanced Filters","description":"Search traces using the FilterExpr DSL for complex, composable queries.\n\n**Group By Mode:**\n- `run` (default): Returns `PaginatedResponse[TraceDetail]` with full span trees\n- `session`: Returns `PaginatedResponse[TraceSessionStats]` with aggregated session stats\n\n**Supported Operators:**\n- Comparison: `EQ`, `NEQ`, `GT`, `GTE`, `LT`, `LTE`\n- Inclusion: `IN`\n- String matching: `CONTAINS` (case-insensitive substring), `STARTSWITH` (prefix)\n- Logical: `AND`, `OR`, `NOT`\n\n**Filterable Fields:**\ntrace_id, name, status, start_time, end_time, duration_ms, run_id, session_id, user_id, agent_id, team_id, workflow_id, created_at\n\n**Example Request Body (runs):**\n```json\n{\n \"filter\": {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n}\n```\n\n**Example Request Body (sessions):**\n```json\n{\n \"filter\": {\"op\": \"CONTAINS\", \"key\": \"agent_id\", \"value\": \"stock\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n}\n```","operationId":"search_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PaginatedResponse_TraceDetail_"},{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"}],"title":"Response Search Traces"}}}},"400":{"description":"Invalid filter expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/all/migrate":{"post":{"tags":["Database"],"summary":"Migrate All Databases","description":"Migrate all database schemas to the given target version. If a target version is not provided, all databases will be migrated to the latest version.","operationId":"migrate_all_databases","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"All databases migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"All databases migrated successfully to version 3.0.0"}}}},"207":{"description":"Some database migrations failed","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"},"failed":{"type":"object","additionalProperties":{"type":"string"},"title":"Failed"}},"type":"object","required":["message","failed"],"title":"PartialMigrationResponse"},"example":{"message":"Migrated 2/3 databases to latest version","failed":{"archive-db":"Migration failed"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/{db_id}/migrate":{"post":{"tags":["Database"],"summary":"Migrate Database","description":"Migrate the given database schema to the given target version. If a target version is not provided, the database will be migrated to the latest version.","operationId":"migrate_database","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"Database migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"Database migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Database not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components":{"get":{"tags":["Components"],"summary":"List Components","description":"Retrieve a paginated list of components with optional filtering by type.","operationId":"list_components","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ComponentType"},{"type":"null"}],"description":"Filter by type: agent, team, workflow","title":"Component Type"},"description":"Filter by type: agent, team, workflow"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ComponentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Component","description":"Create a new component (agent, team, or workflow) with initial config.","operationId":"create_component","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}":{"get":{"tags":["Components"],"summary":"Get Component","description":"Retrieve a component by ID.","operationId":"get_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Components"],"summary":"Update Component","description":"Partially update a component by ID.","operationId":"update_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentUpdate","description":"Component fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Component","description":"Soft-delete a component by ID. Component configs and links remain stored.","operationId":"delete_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs":{"get":{"tags":["Components"],"summary":"List Configs","description":"List all configs for a component.","operationId":"list_configs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"include_config","in":"query","required":false,"schema":{"type":"boolean","description":"Include full config blob","default":true,"title":"Include Config"},"description":"Include full config blob"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComponentConfigResponse"},"title":"Response List Configs"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Config Version","description":"Create a new config version for a component.","operationId":"create_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigCreate","description":"Config data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}":{"patch":{"tags":["Components"],"summary":"Update Draft Config","description":"Update an existing draft config. Cannot update published configs.","operationId":"update_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigUpdate","description":"Config fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Components"],"summary":"Get Config Version","description":"Get a specific config version by number.","operationId":"get_config_version","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Config Version","description":"Delete a specific config version. Agno v2.7.4 rejects the current version. Synchronous SQLite and PostgreSQL storage allow deletion of a published non-current version.","operationId":"delete_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/current":{"get":{"tags":["Components"],"summary":"Get Current Config","description":"Get the current config version for a component.","operationId":"get_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}/set-current":{"post":{"tags":["Components"],"summary":"Set Current Config Version","description":"Set a published config version as current (for rollback).","operationId":"set_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/schedules":{"get":{"tags":["Schedules"],"summary":"List Schedules","operationId":"list_schedules_schedules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"post":{"tags":["Schedules"],"summary":"Create Schedule","operationId":"create_schedule_schedules_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule","operationId":"get_schedule_schedules__schedule_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"patch":{"tags":["Schedules"],"summary":"Update Schedule","operationId":"update_schedule_schedules__schedule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Schedules"],"summary":"Delete Schedule","operationId":"delete_schedule_schedules__schedule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/enable":{"post":{"tags":["Schedules"],"summary":"Enable Schedule","operationId":"enable_schedule_schedules__schedule_id__enable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/disable":{"post":{"tags":["Schedules"],"summary":"Disable Schedule","operationId":"disable_schedule_schedules__schedule_id__disable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/trigger":{"post":{"tags":["Schedules"],"summary":"Trigger Schedule","operationId":"trigger_schedule_schedules__schedule_id__trigger_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Schedule is disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler is not running or storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs":{"get":{"tags":["Schedules"],"summary":"List Schedule Runs","operationId":"list_schedule_runs_schedules__schedule_id__runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleRunResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs/{run_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule Run","operationId":"get_schedule_run_schedules__schedule_id__runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals":{"get":{"tags":["Approvals"],"summary":"List Approvals","operationId":"list_approvals_approvals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","approved","rejected","expired","cancelled"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"source_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"}},{"name":"approval_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["required","audit"],"type":"string"},{"type":"null"}],"title":"Approval Type"}},{"name":"pause_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"schedule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"}},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ApprovalResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approvals could not be listed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/count":{"get":{"tags":["Approvals"],"summary":"Get Approval Count","operationId":"get_approval_count_approvals_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalCountResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval count could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/status":{"get":{"tags":["Approvals"],"summary":"Get Approval Status","operationId":"get_approval_status_approvals__approval_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalStatusResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval status could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}":{"get":{"tags":["Approvals"],"summary":"Get Approval","operationId":"get_approval_approvals__approval_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Approvals"],"summary":"Delete Approval","operationId":"delete_approval_approvals__approval_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval is not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/resolve":{"post":{"tags":["Approvals"],"summary":"Resolve Approval","operationId":"resolve_approval_approvals__approval_id__resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResolve"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Approval has already been resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts":{"post":{"tags":["Service Accounts"],"summary":"Create Service Account","description":"Mint a service account token. The plaintext token is returned exactly once.","operationId":"create_service_account_service_accounts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreateResponse"}}}},"400":{"description":"Requested scopes are invalid, or privileged scopes were not explicitly allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"An active service account with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"get":{"tags":["Service Accounts"],"summary":"List Service Accounts","description":"List service accounts. Returns metadata and display prefixes only - never hashes or plaintext.","operationId":"list_service_accounts_service_accounts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Revoked"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ServiceAccountResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts/{service_account_id}":{"delete":{"tags":["Service Accounts"],"summary":"Revoke Service Account","description":"Revoke an existing service account.\n\nTakes effect immediately on this worker (the local verification cache entry is evicted) and within the cache TTL on other workers.","operationId":"revoke_service_account_service_accounts__service_account_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"service_account_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Service account not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/registry":{"get":{"tags":["Registry"],"summary":"List Registry","description":"List all resources in the registry with optional filtering.","operationId":"list_registry","security":[{"HTTPBearer":[]}],"parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RegistryResourceType"},{"type":"null"}],"description":"Filter by resource type","title":"Resource Type"},"description":"Filter by resource type"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (partial match)","title":"Name"},"description":"Filter by name (partial match)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_RegistryContentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}}},"components":{"schemas":{"A2ARequest_DataPart":{"description":"Represents a structured data segment (e.g., JSON) within a message or artifact.","properties":{"data":{"additionalProperties":true,"title":"Data","type":"object"},"kind":{"const":"data","default":"data","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["data"],"title":"DataPart","type":"object"},"A2ARequest_FilePart":{"description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI.","properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_FileWithBytes"},{"$ref":"#/components/schemas/A2ARequest_FileWithUri"}],"title":"File"},"kind":{"const":"file","default":"file","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["file"],"title":"FilePart","type":"object"},"A2ARequest_FileWithBytes":{"description":"Represents a file with its content provided directly as a base64-encoded string.","properties":{"bytes":{"title":"Bytes","type":"string"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"}},"required":["bytes"],"title":"FileWithBytes","type":"object"},"A2ARequest_FileWithUri":{"description":"Represents a file with its content located at a specific URI.","properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"FileWithUri","type":"object"},"A2ARequest_Message":{"description":"Represents a single message in the conversation between a user and an agent.","properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"kind":{"const":"message","default":"message","title":"Kind","type":"string"},"messageId":{"title":"Messageid","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/A2ARequest_Part"},"title":"Parts","type":"array"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/A2ARequest_Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Taskid"}},"required":["messageId","parts","role"],"title":"Message","type":"object"},"A2ARequest_MessageSendConfiguration":{"description":"Defines configuration options for a `message/send` or `message/stream` request.","properties":{"acceptedOutputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Acceptedoutputmodes"},"blocking":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Blocking"},"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"pushNotificationConfig":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationConfig"},{"type":"null"}],"default":null}},"title":"MessageSendConfiguration","type":"object"},"A2ARequest_MessageSendParams":{"description":"Defines the parameters for a request to send a message to an agent. This can be used\nto create a new task, continue an existing one, or restart a task.","properties":{"configuration":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_MessageSendConfiguration"},{"type":"null"}],"default":null},"message":{"$ref":"#/components/schemas/A2ARequest_Message"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["message"],"title":"MessageSendParams","type":"object"},"A2ARequest_Part":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_TextPart"},{"$ref":"#/components/schemas/A2ARequest_FilePart"},{"$ref":"#/components/schemas/A2ARequest_DataPart"}],"title":"Part"},"A2ARequest_PushNotificationAuthenticationInfo":{"description":"Defines authentication details for a push notification endpoint.","properties":{"credentials":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Credentials"},"schemes":{"items":{"type":"string"},"title":"Schemes","type":"array"}},"required":["schemes"],"title":"PushNotificationAuthenticationInfo","type":"object"},"A2ARequest_PushNotificationConfig":{"description":"Defines the configuration for setting up push notifications for task updates.","properties":{"authentication":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationAuthenticationInfo"},{"type":"null"}],"default":null},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Id"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Token"},"url":{"title":"Url","type":"string"}},"required":["url"],"title":"PushNotificationConfig","type":"object"},"A2ARequest_Role":{"description":"Identifies the sender of the message. `user` for the client, `agent` for the service.","enum":["agent","user"],"title":"Role","type":"string"},"A2ARequest_TextPart":{"description":"Represents a text segment within a message or artifact.","properties":{"kind":{"const":"text","default":"text","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"text":{"title":"Text","type":"string"}},"required":["text"],"title":"TextPart","type":"object"},"ActivityMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"activity","title":"Role","default":"activity"},"activityType":{"type":"string","title":"Activitytype"},"content":{"additionalProperties":true,"type":"object","title":"Content"}},"additionalProperties":true,"type":"object","required":["id","activityType","content"],"title":"ActivityMessage","description":"An activity progress message emitted between chat messages."},"AgentResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"extra_messages":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Messages"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"AgentResponse"},"AgentSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_session_id":{"type":"string","title":"Agent Session Id","description":"Unique agent session identifier"},"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID used in this session"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"agent_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Data","description":"Agent-specific data"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["agent_session_id","session_id","session_name"],"title":"AgentSessionDetailSchema"},"AgentSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the agent"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the agent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the agent"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the agent"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","title":"AgentSummaryResponse"},"ApprovalCountResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"ApprovalCountResponse","description":"Response model for pending approval count."},"ApprovalResolve":{"properties":{"status":{"type":"string","pattern":"^(approved|rejected)$","title":"Status"},"resolved_by":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Resolved By"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"}},"type":"object","required":["status"],"title":"ApprovalResolve","description":"Request body for resolving (approve/reject) an approval."},"ApprovalResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"},"source_type":{"type":"string","title":"Source Type"},"approval_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Type"},"pause_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Args"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"},"schedule_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Run Id"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"},"run_status":{"anyOf":[{"$ref":"#/components/schemas/RunStatus"},{"type":"null"}]}},"type":"object","required":["id","run_id","session_id","status","source_type"],"title":"ApprovalResponse","description":"Response model for a single approval."},"ApprovalStatusResponse":{"properties":{"approval_id":{"type":"string","title":"Approval Id"},"status":{"type":"string","title":"Status"},"run_id":{"type":"string","title":"Run Id"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"}},"type":"object","required":["approval_id","status","run_id"],"title":"ApprovalStatusResponse","description":"Lightweight response model for polling approval status."},"Artifact":{"properties":{"artifactId":{"type":"string","title":"Artifactid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"}},"type":"object","required":["artifactId","parts"],"title":"Artifact","description":"Represents a file, data structure, or other resource generated by an agent during a task."},"AssistantMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"assistant","title":"Role","default":"assistant"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"},"toolCalls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},{"type":"null"}],"title":"Toolcalls"}},"additionalProperties":true,"type":"object","required":["id"],"title":"AssistantMessage","description":"An assistant message."},"AudioInputContent":{"properties":{"type":{"type":"string","const":"audio","title":"Type","default":"audio"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"AudioInputContent","description":"An audio input content fragment."},"BackgroundRunResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the background run."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the background run."},"status":{"type":"string","title":"Status","description":"Initial run status."}},"type":"object","required":["run_id","session_id","status"],"title":"BackgroundRunResponse"},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"BadRequestResponse","example":{"detail":"Bad request","error_code":"BAD_REQUEST"}},"BinaryInputContent":{"properties":{"type":{"type":"string","const":"binary","title":"Type","default":"binary"},"mimeType":{"type":"string","title":"Mimetype"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"additionalProperties":true,"type":"object","required":["mimeType"],"title":"BinaryInputContent","description":"A deprecated binary payload reference in a multimodal user message."},"Body_continue_agent_run":{"properties":{"tools":{"type":"string","title":"Tools","description":"JSON string of tool call results to continue the paused run","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Optional new user-message text to append to the run before resuming. Use for continuing a COMPLETED run with a follow-up, or adding context to a RUNNING/ERROR resume."},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","description":"When true, clone the run with a new ``run_id`` before resuming. The original is untouched; the clone becomes a sibling within the same session, with ``forked_from_run_id`` set.","default":false},"regenerate":{"type":"boolean","title":"Regenerate","description":"Sugar: regenerate the last response of this run. Auto-computes ``continue_from='last_user'`` to land just after the last user message. Pair with ``additional_instructions`` to steer the new output. By default the original response is hidden from history (replaced); pass ``replace_original=false`` to keep both the original and the regenerated response visible side by side.","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original","description":"Only valid with ``regenerate=true``. Controls history visibility of the original response; the original run is always retained in storage. Defaults to true: the original is marked REGENERATED and hidden from history so the new response replaces it. Pass false to keep both the original and regenerated responses visible."},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions","description":"Only valid with ``regenerate=true``: extra guidance appended as a user message before re-generation. Friendly alias for ``input``."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run continue in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false}},"type":"object","title":"Body_continue_agent_run"},"Body_continue_team_run":{"properties":{"requirements":{"type":"string","title":"Requirements","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input"},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","default":false},"regenerate":{"type":"boolean","title":"Regenerate","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original"},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"stream":{"type":"boolean","title":"Stream","default":true},"background":{"type":"boolean","title":"Background","default":false}},"type":"object","title":"Body_continue_team_run"},"Body_continue_workflow_run":{"properties":{"step_requirements":{"type":"string","title":"Step Requirements","description":"JSON string of step requirement objects with resolution status","default":""},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}},"type":"object","title":"Body_continue_workflow_run"},"Body_create_agent_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the agent"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Agent version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic agent construction"}},"type":"object","required":["message"],"title":"Body_create_agent_run"},"Body_create_team_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the team"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"monitor":{"type":"boolean","title":"Monitor","description":"Enable monitoring and logging for this run","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Team version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic team construction"}},"type":"object","required":["message"],"title":"Body_create_team_run"},"Body_create_workflow_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the workflow"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run workflow in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Workflow version to use for this run"},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow construction"}},"type":"object","required":["message"],"title":"Body_create_workflow_run"},"Body_rename_session":{"properties":{"session_name":{"type":"string","title":"Session Name","description":"New name for the session"}},"type":"object","required":["session_name"],"title":"Body_rename_session"},"Body_resume_agent_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_agent_run_stream"},"Body_resume_team_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_team_run_stream"},"Body_resume_workflow_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_workflow_run_stream"},"Body_update_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"Content metadata as JSON string"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"Reader ID. In Agno 2.7.4, local knowledge validates the value, but the content patch does not apply or persist the reader change."}},"type":"object","title":"Body_update_content"},"Body_upload_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated from file/URL if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description for context"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"URL to fetch content from (JSON array or single URL string)"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object for additional content properties"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File","description":"File to upload for processing"},"text_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Content","description":"Raw text content to process"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for content processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply during processing"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size to use for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap to use for processing"}},"type":"object","title":"Body_upload_content"},"Body_upload_remote_content":{"properties":{"config_id":{"type":"string","title":"Config Id","description":"ID of the configured remote content source (from /knowledge/config)"},"path":{"type":"string","title":"Path","description":"Path to file or folder in the remote source"},"source_params":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Params","description":"JSON object of per-request parameters forwarded to the source's factory. Used for provider-specific routing that shouldn't be baked into the config. Currently supported keys: GitHub accepts 'repo' ('owner/repo'), letting one configured GitHub source serve multiple repositories the credentials can access."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap for processing"}},"type":"object","required":["config_id","path"],"title":"Body_upload_remote_content"},"ChatConfig":{"properties":{"quick_prompts":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Quick Prompts"}},"type":"object","required":["quick_prompts"],"title":"ChatConfig","description":"Configuration for the Chat page of the AgentOS"},"ChunkerSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["key"],"title":"ChunkerSchema"},"ComponentConfigResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"version":{"type":"integer","title":"Version"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"type":"string","title":"Stage"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","version","stage","config","created_at"],"title":"ComponentConfigResponse"},"ComponentCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Display name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id","description":"Unique identifier for the entity. Auto-generated from name if not provided."},"component_type":{"$ref":"#/components/schemas/ComponentType","description":"Type of entity: agent, team, or workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config","description":"Optional configuration"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["name","component_type"],"title":"ComponentCreate"},"ComponentResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"component_type":{"$ref":"#/components/schemas/ComponentType"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","component_type","created_at"],"title":"ComponentResponse"},"ComponentType":{"type":"string","enum":["agent","team","workflow"],"title":"ComponentType"},"ComponentUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"component_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"}},"type":"object","title":"ComponentUpdate"},"ConfigCreate":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config","description":"The configuration data"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Optional version number"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links","description":"Optional links to child components"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["config"],"title":"ConfigCreate"},"ConfigResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the OS instance"},"available_models":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Models","description":"List of available models"},"os_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Database","description":"ID of the database used for the OS instance"},"databases":{"items":{"type":"string"},"type":"array","title":"Databases","description":"List of database IDs used by the components of the OS instance"},"chat":{"anyOf":[{"$ref":"#/components/schemas/ChatConfig"},{"type":"null"}],"description":"Chat configuration"},"manifest":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Manifest"},"type":"object"},{"type":"null"}],"title":"Manifest","description":"Per-entity UI metadata keyed by agent/team/workflow id"},"session":{"anyOf":[{"$ref":"#/components/schemas/SessionConfig"},{"type":"null"}],"description":"Session configuration"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/MetricsConfig"},{"type":"null"}],"description":"Metrics configuration"},"memory":{"anyOf":[{"$ref":"#/components/schemas/MemoryConfig"},{"type":"null"}],"description":"Memory configuration"},"learning":{"anyOf":[{"$ref":"#/components/schemas/LearningConfig"},{"type":"null"}],"description":"Learning configuration"},"knowledge":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeConfig"},{"type":"null"}],"description":"Knowledge configuration"},"evals":{"anyOf":[{"$ref":"#/components/schemas/EvalsConfig"},{"type":"null"}],"description":"Evaluations configuration"},"traces":{"anyOf":[{"$ref":"#/components/schemas/TracesConfig"},{"type":"null"}],"description":"Traces configuration"},"agents":{"items":{"$ref":"#/components/schemas/AgentSummaryResponse"},"type":"array","title":"Agents","description":"List of registered agents"},"teams":{"items":{"$ref":"#/components/schemas/TeamSummaryResponse"},"type":"array","title":"Teams","description":"List of registered teams"},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Workflows","description":"List of registered workflows"},"interfaces":{"items":{"$ref":"#/components/schemas/InterfaceResponse"},"type":"array","title":"Interfaces","description":"List of available interfaces"}},"type":"object","required":["os_id","databases","agents","teams","workflows","interfaces"],"title":"ConfigResponse","description":"Response schema for the general config endpoint"},"ConfigResponseSchema":{"properties":{"readers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ReaderSchema"},"type":"object"},{"type":"null"}],"title":"Readers","description":"Available content readers"},"readersForType":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Readersfortype","description":"Mapping of content types to reader IDs"},"chunkers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ChunkerSchema"},"type":"object"},{"type":"null"}],"title":"Chunkers","description":"Available chunking strategies"},"filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filters","description":"Available filter tags"},"vector_dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/VectorDbSchema"},"type":"array"},{"type":"null"}],"title":"Vector Dbs","description":"Configured vector databases"},"remote_content_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"type":"array"},{"type":"null"}],"title":"Remote Content Sources","description":"Configured remote content sources (S3, GCS, SharePoint, GitHub)"}},"type":"object","title":"ConfigResponseSchema"},"ConfigUpdate":{"properties":{"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","title":"ConfigUpdate"},"ConflictResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ConflictResponse","example":{"detail":"Resource conflict"}},"ContentResponseSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the content"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"MIME type of the content"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"},"linked_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linked To","description":"ID of related content if linked"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata as key-value pairs"},"access_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Access Count","description":"Number of times content has been accessed"},"status":{"anyOf":[{"$ref":"#/components/schemas/ContentStatus"},{"type":"null"}],"description":"Processing status of the content"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message","description":"Status message or error details"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when content was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when content was last updated"}},"type":"object","required":["id"],"title":"ContentResponseSchema"},"ContentStatus":{"type":"string","enum":["processing","completed","failed"],"title":"ContentStatus","description":"Enumeration of possible content processing statuses."},"ContentStatusResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Content ID"},"status":{"$ref":"#/components/schemas/ContentStatus","description":"Current processing status of the content"},"status_message":{"type":"string","title":"Status Message","description":"Status message or error details","default":""}},"type":"object","required":["status"],"title":"ContentStatusResponse","description":"Response model for content status endpoint."},"Context":{"properties":{"description":{"type":"string","title":"Description"},"value":{"type":"string","title":"Value"}},"additionalProperties":true,"type":"object","required":["description","value"],"title":"Context","description":"Additional context for the agent."},"CreateSessionRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session ID (generated if not provided)"},"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Initial session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"}},"type":"object","title":"CreateSessionRequest"},"DataPart":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data"},"kind":{"type":"string","const":"data","title":"Kind","default":"data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["data"],"title":"DataPart","description":"Represents a structured data segment (e.g., JSON) within a message or artifact."},"DatabaseConfig_EvalsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/EvalsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[EvalsDomainConfig]"},"DatabaseConfig_LearningDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/LearningDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[LearningDomainConfig]"},"DatabaseConfig_MemoryDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MemoryDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MemoryDomainConfig]"},"DatabaseConfig_MetricsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MetricsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MetricsDomainConfig]"},"DatabaseConfig_SessionDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/SessionDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[SessionDomainConfig]"},"DatabaseConfig_TracesDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/TracesDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[TracesDomainConfig]"},"DayAggregatedMetrics":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the metrics record"},"agent_runs_count":{"type":"integer","minimum":0.0,"title":"Agent Runs Count","description":"Total number of agent runs"},"agent_sessions_count":{"type":"integer","minimum":0.0,"title":"Agent Sessions Count","description":"Total number of agent sessions"},"team_runs_count":{"type":"integer","minimum":0.0,"title":"Team Runs Count","description":"Total number of team runs"},"team_sessions_count":{"type":"integer","minimum":0.0,"title":"Team Sessions Count","description":"Total number of team sessions"},"workflow_runs_count":{"type":"integer","minimum":0.0,"title":"Workflow Runs Count","description":"Total number of workflow runs"},"workflow_sessions_count":{"type":"integer","minimum":0.0,"title":"Workflow Sessions Count","description":"Total number of workflow sessions"},"users_count":{"type":"integer","minimum":0.0,"title":"Users Count","description":"Total number of unique users"},"token_metrics":{"additionalProperties":true,"type":"object","title":"Token Metrics","description":"Token usage metrics (input, output, cached, etc.)"},"model_metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Model Metrics","description":"Metrics grouped by model (model_id, provider, count)"},"date":{"type":"string","format":"date-time","title":"Date","description":"Date for which these metrics are aggregated"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when metrics were created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when metrics were last updated"}},"type":"object","required":["id","agent_runs_count","agent_sessions_count","team_runs_count","team_sessions_count","workflow_runs_count","workflow_sessions_count","users_count","token_metrics","model_metrics","date","created_at","updated_at"],"title":"DayAggregatedMetrics","description":"Aggregated metrics for a given day"},"DeleteEvalRunsRequest":{"properties":{"eval_run_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Eval Run Ids","description":"List of evaluation run IDs to delete"}},"type":"object","required":["eval_run_ids"],"title":"DeleteEvalRunsRequest"},"DeleteMemoriesRequest":{"properties":{"memory_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Memory Ids","description":"List of memory IDs to delete"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID to filter memories for deletion"}},"type":"object","required":["memory_ids"],"title":"DeleteMemoriesRequest"},"DeleteSessionRequest":{"properties":{"session_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Session Ids","description":"List of session IDs to delete"},"session_types":{"items":{"$ref":"#/components/schemas/SessionType"},"type":"array","minItems":1,"title":"Session Types","description":"Types of sessions to delete"}},"type":"object","required":["session_ids","session_types"],"title":"DeleteSessionRequest"},"DeveloperMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"developer","title":"Role","default":"developer"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"DeveloperMessage","description":"A developer message."},"DocumentInputContent":{"properties":{"type":{"type":"string","const":"document","title":"Type","default":"document"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"DocumentInputContent","description":"A document input content fragment."},"EvalFilterType":{"type":"string","enum":["agent","team","workflow"],"title":"EvalFilterType"},"EvalRunInput":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID to evaluate"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID to evaluate"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID to use for evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation to run (accuracy, performance, or reliability)"},"input":{"type":"string","minLength":1,"title":"Input","description":"Input text/query for the evaluation"},"additional_guidelines":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Guidelines","description":"Additional guidelines for the evaluation"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for the evaluation"},"num_iterations":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Num Iterations","description":"Number of times to run the evaluation","default":1},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for this evaluation run"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output","description":"Expected output for accuracy evaluation"},"criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criteria","description":"Evaluation criteria for agent-as-judge evaluation"},"scoring_strategy":{"anyOf":[{"type":"string","enum":["numeric","binary"]},{"type":"null"}],"title":"Scoring Strategy","description":"Scoring strategy: 'numeric' (1-10 with threshold) or 'binary' (PASS/FAIL)","default":"binary"},"threshold":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Threshold","description":"Score threshold for pass/fail (1-10), only used with numeric scoring","default":7},"warmup_runs":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Warmup Runs","description":"Number of warmup runs before measuring performance","default":0},"expected_tool_calls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expected Tool Calls","description":"Expected tool calls for reliability evaluation"},"allow_additional_tool_calls":{"type":"boolean","title":"Allow Additional Tool Calls","description":"When True, tool calls not in expected_tool_calls are allowed (subset matching)","default":false},"expected_tool_call_arguments":{"anyOf":[{"additionalProperties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Expected Tool Call Arguments","description":"Expected arguments for specific tool calls, e.g. {\"tool_name\": {\"arg_name\": \"expected_value\"}} or {\"tool_name\": [{\"arg_name\": \"val1\"}, {\"arg_name\": \"val2\"}]}"}},"type":"object","required":["eval_type","input"],"title":"EvalRunInput"},"EvalSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the evaluation run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that was evaluated"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID used in evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that was evaluated"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was evaluated"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the evaluation run"},"evaluated_component_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluated Component Name","description":"Name of the evaluated component"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation (accuracy, performance, or reliability)"},"eval_data":{"additionalProperties":true,"type":"object","title":"Eval Data","description":"Evaluation results and metrics"},"eval_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eval Input","description":"Input parameters used for the evaluation"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when evaluation was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when evaluation was last updated"}},"type":"object","required":["id","eval_type","eval_data"],"title":"EvalSchema"},"EvalType":{"type":"string","enum":["accuracy","agent_as_judge","performance","reliability"],"title":"EvalType"},"EvalsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_EvalsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"EvalsConfig","description":"Configuration for the Evals domain of the AgentOS"},"EvalsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"EvalsDomainConfig","description":"Configuration for the Evals domain of the AgentOS"},"FilePart":{"properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/FileWithBytes"},{"$ref":"#/components/schemas/FileWithUri"}],"title":"File"},"kind":{"type":"string","const":"file","title":"Kind","default":"file"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["file"],"title":"FilePart","description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI."},"FileWithBytes":{"properties":{"bytes":{"type":"string","title":"Bytes"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["bytes"],"title":"FileWithBytes","description":"Represents a file with its content provided directly as a base64-encoded string."},"FileWithUri":{"properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uri":{"type":"string","title":"Uri"}},"type":"object","required":["uri"],"title":"FileWithUri","description":"Represents a file with its content located at a specific URI."},"FilterFieldSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Column/field name used in filter expressions"},"label":{"type":"string","title":"Label","description":"Human-readable display label for the UI"},"type":{"type":"string","title":"Type","description":"Field data type: string, number, datetime, enum"},"operators":{"items":{"type":"string"},"type":"array","title":"Operators","description":"List of valid filter operators for this field"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values","description":"Allowed enum values (for autocomplete/dropdown)"}},"type":"object","required":["key","label","type","operators"],"title":"FilterFieldSchema","description":"Schema describing a single filterable field for the frontend filter bar."},"FilterSchemaResponse":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FilterFieldSchema"},"type":"array","title":"Fields","description":"Available filterable fields"},"logical_operators":{"items":{"type":"string"},"type":"array","title":"Logical Operators","description":"Logical operators for combining filter clauses","default":["AND","OR"]}},"type":"object","required":["fields"],"title":"FilterSchemaResponse","description":"Response for the filter schema endpoint. Tells the FE what fields, operators, and values are available."},"ForbiddenResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ForbiddenResponse","example":{"detail":"Insufficient permissions"}},"FunctionCall":{"properties":{"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"additionalProperties":true,"type":"object","required":["name","arguments"],"title":"FunctionCall","description":"Name and arguments of a function call."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Health status of the service"},"instantiated_at":{"type":"string","format":"date-time","title":"Instantiated At","description":"Timestamp when service was instantiated"}},"type":"object","required":["status","instantiated_at"],"title":"HealthResponse","example":{"instantiated_at":"2025-06-10T12:00:00Z","status":"ok"}},"ImageInputContent":{"properties":{"type":{"type":"string","const":"image","title":"Type","default":"image"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"ImageInputContent","description":"An image input content fragment."},"InfoResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"agno_version":{"type":"string","title":"Agno Version","description":"Version of the agno framework"},"agent_count":{"type":"integer","title":"Agent Count","description":"Number of agents registered in the OS","default":0},"team_count":{"type":"integer","title":"Team Count","description":"Number of teams registered in the OS","default":0},"workflow_count":{"type":"integer","title":"Workflow Count","description":"Number of workflows registered in the OS","default":0},"mcp":{"$ref":"#/components/schemas/McpInfo","description":"MCP server availability for this OS instance"},"auth_mode":{"type":"string","enum":["none","security_key","jwt"],"title":"Auth Mode","description":"Authentication mode enforced on the REST/WS plane of this OS instance. MCP OAuth, when enabled, is described separately under `mcp.oauth`.","default":"none"}},"type":"object","required":["os_id","agno_version"],"title":"InfoResponse","description":"Response schema for the /info endpoint returning lightweight OS metadata."},"InputContentDataSource":{"properties":{"type":{"type":"string","const":"data","title":"Type","default":"data"},"value":{"type":"string","title":"Value"},"mimeType":{"type":"string","title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value","mimeType"],"title":"InputContentDataSource","description":"Inline base64-encoded source."},"InputContentUrlSource":{"properties":{"type":{"type":"string","const":"url","title":"Type","default":"url"},"value":{"type":"string","title":"Value"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value"],"title":"InputContentUrlSource","description":"URL-referenced source."},"InterfaceResponse":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the interface"},"version":{"type":"string","title":"Version","description":"Version of the interface"},"route":{"type":"string","title":"Route","description":"API route path"}},"type":"object","required":["type","version","route"],"title":"InterfaceResponse"},"InternalServerErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"InternalServerErrorResponse","example":{"detail":"Internal server error","error_code":"INTERNAL_SERVER_ERROR"}},"KnowledgeConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeDatabaseConfig"},"type":"array"},{"type":"null"}],"title":"Dbs"},"knowledge_instances":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeInstanceConfig"},"type":"array"},{"type":"null"}],"title":"Knowledge Instances"}},"type":"object","title":"KnowledgeConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeDatabaseConfig":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeDomainConfig"},{"type":"null"}]},"tables":{"items":{"type":"string"},"type":"array","title":"Tables","default":[]}},"type":"object","required":["db_id"],"title":"KnowledgeDatabaseConfig","description":"Configuration for a knowledge database with its tables"},"KnowledgeDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"KnowledgeDomainConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeInstanceConfig":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"db_id":{"type":"string","title":"Db Id"},"table":{"type":"string","title":"Table"}},"type":"object","required":["id","name","db_id","table"],"title":"KnowledgeInstanceConfig","description":"Configuration for a single knowledge instance"},"LearningConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_LearningDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"LearningConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningCreate":{"properties":{"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"content":{"additionalProperties":true,"type":"object","title":"Content","description":"The learning content payload"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID. When the request is authenticated, must match the JWT subject or be omitted/null (which creates a global / non-user-scoped record)."},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"}},"type":"object","required":["learning_type","content"],"title":"LearningCreate","description":"Request body for creating a learning record."},"LearningDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"LearningDomainConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningResponse":{"properties":{"learning_id":{"type":"string","title":"Learning Id","description":"Unique identifier for the learning record"},"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID (for entity-specific learnings)"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type (e.g. 'person', 'company')"},"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"The learning content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Creation timestamp (Unix epoch seconds)"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp (Unix epoch seconds)"}},"type":"object","required":["learning_id","learning_type"],"title":"LearningResponse","description":"A single learning record as returned by the API."},"LearningUpdate":{"properties":{"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Replacement content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Replacement metadata"}},"type":"object","title":"LearningUpdate","description":"Request body for updating a learning record. Identity fields are immutable."},"LearningUserStats":{"properties":{"user_id":{"type":"string","title":"User Id","description":"The user ID"},"last_learning_updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Learning Updated At","description":"Most recent learning update for this user (Unix epoch seconds)"}},"type":"object","required":["user_id"],"title":"LearningUserStats","description":"A user that owns learning records, with their most recent activity.\n\nUsed as a lightweight index for the per-user view: list users here, then drill into a\nsingle user's records via ``GET /learnings?user_id=...``. No per-user count is returned\n-- the user-scoped stores (``user_profile``, ``user_memory``) keep a single record per\nuser, so a record count would always be 1; the actual memory count lives in that\nrecord's ``content``."},"Manifest":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"},"quick_prompts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quick Prompts"}},"type":"object","title":"Manifest","description":"OS-level UI metadata for an agent/team/workflow.\n\nFields here are AgentOS UI metadata only. ``description`` is unrelated to\n``Agent.description`` / ``Team.description`` / ``Workflow.description``,\nwhich are sent to the model.\n\nRendering surfaces:\n- ``description``, ``labels``: home/landing card\n- ``quick_prompts``: chat page"},"McpInfo":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the MCP server is enabled on this OS instance","default":false},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Path where the MCP server is mounted, null when disabled"},"oauth":{"anyOf":[{"$ref":"#/components/schemas/McpOAuthInfo"},{"type":"null"}],"description":"OAuth discovery details when the MCP endpoint is OAuth-protected, null otherwise"}},"type":"object","title":"McpInfo","description":"MCP server availability for the /info endpoint."},"McpOAuthInfo":{"properties":{"authorization_servers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorization Servers","description":"Issuer URL(s) of the authorization server(s) protecting the MCP endpoint"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource","description":"RFC 9728 resource URL advertised for the MCP endpoint"}},"type":"object","title":"McpOAuthInfo","description":"OAuth discovery details for an MCP endpoint protected by ``AgentOS(mcp_auth=...)``."},"MemoryConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MemoryDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MemoryConfig","description":"Configuration for the Memory domain of the AgentOS"},"MemoryDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MemoryDomainConfig","description":"Configuration for the Memory domain of the AgentOS"},"Message":{"properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"kind":{"type":"string","const":"message","title":"Kind","default":"message"},"messageId":{"type":"string","title":"Messageid"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taskid"}},"type":"object","required":["messageId","parts","role"],"title":"Message","description":"Represents a single message in the conversation between a user and an agent."},"Meta":{"properties":{"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of results per page","default":20},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number","default":1}},"type":"object","title":"Meta","description":"Inline metadata schema for pagination."},"MetricsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MetricsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MetricsConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MetricsDomainConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsResponse":{"properties":{"metrics":{"items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"type":"array","title":"Metrics","description":"List of daily aggregated metrics"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp of the most recent metrics update"}},"type":"object","required":["metrics"],"title":"MetricsResponse"},"Model":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"Model"},"ModelResponse":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the model"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"ModelResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"NotFoundResponse","example":{"detail":"Not found","error_code":"NOT_FOUND"}},"NotImplementedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"NotImplementedResponse","example":{"detail":"Operation not supported for this resource type"}},"OptimizeMemoriesRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID to optimize memories for"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model in `provider:model_id` format. Current examples include `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, and `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`."},"apply":{"type":"boolean","title":"Apply","description":"If True, apply optimization changes to database. If False, return preview only without saving.","default":true}},"type":"object","required":["user_id"],"title":"OptimizeMemoriesRequest","description":"Schema for memory optimization request"},"OptimizeMemoriesResponse":{"properties":{"memories":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Memories","description":"List of optimized memory objects"},"memories_before":{"type":"integer","minimum":0.0,"title":"Memories Before","description":"Number of memories before optimization"},"memories_after":{"type":"integer","minimum":0.0,"title":"Memories After","description":"Number of memories after optimization"},"tokens_before":{"type":"integer","minimum":0.0,"title":"Tokens Before","description":"Token count before optimization"},"tokens_after":{"type":"integer","minimum":0.0,"title":"Tokens After","description":"Token count after optimization"},"tokens_saved":{"type":"integer","minimum":0.0,"title":"Tokens Saved","description":"Number of tokens saved through optimization"},"reduction_percentage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Reduction Percentage","description":"Percentage of token reduction achieved"}},"type":"object","required":["memories","memories_before","memories_after","tokens_before","tokens_after","tokens_saved","reduction_percentage"],"title":"OptimizeMemoriesResponse","description":"Schema for memory optimization response"},"PaginatedResponse_ApprovalResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ApprovalResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ApprovalResponse]"},"PaginatedResponse_ComponentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ComponentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ComponentResponse]"},"PaginatedResponse_ContentResponseSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentResponseSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ContentResponseSchema]"},"PaginatedResponse_EvalSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EvalSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[EvalSchema]"},"PaginatedResponse_LearningResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningResponse]"},"PaginatedResponse_LearningUserStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningUserStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningUserStats]"},"PaginatedResponse_RegistryContentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RegistryContentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[RegistryContentResponse]"},"PaginatedResponse_ScheduleResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleResponse]"},"PaginatedResponse_ScheduleRunResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleRunResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleRunResponse]"},"PaginatedResponse_ServiceAccountResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ServiceAccountResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ServiceAccountResponse]"},"PaginatedResponse_SessionSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SessionSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[SessionSchema]"},"PaginatedResponse_TraceDetail_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceDetail"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceDetail]"},"PaginatedResponse_TraceSessionStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSessionStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSessionStats]"},"PaginatedResponse_TraceSummary_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSummary"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSummary]"},"PaginatedResponse_UserMemorySchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserMemorySchema]"},"PaginatedResponse_UserStatsSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserStatsSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserStatsSchema]"},"PaginatedResponse_VectorSearchResult_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VectorSearchResult"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[VectorSearchResult]"},"PaginationInfo":{"properties":{"page":{"type":"integer","minimum":0.0,"title":"Page","description":"Current page number (0-indexed)","default":0},"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of items per page","default":20},"total_pages":{"type":"integer","minimum":0.0,"title":"Total Pages","description":"Total number of pages","default":0},"total_count":{"type":"integer","minimum":0.0,"title":"Total Count","description":"Total count of items","default":0},"search_time_ms":{"type":"number","minimum":0.0,"title":"Search Time Ms","description":"Search execution time in milliseconds","default":0}},"type":"object","title":"PaginationInfo"},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/DataPart"}],"title":"Part"},"ReaderSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the reader"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the reader"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the reader's capabilities"},"chunkers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chunkers","description":"List of supported chunking strategies"}},"type":"object","required":["id"],"title":"ReaderSchema"},"ReasoningMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"reasoning","title":"Role","default":"reasoning"},"content":{"type":"string","title":"Content"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"ReasoningMessage","description":"A reasoning message containing the agent's internal reasoning process."},"RegistryContentResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/RegistryResourceType"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name","type"],"title":"RegistryContentResponse"},"RegistryResourceType":{"type":"string","enum":["tool","model","db","vector_db","schema","function","agent","team","knowledge","memory_manager","session_summary_manager"],"title":"RegistryResourceType","description":"Types of resources that can be stored in a registry."},"RemoteContentSourceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content source"},"name":{"type":"string","title":"Name","description":"Display name for the content source"},"type":{"type":"string","title":"Type","description":"Type of content source (s3, gcs, sharepoint, github, azureblob)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Default path prefix for this source"}},"type":"object","required":["id","name","type"],"title":"RemoteContentSourceSchema","description":"Schema for remote content source configuration."},"ResumeEntry":{"properties":{"interruptId":{"type":"string","title":"Interruptid"},"status":{"type":"string","enum":["resolved","cancelled"],"title":"Status"},"payload":{"anyOf":[{},{"type":"null"}],"title":"Payload"}},"additionalProperties":true,"type":"object","required":["interruptId","status"],"title":"ResumeEntry","description":"A per-interrupt response in the resume array of a RunAgentInput."},"Role":{"type":"string","enum":["agent","user"],"title":"Role","description":"Identifies the sender of the message. `user` for the client, `agent` for the service."},"RunAgentInput":{"properties":{"threadId":{"type":"string","title":"Threadid"},"runId":{"type":"string","title":"Runid"},"parentRunId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentrunid"},"state":{"title":"State"},"messages":{"items":{"oneOf":[{"$ref":"#/components/schemas/DeveloperMessage"},{"$ref":"#/components/schemas/SystemMessage"},{"$ref":"#/components/schemas/AssistantMessage"},{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/ToolMessage"},{"$ref":"#/components/schemas/ActivityMessage"},{"$ref":"#/components/schemas/ReasoningMessage"}],"discriminator":{"propertyName":"role","mapping":{"activity":"#/components/schemas/ActivityMessage","assistant":"#/components/schemas/AssistantMessage","developer":"#/components/schemas/DeveloperMessage","reasoning":"#/components/schemas/ReasoningMessage","system":"#/components/schemas/SystemMessage","tool":"#/components/schemas/ToolMessage","user":"#/components/schemas/UserMessage"}}},"type":"array","title":"Messages"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","title":"Tools"},"context":{"items":{"$ref":"#/components/schemas/Context"},"type":"array","title":"Context"},"forwardedProps":{"title":"Forwardedprops"},"resume":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResumeEntry"},"type":"array"},{"type":"null"}],"title":"Resume"}},"additionalProperties":true,"type":"object","required":["threadId","runId","state","messages","tools","context","forwardedProps"],"title":"RunAgentInput","description":"Input for running an agent."},"RunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that executed this run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"RunSchema"},"RunStatus":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","PAUSED","CANCELLED","ERROR","REGENERATED"],"title":"RunStatus","description":"State of the main run response"},"ScheduleCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"cron_expr":{"type":"string","maxLength":128,"title":"Cron Expr"},"endpoint":{"type":"string","maxLength":512,"title":"Endpoint"},"method":{"type":"string","maxLength":10,"title":"Method","default":"POST"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"type":"string","maxLength":64,"title":"Timezone","default":"UTC"},"timeout_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Timeout Seconds","default":3600},"max_retries":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Max Retries","default":0},"retry_delay_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Retry Delay Seconds","default":60}},"type":"object","required":["name","cron_expr","endpoint"],"title":"ScheduleCreate"},"ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"cron_expr":{"type":"string","title":"Cron Expr"},"timezone":{"type":"string","title":"Timezone"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"max_retries":{"type":"integer","title":"Max Retries"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","method","endpoint","cron_expr","timezone","timeout_seconds","max_retries","retry_delay_seconds","enabled"],"title":"ScheduleResponse"},"ScheduleRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"schedule_id":{"type":"string","title":"Schedule Id"},"attempt":{"type":"integer","title":"Attempt"},"triggered_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triggered At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"status":{"type":"string","title":"Status"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","schedule_id","attempt","status"],"title":"ScheduleRunResponse"},"ScheduleStateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","enabled"],"title":"ScheduleStateResponse","description":"Trimmed response for state-changing operations (enable/disable)."},"ScheduleUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"cron_expr":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Cron Expr"},"endpoint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Endpoint"},"method":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Method"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Timezone"},"timeout_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":1.0},{"type":"null"}],"title":"Timeout Seconds"},"max_retries":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Max Retries"},"retry_delay_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":1.0},{"type":"null"}],"title":"Retry Delay Seconds"}},"type":"object","title":"ScheduleUpdate"},"ScopeItem":{"properties":{"scope":{"type":"string","title":"Scope","description":"Scope string, e.g. 'agents:*:run'"},"effect":{"type":"string","enum":["allow","deny"],"title":"Effect","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["scope"],"title":"ScopeItem","description":"Write shape for one scope grant \u2014 the canonical RBAC payload for every scope-bearing API.\n\nEndpoints that take scopes accept these objects only (a bare string is a validation\nerror). ``effect`` is constrained here so every consumer rejects typos at the model\nlayer; whether ``deny`` is *semantically* legal stays per-endpoint (roles support\ndeny rules, service-account tokens are pure grants and reject it)."},"ScopeSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Scope id (always null here; kept for shape parity with the cloud RBAC API, which addresses scopes individually)"},"raw":{"type":"string","title":"Raw","description":"Original scope string, e.g. 'agents:*:run'"},"namespace":{"type":"string","title":"Namespace","description":"Resource namespace, e.g. 'agents'"},"sub_namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Namespace","description":"Specific resource id or wildcard '*'"},"permission":{"type":"string","title":"Permission","description":"Action, e.g. 'read' / 'run' / 'write'"},"value":{"type":"string","title":"Value","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["raw","namespace","permission"],"title":"ScopeSchema","description":"Read shape for one scope \u2014 the parsed RBAC payload shared by every scope-bearing API.\n\nMirrors the cloud RBAC scope shape ({raw, namespace, sub_namespace, permission, value})\nso a frontend renders scopes from any AgentOS API with one integration."},"SendMessageRequest":{"description":"Represents a JSON-RPC request for the `message/send` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/send","default":"message/send","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendMessageRequest","type":"object"},"SendMessageSuccessResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id"},"jsonrpc":{"type":"string","const":"2.0","title":"Jsonrpc","default":"2.0"},"result":{"anyOf":[{"$ref":"#/components/schemas/Task"},{"$ref":"#/components/schemas/Message"}],"title":"Result"}},"type":"object","required":["result"],"title":"SendMessageSuccessResponse","description":"Represents a successful JSON-RPC response for the `message/send` method."},"SendStreamingMessageRequest":{"description":"Represents a JSON-RPC request for the `message/stream` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/stream","default":"message/stream","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendStreamingMessageRequest","type":"object"},"ServiceAccountCreate":{"properties":{"name":{"type":"string","maxLength":63,"title":"Name","description":"Machine identity name (lowercase slug), e.g. 'claude-code' or 'github-actions'"},"scopes":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScopeItem"},"type":"array"},{"type":"null"}],"title":"Scopes","description":"Scopes granted to the token, as {scope, effect} objects (the shared RBAC write shape; token scopes are grants, so only effect='allow' is accepted). Defaults to run and read scopes: agents:run, teams:run, workflows:run, sessions:read"},"expires_in_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Expires In Days","description":"Days until the token expires (default: 90)","default":90},"never_expires":{"type":"boolean","title":"Never Expires","description":"Mint a non-expiring token. Must be set explicitly; overrides expires_in_days.","default":false},"allow_privileged_scopes":{"type":"boolean","title":"Allow Privileged Scopes","description":"Required to grant privileged scopes: any write or delete action, the admin scope, or any service_accounts scope. Privileged tokens must be deliberate, never accidental.","default":false}},"type":"object","required":["name"],"title":"ServiceAccountCreate"},"ServiceAccountCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"token":{"type":"string","title":"Token","description":"The plaintext token. Shown exactly once - store it securely now."}},"type":"object","required":["id","name","principal","token_prefix","created_at","token"],"title":"ServiceAccountCreateResponse","description":"Returned once, at creation. The token is never retrievable again."},"ServiceAccountResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","name","principal","token_prefix","created_at"],"title":"ServiceAccountResponse","description":"Service account metadata. Never includes the token hash or plaintext."},"ServiceUnavailableResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ServiceUnavailableResponse","example":{"detail":"Feature not supported by the configured service"}},"SessionConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_SessionDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"SessionConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"SessionDomainConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier for the session"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state data of the session"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when session was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when session was last updated"},"session_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type","description":"Type of session: agent, team, or workflow"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["session_id","session_name"],"title":"SessionSchema"},"SessionType":{"type":"string","enum":["agent","team","workflow"],"title":"SessionType"},"SlackChallengeResponse":{"properties":{"challenge":{"type":"string","title":"Challenge","description":"Challenge string to echo back to Slack"}},"type":"object","required":["challenge"],"title":"SlackChallengeResponse"},"SlackEventResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"}},"type":"object","title":"SlackEventResponse"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"SourceFileSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Full path/key of the file"},"name":{"type":"string","title":"Name","description":"Display name (filename)"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"File size in bytes"},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified","description":"ISO 8601 timestamp of last modification"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"MIME type of the file"}},"type":"object","required":["key","name"],"title":"SourceFileSchema","description":"Schema for a file in a content source."},"SourceFilesResponseSchema":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"ID of the content source"},"source_name":{"type":"string","title":"Source Name","description":"Name of the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Prefix filter that was applied"},"folders":{"items":{"$ref":"#/components/schemas/SourceFolderSchema"},"type":"array","title":"Folders","description":"Subfolders at this level"},"files":{"items":{"$ref":"#/components/schemas/SourceFileSchema"},"type":"array","title":"Files","description":"List of files at this level"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["source_id","source_name","meta"],"title":"SourceFilesResponseSchema","description":"Response schema for listing files in a content source."},"SourceFolderSchema":{"properties":{"prefix":{"type":"string","title":"Prefix","description":"Full prefix to use for navigating into this folder"},"name":{"type":"string","title":"Name","description":"Display name of the folder"},"is_empty":{"type":"boolean","title":"Is Empty","description":"Whether the folder contains any files","default":false}},"type":"object","required":["prefix","name"],"title":"SourceFolderSchema","description":"Schema for a folder in a content source."},"SystemMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"system","title":"Role","default":"system"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"SystemMessage","description":"A system message."},"Task":{"properties":{"artifacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Artifact"},"type":"array"},{"type":"null"}],"title":"Artifacts"},"contextId":{"type":"string","title":"Contextid"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"History"},"id":{"type":"string","title":"Id"},"kind":{"type":"string","const":"task","title":"Kind","default":"task"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"status":{"$ref":"#/components/schemas/TaskStatus"}},"type":"object","required":["contextId","id","status"],"title":"Task","description":"Represents a single, stateful operation or conversation between a client and an agent."},"TaskState":{"type":"string","enum":["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"],"title":"TaskState","description":"Defines the lifecycle states of a Task."},"TaskStatus":{"properties":{"message":{"anyOf":[{"$ref":"#/components/schemas/Message"},{"type":"null"}]},"state":{"$ref":"#/components/schemas/TaskState"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp","examples":["2023-10-27T10:00:00Z"]}},"type":"object","required":["state"],"title":"TaskStatus","description":"Represents the status of a task at a specific point in time."},"TeamResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"members":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"$ref":"#/components/schemas/TeamResponse"}]},"type":"array"},{"type":"null"}],"title":"Members"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"TeamResponse"},"TeamRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the team run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that executed this run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the team run"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this team run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this team run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this team run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this team run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"TeamRunSchema"},"TeamSessionDetailSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID used in this session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of team interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"team_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Team Data","description":"Team-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"}},"type":"object","required":["session_id","session_name"],"title":"TeamSessionDetailSchema"},"TeamSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the team"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the team"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the team"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Team execution mode (coordinate, route, broadcast, tasks)"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the team leader"}},"type":"object","title":"TeamSummaryResponse"},"TelegramStatusResponse":{"properties":{"status":{"type":"string","title":"Status","default":"available"}},"type":"object","title":"TelegramStatusResponse"},"TelegramWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status"}},"type":"object","required":["status"],"title":"TelegramWebhookResponse"},"TextInputContent":{"properties":{"type":{"type":"string","const":"text","title":"Type","default":"text"},"text":{"type":"string","title":"Text"}},"additionalProperties":true,"type":"object","required":["text"],"title":"TextInputContent","description":"A text fragment in a multimodal user message."},"TextPart":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"TextPart","description":"Represents a text segment within a message or artifact."},"Tool":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{},{"type":"null"}],"title":"Parameters"}},"additionalProperties":true,"type":"object","required":["name","description"],"title":"Tool","description":"A tool definition."},"ToolCall":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/FunctionCall"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","function"],"title":"ToolCall","description":"A tool call, modelled after OpenAI tool calls."},"ToolMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"tool","title":"Role","default":"tool"},"content":{"type":"string","title":"Content"},"toolCallId":{"type":"string","title":"Toolcallid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content","toolCallId"],"title":"ToolMessage","description":"A tool result message."},"TraceDetail":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent/workflow"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the agent/workflow"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"},"tree":{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array","title":"Tree","description":"Hierarchical tree of spans (root nodes)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at","tree"],"title":"TraceDetail","description":"Detailed trace information with hierarchical span tree"},"TraceNode":{"properties":{"id":{"type":"string","title":"Id","description":"Span ID"},"name":{"type":"string","title":"Name","description":"Span name (e.g., 'agent.run', 'llm.invoke')"},"type":{"type":"string","title":"Type","description":"Span kind (AGENT, TEAM, WORKFLOW, LLM, TOOL)"},"duration":{"type":"string","title":"Duration","description":"Human-readable duration (e.g., '123ms', '1.5s')"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"End time (Pydantic auto-serializes to ISO 8601)"},"status":{"type":"string","title":"Status","description":"Status code (OK, ERROR)"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the span"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the span"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"spans":{"anyOf":[{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array"},{"type":"null"}],"title":"Spans","description":"Child spans in the trace hierarchy"},"step_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Type","description":"Workflow step type (Step, Condition, function, Agent, Team)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional span attributes and data"},"extra_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Data","description":"Flexible field for custom attributes and additional data"}},"type":"object","required":["id","name","type","duration","start_time","end_time","status"],"title":"TraceNode","description":"Recursive node structure for rendering trace hierarchy in the frontend"},"TraceSearchGroupBy":{"type":"string","enum":["run","session"],"title":"TraceSearchGroupBy","description":"Grouping options for trace search results."},"TraceSearchRequest":{"properties":{"filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter","description":"FilterExpr DSL as JSON dict. Supports operators: EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH, AND, OR, NOT."},"group_by":{"$ref":"#/components/schemas/TraceSearchGroupBy","description":"Grouping mode: 'run' returns individual TraceDetail, 'session' returns aggregated TraceSessionStats.","default":"run"},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number (1-indexed)","default":1},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"Number of traces per page (max 100)","default":20}},"type":"object","title":"TraceSearchRequest","description":"Request body for POST /traces/search with advanced filtering.\n\nThe filter field accepts a FilterExpr DSL dict supporting composable queries\nwith AND/OR/NOT logic and operators like EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH.\n\nExample for run grouping (default):\n {\n \"filter\": {\n \"op\": \"AND\",\n \"conditions\": [\n {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n {\"op\": \"CONTAINS\", \"key\": \"user_id\", \"value\": \"admin\"}\n ]\n },\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n }\n\nExample for session grouping:\n {\n \"filter\": {\"op\": \"EQ\", \"key\": \"agent_id\", \"value\": \"my-agent\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n }"},"TraceSessionStats":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID(s) used in the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID associated with the session"},"total_traces":{"type":"integer","title":"Total Traces","description":"Total number of traces in this session"},"first_trace_at":{"type":"string","format":"date-time","title":"First Trace At","description":"Time of first trace (Pydantic auto-serializes to ISO 8601)"},"last_trace_at":{"type":"string","format":"date-time","title":"Last Trace At","description":"Time of last trace (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["session_id","total_traces","first_trace_at","last_trace_at"],"title":"TraceSessionStats","description":"Aggregated trace statistics grouped by session"},"TraceSummary":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR, UNSET)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at"],"title":"TraceSummary","description":"Summary information for trace list view"},"TracesConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_TracesDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"TracesConfig","description":"Configuration for the Traces domain of the AgentOS"},"TracesDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"TracesDomainConfig","description":"Configuration for the Traces domain of the AgentOS"},"UnauthenticatedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"UnauthenticatedResponse","example":{"detail":"Unauthenticated access","error_code":"UNAUTHENTICATED"}},"UpdateEvalRunRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"New name for the evaluation run"}},"type":"object","required":["name"],"title":"UpdateEvalRunRequest"},"UpdateSessionRequest":{"properties":{"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Updated session name"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Updated session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Updated metadata"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary","description":"Session summary"}},"type":"object","title":"UpdateSessionRequest"},"UserMemoryCreateSchema":{"properties":{"memory":{"type":"string","maxLength":5000,"minLength":1,"title":"Memory","description":"Memory content text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags to categorize the memory"}},"type":"object","required":["memory"],"title":"UserMemoryCreateSchema","description":"Define the payload expected for creating a new user memory"},"UserMemorySchema":{"properties":{"memory_id":{"type":"string","title":"Memory Id","description":"Unique identifier for the memory"},"memory":{"type":"string","title":"Memory","description":"Memory content text"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags associated with the memory"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID associated with this memory"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with this memory"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when memory was last updated"}},"type":"object","required":["memory_id","memory"],"title":"UserMemorySchema"},"UserMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"user","title":"Role","default":"user"},"content":{"anyOf":[{"type":"string"},{"items":{"oneOf":[{"$ref":"#/components/schemas/TextInputContent"},{"$ref":"#/components/schemas/ImageInputContent"},{"$ref":"#/components/schemas/AudioInputContent"},{"$ref":"#/components/schemas/VideoInputContent"},{"$ref":"#/components/schemas/DocumentInputContent"},{"$ref":"#/components/schemas/BinaryInputContent"}],"discriminator":{"propertyName":"type","mapping":{"audio":"#/components/schemas/AudioInputContent","binary":"#/components/schemas/BinaryInputContent","document":"#/components/schemas/DocumentInputContent","image":"#/components/schemas/ImageInputContent","text":"#/components/schemas/TextInputContent","video":"#/components/schemas/VideoInputContent"}}},"type":"array"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"UserMessage","description":"A user message supporting text or multimodal content."},"UserStatsSchema":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"total_memories":{"type":"integer","minimum":0.0,"title":"Total Memories","description":"Total number of memories for this user"},"last_memory_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Memory Updated At","description":"Timestamp of the most recent memory update"}},"type":"object","required":["user_id","total_memories"],"title":"UserStatsSchema","description":"Schema for user memory statistics"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"ValidationErrorResponse","example":{"detail":"Validation error","error_code":"VALIDATION_ERROR"}},"VectorDbSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the vector database"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the vector database"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the vector database"},"search_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Search Types","description":"List of supported search types (vector, keyword, hybrid)"}},"type":"object","required":["id"],"title":"VectorDbSchema"},"VectorSearchRequestSchema":{"properties":{"query":{"type":"string","title":"Query","description":"The search query text"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database ID to search in"},"knowledge_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledge Id","description":"Knowledge base ID to search in"},"vector_db_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vector Db Ids","description":"List of vector database IDs to search in"},"search_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Type","description":"The type of search to perform (vector, keyword, hybrid)"},"max_results":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Max Results","description":"The maximum number of results to return"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Filters to apply to the search results"},"meta":{"anyOf":[{"$ref":"#/components/schemas/Meta"},{"type":"null"}],"description":"Pagination metadata. Limit and page number to return a subset of results."}},"type":"object","required":["query"],"title":"VectorSearchRequestSchema","description":"Schema for vector search request."},"VectorSearchResult":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the search result document"},"content":{"type":"string","title":"Content","description":"Content text of the document"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the document"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Metadata associated with the document"},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"Usage statistics (e.g., token counts)"},"reranking_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reranking Score","description":"Reranking score for relevance"},"content_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Id","description":"ID of the source content"},"content_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Origin","description":"Origin URL or source of the content"},"size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"}},"type":"object","required":["id","content"],"title":"VectorSearchResult","description":"Schema for search result documents."},"VideoInputContent":{"properties":{"type":{"type":"string","const":"video","title":"Type","default":"video"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"VideoInputContent","description":"A video input content fragment."},"WhatsAppWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status","default":"ok"}},"type":"object","title":"WhatsAppWebhookResponse"},"WorkflowResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema","description":"Input schema for the workflow"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps","description":"List of workflow steps"},"agent":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"type":"null"}],"description":"Agent configuration if used"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamResponse"},{"type":"null"}],"description":"Team configuration if used"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"workflow_agent":{"type":"boolean","title":"Workflow Agent","description":"Whether this workflow uses a WorkflowAgent","default":false},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowResponse"},"WorkflowRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the workflow run"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the workflow"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was executed"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the workflow"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"Type of content returned"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status of the workflow run"},"step_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Results","description":"Results from each workflow step"},"step_executor_runs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Executor Runs","description":"Executor runs for each step"},"step_requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Requirements","description":"HITL step requirements (resolved state for historical display)"},"pause_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Kind","description":"Kind of HITL pause: 'step' or 'executor'"},"paused_step_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Step Name","description":"Name of the step that caused the pause"},"paused_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Paused Step Index","description":"Index of the step that caused the pause"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the workflow"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the workflow"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the workflow"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the workflow"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the workflow"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"}},"type":"object","required":["run_id"],"title":"WorkflowRunSchema"},"WorkflowSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID used in this session"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name","description":"Name of the workflow"},"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Data","description":"Complete session data"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current workflow state"},"workflow_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Data","description":"Workflow-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["session_id","session_name"],"title":"WorkflowSessionDetailSchema"},"WorkflowSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowSummaryResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} diff --git a/reference-api/openapi.yaml b/reference-api/openapi.yaml index 48de0c150..451d81637 100644 --- a/reference-api/openapi.yaml +++ b/reference-api/openapi.yaml @@ -1521,7 +1521,7 @@ paths: schema: $ref: '#/components/schemas/NotFoundResponse' '409': - description: Run is not paused and cannot be continued + description: Run is in a state that cannot be continued content: application/json: schema: @@ -1538,6 +1538,12 @@ paths: application/json: schema: $ref: '#/components/schemas/InternalServerErrorResponse' + '503': + description: Remote team is unavailable + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' /teams/{team_id}/sessions/{session_id}/fork: post: tags: diff --git a/scripts/make_openapi.py b/scripts/make_openapi.py index f0e114dd4..82aaf114c 100644 --- a/scripts/make_openapi.py +++ b/scripts/make_openapi.py @@ -380,7 +380,7 @@ def sort_responses(operation: dict) -> None: ) } continue_team_responses["409"] = response_ref( - "Run is not paused and cannot be continued", + "Run is in a state that cannot be continued", "ConflictResponse", ) continue_team_validation = continue_team_responses["422"]["content"]["application/json"][ @@ -388,6 +388,13 @@ def sort_responses(operation: dict) -> None: ] assert continue_team_validation == {"$ref": "#/components/schemas/ValidationErrorResponse"} continue_team_validation["$ref"] = "#/components/schemas/HTTPValidationError" + add_response( + continue_team_run, + "503", + "Remote team is unavailable", + "ServiceUnavailableResponse", + ) + sort_responses(continue_team_run) update_content = spec["paths"]["/knowledge/content/{content_id}"]["patch"] assert update_content["description"] == ( From a9e0fc439e601e089d05d1554140f82be5973e2d Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 06:53:11 +0100 Subject: [PATCH 21/47] docs: complete continuation response contracts --- reference-api/openapi.json | 2 +- reference-api/openapi.yaml | 42 +++++++++++++++------ scripts/make_openapi.py | 76 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 108 insertions(+), 12 deletions(-) diff --git a/reference-api/openapi.json b/reference-api/openapi.json index 313d537da..6652fc970 100644 --- a/reference-api/openapi.json +++ b/reference-api/openapi.json @@ -1 +1 @@ -{"openapi":"3.1.0","info":{"title":"Agno API Reference","description":"The all-in-one, private, secure agent platform that runs in your cloud.","version":"2.7.4"},"paths":{"/":{"get":{"tags":["Home"],"summary":"API Information","description":"Return the AgentOS instance name, ID, and version.","operationId":"get_api_info","responses":{"200":{"description":"API information retrieved successfully","content":{"application/json":{"schema":{"properties":{"name":{"type":"string","title":"Name"},"id":{"type":"string","title":"Id"},"version":{"type":"string","title":"Version"}},"type":"object","required":["name","id","version"],"title":"ApiInfoResponse"},"examples":{"home":{"summary":"Example home response","value":{"name":"AgentOS API","id":"demo-os","version":"1.0.0"}}}}}}}}},"/health":{"get":{"tags":["Health"],"summary":"Health Check","description":"Check the health status of the AgentOS API. Returns a simple status indicator.","operationId":"health_check","responses":{"200":{"description":"API is healthy and operational","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"},"example":{"status":"ok","instantiated_at":"2025-06-10T12:00:00Z"}}}}}}},"/info":{"get":{"tags":["Core"],"summary":"Get OS Info","description":"Return lightweight, unauthenticated metadata about this AgentOS instance.","operationId":"get_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoResponse"}}}}}}},"/config":{"get":{"tags":["Core"],"summary":"Get OS Configuration","description":"Retrieve the complete configuration of the AgentOS instance, including:\n\n- Available models and databases\n- Registered agents, teams, and workflows\n- Chat, session, memory, knowledge, and evaluation configurations\n- Available interfaces and their routes","operationId":"get_config","responses":{"200":{"description":"OS configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"},"example":{"description":"Example AgentOS configuration","available_models":[],"databases":["9c884dc4-9066-448c-9074-ef49ec7eb73c"],"session":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Sessions"}}]},"metrics":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Metrics"}}]},"memory":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Memory"}}]},"knowledge":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Knowledge"}}]},"evals":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Evals"}}]},"agents":[{"id":"main-agent","name":"Main Agent","db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c"}],"teams":[],"workflows":[],"interfaces":[],"os_id":"demo"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/models":{"get":{"tags":["Core"],"summary":"Get Available Models","description":"Retrieve a list of all unique models currently used by agents and teams in this OS instance. This includes the model ID and provider information for each model.","operationId":"get_models","responses":{"200":{"description":"List of models retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Response Get Models"},"example":[{"id":"gpt-4","provider":"openai"},{"id":"claude-3-sonnet","provider":"anthropic"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}/runs":{"post":{"tags":["Agents"],"summary":"Create Agent Run","description":"Execute an agent with a message and optional media files. Supports both streaming and non-streaming responses.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_agent_run"}}}},"responses":{"200":{"description":"Agent run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"examples":{"event_stream":{"summary":"Example event stream response","value":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Agents"],"summary":"List Agent Runs","description":"List runs for an agent within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_agent_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED","title":"Status"},"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RunSchema"},"type":"array","title":"Response List Agent Runs"}}}},"400":{"description":"Run listing is unavailable for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Agent resolution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/cancel":{"post":{"tags":["Agents"],"summary":"Cancel Agent Run","description":"Cancel a currently executing agent run. This will attempt to stop the agent's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/continue":{"post":{"tags":["Agents"],"summary":"Continue Agent Run","description":"Advance a persisted agent run from its current state. Dispatches on the body shape and the persisted run state (see ADR-003 in specs/agno/features/checkpointing/decisions.md).\n\n**Variants:**\n- PAUSED + tools provided \u2192 apply HITL tool results, resume\n- PAUSED + resolved admin approval (empty tools) \u2192 apply resolution, resume\n- RUNNING / ERROR (no unresolved HITL requirements) \u2192 resume from last persisted state\n- COMPLETED + new tools \u2192 continue with appended messages\n\n**Tools Parameter:**\nJSON string containing array of tool execution objects with results. Optional \u2014 only required when the persisted run has unresolved HITL requirements.","operationId":"continue_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_agent_run"}}}},"responses":{"200":{"description":"Agent run continued successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid JSON in tools field or invalid tool structure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Run has a pending admin approval and cannot be continued by the user yet."},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/sessions/{session_id}/fork":{"post":{"tags":["Agents"],"summary":"Fork Agent Session","description":"Deep-copy a session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_agent_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents":{"get":{"tags":["Agents"],"summary":"List All Agents","description":"Retrieve a comprehensive list of all agents configured in this OS instance.\n\n**Returns:**\n- Agent metadata (ID, name, description)\n- Model configuration and capabilities\n- Available tools and their configurations\n- Session, knowledge, memory, and reasoning settings\n- Only meaningful (non-default) configurations are included","operationId":"get_agents","responses":{"200":{"description":"List of agents retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentResponse"},"type":"array","title":"Response Get Agents"},"example":[{"id":"main-agent","name":"Main Agent","db_id":"c6bf0644-feb8-4930-a305-380dae5ad6aa","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Details","description":"Retrieve detailed configuration and capabilities of a specific agent.\n\n**Returns comprehensive agent information including:**\n- Model configuration and provider details\n- Complete tool inventory and configurations\n- Session management settings\n- Knowledge base and memory configurations\n- Reasoning capabilities and settings\n- System prompts and response formatting options","operationId":"get_agent","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Agent details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"},"example":{"id":"main-agent","name":"Main Agent","db_id":"9e064c70-6821-4840-a333-ce6230908a70","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Run","description":"Retrieve the status and output of an agent run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Agents"],"summary":"List Agent Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_agent_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Agents"],"summary":"Get Agent Run Checkpoint Snapshot","description":"Return a derived run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_agent_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/resume":{"post":{"tags":["Agents"],"summary":"Resume Agent Run Stream","description":"Resume an SSE stream for an agent run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_agent_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_agent_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Not supported for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs":{"post":{"tags":["Teams"],"summary":"Create Team Run","description":"Execute a team collaboration with multiple agents working together on a task.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_team_run"}}}},"responses":{"200":{"description":"Team run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Teams"],"summary":"List Team Runs","description":"List runs for a team within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_team_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/cancel":{"post":{"tags":["Teams"],"summary":"Cancel Team Run","description":"Cancel a currently executing team run. This will attempt to stop the team's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel team run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/resume":{"post":{"tags":["Teams"],"summary":"Resume Team Run Stream","description":"Resume an SSE stream for a team run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_team_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_team_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory teams. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/continue":{"post":{"tags":["Teams"],"summary":"Continue Team Run","description":"Continue a paused or incomplete team run with updated requirements.\n\n**Use Cases:**\n- Resume execution after tool approval/rejection\n- Provide manual tool execution results\n- Resume after admin approval (requirements can be empty; resolution fetched from DB)\n\n**Requirements Parameter:**\nJSON string containing array of requirement objects with tool execution results.\nCan be empty when an admin-required approval has been resolved.","operationId":"continue_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_team_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid requirements or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Team run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Remote team is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/teams/{team_id}/sessions/{session_id}/fork":{"post":{"tags":["Teams"],"summary":"Fork Team Session","description":"Deep-copy a team session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_team_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams":{"get":{"tags":["Teams"],"summary":"List All Teams","description":"Retrieve a comprehensive list of all teams configured in this OS instance.\n\n**Returns team information including:**\n- Team metadata (ID, name, description, execution mode)\n- Model configuration for team coordination\n- Team member roster with roles and capabilities\n- Knowledge sharing and memory configurations","operationId":"get_teams","responses":{"200":{"description":"List of teams retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamResponse"},"type":"array","title":"Response Get Teams"},"example":[{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"agno_memories","app_url":"/memory/1","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/teams/{team_id}":{"get":{"tags":["Teams"],"summary":"Get Team Details","description":"Retrieve detailed configuration and member information for a specific team.","operationId":"get_team","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"},"example":{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}":{"get":{"tags":["Teams"],"summary":"Get Team Run","description":"Retrieve the status and output of a team run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Teams"],"summary":"List Team Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored team run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_team_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Teams"],"summary":"Get Team Run Checkpoint Snapshot","description":"Return a derived team run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_team_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows":{"get":{"tags":["Workflows"],"summary":"List All Workflows","description":"Retrieve a comprehensive list of all workflows configured in this OS instance.\n\n**Return Information:**\n- Workflow metadata (ID, name, description)\n- Input schema requirements\n- Step sequence and execution flow\n- Associated agents and teams","operationId":"get_workflows","responses":{"200":{"description":"List of workflows retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Response Get Workflows"},"example":[{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/workflows/{workflow_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Details","description":"Retrieve detailed configuration and step information for a specific workflow.","operationId":"get_workflow","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Workflow version to retrieve","title":"Version"},"description":"Workflow version to retrieve"}],"responses":{"200":{"description":"Workflow details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"},"example":{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs":{"post":{"tags":["Workflows"],"summary":"Execute Workflow","description":"Execute a workflow with the provided input data. Workflows can run in streaming or batch mode.\n\n**Execution Modes:**\n- **Streaming (`stream=true`)**: Real-time step-by-step execution updates via SSE\n- **Non-Streaming (`stream=false`)**: Complete workflow execution with final result\n\n**Workflow Execution Process:**\n1. Input validation against workflow schema\n2. Sequential or parallel step execution based on workflow design\n3. Data flow between steps with transformation\n4. Error handling and automatic retries where configured\n5. Final result compilation and response\n\n**Session Management:**\nWorkflows support session continuity for stateful execution across multiple runs.","operationId":"create_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_run"}}}},"responses":{"200":{"description":"Workflow executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid input data or workflow configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Workflow execution error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"List Workflow Runs","description":"List runs for a workflow within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_workflow_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/continue":{"post":{"tags":["Workflows"],"summary":"Continue Workflow Run","description":"Continue a paused workflow run with resolved requirements.\n\n**Use Cases:**\n- Resume after step-level HITL (confirmation, user input, router selection)\n- Resume after executor-level HITL (agent/team tool confirmation within a step)\n\n**Requirements Parameter:**\nJSON string containing the resolved step requirements.","operationId":"continue_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_workflow_run"}}}},"responses":{"200":{"description":"Workflow run continued successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: StepCompleted\ndata: {\"step_name\": \"step1\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid JSON in requirements field","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is not paused. Only PAUSED runs can be continued."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/cancel":{"post":{"tags":["Workflows"],"summary":"Cancel Workflow Run","description":"Cancel a currently executing workflow run, stopping all active steps and cleanup.\n**Note:** Complex workflows with multiple parallel steps may take time to fully cancel.","operationId":"cancel_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found, or the requested run was not found in the caller's session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel workflow run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/resume":{"post":{"tags":["Workflows"],"summary":"Resume Workflow Run Stream","description":"Resume an SSE stream for a workflow run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_workflow_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_workflow_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory workflows. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Run","description":"Retrieve the status and output of a workflow run. Use this to poll for run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/slack/events":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Receives incoming Slack events (messages, mentions, thread starts).\n\n**URL Verification:** On first setup, Slack sends a `url_verification` challenge. The endpoint echoes back the challenge string.\n\n**Event Processing:** Normal events are acknowledged immediately with `{\"status\": \"ok\"}` and processed in the background. This prevents Slack's 3-second retry timeout.\n\n**Retry Handling:** Events with `X-Slack-Retry-Num` header are duplicates and return 200 without reprocessing.\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Event Subscriptions > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for creating a Slack App or use the [manifest](/agent-os/interfaces/slack/setup#2-create-the-slack-app) for quick setup.\n","operationId":"slack_events_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SlackChallengeResponse"},{"$ref":"#/components/schemas/SlackEventResponse"}],"title":"Response Slack Events Simple Agent"}}}},"400":{"description":"Missing Slack headers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured, or the event body is not valid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number (present on retried events)"}]}},"/slack/interactions":{"post":{"tags":["Slack"],"summary":"Slack Interactions","description":"Handles Slack interactive components for Human-in-the-Loop (HITL) workflows.\n\n**Supported Actions:**\n- `row_approve` - Approve a pending tool call\n- `row_reject` - Reject a pending tool call\n- `submit_pause` - Submit form data for a paused workflow\n- `check_status` - Check an admin approval and resume an approved run\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Interactivity & Shortcuts > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for step-by-step instructions or the [HITL guide](/agent-os/interfaces/slack/hitl) for approval workflows.\n","operationId":"slack_interactions_simple_agent","responses":{"200":{"description":"Interaction accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackEventResponse"}}}},"400":{"description":"Missing Slack headers or malformed interaction payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number. Retried interactions return 200 without reprocessing."}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"URL-encoded JSON interaction payload (Slack sends interactive component data as a single form field)"}}}}}}}},"/whatsapp/status":{"get":{"tags":["Whatsapp"],"summary":"Status","operationId":"whatsapp_status_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"WhatsAppStatusResponse","example":{"status":"available"}}}}}}}},"/whatsapp/webhook":{"get":{"tags":["Whatsapp"],"summary":"Whatsapp Verify","description":"Handle WhatsApp webhook verification","operationId":"whatsapp_verify_simple_agent","responses":{"200":{"description":"Webhook challenge accepted","content":{"text/plain":{"schema":{"type":"string"},"example":"challenge-token"}}},"400":{"description":"No challenge was provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid verify token or mode","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Webhook verification is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"hub.mode","in":"query","required":true,"schema":{"type":"string"},"description":"Webhook verification mode. Meta sends `subscribe`."},{"name":"hub.verify_token","in":"query","required":true,"schema":{"type":"string"},"description":"Verification token configured for the WhatsApp interface."},{"name":"hub.challenge","in":"query","required":true,"schema":{"type":"string"},"description":"Challenge returned as plain text after successful verification."}]},"post":{"tags":["Whatsapp"],"summary":"Whatsapp Webhook","description":"Process incoming WhatsApp messages","operationId":"whatsapp_webhook_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppWebhookResponse"}}}},"403":{"description":"Invalid webhook signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Signature validation is not configured, or the JSON body is malformed or is not an object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Hub-Signature-256","in":"header","required":true,"schema":{"type":"string"},"description":"SHA-256 HMAC signature for the raw request body, prefixed with `sha256=`"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}},"/telegram/status":{"get":{"tags":["Telegram"],"summary":"Telegram Status","operationId":"telegram_status_simple-agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramStatusResponse"}}}}}}},"/telegram/webhook":{"post":{"tags":["Telegram"],"summary":"Telegram Webhook","operationId":"telegram_webhook_simple-agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramWebhookResponse"}}}},"403":{"description":"Invalid webhook secret token"}}}},"/agui":{"post":{"tags":["AGUI"],"summary":"Run Agent","operationId":"run_agent_agui_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentInput"}}},"required":true},"responses":{"200":{"description":"Server-sent event stream","content":{"text/event-stream":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/status":{"get":{"tags":["AGUI"],"summary":"Get Status","operationId":"get_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/a2a/agents/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Agent Card","operationId":"get_agent_card_a2a_agents__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Agent","description":"Send a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"A2A is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/agents/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Agent Task","description":"Get the status and result of an agent task by ID.","operationId":"get_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Agent Task","description":"Cancel a running agent task.","operationId":"cancel_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Agent","description":"Stream a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/teams/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Team Card","operationId":"get_team_card_a2a_teams__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Team","description":"Send a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/teams/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Team Task","description":"Get the status and result of a team task by ID.","operationId":"get_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Team Task","description":"Cancel a running team task.","operationId":"cancel_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Team","description":"Stream a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/workflows/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Workflow Card","operationId":"get_workflow_card_a2a_workflows__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/workflows/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Workflow","description":"Send a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/workflows/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Workflow","description":"Stream a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/message/send":{"post":{"tags":["A2A"],"summary":"Send Message","description":"[DEPRECATED] Send a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"send_message","responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/a2a/message/stream":{"post":{"tags":["A2A"],"summary":"Stream Message","description":"[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).","operationId":"stream_message","responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/sessions":{"get":{"tags":["Sessions"],"summary":"List Sessions","description":"Retrieve paginated list of sessions with filtering and sorting options. Supports filtering by session type (agent, team, workflow), component, user, and name. Sessions represent conversation histories and execution contexts.","operationId":"get_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types.","title":"Type"},"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types."},{"name":"component_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by component ID (agent/team/workflow ID)","title":"Component Id"},"description":"Filter sessions by component ID (agent/team/workflow ID)"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by user ID","title":"User Id"},"description":"Filter sessions by user ID"},{"name":"session_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by name (partial match)","title":"Session Name"},"description":"Filter sessions by name (partial match)"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of sessions to return per page","default":20,"title":"Limit"},"description":"Number of sessions to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort sessions by","default":"created_at","title":"Sort By"},"description":"Field to sort sessions by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query sessions from","title":"Db Id"},"description":"Database ID to query sessions from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Sessions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_SessionSchema_"},"example":{"session_example":{"summary":"Example session response","value":{"data":[{"session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_state":{},"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}]}}}}}},"400":{"description":"Invalid session type or filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in query parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Sessions"],"summary":"Create New Session","description":"Create a new empty session with optional configuration. Useful for pre-creating sessions with specific session_state, metadata, or other properties before running any agent/team/workflow interactions. The session can later be used by providing its session_id in run requests.","operationId":"create_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SessionType","description":"Type of session to create (agent, team, or workflow)","default":"agent"},"description":"Type of session to create (agent, team, or workflow)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to create session in","title":"Db Id"},"description":"Database ID to create session in"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest","description":"Session configuration data","default":{}}}}},"responses":{"201":{"description":"Session created successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Create Session"},"examples":{"agent_session_example":{"summary":"Example created agent session","value":{"user_id":"user-123","agent_session_id":"new-session-id","session_id":"new-session-id","session_name":"New Session","session_state":{"key":"value"},"metadata":{"key":"value"},"agent_id":"agent-1","created_at":"2025-10-21T12:00:00Z","updated_at":"2025-10-21T12:00:00Z"}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A session with the supplied session_id already exists"},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Multiple Sessions","description":"Delete multiple sessions by their IDs in a single operation. This action cannot be undone and will permanently remove all specified sessions and their runs.","operationId":"delete_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSessionRequest"}}}},"responses":{"204":{"description":"Sessions deleted successfully"},"400":{"description":"Invalid request - session IDs and types length mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["Sessions"],"summary":"Get Session by ID","description":"Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow).","operationId":"get_session_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to retrieve","title":"Session Id"},"description":"Session ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query session from","title":"User Id"},"description":"User ID to query session from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query session from","title":"Db Id"},"description":"Database ID to query session from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query session from","title":"Table"},"description":"Table to query session from"}],"responses":{"200":{"description":"Session details retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Get Session By Id"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Session","description":"Permanently delete a specific session and all its associated runs. This action cannot be undone and will remove all conversation history.","operationId":"delete_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to delete","title":"Session Id"},"description":"Session ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Sessions"],"summary":"Update Session","description":"Update session properties such as session_name, session_state, metadata, or summary. Use this endpoint to modify the session name, update state, add metadata, or update the session summary.","operationId":"update_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to update","title":"Session Id"},"description":"Session ID to update"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID","title":"User Id"},"description":"User ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update operation","title":"Db Id"},"description":"Database ID to use for update operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update operation","title":"Table"},"description":"Table to use for update operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest","description":"Session update data"}}}},"responses":{"200":{"description":"Session updated successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Update Session"},"examples":{"update_summary":{"summary":"Update session summary","value":{"summary":{"summary":"The user discussed project planning with the agent.","updated_at":"2025-10-21T14:30:00Z"}}},"update_metadata":{"summary":"Update session metadata","value":{"metadata":{"tags":["planning","project"],"priority":"high"}}},"update_session_name":{"summary":"Update session name","value":{"session_name":"Updated Session Name"}},"update_session_state":{"summary":"Update session state","value":{"session_state":{"step":"completed","context":"Project planning finished","progress":100}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs":{"get":{"tags":["Sessions"],"summary":"Get Session Runs","description":"Retrieve all runs (executions) for a specific session with optional timestamp filtering. Runs represent individual interactions or executions within a session. Response schema varies based on session type.","operationId":"get_session_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get runs from","title":"Session Id"},"description":"Session ID to get runs from"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query runs from","title":"User Id"},"description":"User ID to query runs from"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created after this Unix timestamp (epoch time in seconds)","title":"Created After"},"description":"Filter runs created after this Unix timestamp (epoch time in seconds)"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created before this Unix timestamp (epoch time in seconds)","title":"Created Before"},"description":"Filter runs created before this Unix timestamp (epoch time in seconds)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query runs from","title":"Db Id"},"description":"Database ID to query runs from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query runs from","title":"Table"},"description":"Table to query runs from"}],"responses":{"200":{"description":"Session runs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}]},"title":"Response Get Session Runs"},"examples":{"completed_run":{"summary":"Example completed run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"","run_input":"Which tools do you have access to?","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","run_response_format":"text","reasoning_content":"","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069},"messages":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-08 17:52:10.101003.\n\n\nYou have the capability to retain memories from previous interactions with the user, but have not had any interactions with the user yet.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757346730},{"content":"Which tools do you have access to?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757346730},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138},"created_at":1757346730}],"events":[{"created_at":1757346730,"event":"RunStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","model":"gpt-4o","model_provider":"OpenAI"},{"created_at":1757346733,"event":"MemoryUpdateStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"MemoryUpdateCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"RunCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","content_type":"str","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069}}],"created_at":"2025-09-08T15:52:10Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found or has no runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs/{run_id}":{"get":{"tags":["Sessions"],"summary":"Get Run by ID","description":"Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run).","operationId":"get_session_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get run from","title":"Session Id"},"description":"Session ID to get run from"},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","description":"Run ID to retrieve","title":"Run Id"},"description":"Run ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query run from","title":"User Id"},"description":"User ID to query run from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query run from","title":"Db Id"},"description":"Database ID to query run from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query run from","title":"Table"},"description":"Table to query run from"}],"responses":{"200":{"description":"Run retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}],"title":"Response Get Session Run"},"examples":{"agent_run":{"summary":"Example agent run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"user_123","run_input":"Which tools do you have access to?","content":"I don't have access to external tools.","created_at":1728499200}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/rename":{"post":{"tags":["Sessions"],"summary":"Rename Session","description":"Update the name of an existing session. Useful for organizing and categorizing sessions with meaningful names for better identification and management.","operationId":"rename_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to rename","title":"Session Id"},"description":"Session ID to rename"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope rename to","title":"User Id"},"description":"User ID to scope rename to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for rename operation","title":"Db Id"},"description":"Database ID to use for rename operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_rename_session"}}}},"responses":{"200":{"description":"Session renamed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Rename Session"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Invalid session name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type or validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories":{"post":{"tags":["Memory"],"summary":"Create Memory","description":"Create a new user memory with content and associated topics. Memories are used to store contextual information for users across conversations.","operationId":"create_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for memory storage","title":"Db Id"},"description":"Database ID to use for memory storage"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for memory storage","title":"Table"},"description":"Table to use for memory storage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"mem-123","memory":"User prefers technical explanations with code examples","topics":["preferences","communication_style","technical"],"user_id":"user-456","created_at":"2024-01-15T10:30:00Z","updated_at":"2024-01-15T10:30:00Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Memory"],"summary":"Delete Multiple Memories","description":"Delete multiple user memories by their IDs in a single operation. This action cannot be undone and all specified memories will be permanently removed.","operationId":"delete_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMemoriesRequest"}}}},"responses":{"204":{"description":"Memories deleted successfully"},"400":{"description":"Invalid request - empty memory_ids list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"List Memories","description":"Retrieve paginated list of user memories with filtering and search capabilities. Filter by user, agent, team, topics, or search within memory content.","operationId":"get_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by user ID","title":"User Id"},"description":"Filter memories by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by agent ID","title":"Agent Id"},"description":"Filter memories by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by team ID","title":"Team Id"},"description":"Filter memories by team ID"},{"name":"search_content","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fuzzy search within memory content","title":"Search Content"},"description":"Fuzzy search within memory content"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of memories to return per page","default":20,"title":"Limit"},"description":"Number of memories to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort memories by","default":"updated_at","title":"Sort By"},"description":"Field to sort memories by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memories from","title":"Db Id"},"description":"Database ID to query memories from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Comma-separated list of topics to filter by","examples":["preferences,technical,communication_style"],"title":"Topics"},"description":"Comma-separated list of topics to filter by"}],"responses":{"200":{"description":"Memories retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserMemorySchema_"},"example":{"data":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories/{memory_id}":{"delete":{"tags":["Memory"],"summary":"Delete Memory","description":"Permanently delete a specific user memory. This action cannot be undone.","operationId":"delete_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to delete","title":"Memory Id"},"description":"Memory ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to delete memory for","title":"User Id"},"description":"User ID to delete memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Memory deleted successfully"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"Get Memory by ID","description":"Retrieve detailed information about a specific user memory by its ID.","operationId":"get_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to retrieve","title":"Memory Id"},"description":"Memory ID to retrieve"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query memory for","title":"User Id"},"description":"User ID to query memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memory from","title":"Db Id"},"description":"Database ID to query memory from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query memory from","title":"Table"},"description":"Table to query memory from"}],"responses":{"200":{"description":"Memory retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Memory"],"summary":"Update Memory","description":"Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values.","operationId":"update_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to update","title":"Memory Id"},"description":"Memory ID to update"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update","title":"Db Id"},"description":"Database ID to use for update"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update","title":"Table"},"description":"Table to use for update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memory_topics":{"get":{"tags":["Memory"],"summary":"Get Memory Topics","description":"Retrieve all unique topics associated with memories in the system. Useful for filtering and categorizing memories by topic.","operationId":"get_memory_topics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter topics for","title":"User Id"},"description":"User ID to filter topics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query topics from","title":"Db Id"},"description":"Database ID to query topics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query topics from","title":"Table"},"description":"Table to query topics from"}],"responses":{"200":{"description":"Memory topics retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Get Memory Topics"},"example":["preferences","communication_style","technical","industry","compliance","code_examples","requirements","healthcare","finance"]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/user_memory_stats":{"get":{"tags":["Memory"],"summary":"Get User Memory Statistics","description":"Retrieve paginated statistics about memory usage by user. Provides insights into user engagement and memory distribution across users.","operationId":"get_user_memory_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of user statistics to return per page","default":20,"title":"Limit"},"description":"Number of user statistics to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter statistics for","title":"User Id"},"description":"User ID to filter statistics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query statistics from","title":"Table"},"description":"Table to query statistics from"}],"responses":{"200":{"description":"User memory statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserStatsSchema_"},"example":{"data":[{"user_id":"123","total_memories":3,"last_memory_updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve user statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/optimize-memories":{"post":{"tags":["Memory"],"summary":"Optimize User Memories","description":"Optimize all memories for a user with the summarize strategy. The operation combines the user's memories into one summary. Set `apply=false` to preview the result without saving it. Specify a custom model as `provider:model_id`, for example `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, or `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`.","operationId":"optimize_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for optimization","title":"Db Id"},"description":"Database ID to use for optimization"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for optimization","title":"Table"},"description":"Table to use for optimization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesRequest"}}}},"responses":{"200":{"description":"Memories optimized successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesResponse"},"example":{"memories":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User has a 3-year-old golden retriever named Max who loves fetch and walks. Lives in San Francisco's Mission district, works as a product manager in tech. Enjoys hiking Bay Area trails, trying new restaurants (especially Japanese, Thai, Mexican), and learning piano for 1.5 years.","topics":["pets","location","work","hobbies","food_preferences"],"user_id":"user2","updated_at":"2025-11-18T10:30:00Z"}],"memories_before":4,"memories_after":1,"tokens_before":450,"tokens_after":180,"tokens_saved":270,"reduction_percentage":60.0}}}},"400":{"description":"Bad request - User ID is required or invalid model string format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No memories found for user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to optimize memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings":{"get":{"tags":["Learnings"],"summary":"List Learnings","description":"List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) \u2014 this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`).","operationId":"list_learnings","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by learning type","title":"Learning Type"},"description":"Filter by learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"namespace","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by namespace","title":"Namespace"},"description":"Filter by namespace"},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity ID","title":"Entity Id"},"description":"Filter by entity ID"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity type","title":"Entity Type"},"description":"Filter by entity type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":100,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used).","title":"Sort By"},"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used)."},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Learnings"],"summary":"Create Learning","description":"Create a new learning record. For the identity-keyed learning types (`user_profile`, `user_memory`, `session_context`, `entity_memory`) the record id is derived deterministically from the identity fields so it reconciles with what the agent reads/writes \u2014 provide those fields (else 422), and if a record already exists the request is rejected with 409 (use PATCH to update it). Other types get a generated id. For a scoped (non-admin) caller, the body's `user_id` must be omitted/null or match the caller (mismatch \u2192 403); admins and unscoped callers may set any `user_id`.","operationId":"create_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users":{"get":{"tags":["Learnings"],"summary":"List Learning Users","description":"List the users that own learning records, with a per-user count and last-updated timestamp. Intended as the entry point for a per-user view: list users here, then drill into a single user's learnings via `GET /learnings?user_id=...`. Records with no owner (`user_id IS NULL`) are excluded. Pass `learning_type` to restrict the grouping to a single store (e.g. `user_profile` or `user_memory`). For a scoped (non-admin) caller results are bound to that user; an explicit `user_id` that differs is rejected with 403. Admins and unscoped callers list all users. Sortable by `user_id` or `last_learning_updated_at` (the default).","operationId":"list_learning_users","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the grouping to a single learning type","title":"Learning Type"},"description":"Restrict the grouping to a single learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the result to a single user","title":"User Id"},"description":"Restrict the result to a single user"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by: user_id or last_learning_updated_at (the default)","title":"Sort By"},"description":"Field to sort by: user_id or last_learning_updated_at (the default)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningUserStats_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users/{user_id}":{"delete":{"tags":["Learnings"],"summary":"Delete Learning User","description":"Delete the learning records owned by a user. By default removes every learning type backed by the agno_learnings table (user_profile, user_memory, and any user-scoped entity records); pass `learning_type` to restrict deletion to a single store. Records with no owner (`user_id IS NULL`) are not affected. For a scoped (non-admin) caller, only their own learnings may be deleted; a different `user_id` is rejected with 403. Admins and unscoped callers may delete any user's learnings. Returns 204 even if the user had no matching records.","operationId":"delete_learning_user","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The user whose learnings should be deleted","title":"User Id"},"description":"The user whose learnings should be deleted"},{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings","title":"Learning Type"},"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/{learning_id}":{"get":{"tags":["Learnings"],"summary":"Get Learning","description":"Retrieve a single learning record by its ID.","operationId":"get_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Learnings"],"summary":"Update Learning","description":"Update a learning record. Only `content` and `metadata` may be modified; identity fields (user_id, agent_id, team_id, etc.) are immutable. Provided fields fully replace the existing values. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) are readable by any caller but may only be modified by an admin.","operationId":"update_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Learnings"],"summary":"Delete Learning","description":"Permanently delete a learning record by its ID. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) may only be deleted by an admin.","operationId":"delete_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs":{"get":{"tags":["Evals"],"summary":"List Evaluation Runs","description":"Retrieve paginated evaluation runs with filtering and sorting options. Filter by agent, team, workflow, model, or evaluation type.","operationId":"get_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Workflow ID","title":"Workflow Id"},"description":"Workflow ID"},{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model ID","title":"Model Id"},"description":"Model ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EvalFilterType"},{"type":"null"}],"description":"Filter type","title":"Type"},"description":"Filter type"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of eval runs to return","default":20,"title":"Limit"},"description":"Number of eval runs to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"eval_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)","examples":["accuracy,agent_as_judge,performance,reliability"],"title":"Eval Types"},"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)"}],"responses":{"200":{"description":"Evaluation runs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_EvalSchema_"},"example":{"data":[{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Evals"],"summary":"Delete Evaluation Runs","description":"Delete multiple evaluation runs by their IDs. This action cannot be undone.","operationId":"delete_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvalRunsRequest"}}}},"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Deletion failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Evals"],"summary":"Execute Evaluation","description":"Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both.","operationId":"run_eval","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for evaluation","title":"Db Id"},"description":"Database ID to use for evaluation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for evaluation","title":"Table"},"description":"Table to use for evaluation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRunInput"}}}},"responses":{"200":{"description":"Evaluation executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"f2b2d72f-e9e2-4f0e-8810-0a7e1ff58614","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Invalid request - provide either agent_id or team_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs/{eval_run_id}":{"get":{"tags":["Evals"],"summary":"Get Evaluation Run","description":"Retrieve detailed results and metrics for a specific evaluation run.","operationId":"get_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query eval run from","title":"Table"},"description":"Table to query eval run from"}],"responses":{"200":{"description":"Evaluation run details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Evals"],"summary":"Update Evaluation Run","description":"Update the name or other properties of an existing evaluation run.","operationId":"update_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvalRunRequest"}}}},"responses":{"200":{"description":"Evaluation run updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update evaluation run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics":{"get":{"tags":["Metrics"],"summary":"Get AgentOS Metrics","description":"Retrieve AgentOS metrics and analytics data for a specified date range. If no date range is specified, returns all available metrics.","operationId":"get_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"starting_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Starting date for metrics range (YYYY-MM-DD format)","title":"Starting Date"},"description":"Starting date for metrics range (YYYY-MM-DD format)"},{"name":"ending_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Ending date for metrics range (YYYY-MM-DD format)","title":"Ending Date"},"description":"Ending date for metrics range (YYYY-MM-DD format)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query metrics from","title":"Db Id"},"description":"Database ID to query metrics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Metrics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"},"example":{"metrics":[{"id":"7bf39658-a00a-484c-8a28-67fd8a9ddb2a","agent_runs_count":5,"agent_sessions_count":5,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":448,"output_tokens":148,"total_tokens":596,"audio_tokens":0,"input_audio_tokens":0,"output_audio_tokens":0,"cached_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":5}],"date":"2025-07-31T00:00:00Z","created_at":"2025-07-31T12:38:52Z","updated_at":"2025-07-31T12:49:01Z"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Metrics retrieval failed. In Agno 2.7.4, invalid or ambiguous database selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics/refresh":{"post":{"tags":["Metrics"],"summary":"Refresh Metrics","description":"Manually trigger recalculation of system metrics from raw data. This operation analyzes system activity logs and regenerates aggregated metrics. Useful for ensuring metrics are up-to-date or after system maintenance.","operationId":"refresh_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for metrics calculation","title":"Db Id"},"description":"Database ID to use for metrics calculation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for metrics calculation","title":"Table"},"description":"Table to use for metrics calculation"}],"responses":{"200":{"description":"Metrics refreshed successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"title":"Response Refresh Metrics"},"example":[{"id":"e77c9531-818b-47a5-99cd-59fed61e5403","agent_runs_count":2,"agent_sessions_count":2,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":256,"output_tokens":441,"total_tokens":697,"audio_total_tokens":0,"audio_input_tokens":0,"audio_output_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":2}],"date":"2025-08-12T00:00:00Z","created_at":"2025-08-12T08:01:47Z","updated_at":"2025-08-12T08:01:47Z"}]}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Refresh failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content":{"post":{"tags":["Knowledge"],"summary":"Upload Content","description":"Upload content to the knowledge base. Supports file uploads, text content, or URLs. Content is processed asynchronously in the background. Supports custom readers and chunking strategies.","operationId":"upload_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_content"}}}},"responses":{"202":{"description":"Content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-123","name":"example-document.pdf","description":"Sample document for processing","metadata":{"category":"documentation","priority":"high"},"status":"processing"}}}},"400":{"description":"Invalid request - malformed metadata or missing content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in form data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"List Content","description":"Retrieve paginated list of all content in the knowledge base with filtering and sorting options. Filter by status, content type, or metadata properties.","operationId":"get_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of content entries to return","default":20,"title":"Limit"},"description":"Number of content entries to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ContentResponseSchema_"},"example":{"data":[{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}],"meta":{"page":1,"limit":20,"total_pages":1,"total_count":2}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete All Content","description":"Permanently remove all content from the knowledge base. This is a destructive operation that cannot be undone. Use with extreme caution.","operationId":"delete_all_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete all content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/remote-content":{"post":{"tags":["Knowledge"],"summary":"Upload Remote Content","description":"Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.","operationId":"upload_remote_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_upload_remote_content"}}}},"responses":{"202":{"description":"Remote content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-456","name":"reports/q1-2024.pdf","description":"Q1 Report from S3","metadata":{"source":"s3-docs"},"status":"processing"}}}},"400":{"description":"Invalid request - unknown config or missing path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}":{"patch":{"tags":["Knowledge"],"summary":"Update Content","description":"Update content name, description, or metadata without re-uploading it. In Agno 2.7.4, this endpoint accepts `reader_id`. Local knowledge validates the value, but the content patch does not apply or persist the reader change.","operationId":"update_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","description":"Content ID","title":"Content Id"},"description":"Content ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_update_content"}}}},"responses":{"200":{"description":"Content updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Invalid request - malformed metadata or invalid reader_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"Get Content by ID","description":"Retrieve detailed information about a specific content item including processing status and metadata.","operationId":"get_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete Content by ID","description":"Permanently remove a specific content item from the knowledge base. This action cannot be undone.","operationId":"delete_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}/status":{"get":{"tags":["Knowledge"],"summary":"Get Content Status","description":"Retrieve the current processing status of a content item. Useful for monitoring asynchronous content processing progress and identifying any processing errors.","operationId":"get_content_status","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content status retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentStatusResponse"},"examples":{"completed":{"summary":"Example completed content status","value":{"status":"completed","status_message":""}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/search":{"post":{"tags":["Knowledge"],"summary":"Search Knowledge","description":"Search the knowledge base for relevant documents using query, filters and search type.","operationId":"search_knowledge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VectorSearchRequestSchema"}}},"required":true},"responses":{"200":{"description":"Search results retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_VectorSearchResult_"},"example":{"data":[{"id":"doc_123","content":"Jordan Mitchell - Software Engineer with skills in JavaScript, React, Python","name":"cv_1","meta_data":{"page":1,"chunk":1},"usage":{"total_tokens":14},"reranking_score":0.95,"content_id":"content_456"}],"meta":{"page":1,"limit":20,"total_pages":2,"total_count":35}}}}},"400":{"description":"Invalid search parameters"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No documents found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/knowledge/config":{"get":{"tags":["Knowledge"],"summary":"Get Config","description":"Retrieve available readers, chunkers, and configuration options for content processing. This endpoint provides metadata about supported file types, processing strategies, and filters.","operationId":"get_knowledge_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Knowledge configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponseSchema"},"example":{"readers":{"website":{"id":"website","name":"WebsiteReader","description":"Reads website files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"firecrawl":{"id":"firecrawl","name":"FirecrawlReader","description":"Reads firecrawl files","chunkers":["SemanticChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"youtube":{"id":"youtube","name":"YoutubeReader","description":"Reads youtube files","chunkers":["RecursiveChunker","AgenticChunker","DocumentChunker","SemanticChunker","FixedSizeChunker"]},"web_search":{"id":"web_search","name":"WebSearchReader","description":"Reads web_search files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"arxiv":{"id":"arxiv","name":"ArxivReader","description":"Reads arxiv files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"csv":{"id":"csv","name":"CsvReader","description":"Reads csv files","chunkers":["RowChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"docling":{"id":"docling","name":"DoclingReader","description":"Converts multiple document formats like PDF, DOCX, PPTX, images, HTML, etc. using IBM's Docling library","chunkers":["AgenticChunker","CodeChunker","DocumentChunker","FixedSizeChunker","RecursiveChunker","SemanticChunker"]},"docx":{"id":"docx","name":"DocxReader","description":"Reads docx files","chunkers":["DocumentChunker","FixedSizeChunker","SemanticChunker","AgenticChunker","RecursiveChunker"]},"gcs":{"id":"gcs","name":"GcsReader","description":"Reads gcs files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"json":{"id":"json","name":"JsonReader","description":"Reads json files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"markdown":{"id":"markdown","name":"MarkdownReader","description":"Reads markdown files","chunkers":["MarkdownChunker","DocumentChunker","AgenticChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"pdf":{"id":"pdf","name":"PdfReader","description":"Reads pdf files","chunkers":["DocumentChunker","FixedSizeChunker","AgenticChunker","SemanticChunker","RecursiveChunker"]},"text":{"id":"text","name":"TextReader","description":"Reads text files","chunkers":["CodeChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]}},"readersForType":{"url":["url","website","firecrawl","youtube","web_search","gcs"],"youtube":["youtube"],"text":["web_search"],"topic":["arxiv"],"file":["csv","gcs"],".csv":["csv","field_labeled_csv","docling"],".xlsx":["excel","docling"],".xls":["excel"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["excel"],"application/vnd.ms-excel":["excel"],".docx":["docx","docling"],".dotx":["docling"],".docm":["docling"],".dotm":["docling"],".pptx":["docling","pptx"],".potx":["docling"],".ppsx":["docling"],".pptm":["docling"],".ppsm":["docling"],".potm":["docling"],".doc":["docx"],".json":["json"],".md":["markdown","docling"],".pdf":["pdf","docling"],".txt":["text"],".html":["docling"],".htm":["docling"],".xhtml":["docling"],".xml":["docling"],".nxml":["docling"],".xbrl":["docling"],".adoc":["docling"],".asciidoc":["docling"],".asc":["docling"],".xlsm":["docling"],".tex":["docling"],".latex":["docling"],".tar.gz":["docling"],".vtt":["docling"],".png":["docling"],".jpeg":["docling"],".jpg":["docling"],".tiff":["docling"],".tif":["docling"],".bmp":["docling"],".webp":["docling"],".wav":["docling"],".mp3":["docling"],".m4a":["docling"],".aac":["docling"],".ogg":["docling"],".flac":["docling"],".mp4":["docling"],".avi":["docling"],".mov":["docling"]},"chunkers":{"AgenticChunker":{"key":"AgenticChunker","name":"AgenticChunker","description":"Chunking strategy that uses an LLM to determine natural breakpoints in the text","metadata":{"chunk_size":5000}},"CodeChunker":{"key":"CodeChunker","name":"CodeChunker","description":"The CodeChunker splits code into chunks based on its structure, leveraging Abstract Syntax Trees (ASTs) to create contextually relevant segments","metadata":{"chunk_size":2048}},"DocumentChunker":{"key":"DocumentChunker","name":"DocumentChunker","description":"A chunking strategy that splits text based on document structure like paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"FixedSizeChunker":{"key":"FixedSizeChunker","name":"FixedSizeChunker","description":"Chunking strategy that splits text into fixed-size chunks with optional overlap","metadata":{"chunk_size":5000,"chunk_overlap":0}},"MarkdownChunker":{"key":"MarkdownChunker","name":"MarkdownChunker","description":"A chunking strategy that splits markdown based on structure like headers, paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RecursiveChunker":{"key":"RecursiveChunker","name":"RecursiveChunker","description":"Chunking strategy that recursively splits text into chunks by finding natural break points","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RowChunker":{"key":"RowChunker","name":"RowChunker","description":"RowChunking chunking strategy","metadata":{}},"SemanticChunker":{"key":"SemanticChunker","name":"SemanticChunker","description":"Chunking strategy that splits text into semantic chunks using chonkie","metadata":{"chunk_size":5000}}},"vector_dbs":[{"id":"vector_db_1","name":"Vector DB 1","description":"Vector DB 1 description","search_types":["vector","keyword","hybrid"]}],"filters":["filter_tag_1","filter_tag2"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources":{"get":{"tags":["Knowledge"],"summary":"List Content Sources","description":"List all registered content sources (S3, GCS, SharePoint, GitHub) for the knowledge base.","operationId":"list_content_sources","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Content sources retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"title":"Response List Content Sources"},"example":[{"id":"company-s3","name":"Company Documents","type":"s3","prefix":"documents/"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources/{source_id}/files":{"get":{"tags":["Knowledge"],"summary":"List Files in Source","description":"List available files and folders in a specific content source. Supports pagination and folder navigation.","operationId":"list_source_files","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the content source","title":"Source Id"},"description":"ID of the content source"},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Path prefix to filter files","title":"Prefix"},"description":"Path prefix to filter files"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of files per page","default":100,"title":"Limit"},"description":"Number of files per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"delimiter","in":"query","required":false,"schema":{"type":"string","description":"Folder delimiter (enables folder grouping)","default":"/","title":"Delimiter"},"description":"Folder delimiter (enables folder grouping)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Files listed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceFilesResponseSchema"},"example":{"source_id":"company-s3","source_name":"Company Documents","prefix":"reports/","folders":[{"prefix":"reports/2024/","name":"2024","is_empty":false}],"files":[{"key":"reports/annual-summary.pdf","name":"annual-summary.pdf","size":102400,"last_modified":"2024-01-15T10:30:00Z","content_type":"application/pdf"}],"meta":{"page":1,"limit":100,"total_pages":1,"total_count":1}}}}},"400":{"description":"Unsupported source type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base or content source not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces":{"get":{"tags":["Traces","Traces"],"summary":"List Traces","description":"Retrieve a paginated list of execution traces with optional filtering.\n\n**Traces provide observability into:**\n- Agent execution flows\n- Model invocations and token usage\n- Tool calls and their results\n- Errors and performance bottlenecks\n\n**Filtering Options:**\n- By run, session, user, or agent ID\n- By status (OK, ERROR)\n- By time range\n\n**Pagination:**\n- Use `page` (1-indexed) and `limit` parameters\n- Response includes pagination metadata (total_pages, total_count, etc.)\n\n**Response Format:**\nReturns summary information for each trace. Use GET `/traces/{trace_id}` for detailed hierarchy.","operationId":"get_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run ID","title":"Run Id"},"description":"Filter by run ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status (OK, ERROR)","title":"Status"},"description":"Filter by status (OK, ERROR)"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of traces per page","default":20,"title":"Limit"},"description":"Number of traces per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"responses":{"200":{"description":"List of traces retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSummary_"},"example":{"data":[{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","total_spans":4,"error_count":0,"input":"What is the stock price of NVDA?","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"agent_stock","created_at":"2025-11-19T10:30:00+00:00"}],"meta":{"page":1,"limit":20,"total_pages":5,"total_count":95}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/filter-schema":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Filter Schema","description":"Returns the available filterable fields, their types, valid operators, and enum values.\n\nThe frontend uses this to dynamically build the filter bar UI:\n- Field dropdown populated from `fields[].key`\n- Operator dropdown changes per field type\n- Value input shows autocomplete for enum fields (e.g., status)\n- Logical operators (AND, OR) for combining clauses","operationId":"get_traces_filter_schema","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterSchemaResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/traces/{trace_id}":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace or Span Detail","description":"Retrieve detailed trace information with hierarchical span tree, or a specific span within the trace.\n\n**Without span_id parameter:**\nReturns the full trace with hierarchical span tree:\n- Trace metadata (ID, status, duration, context)\n- Hierarchical tree of all spans\n- Each span includes timing, status, and type-specific metadata\n\n**With span_id parameter:**\nReturns details for a specific span within the trace:\n- Span metadata (ID, name, type, timing)\n- Status and error information\n- Type-specific attributes (model, tokens, tool params, etc.)\n\n**Span Hierarchy (full trace):**\nThe `tree` field contains root spans, each with potential `children`.\nThis recursive structure represents the execution flow:\n```\nAgent.run (root)\n \u251c\u2500 LLM.invoke\n \u251c\u2500 Tool.execute\n \u2502 \u2514\u2500 LLM.invoke (nested)\n \u2514\u2500 LLM.invoke\n```\n\n**Span Types:**\n- `AGENT`: Agent execution with input/output\n- `LLM`: Model invocations with tokens and prompts\n- `TOOL`: Tool calls with parameters and results","operationId":"get_trace","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}},{"name":"span_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Span ID to retrieve specific span","title":"Span Id"},"description":"Optional: Span ID to retrieve specific span"},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Run ID to retrieve trace for","title":"Run Id"},"description":"Optional: Run ID to retrieve trace for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query trace from","title":"Db Id"},"description":"Database ID to query trace from"}],"responses":{"200":{"description":"Trace or span detail retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TraceDetail"},{"$ref":"#/components/schemas/TraceNode"}],"title":"Response Get Trace"},"examples":{"full_trace":{"summary":"Full trace with hierarchy (no span_id)","value":{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","end_time":"2025-11-19T10:30:01.200000+00:00","total_spans":4,"error_count":0,"input":"What is Tesla stock price?","output":"The current price of Tesla (TSLA) is $245.67.","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"stock_agent","created_at":"2025-11-19T10:30:00+00:00","tree":[{"id":"span1","name":"Stock_Price_Agent.run","type":"AGENT","duration":"1.2s","status":"OK","spans":[]}]}},"single_span":{"summary":"Single span detail (with span_id)","value":{"id":"span2","name":"gpt-4o-mini.invoke","type":"LLM","duration":"800ms","status":"OK","metadata":{"model":"gpt-4o-mini","input_tokens":120}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Trace or span not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/trace_session_stats":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Statistics by Session","description":"Retrieve aggregated trace statistics grouped by session ID with pagination.\n\n**Provides insights into:**\n- Total traces per session\n- First and last trace timestamps per session\n- Associated user and agent information\n\n**Filtering Options:**\n- By user ID\n- By agent ID\n\n**Use Cases:**\n- Monitor session-level activity\n- Track conversation flows\n- Identify high-activity sessions\n- Analyze user engagement patterns","operationId":"get_trace_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of sessions per page","default":20,"title":"Limit"},"description":"Number of sessions per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"}],"responses":{"200":{"description":"Trace statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"},"example":{"data":[{"session_id":"37029bc6-1794-4ba8-a629-1efedc53dcad","user_id":"kaustubh@agno.com","agent_id":"hackernews-agent","total_traces":5,"first_trace_at":"2025-11-19T10:15:16+00:00","last_trace_at":"2025-11-19T10:21:30+00:00"}],"meta":{"page":1,"limit":20,"total_pages":3,"total_count":45}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/search":{"post":{"tags":["Traces","Traces"],"summary":"Search Traces with Advanced Filters","description":"Search traces using the FilterExpr DSL for complex, composable queries.\n\n**Group By Mode:**\n- `run` (default): Returns `PaginatedResponse[TraceDetail]` with full span trees\n- `session`: Returns `PaginatedResponse[TraceSessionStats]` with aggregated session stats\n\n**Supported Operators:**\n- Comparison: `EQ`, `NEQ`, `GT`, `GTE`, `LT`, `LTE`\n- Inclusion: `IN`\n- String matching: `CONTAINS` (case-insensitive substring), `STARTSWITH` (prefix)\n- Logical: `AND`, `OR`, `NOT`\n\n**Filterable Fields:**\ntrace_id, name, status, start_time, end_time, duration_ms, run_id, session_id, user_id, agent_id, team_id, workflow_id, created_at\n\n**Example Request Body (runs):**\n```json\n{\n \"filter\": {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n}\n```\n\n**Example Request Body (sessions):**\n```json\n{\n \"filter\": {\"op\": \"CONTAINS\", \"key\": \"agent_id\", \"value\": \"stock\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n}\n```","operationId":"search_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PaginatedResponse_TraceDetail_"},{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"}],"title":"Response Search Traces"}}}},"400":{"description":"Invalid filter expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/all/migrate":{"post":{"tags":["Database"],"summary":"Migrate All Databases","description":"Migrate all database schemas to the given target version. If a target version is not provided, all databases will be migrated to the latest version.","operationId":"migrate_all_databases","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"All databases migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"All databases migrated successfully to version 3.0.0"}}}},"207":{"description":"Some database migrations failed","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"},"failed":{"type":"object","additionalProperties":{"type":"string"},"title":"Failed"}},"type":"object","required":["message","failed"],"title":"PartialMigrationResponse"},"example":{"message":"Migrated 2/3 databases to latest version","failed":{"archive-db":"Migration failed"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/{db_id}/migrate":{"post":{"tags":["Database"],"summary":"Migrate Database","description":"Migrate the given database schema to the given target version. If a target version is not provided, the database will be migrated to the latest version.","operationId":"migrate_database","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"Database migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"Database migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Database not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components":{"get":{"tags":["Components"],"summary":"List Components","description":"Retrieve a paginated list of components with optional filtering by type.","operationId":"list_components","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ComponentType"},{"type":"null"}],"description":"Filter by type: agent, team, workflow","title":"Component Type"},"description":"Filter by type: agent, team, workflow"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ComponentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Component","description":"Create a new component (agent, team, or workflow) with initial config.","operationId":"create_component","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}":{"get":{"tags":["Components"],"summary":"Get Component","description":"Retrieve a component by ID.","operationId":"get_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Components"],"summary":"Update Component","description":"Partially update a component by ID.","operationId":"update_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentUpdate","description":"Component fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Component","description":"Soft-delete a component by ID. Component configs and links remain stored.","operationId":"delete_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs":{"get":{"tags":["Components"],"summary":"List Configs","description":"List all configs for a component.","operationId":"list_configs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"include_config","in":"query","required":false,"schema":{"type":"boolean","description":"Include full config blob","default":true,"title":"Include Config"},"description":"Include full config blob"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComponentConfigResponse"},"title":"Response List Configs"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Config Version","description":"Create a new config version for a component.","operationId":"create_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigCreate","description":"Config data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}":{"patch":{"tags":["Components"],"summary":"Update Draft Config","description":"Update an existing draft config. Cannot update published configs.","operationId":"update_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigUpdate","description":"Config fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Components"],"summary":"Get Config Version","description":"Get a specific config version by number.","operationId":"get_config_version","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Config Version","description":"Delete a specific config version. Agno v2.7.4 rejects the current version. Synchronous SQLite and PostgreSQL storage allow deletion of a published non-current version.","operationId":"delete_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/current":{"get":{"tags":["Components"],"summary":"Get Current Config","description":"Get the current config version for a component.","operationId":"get_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}/set-current":{"post":{"tags":["Components"],"summary":"Set Current Config Version","description":"Set a published config version as current (for rollback).","operationId":"set_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/schedules":{"get":{"tags":["Schedules"],"summary":"List Schedules","operationId":"list_schedules_schedules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"post":{"tags":["Schedules"],"summary":"Create Schedule","operationId":"create_schedule_schedules_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule","operationId":"get_schedule_schedules__schedule_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"patch":{"tags":["Schedules"],"summary":"Update Schedule","operationId":"update_schedule_schedules__schedule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Schedules"],"summary":"Delete Schedule","operationId":"delete_schedule_schedules__schedule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/enable":{"post":{"tags":["Schedules"],"summary":"Enable Schedule","operationId":"enable_schedule_schedules__schedule_id__enable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/disable":{"post":{"tags":["Schedules"],"summary":"Disable Schedule","operationId":"disable_schedule_schedules__schedule_id__disable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/trigger":{"post":{"tags":["Schedules"],"summary":"Trigger Schedule","operationId":"trigger_schedule_schedules__schedule_id__trigger_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Schedule is disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler is not running or storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs":{"get":{"tags":["Schedules"],"summary":"List Schedule Runs","operationId":"list_schedule_runs_schedules__schedule_id__runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleRunResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs/{run_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule Run","operationId":"get_schedule_run_schedules__schedule_id__runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals":{"get":{"tags":["Approvals"],"summary":"List Approvals","operationId":"list_approvals_approvals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","approved","rejected","expired","cancelled"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"source_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"}},{"name":"approval_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["required","audit"],"type":"string"},{"type":"null"}],"title":"Approval Type"}},{"name":"pause_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"schedule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"}},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ApprovalResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approvals could not be listed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/count":{"get":{"tags":["Approvals"],"summary":"Get Approval Count","operationId":"get_approval_count_approvals_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalCountResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval count could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/status":{"get":{"tags":["Approvals"],"summary":"Get Approval Status","operationId":"get_approval_status_approvals__approval_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalStatusResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval status could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}":{"get":{"tags":["Approvals"],"summary":"Get Approval","operationId":"get_approval_approvals__approval_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Approvals"],"summary":"Delete Approval","operationId":"delete_approval_approvals__approval_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval is not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/resolve":{"post":{"tags":["Approvals"],"summary":"Resolve Approval","operationId":"resolve_approval_approvals__approval_id__resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResolve"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Approval has already been resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts":{"post":{"tags":["Service Accounts"],"summary":"Create Service Account","description":"Mint a service account token. The plaintext token is returned exactly once.","operationId":"create_service_account_service_accounts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreateResponse"}}}},"400":{"description":"Requested scopes are invalid, or privileged scopes were not explicitly allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"An active service account with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"get":{"tags":["Service Accounts"],"summary":"List Service Accounts","description":"List service accounts. Returns metadata and display prefixes only - never hashes or plaintext.","operationId":"list_service_accounts_service_accounts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Revoked"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ServiceAccountResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts/{service_account_id}":{"delete":{"tags":["Service Accounts"],"summary":"Revoke Service Account","description":"Revoke an existing service account.\n\nTakes effect immediately on this worker (the local verification cache entry is evicted) and within the cache TTL on other workers.","operationId":"revoke_service_account_service_accounts__service_account_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"service_account_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Service account not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/registry":{"get":{"tags":["Registry"],"summary":"List Registry","description":"List all resources in the registry with optional filtering.","operationId":"list_registry","security":[{"HTTPBearer":[]}],"parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RegistryResourceType"},{"type":"null"}],"description":"Filter by resource type","title":"Resource Type"},"description":"Filter by resource type"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (partial match)","title":"Name"},"description":"Filter by name (partial match)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_RegistryContentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}}},"components":{"schemas":{"A2ARequest_DataPart":{"description":"Represents a structured data segment (e.g., JSON) within a message or artifact.","properties":{"data":{"additionalProperties":true,"title":"Data","type":"object"},"kind":{"const":"data","default":"data","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["data"],"title":"DataPart","type":"object"},"A2ARequest_FilePart":{"description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI.","properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_FileWithBytes"},{"$ref":"#/components/schemas/A2ARequest_FileWithUri"}],"title":"File"},"kind":{"const":"file","default":"file","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["file"],"title":"FilePart","type":"object"},"A2ARequest_FileWithBytes":{"description":"Represents a file with its content provided directly as a base64-encoded string.","properties":{"bytes":{"title":"Bytes","type":"string"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"}},"required":["bytes"],"title":"FileWithBytes","type":"object"},"A2ARequest_FileWithUri":{"description":"Represents a file with its content located at a specific URI.","properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"FileWithUri","type":"object"},"A2ARequest_Message":{"description":"Represents a single message in the conversation between a user and an agent.","properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"kind":{"const":"message","default":"message","title":"Kind","type":"string"},"messageId":{"title":"Messageid","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/A2ARequest_Part"},"title":"Parts","type":"array"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/A2ARequest_Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Taskid"}},"required":["messageId","parts","role"],"title":"Message","type":"object"},"A2ARequest_MessageSendConfiguration":{"description":"Defines configuration options for a `message/send` or `message/stream` request.","properties":{"acceptedOutputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Acceptedoutputmodes"},"blocking":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Blocking"},"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"pushNotificationConfig":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationConfig"},{"type":"null"}],"default":null}},"title":"MessageSendConfiguration","type":"object"},"A2ARequest_MessageSendParams":{"description":"Defines the parameters for a request to send a message to an agent. This can be used\nto create a new task, continue an existing one, or restart a task.","properties":{"configuration":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_MessageSendConfiguration"},{"type":"null"}],"default":null},"message":{"$ref":"#/components/schemas/A2ARequest_Message"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["message"],"title":"MessageSendParams","type":"object"},"A2ARequest_Part":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_TextPart"},{"$ref":"#/components/schemas/A2ARequest_FilePart"},{"$ref":"#/components/schemas/A2ARequest_DataPart"}],"title":"Part"},"A2ARequest_PushNotificationAuthenticationInfo":{"description":"Defines authentication details for a push notification endpoint.","properties":{"credentials":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Credentials"},"schemes":{"items":{"type":"string"},"title":"Schemes","type":"array"}},"required":["schemes"],"title":"PushNotificationAuthenticationInfo","type":"object"},"A2ARequest_PushNotificationConfig":{"description":"Defines the configuration for setting up push notifications for task updates.","properties":{"authentication":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationAuthenticationInfo"},{"type":"null"}],"default":null},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Id"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Token"},"url":{"title":"Url","type":"string"}},"required":["url"],"title":"PushNotificationConfig","type":"object"},"A2ARequest_Role":{"description":"Identifies the sender of the message. `user` for the client, `agent` for the service.","enum":["agent","user"],"title":"Role","type":"string"},"A2ARequest_TextPart":{"description":"Represents a text segment within a message or artifact.","properties":{"kind":{"const":"text","default":"text","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"text":{"title":"Text","type":"string"}},"required":["text"],"title":"TextPart","type":"object"},"ActivityMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"activity","title":"Role","default":"activity"},"activityType":{"type":"string","title":"Activitytype"},"content":{"additionalProperties":true,"type":"object","title":"Content"}},"additionalProperties":true,"type":"object","required":["id","activityType","content"],"title":"ActivityMessage","description":"An activity progress message emitted between chat messages."},"AgentResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"extra_messages":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Messages"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"AgentResponse"},"AgentSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_session_id":{"type":"string","title":"Agent Session Id","description":"Unique agent session identifier"},"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID used in this session"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"agent_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Data","description":"Agent-specific data"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["agent_session_id","session_id","session_name"],"title":"AgentSessionDetailSchema"},"AgentSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the agent"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the agent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the agent"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the agent"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","title":"AgentSummaryResponse"},"ApprovalCountResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"ApprovalCountResponse","description":"Response model for pending approval count."},"ApprovalResolve":{"properties":{"status":{"type":"string","pattern":"^(approved|rejected)$","title":"Status"},"resolved_by":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Resolved By"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"}},"type":"object","required":["status"],"title":"ApprovalResolve","description":"Request body for resolving (approve/reject) an approval."},"ApprovalResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"},"source_type":{"type":"string","title":"Source Type"},"approval_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Type"},"pause_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Args"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"},"schedule_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Run Id"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"},"run_status":{"anyOf":[{"$ref":"#/components/schemas/RunStatus"},{"type":"null"}]}},"type":"object","required":["id","run_id","session_id","status","source_type"],"title":"ApprovalResponse","description":"Response model for a single approval."},"ApprovalStatusResponse":{"properties":{"approval_id":{"type":"string","title":"Approval Id"},"status":{"type":"string","title":"Status"},"run_id":{"type":"string","title":"Run Id"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"}},"type":"object","required":["approval_id","status","run_id"],"title":"ApprovalStatusResponse","description":"Lightweight response model for polling approval status."},"Artifact":{"properties":{"artifactId":{"type":"string","title":"Artifactid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"}},"type":"object","required":["artifactId","parts"],"title":"Artifact","description":"Represents a file, data structure, or other resource generated by an agent during a task."},"AssistantMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"assistant","title":"Role","default":"assistant"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"},"toolCalls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},{"type":"null"}],"title":"Toolcalls"}},"additionalProperties":true,"type":"object","required":["id"],"title":"AssistantMessage","description":"An assistant message."},"AudioInputContent":{"properties":{"type":{"type":"string","const":"audio","title":"Type","default":"audio"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"AudioInputContent","description":"An audio input content fragment."},"BackgroundRunResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the background run."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the background run."},"status":{"type":"string","title":"Status","description":"Initial run status."}},"type":"object","required":["run_id","session_id","status"],"title":"BackgroundRunResponse"},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"BadRequestResponse","example":{"detail":"Bad request","error_code":"BAD_REQUEST"}},"BinaryInputContent":{"properties":{"type":{"type":"string","const":"binary","title":"Type","default":"binary"},"mimeType":{"type":"string","title":"Mimetype"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"additionalProperties":true,"type":"object","required":["mimeType"],"title":"BinaryInputContent","description":"A deprecated binary payload reference in a multimodal user message."},"Body_continue_agent_run":{"properties":{"tools":{"type":"string","title":"Tools","description":"JSON string of tool call results to continue the paused run","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Optional new user-message text to append to the run before resuming. Use for continuing a COMPLETED run with a follow-up, or adding context to a RUNNING/ERROR resume."},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","description":"When true, clone the run with a new ``run_id`` before resuming. The original is untouched; the clone becomes a sibling within the same session, with ``forked_from_run_id`` set.","default":false},"regenerate":{"type":"boolean","title":"Regenerate","description":"Sugar: regenerate the last response of this run. Auto-computes ``continue_from='last_user'`` to land just after the last user message. Pair with ``additional_instructions`` to steer the new output. By default the original response is hidden from history (replaced); pass ``replace_original=false`` to keep both the original and the regenerated response visible side by side.","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original","description":"Only valid with ``regenerate=true``. Controls history visibility of the original response; the original run is always retained in storage. Defaults to true: the original is marked REGENERATED and hidden from history so the new response replaces it. Pass false to keep both the original and regenerated responses visible."},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions","description":"Only valid with ``regenerate=true``: extra guidance appended as a user message before re-generation. Friendly alias for ``input``."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run continue in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false}},"type":"object","title":"Body_continue_agent_run"},"Body_continue_team_run":{"properties":{"requirements":{"type":"string","title":"Requirements","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input"},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","default":false},"regenerate":{"type":"boolean","title":"Regenerate","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original"},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"stream":{"type":"boolean","title":"Stream","default":true},"background":{"type":"boolean","title":"Background","default":false}},"type":"object","title":"Body_continue_team_run"},"Body_continue_workflow_run":{"properties":{"step_requirements":{"type":"string","title":"Step Requirements","description":"JSON string of step requirement objects with resolution status","default":""},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}},"type":"object","title":"Body_continue_workflow_run"},"Body_create_agent_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the agent"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Agent version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic agent construction"}},"type":"object","required":["message"],"title":"Body_create_agent_run"},"Body_create_team_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the team"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"monitor":{"type":"boolean","title":"Monitor","description":"Enable monitoring and logging for this run","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Team version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic team construction"}},"type":"object","required":["message"],"title":"Body_create_team_run"},"Body_create_workflow_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the workflow"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run workflow in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Workflow version to use for this run"},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow construction"}},"type":"object","required":["message"],"title":"Body_create_workflow_run"},"Body_rename_session":{"properties":{"session_name":{"type":"string","title":"Session Name","description":"New name for the session"}},"type":"object","required":["session_name"],"title":"Body_rename_session"},"Body_resume_agent_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_agent_run_stream"},"Body_resume_team_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_team_run_stream"},"Body_resume_workflow_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_workflow_run_stream"},"Body_update_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"Content metadata as JSON string"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"Reader ID. In Agno 2.7.4, local knowledge validates the value, but the content patch does not apply or persist the reader change."}},"type":"object","title":"Body_update_content"},"Body_upload_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated from file/URL if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description for context"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"URL to fetch content from (JSON array or single URL string)"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object for additional content properties"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File","description":"File to upload for processing"},"text_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Content","description":"Raw text content to process"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for content processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply during processing"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size to use for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap to use for processing"}},"type":"object","title":"Body_upload_content"},"Body_upload_remote_content":{"properties":{"config_id":{"type":"string","title":"Config Id","description":"ID of the configured remote content source (from /knowledge/config)"},"path":{"type":"string","title":"Path","description":"Path to file or folder in the remote source"},"source_params":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Params","description":"JSON object of per-request parameters forwarded to the source's factory. Used for provider-specific routing that shouldn't be baked into the config. Currently supported keys: GitHub accepts 'repo' ('owner/repo'), letting one configured GitHub source serve multiple repositories the credentials can access."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap for processing"}},"type":"object","required":["config_id","path"],"title":"Body_upload_remote_content"},"ChatConfig":{"properties":{"quick_prompts":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Quick Prompts"}},"type":"object","required":["quick_prompts"],"title":"ChatConfig","description":"Configuration for the Chat page of the AgentOS"},"ChunkerSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["key"],"title":"ChunkerSchema"},"ComponentConfigResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"version":{"type":"integer","title":"Version"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"type":"string","title":"Stage"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","version","stage","config","created_at"],"title":"ComponentConfigResponse"},"ComponentCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Display name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id","description":"Unique identifier for the entity. Auto-generated from name if not provided."},"component_type":{"$ref":"#/components/schemas/ComponentType","description":"Type of entity: agent, team, or workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config","description":"Optional configuration"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["name","component_type"],"title":"ComponentCreate"},"ComponentResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"component_type":{"$ref":"#/components/schemas/ComponentType"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","component_type","created_at"],"title":"ComponentResponse"},"ComponentType":{"type":"string","enum":["agent","team","workflow"],"title":"ComponentType"},"ComponentUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"component_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"}},"type":"object","title":"ComponentUpdate"},"ConfigCreate":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config","description":"The configuration data"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Optional version number"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links","description":"Optional links to child components"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["config"],"title":"ConfigCreate"},"ConfigResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the OS instance"},"available_models":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Models","description":"List of available models"},"os_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Database","description":"ID of the database used for the OS instance"},"databases":{"items":{"type":"string"},"type":"array","title":"Databases","description":"List of database IDs used by the components of the OS instance"},"chat":{"anyOf":[{"$ref":"#/components/schemas/ChatConfig"},{"type":"null"}],"description":"Chat configuration"},"manifest":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Manifest"},"type":"object"},{"type":"null"}],"title":"Manifest","description":"Per-entity UI metadata keyed by agent/team/workflow id"},"session":{"anyOf":[{"$ref":"#/components/schemas/SessionConfig"},{"type":"null"}],"description":"Session configuration"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/MetricsConfig"},{"type":"null"}],"description":"Metrics configuration"},"memory":{"anyOf":[{"$ref":"#/components/schemas/MemoryConfig"},{"type":"null"}],"description":"Memory configuration"},"learning":{"anyOf":[{"$ref":"#/components/schemas/LearningConfig"},{"type":"null"}],"description":"Learning configuration"},"knowledge":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeConfig"},{"type":"null"}],"description":"Knowledge configuration"},"evals":{"anyOf":[{"$ref":"#/components/schemas/EvalsConfig"},{"type":"null"}],"description":"Evaluations configuration"},"traces":{"anyOf":[{"$ref":"#/components/schemas/TracesConfig"},{"type":"null"}],"description":"Traces configuration"},"agents":{"items":{"$ref":"#/components/schemas/AgentSummaryResponse"},"type":"array","title":"Agents","description":"List of registered agents"},"teams":{"items":{"$ref":"#/components/schemas/TeamSummaryResponse"},"type":"array","title":"Teams","description":"List of registered teams"},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Workflows","description":"List of registered workflows"},"interfaces":{"items":{"$ref":"#/components/schemas/InterfaceResponse"},"type":"array","title":"Interfaces","description":"List of available interfaces"}},"type":"object","required":["os_id","databases","agents","teams","workflows","interfaces"],"title":"ConfigResponse","description":"Response schema for the general config endpoint"},"ConfigResponseSchema":{"properties":{"readers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ReaderSchema"},"type":"object"},{"type":"null"}],"title":"Readers","description":"Available content readers"},"readersForType":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Readersfortype","description":"Mapping of content types to reader IDs"},"chunkers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ChunkerSchema"},"type":"object"},{"type":"null"}],"title":"Chunkers","description":"Available chunking strategies"},"filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filters","description":"Available filter tags"},"vector_dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/VectorDbSchema"},"type":"array"},{"type":"null"}],"title":"Vector Dbs","description":"Configured vector databases"},"remote_content_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"type":"array"},{"type":"null"}],"title":"Remote Content Sources","description":"Configured remote content sources (S3, GCS, SharePoint, GitHub)"}},"type":"object","title":"ConfigResponseSchema"},"ConfigUpdate":{"properties":{"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","title":"ConfigUpdate"},"ConflictResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ConflictResponse","example":{"detail":"Resource conflict"}},"ContentResponseSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the content"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"MIME type of the content"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"},"linked_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linked To","description":"ID of related content if linked"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata as key-value pairs"},"access_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Access Count","description":"Number of times content has been accessed"},"status":{"anyOf":[{"$ref":"#/components/schemas/ContentStatus"},{"type":"null"}],"description":"Processing status of the content"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message","description":"Status message or error details"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when content was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when content was last updated"}},"type":"object","required":["id"],"title":"ContentResponseSchema"},"ContentStatus":{"type":"string","enum":["processing","completed","failed"],"title":"ContentStatus","description":"Enumeration of possible content processing statuses."},"ContentStatusResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Content ID"},"status":{"$ref":"#/components/schemas/ContentStatus","description":"Current processing status of the content"},"status_message":{"type":"string","title":"Status Message","description":"Status message or error details","default":""}},"type":"object","required":["status"],"title":"ContentStatusResponse","description":"Response model for content status endpoint."},"Context":{"properties":{"description":{"type":"string","title":"Description"},"value":{"type":"string","title":"Value"}},"additionalProperties":true,"type":"object","required":["description","value"],"title":"Context","description":"Additional context for the agent."},"CreateSessionRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session ID (generated if not provided)"},"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Initial session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"}},"type":"object","title":"CreateSessionRequest"},"DataPart":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data"},"kind":{"type":"string","const":"data","title":"Kind","default":"data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["data"],"title":"DataPart","description":"Represents a structured data segment (e.g., JSON) within a message or artifact."},"DatabaseConfig_EvalsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/EvalsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[EvalsDomainConfig]"},"DatabaseConfig_LearningDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/LearningDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[LearningDomainConfig]"},"DatabaseConfig_MemoryDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MemoryDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MemoryDomainConfig]"},"DatabaseConfig_MetricsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MetricsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MetricsDomainConfig]"},"DatabaseConfig_SessionDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/SessionDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[SessionDomainConfig]"},"DatabaseConfig_TracesDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/TracesDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[TracesDomainConfig]"},"DayAggregatedMetrics":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the metrics record"},"agent_runs_count":{"type":"integer","minimum":0.0,"title":"Agent Runs Count","description":"Total number of agent runs"},"agent_sessions_count":{"type":"integer","minimum":0.0,"title":"Agent Sessions Count","description":"Total number of agent sessions"},"team_runs_count":{"type":"integer","minimum":0.0,"title":"Team Runs Count","description":"Total number of team runs"},"team_sessions_count":{"type":"integer","minimum":0.0,"title":"Team Sessions Count","description":"Total number of team sessions"},"workflow_runs_count":{"type":"integer","minimum":0.0,"title":"Workflow Runs Count","description":"Total number of workflow runs"},"workflow_sessions_count":{"type":"integer","minimum":0.0,"title":"Workflow Sessions Count","description":"Total number of workflow sessions"},"users_count":{"type":"integer","minimum":0.0,"title":"Users Count","description":"Total number of unique users"},"token_metrics":{"additionalProperties":true,"type":"object","title":"Token Metrics","description":"Token usage metrics (input, output, cached, etc.)"},"model_metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Model Metrics","description":"Metrics grouped by model (model_id, provider, count)"},"date":{"type":"string","format":"date-time","title":"Date","description":"Date for which these metrics are aggregated"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when metrics were created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when metrics were last updated"}},"type":"object","required":["id","agent_runs_count","agent_sessions_count","team_runs_count","team_sessions_count","workflow_runs_count","workflow_sessions_count","users_count","token_metrics","model_metrics","date","created_at","updated_at"],"title":"DayAggregatedMetrics","description":"Aggregated metrics for a given day"},"DeleteEvalRunsRequest":{"properties":{"eval_run_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Eval Run Ids","description":"List of evaluation run IDs to delete"}},"type":"object","required":["eval_run_ids"],"title":"DeleteEvalRunsRequest"},"DeleteMemoriesRequest":{"properties":{"memory_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Memory Ids","description":"List of memory IDs to delete"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID to filter memories for deletion"}},"type":"object","required":["memory_ids"],"title":"DeleteMemoriesRequest"},"DeleteSessionRequest":{"properties":{"session_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Session Ids","description":"List of session IDs to delete"},"session_types":{"items":{"$ref":"#/components/schemas/SessionType"},"type":"array","minItems":1,"title":"Session Types","description":"Types of sessions to delete"}},"type":"object","required":["session_ids","session_types"],"title":"DeleteSessionRequest"},"DeveloperMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"developer","title":"Role","default":"developer"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"DeveloperMessage","description":"A developer message."},"DocumentInputContent":{"properties":{"type":{"type":"string","const":"document","title":"Type","default":"document"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"DocumentInputContent","description":"A document input content fragment."},"EvalFilterType":{"type":"string","enum":["agent","team","workflow"],"title":"EvalFilterType"},"EvalRunInput":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID to evaluate"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID to evaluate"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID to use for evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation to run (accuracy, performance, or reliability)"},"input":{"type":"string","minLength":1,"title":"Input","description":"Input text/query for the evaluation"},"additional_guidelines":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Guidelines","description":"Additional guidelines for the evaluation"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for the evaluation"},"num_iterations":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Num Iterations","description":"Number of times to run the evaluation","default":1},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for this evaluation run"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output","description":"Expected output for accuracy evaluation"},"criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criteria","description":"Evaluation criteria for agent-as-judge evaluation"},"scoring_strategy":{"anyOf":[{"type":"string","enum":["numeric","binary"]},{"type":"null"}],"title":"Scoring Strategy","description":"Scoring strategy: 'numeric' (1-10 with threshold) or 'binary' (PASS/FAIL)","default":"binary"},"threshold":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Threshold","description":"Score threshold for pass/fail (1-10), only used with numeric scoring","default":7},"warmup_runs":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Warmup Runs","description":"Number of warmup runs before measuring performance","default":0},"expected_tool_calls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expected Tool Calls","description":"Expected tool calls for reliability evaluation"},"allow_additional_tool_calls":{"type":"boolean","title":"Allow Additional Tool Calls","description":"When True, tool calls not in expected_tool_calls are allowed (subset matching)","default":false},"expected_tool_call_arguments":{"anyOf":[{"additionalProperties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Expected Tool Call Arguments","description":"Expected arguments for specific tool calls, e.g. {\"tool_name\": {\"arg_name\": \"expected_value\"}} or {\"tool_name\": [{\"arg_name\": \"val1\"}, {\"arg_name\": \"val2\"}]}"}},"type":"object","required":["eval_type","input"],"title":"EvalRunInput"},"EvalSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the evaluation run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that was evaluated"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID used in evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that was evaluated"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was evaluated"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the evaluation run"},"evaluated_component_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluated Component Name","description":"Name of the evaluated component"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation (accuracy, performance, or reliability)"},"eval_data":{"additionalProperties":true,"type":"object","title":"Eval Data","description":"Evaluation results and metrics"},"eval_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eval Input","description":"Input parameters used for the evaluation"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when evaluation was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when evaluation was last updated"}},"type":"object","required":["id","eval_type","eval_data"],"title":"EvalSchema"},"EvalType":{"type":"string","enum":["accuracy","agent_as_judge","performance","reliability"],"title":"EvalType"},"EvalsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_EvalsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"EvalsConfig","description":"Configuration for the Evals domain of the AgentOS"},"EvalsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"EvalsDomainConfig","description":"Configuration for the Evals domain of the AgentOS"},"FilePart":{"properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/FileWithBytes"},{"$ref":"#/components/schemas/FileWithUri"}],"title":"File"},"kind":{"type":"string","const":"file","title":"Kind","default":"file"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["file"],"title":"FilePart","description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI."},"FileWithBytes":{"properties":{"bytes":{"type":"string","title":"Bytes"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["bytes"],"title":"FileWithBytes","description":"Represents a file with its content provided directly as a base64-encoded string."},"FileWithUri":{"properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uri":{"type":"string","title":"Uri"}},"type":"object","required":["uri"],"title":"FileWithUri","description":"Represents a file with its content located at a specific URI."},"FilterFieldSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Column/field name used in filter expressions"},"label":{"type":"string","title":"Label","description":"Human-readable display label for the UI"},"type":{"type":"string","title":"Type","description":"Field data type: string, number, datetime, enum"},"operators":{"items":{"type":"string"},"type":"array","title":"Operators","description":"List of valid filter operators for this field"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values","description":"Allowed enum values (for autocomplete/dropdown)"}},"type":"object","required":["key","label","type","operators"],"title":"FilterFieldSchema","description":"Schema describing a single filterable field for the frontend filter bar."},"FilterSchemaResponse":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FilterFieldSchema"},"type":"array","title":"Fields","description":"Available filterable fields"},"logical_operators":{"items":{"type":"string"},"type":"array","title":"Logical Operators","description":"Logical operators for combining filter clauses","default":["AND","OR"]}},"type":"object","required":["fields"],"title":"FilterSchemaResponse","description":"Response for the filter schema endpoint. Tells the FE what fields, operators, and values are available."},"ForbiddenResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ForbiddenResponse","example":{"detail":"Insufficient permissions"}},"FunctionCall":{"properties":{"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"additionalProperties":true,"type":"object","required":["name","arguments"],"title":"FunctionCall","description":"Name and arguments of a function call."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Health status of the service"},"instantiated_at":{"type":"string","format":"date-time","title":"Instantiated At","description":"Timestamp when service was instantiated"}},"type":"object","required":["status","instantiated_at"],"title":"HealthResponse","example":{"instantiated_at":"2025-06-10T12:00:00Z","status":"ok"}},"ImageInputContent":{"properties":{"type":{"type":"string","const":"image","title":"Type","default":"image"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"ImageInputContent","description":"An image input content fragment."},"InfoResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"agno_version":{"type":"string","title":"Agno Version","description":"Version of the agno framework"},"agent_count":{"type":"integer","title":"Agent Count","description":"Number of agents registered in the OS","default":0},"team_count":{"type":"integer","title":"Team Count","description":"Number of teams registered in the OS","default":0},"workflow_count":{"type":"integer","title":"Workflow Count","description":"Number of workflows registered in the OS","default":0},"mcp":{"$ref":"#/components/schemas/McpInfo","description":"MCP server availability for this OS instance"},"auth_mode":{"type":"string","enum":["none","security_key","jwt"],"title":"Auth Mode","description":"Authentication mode enforced on the REST/WS plane of this OS instance. MCP OAuth, when enabled, is described separately under `mcp.oauth`.","default":"none"}},"type":"object","required":["os_id","agno_version"],"title":"InfoResponse","description":"Response schema for the /info endpoint returning lightweight OS metadata."},"InputContentDataSource":{"properties":{"type":{"type":"string","const":"data","title":"Type","default":"data"},"value":{"type":"string","title":"Value"},"mimeType":{"type":"string","title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value","mimeType"],"title":"InputContentDataSource","description":"Inline base64-encoded source."},"InputContentUrlSource":{"properties":{"type":{"type":"string","const":"url","title":"Type","default":"url"},"value":{"type":"string","title":"Value"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value"],"title":"InputContentUrlSource","description":"URL-referenced source."},"InterfaceResponse":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the interface"},"version":{"type":"string","title":"Version","description":"Version of the interface"},"route":{"type":"string","title":"Route","description":"API route path"}},"type":"object","required":["type","version","route"],"title":"InterfaceResponse"},"InternalServerErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"InternalServerErrorResponse","example":{"detail":"Internal server error","error_code":"INTERNAL_SERVER_ERROR"}},"KnowledgeConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeDatabaseConfig"},"type":"array"},{"type":"null"}],"title":"Dbs"},"knowledge_instances":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeInstanceConfig"},"type":"array"},{"type":"null"}],"title":"Knowledge Instances"}},"type":"object","title":"KnowledgeConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeDatabaseConfig":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeDomainConfig"},{"type":"null"}]},"tables":{"items":{"type":"string"},"type":"array","title":"Tables","default":[]}},"type":"object","required":["db_id"],"title":"KnowledgeDatabaseConfig","description":"Configuration for a knowledge database with its tables"},"KnowledgeDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"KnowledgeDomainConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeInstanceConfig":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"db_id":{"type":"string","title":"Db Id"},"table":{"type":"string","title":"Table"}},"type":"object","required":["id","name","db_id","table"],"title":"KnowledgeInstanceConfig","description":"Configuration for a single knowledge instance"},"LearningConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_LearningDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"LearningConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningCreate":{"properties":{"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"content":{"additionalProperties":true,"type":"object","title":"Content","description":"The learning content payload"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID. When the request is authenticated, must match the JWT subject or be omitted/null (which creates a global / non-user-scoped record)."},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"}},"type":"object","required":["learning_type","content"],"title":"LearningCreate","description":"Request body for creating a learning record."},"LearningDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"LearningDomainConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningResponse":{"properties":{"learning_id":{"type":"string","title":"Learning Id","description":"Unique identifier for the learning record"},"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID (for entity-specific learnings)"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type (e.g. 'person', 'company')"},"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"The learning content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Creation timestamp (Unix epoch seconds)"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp (Unix epoch seconds)"}},"type":"object","required":["learning_id","learning_type"],"title":"LearningResponse","description":"A single learning record as returned by the API."},"LearningUpdate":{"properties":{"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Replacement content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Replacement metadata"}},"type":"object","title":"LearningUpdate","description":"Request body for updating a learning record. Identity fields are immutable."},"LearningUserStats":{"properties":{"user_id":{"type":"string","title":"User Id","description":"The user ID"},"last_learning_updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Learning Updated At","description":"Most recent learning update for this user (Unix epoch seconds)"}},"type":"object","required":["user_id"],"title":"LearningUserStats","description":"A user that owns learning records, with their most recent activity.\n\nUsed as a lightweight index for the per-user view: list users here, then drill into a\nsingle user's records via ``GET /learnings?user_id=...``. No per-user count is returned\n-- the user-scoped stores (``user_profile``, ``user_memory``) keep a single record per\nuser, so a record count would always be 1; the actual memory count lives in that\nrecord's ``content``."},"Manifest":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"},"quick_prompts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quick Prompts"}},"type":"object","title":"Manifest","description":"OS-level UI metadata for an agent/team/workflow.\n\nFields here are AgentOS UI metadata only. ``description`` is unrelated to\n``Agent.description`` / ``Team.description`` / ``Workflow.description``,\nwhich are sent to the model.\n\nRendering surfaces:\n- ``description``, ``labels``: home/landing card\n- ``quick_prompts``: chat page"},"McpInfo":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the MCP server is enabled on this OS instance","default":false},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Path where the MCP server is mounted, null when disabled"},"oauth":{"anyOf":[{"$ref":"#/components/schemas/McpOAuthInfo"},{"type":"null"}],"description":"OAuth discovery details when the MCP endpoint is OAuth-protected, null otherwise"}},"type":"object","title":"McpInfo","description":"MCP server availability for the /info endpoint."},"McpOAuthInfo":{"properties":{"authorization_servers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorization Servers","description":"Issuer URL(s) of the authorization server(s) protecting the MCP endpoint"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource","description":"RFC 9728 resource URL advertised for the MCP endpoint"}},"type":"object","title":"McpOAuthInfo","description":"OAuth discovery details for an MCP endpoint protected by ``AgentOS(mcp_auth=...)``."},"MemoryConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MemoryDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MemoryConfig","description":"Configuration for the Memory domain of the AgentOS"},"MemoryDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MemoryDomainConfig","description":"Configuration for the Memory domain of the AgentOS"},"Message":{"properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"kind":{"type":"string","const":"message","title":"Kind","default":"message"},"messageId":{"type":"string","title":"Messageid"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taskid"}},"type":"object","required":["messageId","parts","role"],"title":"Message","description":"Represents a single message in the conversation between a user and an agent."},"Meta":{"properties":{"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of results per page","default":20},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number","default":1}},"type":"object","title":"Meta","description":"Inline metadata schema for pagination."},"MetricsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MetricsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MetricsConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MetricsDomainConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsResponse":{"properties":{"metrics":{"items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"type":"array","title":"Metrics","description":"List of daily aggregated metrics"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp of the most recent metrics update"}},"type":"object","required":["metrics"],"title":"MetricsResponse"},"Model":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"Model"},"ModelResponse":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the model"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"ModelResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"NotFoundResponse","example":{"detail":"Not found","error_code":"NOT_FOUND"}},"NotImplementedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"NotImplementedResponse","example":{"detail":"Operation not supported for this resource type"}},"OptimizeMemoriesRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID to optimize memories for"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model in `provider:model_id` format. Current examples include `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, and `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`."},"apply":{"type":"boolean","title":"Apply","description":"If True, apply optimization changes to database. If False, return preview only without saving.","default":true}},"type":"object","required":["user_id"],"title":"OptimizeMemoriesRequest","description":"Schema for memory optimization request"},"OptimizeMemoriesResponse":{"properties":{"memories":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Memories","description":"List of optimized memory objects"},"memories_before":{"type":"integer","minimum":0.0,"title":"Memories Before","description":"Number of memories before optimization"},"memories_after":{"type":"integer","minimum":0.0,"title":"Memories After","description":"Number of memories after optimization"},"tokens_before":{"type":"integer","minimum":0.0,"title":"Tokens Before","description":"Token count before optimization"},"tokens_after":{"type":"integer","minimum":0.0,"title":"Tokens After","description":"Token count after optimization"},"tokens_saved":{"type":"integer","minimum":0.0,"title":"Tokens Saved","description":"Number of tokens saved through optimization"},"reduction_percentage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Reduction Percentage","description":"Percentage of token reduction achieved"}},"type":"object","required":["memories","memories_before","memories_after","tokens_before","tokens_after","tokens_saved","reduction_percentage"],"title":"OptimizeMemoriesResponse","description":"Schema for memory optimization response"},"PaginatedResponse_ApprovalResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ApprovalResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ApprovalResponse]"},"PaginatedResponse_ComponentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ComponentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ComponentResponse]"},"PaginatedResponse_ContentResponseSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentResponseSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ContentResponseSchema]"},"PaginatedResponse_EvalSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EvalSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[EvalSchema]"},"PaginatedResponse_LearningResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningResponse]"},"PaginatedResponse_LearningUserStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningUserStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningUserStats]"},"PaginatedResponse_RegistryContentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RegistryContentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[RegistryContentResponse]"},"PaginatedResponse_ScheduleResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleResponse]"},"PaginatedResponse_ScheduleRunResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleRunResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleRunResponse]"},"PaginatedResponse_ServiceAccountResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ServiceAccountResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ServiceAccountResponse]"},"PaginatedResponse_SessionSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SessionSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[SessionSchema]"},"PaginatedResponse_TraceDetail_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceDetail"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceDetail]"},"PaginatedResponse_TraceSessionStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSessionStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSessionStats]"},"PaginatedResponse_TraceSummary_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSummary"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSummary]"},"PaginatedResponse_UserMemorySchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserMemorySchema]"},"PaginatedResponse_UserStatsSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserStatsSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserStatsSchema]"},"PaginatedResponse_VectorSearchResult_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VectorSearchResult"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[VectorSearchResult]"},"PaginationInfo":{"properties":{"page":{"type":"integer","minimum":0.0,"title":"Page","description":"Current page number (0-indexed)","default":0},"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of items per page","default":20},"total_pages":{"type":"integer","minimum":0.0,"title":"Total Pages","description":"Total number of pages","default":0},"total_count":{"type":"integer","minimum":0.0,"title":"Total Count","description":"Total count of items","default":0},"search_time_ms":{"type":"number","minimum":0.0,"title":"Search Time Ms","description":"Search execution time in milliseconds","default":0}},"type":"object","title":"PaginationInfo"},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/DataPart"}],"title":"Part"},"ReaderSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the reader"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the reader"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the reader's capabilities"},"chunkers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chunkers","description":"List of supported chunking strategies"}},"type":"object","required":["id"],"title":"ReaderSchema"},"ReasoningMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"reasoning","title":"Role","default":"reasoning"},"content":{"type":"string","title":"Content"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"ReasoningMessage","description":"A reasoning message containing the agent's internal reasoning process."},"RegistryContentResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/RegistryResourceType"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name","type"],"title":"RegistryContentResponse"},"RegistryResourceType":{"type":"string","enum":["tool","model","db","vector_db","schema","function","agent","team","knowledge","memory_manager","session_summary_manager"],"title":"RegistryResourceType","description":"Types of resources that can be stored in a registry."},"RemoteContentSourceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content source"},"name":{"type":"string","title":"Name","description":"Display name for the content source"},"type":{"type":"string","title":"Type","description":"Type of content source (s3, gcs, sharepoint, github, azureblob)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Default path prefix for this source"}},"type":"object","required":["id","name","type"],"title":"RemoteContentSourceSchema","description":"Schema for remote content source configuration."},"ResumeEntry":{"properties":{"interruptId":{"type":"string","title":"Interruptid"},"status":{"type":"string","enum":["resolved","cancelled"],"title":"Status"},"payload":{"anyOf":[{},{"type":"null"}],"title":"Payload"}},"additionalProperties":true,"type":"object","required":["interruptId","status"],"title":"ResumeEntry","description":"A per-interrupt response in the resume array of a RunAgentInput."},"Role":{"type":"string","enum":["agent","user"],"title":"Role","description":"Identifies the sender of the message. `user` for the client, `agent` for the service."},"RunAgentInput":{"properties":{"threadId":{"type":"string","title":"Threadid"},"runId":{"type":"string","title":"Runid"},"parentRunId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentrunid"},"state":{"title":"State"},"messages":{"items":{"oneOf":[{"$ref":"#/components/schemas/DeveloperMessage"},{"$ref":"#/components/schemas/SystemMessage"},{"$ref":"#/components/schemas/AssistantMessage"},{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/ToolMessage"},{"$ref":"#/components/schemas/ActivityMessage"},{"$ref":"#/components/schemas/ReasoningMessage"}],"discriminator":{"propertyName":"role","mapping":{"activity":"#/components/schemas/ActivityMessage","assistant":"#/components/schemas/AssistantMessage","developer":"#/components/schemas/DeveloperMessage","reasoning":"#/components/schemas/ReasoningMessage","system":"#/components/schemas/SystemMessage","tool":"#/components/schemas/ToolMessage","user":"#/components/schemas/UserMessage"}}},"type":"array","title":"Messages"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","title":"Tools"},"context":{"items":{"$ref":"#/components/schemas/Context"},"type":"array","title":"Context"},"forwardedProps":{"title":"Forwardedprops"},"resume":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResumeEntry"},"type":"array"},{"type":"null"}],"title":"Resume"}},"additionalProperties":true,"type":"object","required":["threadId","runId","state","messages","tools","context","forwardedProps"],"title":"RunAgentInput","description":"Input for running an agent."},"RunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that executed this run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"RunSchema"},"RunStatus":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","PAUSED","CANCELLED","ERROR","REGENERATED"],"title":"RunStatus","description":"State of the main run response"},"ScheduleCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"cron_expr":{"type":"string","maxLength":128,"title":"Cron Expr"},"endpoint":{"type":"string","maxLength":512,"title":"Endpoint"},"method":{"type":"string","maxLength":10,"title":"Method","default":"POST"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"type":"string","maxLength":64,"title":"Timezone","default":"UTC"},"timeout_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Timeout Seconds","default":3600},"max_retries":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Max Retries","default":0},"retry_delay_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Retry Delay Seconds","default":60}},"type":"object","required":["name","cron_expr","endpoint"],"title":"ScheduleCreate"},"ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"cron_expr":{"type":"string","title":"Cron Expr"},"timezone":{"type":"string","title":"Timezone"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"max_retries":{"type":"integer","title":"Max Retries"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","method","endpoint","cron_expr","timezone","timeout_seconds","max_retries","retry_delay_seconds","enabled"],"title":"ScheduleResponse"},"ScheduleRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"schedule_id":{"type":"string","title":"Schedule Id"},"attempt":{"type":"integer","title":"Attempt"},"triggered_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triggered At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"status":{"type":"string","title":"Status"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","schedule_id","attempt","status"],"title":"ScheduleRunResponse"},"ScheduleStateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","enabled"],"title":"ScheduleStateResponse","description":"Trimmed response for state-changing operations (enable/disable)."},"ScheduleUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"cron_expr":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Cron Expr"},"endpoint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Endpoint"},"method":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Method"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Timezone"},"timeout_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":1.0},{"type":"null"}],"title":"Timeout Seconds"},"max_retries":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Max Retries"},"retry_delay_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":1.0},{"type":"null"}],"title":"Retry Delay Seconds"}},"type":"object","title":"ScheduleUpdate"},"ScopeItem":{"properties":{"scope":{"type":"string","title":"Scope","description":"Scope string, e.g. 'agents:*:run'"},"effect":{"type":"string","enum":["allow","deny"],"title":"Effect","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["scope"],"title":"ScopeItem","description":"Write shape for one scope grant \u2014 the canonical RBAC payload for every scope-bearing API.\n\nEndpoints that take scopes accept these objects only (a bare string is a validation\nerror). ``effect`` is constrained here so every consumer rejects typos at the model\nlayer; whether ``deny`` is *semantically* legal stays per-endpoint (roles support\ndeny rules, service-account tokens are pure grants and reject it)."},"ScopeSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Scope id (always null here; kept for shape parity with the cloud RBAC API, which addresses scopes individually)"},"raw":{"type":"string","title":"Raw","description":"Original scope string, e.g. 'agents:*:run'"},"namespace":{"type":"string","title":"Namespace","description":"Resource namespace, e.g. 'agents'"},"sub_namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Namespace","description":"Specific resource id or wildcard '*'"},"permission":{"type":"string","title":"Permission","description":"Action, e.g. 'read' / 'run' / 'write'"},"value":{"type":"string","title":"Value","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["raw","namespace","permission"],"title":"ScopeSchema","description":"Read shape for one scope \u2014 the parsed RBAC payload shared by every scope-bearing API.\n\nMirrors the cloud RBAC scope shape ({raw, namespace, sub_namespace, permission, value})\nso a frontend renders scopes from any AgentOS API with one integration."},"SendMessageRequest":{"description":"Represents a JSON-RPC request for the `message/send` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/send","default":"message/send","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendMessageRequest","type":"object"},"SendMessageSuccessResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id"},"jsonrpc":{"type":"string","const":"2.0","title":"Jsonrpc","default":"2.0"},"result":{"anyOf":[{"$ref":"#/components/schemas/Task"},{"$ref":"#/components/schemas/Message"}],"title":"Result"}},"type":"object","required":["result"],"title":"SendMessageSuccessResponse","description":"Represents a successful JSON-RPC response for the `message/send` method."},"SendStreamingMessageRequest":{"description":"Represents a JSON-RPC request for the `message/stream` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/stream","default":"message/stream","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendStreamingMessageRequest","type":"object"},"ServiceAccountCreate":{"properties":{"name":{"type":"string","maxLength":63,"title":"Name","description":"Machine identity name (lowercase slug), e.g. 'claude-code' or 'github-actions'"},"scopes":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScopeItem"},"type":"array"},{"type":"null"}],"title":"Scopes","description":"Scopes granted to the token, as {scope, effect} objects (the shared RBAC write shape; token scopes are grants, so only effect='allow' is accepted). Defaults to run and read scopes: agents:run, teams:run, workflows:run, sessions:read"},"expires_in_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Expires In Days","description":"Days until the token expires (default: 90)","default":90},"never_expires":{"type":"boolean","title":"Never Expires","description":"Mint a non-expiring token. Must be set explicitly; overrides expires_in_days.","default":false},"allow_privileged_scopes":{"type":"boolean","title":"Allow Privileged Scopes","description":"Required to grant privileged scopes: any write or delete action, the admin scope, or any service_accounts scope. Privileged tokens must be deliberate, never accidental.","default":false}},"type":"object","required":["name"],"title":"ServiceAccountCreate"},"ServiceAccountCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"token":{"type":"string","title":"Token","description":"The plaintext token. Shown exactly once - store it securely now."}},"type":"object","required":["id","name","principal","token_prefix","created_at","token"],"title":"ServiceAccountCreateResponse","description":"Returned once, at creation. The token is never retrievable again."},"ServiceAccountResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","name","principal","token_prefix","created_at"],"title":"ServiceAccountResponse","description":"Service account metadata. Never includes the token hash or plaintext."},"ServiceUnavailableResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ServiceUnavailableResponse","example":{"detail":"Feature not supported by the configured service"}},"SessionConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_SessionDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"SessionConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"SessionDomainConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier for the session"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state data of the session"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when session was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when session was last updated"},"session_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type","description":"Type of session: agent, team, or workflow"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["session_id","session_name"],"title":"SessionSchema"},"SessionType":{"type":"string","enum":["agent","team","workflow"],"title":"SessionType"},"SlackChallengeResponse":{"properties":{"challenge":{"type":"string","title":"Challenge","description":"Challenge string to echo back to Slack"}},"type":"object","required":["challenge"],"title":"SlackChallengeResponse"},"SlackEventResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"}},"type":"object","title":"SlackEventResponse"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"SourceFileSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Full path/key of the file"},"name":{"type":"string","title":"Name","description":"Display name (filename)"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"File size in bytes"},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified","description":"ISO 8601 timestamp of last modification"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"MIME type of the file"}},"type":"object","required":["key","name"],"title":"SourceFileSchema","description":"Schema for a file in a content source."},"SourceFilesResponseSchema":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"ID of the content source"},"source_name":{"type":"string","title":"Source Name","description":"Name of the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Prefix filter that was applied"},"folders":{"items":{"$ref":"#/components/schemas/SourceFolderSchema"},"type":"array","title":"Folders","description":"Subfolders at this level"},"files":{"items":{"$ref":"#/components/schemas/SourceFileSchema"},"type":"array","title":"Files","description":"List of files at this level"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["source_id","source_name","meta"],"title":"SourceFilesResponseSchema","description":"Response schema for listing files in a content source."},"SourceFolderSchema":{"properties":{"prefix":{"type":"string","title":"Prefix","description":"Full prefix to use for navigating into this folder"},"name":{"type":"string","title":"Name","description":"Display name of the folder"},"is_empty":{"type":"boolean","title":"Is Empty","description":"Whether the folder contains any files","default":false}},"type":"object","required":["prefix","name"],"title":"SourceFolderSchema","description":"Schema for a folder in a content source."},"SystemMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"system","title":"Role","default":"system"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"SystemMessage","description":"A system message."},"Task":{"properties":{"artifacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Artifact"},"type":"array"},{"type":"null"}],"title":"Artifacts"},"contextId":{"type":"string","title":"Contextid"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"History"},"id":{"type":"string","title":"Id"},"kind":{"type":"string","const":"task","title":"Kind","default":"task"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"status":{"$ref":"#/components/schemas/TaskStatus"}},"type":"object","required":["contextId","id","status"],"title":"Task","description":"Represents a single, stateful operation or conversation between a client and an agent."},"TaskState":{"type":"string","enum":["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"],"title":"TaskState","description":"Defines the lifecycle states of a Task."},"TaskStatus":{"properties":{"message":{"anyOf":[{"$ref":"#/components/schemas/Message"},{"type":"null"}]},"state":{"$ref":"#/components/schemas/TaskState"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp","examples":["2023-10-27T10:00:00Z"]}},"type":"object","required":["state"],"title":"TaskStatus","description":"Represents the status of a task at a specific point in time."},"TeamResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"members":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"$ref":"#/components/schemas/TeamResponse"}]},"type":"array"},{"type":"null"}],"title":"Members"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"TeamResponse"},"TeamRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the team run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that executed this run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the team run"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this team run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this team run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this team run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this team run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"TeamRunSchema"},"TeamSessionDetailSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID used in this session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of team interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"team_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Team Data","description":"Team-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"}},"type":"object","required":["session_id","session_name"],"title":"TeamSessionDetailSchema"},"TeamSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the team"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the team"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the team"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Team execution mode (coordinate, route, broadcast, tasks)"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the team leader"}},"type":"object","title":"TeamSummaryResponse"},"TelegramStatusResponse":{"properties":{"status":{"type":"string","title":"Status","default":"available"}},"type":"object","title":"TelegramStatusResponse"},"TelegramWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status"}},"type":"object","required":["status"],"title":"TelegramWebhookResponse"},"TextInputContent":{"properties":{"type":{"type":"string","const":"text","title":"Type","default":"text"},"text":{"type":"string","title":"Text"}},"additionalProperties":true,"type":"object","required":["text"],"title":"TextInputContent","description":"A text fragment in a multimodal user message."},"TextPart":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"TextPart","description":"Represents a text segment within a message or artifact."},"Tool":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{},{"type":"null"}],"title":"Parameters"}},"additionalProperties":true,"type":"object","required":["name","description"],"title":"Tool","description":"A tool definition."},"ToolCall":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/FunctionCall"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","function"],"title":"ToolCall","description":"A tool call, modelled after OpenAI tool calls."},"ToolMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"tool","title":"Role","default":"tool"},"content":{"type":"string","title":"Content"},"toolCallId":{"type":"string","title":"Toolcallid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content","toolCallId"],"title":"ToolMessage","description":"A tool result message."},"TraceDetail":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent/workflow"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the agent/workflow"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"},"tree":{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array","title":"Tree","description":"Hierarchical tree of spans (root nodes)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at","tree"],"title":"TraceDetail","description":"Detailed trace information with hierarchical span tree"},"TraceNode":{"properties":{"id":{"type":"string","title":"Id","description":"Span ID"},"name":{"type":"string","title":"Name","description":"Span name (e.g., 'agent.run', 'llm.invoke')"},"type":{"type":"string","title":"Type","description":"Span kind (AGENT, TEAM, WORKFLOW, LLM, TOOL)"},"duration":{"type":"string","title":"Duration","description":"Human-readable duration (e.g., '123ms', '1.5s')"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"End time (Pydantic auto-serializes to ISO 8601)"},"status":{"type":"string","title":"Status","description":"Status code (OK, ERROR)"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the span"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the span"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"spans":{"anyOf":[{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array"},{"type":"null"}],"title":"Spans","description":"Child spans in the trace hierarchy"},"step_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Type","description":"Workflow step type (Step, Condition, function, Agent, Team)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional span attributes and data"},"extra_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Data","description":"Flexible field for custom attributes and additional data"}},"type":"object","required":["id","name","type","duration","start_time","end_time","status"],"title":"TraceNode","description":"Recursive node structure for rendering trace hierarchy in the frontend"},"TraceSearchGroupBy":{"type":"string","enum":["run","session"],"title":"TraceSearchGroupBy","description":"Grouping options for trace search results."},"TraceSearchRequest":{"properties":{"filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter","description":"FilterExpr DSL as JSON dict. Supports operators: EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH, AND, OR, NOT."},"group_by":{"$ref":"#/components/schemas/TraceSearchGroupBy","description":"Grouping mode: 'run' returns individual TraceDetail, 'session' returns aggregated TraceSessionStats.","default":"run"},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number (1-indexed)","default":1},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"Number of traces per page (max 100)","default":20}},"type":"object","title":"TraceSearchRequest","description":"Request body for POST /traces/search with advanced filtering.\n\nThe filter field accepts a FilterExpr DSL dict supporting composable queries\nwith AND/OR/NOT logic and operators like EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH.\n\nExample for run grouping (default):\n {\n \"filter\": {\n \"op\": \"AND\",\n \"conditions\": [\n {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n {\"op\": \"CONTAINS\", \"key\": \"user_id\", \"value\": \"admin\"}\n ]\n },\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n }\n\nExample for session grouping:\n {\n \"filter\": {\"op\": \"EQ\", \"key\": \"agent_id\", \"value\": \"my-agent\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n }"},"TraceSessionStats":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID(s) used in the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID associated with the session"},"total_traces":{"type":"integer","title":"Total Traces","description":"Total number of traces in this session"},"first_trace_at":{"type":"string","format":"date-time","title":"First Trace At","description":"Time of first trace (Pydantic auto-serializes to ISO 8601)"},"last_trace_at":{"type":"string","format":"date-time","title":"Last Trace At","description":"Time of last trace (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["session_id","total_traces","first_trace_at","last_trace_at"],"title":"TraceSessionStats","description":"Aggregated trace statistics grouped by session"},"TraceSummary":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR, UNSET)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at"],"title":"TraceSummary","description":"Summary information for trace list view"},"TracesConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_TracesDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"TracesConfig","description":"Configuration for the Traces domain of the AgentOS"},"TracesDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"TracesDomainConfig","description":"Configuration for the Traces domain of the AgentOS"},"UnauthenticatedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"UnauthenticatedResponse","example":{"detail":"Unauthenticated access","error_code":"UNAUTHENTICATED"}},"UpdateEvalRunRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"New name for the evaluation run"}},"type":"object","required":["name"],"title":"UpdateEvalRunRequest"},"UpdateSessionRequest":{"properties":{"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Updated session name"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Updated session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Updated metadata"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary","description":"Session summary"}},"type":"object","title":"UpdateSessionRequest"},"UserMemoryCreateSchema":{"properties":{"memory":{"type":"string","maxLength":5000,"minLength":1,"title":"Memory","description":"Memory content text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags to categorize the memory"}},"type":"object","required":["memory"],"title":"UserMemoryCreateSchema","description":"Define the payload expected for creating a new user memory"},"UserMemorySchema":{"properties":{"memory_id":{"type":"string","title":"Memory Id","description":"Unique identifier for the memory"},"memory":{"type":"string","title":"Memory","description":"Memory content text"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags associated with the memory"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID associated with this memory"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with this memory"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when memory was last updated"}},"type":"object","required":["memory_id","memory"],"title":"UserMemorySchema"},"UserMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"user","title":"Role","default":"user"},"content":{"anyOf":[{"type":"string"},{"items":{"oneOf":[{"$ref":"#/components/schemas/TextInputContent"},{"$ref":"#/components/schemas/ImageInputContent"},{"$ref":"#/components/schemas/AudioInputContent"},{"$ref":"#/components/schemas/VideoInputContent"},{"$ref":"#/components/schemas/DocumentInputContent"},{"$ref":"#/components/schemas/BinaryInputContent"}],"discriminator":{"propertyName":"type","mapping":{"audio":"#/components/schemas/AudioInputContent","binary":"#/components/schemas/BinaryInputContent","document":"#/components/schemas/DocumentInputContent","image":"#/components/schemas/ImageInputContent","text":"#/components/schemas/TextInputContent","video":"#/components/schemas/VideoInputContent"}}},"type":"array"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"UserMessage","description":"A user message supporting text or multimodal content."},"UserStatsSchema":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"total_memories":{"type":"integer","minimum":0.0,"title":"Total Memories","description":"Total number of memories for this user"},"last_memory_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Memory Updated At","description":"Timestamp of the most recent memory update"}},"type":"object","required":["user_id","total_memories"],"title":"UserStatsSchema","description":"Schema for user memory statistics"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"ValidationErrorResponse","example":{"detail":"Validation error","error_code":"VALIDATION_ERROR"}},"VectorDbSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the vector database"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the vector database"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the vector database"},"search_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Search Types","description":"List of supported search types (vector, keyword, hybrid)"}},"type":"object","required":["id"],"title":"VectorDbSchema"},"VectorSearchRequestSchema":{"properties":{"query":{"type":"string","title":"Query","description":"The search query text"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database ID to search in"},"knowledge_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledge Id","description":"Knowledge base ID to search in"},"vector_db_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vector Db Ids","description":"List of vector database IDs to search in"},"search_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Type","description":"The type of search to perform (vector, keyword, hybrid)"},"max_results":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Max Results","description":"The maximum number of results to return"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Filters to apply to the search results"},"meta":{"anyOf":[{"$ref":"#/components/schemas/Meta"},{"type":"null"}],"description":"Pagination metadata. Limit and page number to return a subset of results."}},"type":"object","required":["query"],"title":"VectorSearchRequestSchema","description":"Schema for vector search request."},"VectorSearchResult":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the search result document"},"content":{"type":"string","title":"Content","description":"Content text of the document"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the document"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Metadata associated with the document"},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"Usage statistics (e.g., token counts)"},"reranking_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reranking Score","description":"Reranking score for relevance"},"content_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Id","description":"ID of the source content"},"content_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Origin","description":"Origin URL or source of the content"},"size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"}},"type":"object","required":["id","content"],"title":"VectorSearchResult","description":"Schema for search result documents."},"VideoInputContent":{"properties":{"type":{"type":"string","const":"video","title":"Type","default":"video"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"VideoInputContent","description":"A video input content fragment."},"WhatsAppWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status","default":"ok"}},"type":"object","title":"WhatsAppWebhookResponse"},"WorkflowResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema","description":"Input schema for the workflow"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps","description":"List of workflow steps"},"agent":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"type":"null"}],"description":"Agent configuration if used"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamResponse"},{"type":"null"}],"description":"Team configuration if used"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"workflow_agent":{"type":"boolean","title":"Workflow Agent","description":"Whether this workflow uses a WorkflowAgent","default":false},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowResponse"},"WorkflowRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the workflow run"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the workflow"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was executed"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the workflow"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"Type of content returned"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status of the workflow run"},"step_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Results","description":"Results from each workflow step"},"step_executor_runs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Executor Runs","description":"Executor runs for each step"},"step_requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Requirements","description":"HITL step requirements (resolved state for historical display)"},"pause_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Kind","description":"Kind of HITL pause: 'step' or 'executor'"},"paused_step_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Step Name","description":"Name of the step that caused the pause"},"paused_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Paused Step Index","description":"Index of the step that caused the pause"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the workflow"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the workflow"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the workflow"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the workflow"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the workflow"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"}},"type":"object","required":["run_id"],"title":"WorkflowRunSchema"},"WorkflowSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID used in this session"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name","description":"Name of the workflow"},"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Data","description":"Complete session data"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current workflow state"},"workflow_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Data","description":"Workflow-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["session_id","session_name"],"title":"WorkflowSessionDetailSchema"},"WorkflowSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowSummaryResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} +{"openapi":"3.1.0","info":{"title":"Agno API Reference","description":"The all-in-one, private, secure agent platform that runs in your cloud.","version":"2.7.4"},"paths":{"/":{"get":{"tags":["Home"],"summary":"API Information","description":"Return the AgentOS instance name, ID, and version.","operationId":"get_api_info","responses":{"200":{"description":"API information retrieved successfully","content":{"application/json":{"schema":{"properties":{"name":{"type":"string","title":"Name"},"id":{"type":"string","title":"Id"},"version":{"type":"string","title":"Version"}},"type":"object","required":["name","id","version"],"title":"ApiInfoResponse"},"examples":{"home":{"summary":"Example home response","value":{"name":"AgentOS API","id":"demo-os","version":"1.0.0"}}}}}}}}},"/health":{"get":{"tags":["Health"],"summary":"Health Check","description":"Check the health status of the AgentOS API. Returns a simple status indicator.","operationId":"health_check","responses":{"200":{"description":"API is healthy and operational","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"},"example":{"status":"ok","instantiated_at":"2025-06-10T12:00:00Z"}}}}}}},"/info":{"get":{"tags":["Core"],"summary":"Get OS Info","description":"Return lightweight, unauthenticated metadata about this AgentOS instance.","operationId":"get_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoResponse"}}}}}}},"/config":{"get":{"tags":["Core"],"summary":"Get OS Configuration","description":"Retrieve the complete configuration of the AgentOS instance, including:\n\n- Available models and databases\n- Registered agents, teams, and workflows\n- Chat, session, memory, knowledge, and evaluation configurations\n- Available interfaces and their routes","operationId":"get_config","responses":{"200":{"description":"OS configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"},"example":{"description":"Example AgentOS configuration","available_models":[],"databases":["9c884dc4-9066-448c-9074-ef49ec7eb73c"],"session":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Sessions"}}]},"metrics":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Metrics"}}]},"memory":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Memory"}}]},"knowledge":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Knowledge"}}]},"evals":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Evals"}}]},"agents":[{"id":"main-agent","name":"Main Agent","db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c"}],"teams":[],"workflows":[],"interfaces":[],"os_id":"demo"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/models":{"get":{"tags":["Core"],"summary":"Get Available Models","description":"Retrieve a list of all unique models currently used by agents and teams in this OS instance. This includes the model ID and provider information for each model.","operationId":"get_models","responses":{"200":{"description":"List of models retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Response Get Models"},"example":[{"id":"gpt-4","provider":"openai"},{"id":"claude-3-sonnet","provider":"anthropic"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}/runs":{"post":{"tags":["Agents"],"summary":"Create Agent Run","description":"Execute an agent with a message and optional media files. Supports both streaming and non-streaming responses.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_agent_run"}}}},"responses":{"200":{"description":"Agent run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"examples":{"event_stream":{"summary":"Example event stream response","value":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Agents"],"summary":"List Agent Runs","description":"List runs for an agent within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_agent_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED","title":"Status"},"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RunSchema"},"type":"array","title":"Response List Agent Runs"}}}},"400":{"description":"Run listing is unavailable for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Agent resolution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/cancel":{"post":{"tags":["Agents"],"summary":"Cancel Agent Run","description":"Cancel a currently executing agent run. This will attempt to stop the agent's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/continue":{"post":{"tags":["Agents"],"summary":"Continue Agent Run","description":"Advance a persisted agent run from its current state. Dispatches on the body shape and the persisted run state (see ADR-003 in specs/agno/features/checkpointing/decisions.md).\n\n**Variants:**\n- PAUSED + tools provided \u2192 apply HITL tool results, resume\n- PAUSED + resolved admin approval (empty tools) \u2192 apply resolution, resume\n- RUNNING / ERROR (no unresolved HITL requirements) \u2192 resume from last persisted state\n- COMPLETED + new tools \u2192 continue with appended messages\n\n**Tools Parameter:**\nJSON string containing array of tool execution objects with results. Optional \u2014 only required when the persisted run has unresolved HITL requirements.","operationId":"continue_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_agent_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid tools or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Agent run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Remote agent is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/agents/{agent_id}/sessions/{session_id}/fork":{"post":{"tags":["Agents"],"summary":"Fork Agent Session","description":"Deep-copy a session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_agent_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents":{"get":{"tags":["Agents"],"summary":"List All Agents","description":"Retrieve a comprehensive list of all agents configured in this OS instance.\n\n**Returns:**\n- Agent metadata (ID, name, description)\n- Model configuration and capabilities\n- Available tools and their configurations\n- Session, knowledge, memory, and reasoning settings\n- Only meaningful (non-default) configurations are included","operationId":"get_agents","responses":{"200":{"description":"List of agents retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentResponse"},"type":"array","title":"Response Get Agents"},"example":[{"id":"main-agent","name":"Main Agent","db_id":"c6bf0644-feb8-4930-a305-380dae5ad6aa","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Details","description":"Retrieve detailed configuration and capabilities of a specific agent.\n\n**Returns comprehensive agent information including:**\n- Model configuration and provider details\n- Complete tool inventory and configurations\n- Session management settings\n- Knowledge base and memory configurations\n- Reasoning capabilities and settings\n- System prompts and response formatting options","operationId":"get_agent","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Agent details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"},"example":{"id":"main-agent","name":"Main Agent","db_id":"9e064c70-6821-4840-a333-ce6230908a70","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Run","description":"Retrieve the status and output of an agent run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Agents"],"summary":"List Agent Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_agent_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Agents"],"summary":"Get Agent Run Checkpoint Snapshot","description":"Return a derived run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_agent_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/resume":{"post":{"tags":["Agents"],"summary":"Resume Agent Run Stream","description":"Resume an SSE stream for an agent run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_agent_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_agent_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Not supported for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs":{"post":{"tags":["Teams"],"summary":"Create Team Run","description":"Execute a team collaboration with multiple agents working together on a task.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_team_run"}}}},"responses":{"200":{"description":"Team run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Teams"],"summary":"List Team Runs","description":"List runs for a team within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_team_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/cancel":{"post":{"tags":["Teams"],"summary":"Cancel Team Run","description":"Cancel a currently executing team run. This will attempt to stop the team's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel team run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/resume":{"post":{"tags":["Teams"],"summary":"Resume Team Run Stream","description":"Resume an SSE stream for a team run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_team_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_team_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory teams. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/continue":{"post":{"tags":["Teams"],"summary":"Continue Team Run","description":"Continue a paused or incomplete team run with updated requirements.\n\n**Use Cases:**\n- Resume execution after tool approval/rejection\n- Provide manual tool execution results\n- Resume after admin approval (requirements can be empty; resolution fetched from DB)\n\n**Requirements Parameter:**\nJSON string containing array of requirement objects with tool execution results.\nCan be empty when an admin-required approval has been resolved.","operationId":"continue_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_team_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid requirements or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Team run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Remote team is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/teams/{team_id}/sessions/{session_id}/fork":{"post":{"tags":["Teams"],"summary":"Fork Team Session","description":"Deep-copy a team session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_team_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams":{"get":{"tags":["Teams"],"summary":"List All Teams","description":"Retrieve a comprehensive list of all teams configured in this OS instance.\n\n**Returns team information including:**\n- Team metadata (ID, name, description, execution mode)\n- Model configuration for team coordination\n- Team member roster with roles and capabilities\n- Knowledge sharing and memory configurations","operationId":"get_teams","responses":{"200":{"description":"List of teams retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamResponse"},"type":"array","title":"Response Get Teams"},"example":[{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"agno_memories","app_url":"/memory/1","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/teams/{team_id}":{"get":{"tags":["Teams"],"summary":"Get Team Details","description":"Retrieve detailed configuration and member information for a specific team.","operationId":"get_team","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"},"example":{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}":{"get":{"tags":["Teams"],"summary":"Get Team Run","description":"Retrieve the status and output of a team run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Teams"],"summary":"List Team Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored team run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_team_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Teams"],"summary":"Get Team Run Checkpoint Snapshot","description":"Return a derived team run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_team_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows":{"get":{"tags":["Workflows"],"summary":"List All Workflows","description":"Retrieve a comprehensive list of all workflows configured in this OS instance.\n\n**Return Information:**\n- Workflow metadata (ID, name, description)\n- Input schema requirements\n- Step sequence and execution flow\n- Associated agents and teams","operationId":"get_workflows","responses":{"200":{"description":"List of workflows retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Response Get Workflows"},"example":[{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/workflows/{workflow_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Details","description":"Retrieve detailed configuration and step information for a specific workflow.","operationId":"get_workflow","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Workflow version to retrieve","title":"Version"},"description":"Workflow version to retrieve"}],"responses":{"200":{"description":"Workflow details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"},"example":{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs":{"post":{"tags":["Workflows"],"summary":"Execute Workflow","description":"Execute a workflow with the provided input data. Workflows can run in streaming or batch mode.\n\n**Execution Modes:**\n- **Streaming (`stream=true`)**: Real-time step-by-step execution updates via SSE\n- **Non-Streaming (`stream=false`)**: Complete workflow execution with final result\n\n**Workflow Execution Process:**\n1. Input validation against workflow schema\n2. Sequential or parallel step execution based on workflow design\n3. Data flow between steps with transformation\n4. Error handling and automatic retries where configured\n5. Final result compilation and response\n\n**Session Management:**\nWorkflows support session continuity for stateful execution across multiple runs.","operationId":"create_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_run"}}}},"responses":{"200":{"description":"Workflow executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid input data or workflow configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Workflow execution error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"List Workflow Runs","description":"List runs for a workflow within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_workflow_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/continue":{"post":{"tags":["Workflows"],"summary":"Continue Workflow Run","description":"Continue a paused workflow run with resolved requirements.\n\n**Use Cases:**\n- Resume after step-level HITL (confirmation, user input, router selection)\n- Resume after executor-level HITL (agent/team tool confirmation within a step)\n\n**Requirements Parameter:**\nJSON string containing the resolved step requirements.","operationId":"continue_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_workflow_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: StepCompleted\ndata: {\"step_name\": \"step1\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid step requirements or factory input, missing required session ID, rejected input, or remote workflow continuation requested","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is not paused and cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/cancel":{"post":{"tags":["Workflows"],"summary":"Cancel Workflow Run","description":"Cancel a currently executing workflow run, stopping all active steps and cleanup.\n**Note:** Complex workflows with multiple parallel steps may take time to fully cancel.","operationId":"cancel_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found, or the requested run was not found in the caller's session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel workflow run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/resume":{"post":{"tags":["Workflows"],"summary":"Resume Workflow Run Stream","description":"Resume an SSE stream for a workflow run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_workflow_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_workflow_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory workflows. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Run","description":"Retrieve the status and output of a workflow run. Use this to poll for run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/slack/events":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Receives incoming Slack events (messages, mentions, thread starts).\n\n**URL Verification:** On first setup, Slack sends a `url_verification` challenge. The endpoint echoes back the challenge string.\n\n**Event Processing:** Normal events are acknowledged immediately with `{\"status\": \"ok\"}` and processed in the background. This prevents Slack's 3-second retry timeout.\n\n**Retry Handling:** Events with `X-Slack-Retry-Num` header are duplicates and return 200 without reprocessing.\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Event Subscriptions > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for creating a Slack App or use the [manifest](/agent-os/interfaces/slack/setup#2-create-the-slack-app) for quick setup.\n","operationId":"slack_events_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SlackChallengeResponse"},{"$ref":"#/components/schemas/SlackEventResponse"}],"title":"Response Slack Events Simple Agent"}}}},"400":{"description":"Missing Slack headers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured, or the event body is not valid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number (present on retried events)"}]}},"/slack/interactions":{"post":{"tags":["Slack"],"summary":"Slack Interactions","description":"Handles Slack interactive components for Human-in-the-Loop (HITL) workflows.\n\n**Supported Actions:**\n- `row_approve` - Approve a pending tool call\n- `row_reject` - Reject a pending tool call\n- `submit_pause` - Submit form data for a paused workflow\n- `check_status` - Check an admin approval and resume an approved run\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Interactivity & Shortcuts > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for step-by-step instructions or the [HITL guide](/agent-os/interfaces/slack/hitl) for approval workflows.\n","operationId":"slack_interactions_simple_agent","responses":{"200":{"description":"Interaction accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackEventResponse"}}}},"400":{"description":"Missing Slack headers or malformed interaction payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number. Retried interactions return 200 without reprocessing."}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"URL-encoded JSON interaction payload (Slack sends interactive component data as a single form field)"}}}}}}}},"/whatsapp/status":{"get":{"tags":["Whatsapp"],"summary":"Status","operationId":"whatsapp_status_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"WhatsAppStatusResponse","example":{"status":"available"}}}}}}}},"/whatsapp/webhook":{"get":{"tags":["Whatsapp"],"summary":"Whatsapp Verify","description":"Handle WhatsApp webhook verification","operationId":"whatsapp_verify_simple_agent","responses":{"200":{"description":"Webhook challenge accepted","content":{"text/plain":{"schema":{"type":"string"},"example":"challenge-token"}}},"400":{"description":"No challenge was provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid verify token or mode","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Webhook verification is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"hub.mode","in":"query","required":true,"schema":{"type":"string"},"description":"Webhook verification mode. Meta sends `subscribe`."},{"name":"hub.verify_token","in":"query","required":true,"schema":{"type":"string"},"description":"Verification token configured for the WhatsApp interface."},{"name":"hub.challenge","in":"query","required":true,"schema":{"type":"string"},"description":"Challenge returned as plain text after successful verification."}]},"post":{"tags":["Whatsapp"],"summary":"Whatsapp Webhook","description":"Process incoming WhatsApp messages","operationId":"whatsapp_webhook_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppWebhookResponse"}}}},"403":{"description":"Invalid webhook signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Signature validation is not configured, or the JSON body is malformed or is not an object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Hub-Signature-256","in":"header","required":true,"schema":{"type":"string"},"description":"SHA-256 HMAC signature for the raw request body, prefixed with `sha256=`"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}},"/telegram/status":{"get":{"tags":["Telegram"],"summary":"Telegram Status","operationId":"telegram_status_simple-agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramStatusResponse"}}}}}}},"/telegram/webhook":{"post":{"tags":["Telegram"],"summary":"Telegram Webhook","operationId":"telegram_webhook_simple-agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramWebhookResponse"}}}},"403":{"description":"Invalid webhook secret token"}}}},"/agui":{"post":{"tags":["AGUI"],"summary":"Run Agent","operationId":"run_agent_agui_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentInput"}}},"required":true},"responses":{"200":{"description":"Server-sent event stream","content":{"text/event-stream":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/status":{"get":{"tags":["AGUI"],"summary":"Get Status","operationId":"get_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/a2a/agents/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Agent Card","operationId":"get_agent_card_a2a_agents__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Agent","description":"Send a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"A2A is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/agents/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Agent Task","description":"Get the status and result of an agent task by ID.","operationId":"get_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Agent Task","description":"Cancel a running agent task.","operationId":"cancel_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Agent","description":"Stream a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/teams/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Team Card","operationId":"get_team_card_a2a_teams__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Team","description":"Send a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/teams/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Team Task","description":"Get the status and result of a team task by ID.","operationId":"get_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Team Task","description":"Cancel a running team task.","operationId":"cancel_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Team","description":"Stream a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/workflows/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Workflow Card","operationId":"get_workflow_card_a2a_workflows__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/workflows/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Workflow","description":"Send a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/workflows/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Workflow","description":"Stream a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/message/send":{"post":{"tags":["A2A"],"summary":"Send Message","description":"[DEPRECATED] Send a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"send_message","responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/a2a/message/stream":{"post":{"tags":["A2A"],"summary":"Stream Message","description":"[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as Server-Sent Events (SSE).","operationId":"stream_message","responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/sessions":{"get":{"tags":["Sessions"],"summary":"List Sessions","description":"Retrieve paginated list of sessions with filtering and sorting options. Supports filtering by session type (agent, team, workflow), component, user, and name. Sessions represent conversation histories and execution contexts.","operationId":"get_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types.","title":"Type"},"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types."},{"name":"component_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by component ID (agent/team/workflow ID)","title":"Component Id"},"description":"Filter sessions by component ID (agent/team/workflow ID)"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by user ID","title":"User Id"},"description":"Filter sessions by user ID"},{"name":"session_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by name (partial match)","title":"Session Name"},"description":"Filter sessions by name (partial match)"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of sessions to return per page","default":20,"title":"Limit"},"description":"Number of sessions to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort sessions by","default":"created_at","title":"Sort By"},"description":"Field to sort sessions by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query sessions from","title":"Db Id"},"description":"Database ID to query sessions from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Sessions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_SessionSchema_"},"example":{"session_example":{"summary":"Example session response","value":{"data":[{"session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_state":{},"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}]}}}}}},"400":{"description":"Invalid session type or filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in query parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Sessions"],"summary":"Create New Session","description":"Create a new empty session with optional configuration. Useful for pre-creating sessions with specific session_state, metadata, or other properties before running any agent/team/workflow interactions. The session can later be used by providing its session_id in run requests.","operationId":"create_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SessionType","description":"Type of session to create (agent, team, or workflow)","default":"agent"},"description":"Type of session to create (agent, team, or workflow)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to create session in","title":"Db Id"},"description":"Database ID to create session in"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest","description":"Session configuration data","default":{}}}}},"responses":{"201":{"description":"Session created successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Create Session"},"examples":{"agent_session_example":{"summary":"Example created agent session","value":{"user_id":"user-123","agent_session_id":"new-session-id","session_id":"new-session-id","session_name":"New Session","session_state":{"key":"value"},"metadata":{"key":"value"},"agent_id":"agent-1","created_at":"2025-10-21T12:00:00Z","updated_at":"2025-10-21T12:00:00Z"}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A session with the supplied session_id already exists"},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Multiple Sessions","description":"Delete multiple sessions by their IDs in a single operation. This action cannot be undone and will permanently remove all specified sessions and their runs.","operationId":"delete_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSessionRequest"}}}},"responses":{"204":{"description":"Sessions deleted successfully"},"400":{"description":"Invalid request - session IDs and types length mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["Sessions"],"summary":"Get Session by ID","description":"Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow).","operationId":"get_session_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to retrieve","title":"Session Id"},"description":"Session ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query session from","title":"User Id"},"description":"User ID to query session from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query session from","title":"Db Id"},"description":"Database ID to query session from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query session from","title":"Table"},"description":"Table to query session from"}],"responses":{"200":{"description":"Session details retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Get Session By Id"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Session","description":"Permanently delete a specific session and all its associated runs. This action cannot be undone and will remove all conversation history.","operationId":"delete_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to delete","title":"Session Id"},"description":"Session ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Sessions"],"summary":"Update Session","description":"Update session properties such as session_name, session_state, metadata, or summary. Use this endpoint to modify the session name, update state, add metadata, or update the session summary.","operationId":"update_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to update","title":"Session Id"},"description":"Session ID to update"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID","title":"User Id"},"description":"User ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update operation","title":"Db Id"},"description":"Database ID to use for update operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update operation","title":"Table"},"description":"Table to use for update operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest","description":"Session update data"}}}},"responses":{"200":{"description":"Session updated successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Update Session"},"examples":{"update_summary":{"summary":"Update session summary","value":{"summary":{"summary":"The user discussed project planning with the agent.","updated_at":"2025-10-21T14:30:00Z"}}},"update_metadata":{"summary":"Update session metadata","value":{"metadata":{"tags":["planning","project"],"priority":"high"}}},"update_session_name":{"summary":"Update session name","value":{"session_name":"Updated Session Name"}},"update_session_state":{"summary":"Update session state","value":{"session_state":{"step":"completed","context":"Project planning finished","progress":100}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs":{"get":{"tags":["Sessions"],"summary":"Get Session Runs","description":"Retrieve all runs (executions) for a specific session with optional timestamp filtering. Runs represent individual interactions or executions within a session. Response schema varies based on session type.","operationId":"get_session_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get runs from","title":"Session Id"},"description":"Session ID to get runs from"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query runs from","title":"User Id"},"description":"User ID to query runs from"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created after this Unix timestamp (epoch time in seconds)","title":"Created After"},"description":"Filter runs created after this Unix timestamp (epoch time in seconds)"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created before this Unix timestamp (epoch time in seconds)","title":"Created Before"},"description":"Filter runs created before this Unix timestamp (epoch time in seconds)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query runs from","title":"Db Id"},"description":"Database ID to query runs from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query runs from","title":"Table"},"description":"Table to query runs from"}],"responses":{"200":{"description":"Session runs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}]},"title":"Response Get Session Runs"},"examples":{"completed_run":{"summary":"Example completed run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"","run_input":"Which tools do you have access to?","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","run_response_format":"text","reasoning_content":"","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069},"messages":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-08 17:52:10.101003.\n\n\nYou have the capability to retain memories from previous interactions with the user, but have not had any interactions with the user yet.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757346730},{"content":"Which tools do you have access to?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757346730},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138},"created_at":1757346730}],"events":[{"created_at":1757346730,"event":"RunStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","model":"gpt-4o","model_provider":"OpenAI"},{"created_at":1757346733,"event":"MemoryUpdateStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"MemoryUpdateCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"RunCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","content_type":"str","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069}}],"created_at":"2025-09-08T15:52:10Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found or has no runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs/{run_id}":{"get":{"tags":["Sessions"],"summary":"Get Run by ID","description":"Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run).","operationId":"get_session_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get run from","title":"Session Id"},"description":"Session ID to get run from"},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","description":"Run ID to retrieve","title":"Run Id"},"description":"Run ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query run from","title":"User Id"},"description":"User ID to query run from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query run from","title":"Db Id"},"description":"Database ID to query run from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query run from","title":"Table"},"description":"Table to query run from"}],"responses":{"200":{"description":"Run retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}],"title":"Response Get Session Run"},"examples":{"agent_run":{"summary":"Example agent run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"user_123","run_input":"Which tools do you have access to?","content":"I don't have access to external tools.","created_at":1728499200}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/rename":{"post":{"tags":["Sessions"],"summary":"Rename Session","description":"Update the name of an existing session. Useful for organizing and categorizing sessions with meaningful names for better identification and management.","operationId":"rename_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to rename","title":"Session Id"},"description":"Session ID to rename"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope rename to","title":"User Id"},"description":"User ID to scope rename to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for rename operation","title":"Db Id"},"description":"Database ID to use for rename operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_rename_session"}}}},"responses":{"200":{"description":"Session renamed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Rename Session"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Invalid session name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type or validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories":{"post":{"tags":["Memory"],"summary":"Create Memory","description":"Create a new user memory with content and associated topics. Memories are used to store contextual information for users across conversations.","operationId":"create_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for memory storage","title":"Db Id"},"description":"Database ID to use for memory storage"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for memory storage","title":"Table"},"description":"Table to use for memory storage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"mem-123","memory":"User prefers technical explanations with code examples","topics":["preferences","communication_style","technical"],"user_id":"user-456","created_at":"2024-01-15T10:30:00Z","updated_at":"2024-01-15T10:30:00Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Memory"],"summary":"Delete Multiple Memories","description":"Delete multiple user memories by their IDs in a single operation. This action cannot be undone and all specified memories will be permanently removed.","operationId":"delete_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMemoriesRequest"}}}},"responses":{"204":{"description":"Memories deleted successfully"},"400":{"description":"Invalid request - empty memory_ids list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"List Memories","description":"Retrieve paginated list of user memories with filtering and search capabilities. Filter by user, agent, team, topics, or search within memory content.","operationId":"get_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by user ID","title":"User Id"},"description":"Filter memories by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by agent ID","title":"Agent Id"},"description":"Filter memories by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by team ID","title":"Team Id"},"description":"Filter memories by team ID"},{"name":"search_content","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fuzzy search within memory content","title":"Search Content"},"description":"Fuzzy search within memory content"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of memories to return per page","default":20,"title":"Limit"},"description":"Number of memories to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort memories by","default":"updated_at","title":"Sort By"},"description":"Field to sort memories by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memories from","title":"Db Id"},"description":"Database ID to query memories from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Comma-separated list of topics to filter by","examples":["preferences,technical,communication_style"],"title":"Topics"},"description":"Comma-separated list of topics to filter by"}],"responses":{"200":{"description":"Memories retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserMemorySchema_"},"example":{"data":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories/{memory_id}":{"delete":{"tags":["Memory"],"summary":"Delete Memory","description":"Permanently delete a specific user memory. This action cannot be undone.","operationId":"delete_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to delete","title":"Memory Id"},"description":"Memory ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to delete memory for","title":"User Id"},"description":"User ID to delete memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Memory deleted successfully"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"Get Memory by ID","description":"Retrieve detailed information about a specific user memory by its ID.","operationId":"get_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to retrieve","title":"Memory Id"},"description":"Memory ID to retrieve"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query memory for","title":"User Id"},"description":"User ID to query memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memory from","title":"Db Id"},"description":"Database ID to query memory from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query memory from","title":"Table"},"description":"Table to query memory from"}],"responses":{"200":{"description":"Memory retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Memory"],"summary":"Update Memory","description":"Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values.","operationId":"update_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to update","title":"Memory Id"},"description":"Memory ID to update"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update","title":"Db Id"},"description":"Database ID to use for update"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update","title":"Table"},"description":"Table to use for update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memory_topics":{"get":{"tags":["Memory"],"summary":"Get Memory Topics","description":"Retrieve all unique topics associated with memories in the system. Useful for filtering and categorizing memories by topic.","operationId":"get_memory_topics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter topics for","title":"User Id"},"description":"User ID to filter topics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query topics from","title":"Db Id"},"description":"Database ID to query topics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query topics from","title":"Table"},"description":"Table to query topics from"}],"responses":{"200":{"description":"Memory topics retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Get Memory Topics"},"example":["preferences","communication_style","technical","industry","compliance","code_examples","requirements","healthcare","finance"]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/user_memory_stats":{"get":{"tags":["Memory"],"summary":"Get User Memory Statistics","description":"Retrieve paginated statistics about memory usage by user. Provides insights into user engagement and memory distribution across users.","operationId":"get_user_memory_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of user statistics to return per page","default":20,"title":"Limit"},"description":"Number of user statistics to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter statistics for","title":"User Id"},"description":"User ID to filter statistics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query statistics from","title":"Table"},"description":"Table to query statistics from"}],"responses":{"200":{"description":"User memory statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserStatsSchema_"},"example":{"data":[{"user_id":"123","total_memories":3,"last_memory_updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve user statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/optimize-memories":{"post":{"tags":["Memory"],"summary":"Optimize User Memories","description":"Optimize all memories for a user with the summarize strategy. The operation combines the user's memories into one summary. Set `apply=false` to preview the result without saving it. Specify a custom model as `provider:model_id`, for example `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, or `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`.","operationId":"optimize_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for optimization","title":"Db Id"},"description":"Database ID to use for optimization"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for optimization","title":"Table"},"description":"Table to use for optimization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesRequest"}}}},"responses":{"200":{"description":"Memories optimized successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesResponse"},"example":{"memories":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User has a 3-year-old golden retriever named Max who loves fetch and walks. Lives in San Francisco's Mission district, works as a product manager in tech. Enjoys hiking Bay Area trails, trying new restaurants (especially Japanese, Thai, Mexican), and learning piano for 1.5 years.","topics":["pets","location","work","hobbies","food_preferences"],"user_id":"user2","updated_at":"2025-11-18T10:30:00Z"}],"memories_before":4,"memories_after":1,"tokens_before":450,"tokens_after":180,"tokens_saved":270,"reduction_percentage":60.0}}}},"400":{"description":"Bad request - User ID is required or invalid model string format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No memories found for user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to optimize memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings":{"get":{"tags":["Learnings"],"summary":"List Learnings","description":"List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) \u2014 this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`).","operationId":"list_learnings","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by learning type","title":"Learning Type"},"description":"Filter by learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"namespace","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by namespace","title":"Namespace"},"description":"Filter by namespace"},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity ID","title":"Entity Id"},"description":"Filter by entity ID"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity type","title":"Entity Type"},"description":"Filter by entity type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":100,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used).","title":"Sort By"},"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used)."},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Learnings"],"summary":"Create Learning","description":"Create a new learning record. For the identity-keyed learning types (`user_profile`, `user_memory`, `session_context`, `entity_memory`) the record id is derived deterministically from the identity fields so it reconciles with what the agent reads/writes \u2014 provide those fields (else 422), and if a record already exists the request is rejected with 409 (use PATCH to update it). Other types get a generated id. For a scoped (non-admin) caller, the body's `user_id` must be omitted/null or match the caller (mismatch \u2192 403); admins and unscoped callers may set any `user_id`.","operationId":"create_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users":{"get":{"tags":["Learnings"],"summary":"List Learning Users","description":"List the users that own learning records, with a per-user count and last-updated timestamp. Intended as the entry point for a per-user view: list users here, then drill into a single user's learnings via `GET /learnings?user_id=...`. Records with no owner (`user_id IS NULL`) are excluded. Pass `learning_type` to restrict the grouping to a single store (e.g. `user_profile` or `user_memory`). For a scoped (non-admin) caller results are bound to that user; an explicit `user_id` that differs is rejected with 403. Admins and unscoped callers list all users. Sortable by `user_id` or `last_learning_updated_at` (the default).","operationId":"list_learning_users","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the grouping to a single learning type","title":"Learning Type"},"description":"Restrict the grouping to a single learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the result to a single user","title":"User Id"},"description":"Restrict the result to a single user"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by: user_id or last_learning_updated_at (the default)","title":"Sort By"},"description":"Field to sort by: user_id or last_learning_updated_at (the default)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningUserStats_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users/{user_id}":{"delete":{"tags":["Learnings"],"summary":"Delete Learning User","description":"Delete the learning records owned by a user. By default removes every learning type backed by the agno_learnings table (user_profile, user_memory, and any user-scoped entity records); pass `learning_type` to restrict deletion to a single store. Records with no owner (`user_id IS NULL`) are not affected. For a scoped (non-admin) caller, only their own learnings may be deleted; a different `user_id` is rejected with 403. Admins and unscoped callers may delete any user's learnings. Returns 204 even if the user had no matching records.","operationId":"delete_learning_user","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The user whose learnings should be deleted","title":"User Id"},"description":"The user whose learnings should be deleted"},{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings","title":"Learning Type"},"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/{learning_id}":{"get":{"tags":["Learnings"],"summary":"Get Learning","description":"Retrieve a single learning record by its ID.","operationId":"get_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Learnings"],"summary":"Update Learning","description":"Update a learning record. Only `content` and `metadata` may be modified; identity fields (user_id, agent_id, team_id, etc.) are immutable. Provided fields fully replace the existing values. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) are readable by any caller but may only be modified by an admin.","operationId":"update_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Learnings"],"summary":"Delete Learning","description":"Permanently delete a learning record by its ID. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) may only be deleted by an admin.","operationId":"delete_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs":{"get":{"tags":["Evals"],"summary":"List Evaluation Runs","description":"Retrieve paginated evaluation runs with filtering and sorting options. Filter by agent, team, workflow, model, or evaluation type.","operationId":"get_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Workflow ID","title":"Workflow Id"},"description":"Workflow ID"},{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model ID","title":"Model Id"},"description":"Model ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EvalFilterType"},{"type":"null"}],"description":"Filter type","title":"Type"},"description":"Filter type"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of eval runs to return","default":20,"title":"Limit"},"description":"Number of eval runs to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"eval_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)","examples":["accuracy,agent_as_judge,performance,reliability"],"title":"Eval Types"},"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)"}],"responses":{"200":{"description":"Evaluation runs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_EvalSchema_"},"example":{"data":[{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Evals"],"summary":"Delete Evaluation Runs","description":"Delete multiple evaluation runs by their IDs. This action cannot be undone.","operationId":"delete_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvalRunsRequest"}}}},"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Deletion failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Evals"],"summary":"Execute Evaluation","description":"Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both.","operationId":"run_eval","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for evaluation","title":"Db Id"},"description":"Database ID to use for evaluation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for evaluation","title":"Table"},"description":"Table to use for evaluation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRunInput"}}}},"responses":{"200":{"description":"Evaluation executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"f2b2d72f-e9e2-4f0e-8810-0a7e1ff58614","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Invalid request - provide either agent_id or team_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs/{eval_run_id}":{"get":{"tags":["Evals"],"summary":"Get Evaluation Run","description":"Retrieve detailed results and metrics for a specific evaluation run.","operationId":"get_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query eval run from","title":"Table"},"description":"Table to query eval run from"}],"responses":{"200":{"description":"Evaluation run details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Evals"],"summary":"Update Evaluation Run","description":"Update the name or other properties of an existing evaluation run.","operationId":"update_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvalRunRequest"}}}},"responses":{"200":{"description":"Evaluation run updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update evaluation run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics":{"get":{"tags":["Metrics"],"summary":"Get AgentOS Metrics","description":"Retrieve AgentOS metrics and analytics data for a specified date range. If no date range is specified, returns all available metrics.","operationId":"get_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"starting_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Starting date for metrics range (YYYY-MM-DD format)","title":"Starting Date"},"description":"Starting date for metrics range (YYYY-MM-DD format)"},{"name":"ending_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Ending date for metrics range (YYYY-MM-DD format)","title":"Ending Date"},"description":"Ending date for metrics range (YYYY-MM-DD format)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query metrics from","title":"Db Id"},"description":"Database ID to query metrics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Metrics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"},"example":{"metrics":[{"id":"7bf39658-a00a-484c-8a28-67fd8a9ddb2a","agent_runs_count":5,"agent_sessions_count":5,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":448,"output_tokens":148,"total_tokens":596,"audio_tokens":0,"input_audio_tokens":0,"output_audio_tokens":0,"cached_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":5}],"date":"2025-07-31T00:00:00Z","created_at":"2025-07-31T12:38:52Z","updated_at":"2025-07-31T12:49:01Z"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Metrics retrieval failed. In Agno 2.7.4, invalid or ambiguous database selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics/refresh":{"post":{"tags":["Metrics"],"summary":"Refresh Metrics","description":"Manually trigger recalculation of system metrics from raw data. This operation analyzes system activity logs and regenerates aggregated metrics. Useful for ensuring metrics are up-to-date or after system maintenance.","operationId":"refresh_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for metrics calculation","title":"Db Id"},"description":"Database ID to use for metrics calculation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for metrics calculation","title":"Table"},"description":"Table to use for metrics calculation"}],"responses":{"200":{"description":"Metrics refreshed successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"title":"Response Refresh Metrics"},"example":[{"id":"e77c9531-818b-47a5-99cd-59fed61e5403","agent_runs_count":2,"agent_sessions_count":2,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":256,"output_tokens":441,"total_tokens":697,"audio_total_tokens":0,"audio_input_tokens":0,"audio_output_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":2}],"date":"2025-08-12T00:00:00Z","created_at":"2025-08-12T08:01:47Z","updated_at":"2025-08-12T08:01:47Z"}]}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Refresh failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content":{"post":{"tags":["Knowledge"],"summary":"Upload Content","description":"Upload content to the knowledge base. Supports file uploads, text content, or URLs. Content is processed asynchronously in the background. Supports custom readers and chunking strategies.","operationId":"upload_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_content"}}}},"responses":{"202":{"description":"Content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-123","name":"example-document.pdf","description":"Sample document for processing","metadata":{"category":"documentation","priority":"high"},"status":"processing"}}}},"400":{"description":"Invalid request - malformed metadata or missing content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in form data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"List Content","description":"Retrieve paginated list of all content in the knowledge base with filtering and sorting options. Filter by status, content type, or metadata properties.","operationId":"get_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of content entries to return","default":20,"title":"Limit"},"description":"Number of content entries to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ContentResponseSchema_"},"example":{"data":[{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}],"meta":{"page":1,"limit":20,"total_pages":1,"total_count":2}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete All Content","description":"Permanently remove all content from the knowledge base. This is a destructive operation that cannot be undone. Use with extreme caution.","operationId":"delete_all_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete all content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/remote-content":{"post":{"tags":["Knowledge"],"summary":"Upload Remote Content","description":"Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.","operationId":"upload_remote_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_upload_remote_content"}}}},"responses":{"202":{"description":"Remote content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-456","name":"reports/q1-2024.pdf","description":"Q1 Report from S3","metadata":{"source":"s3-docs"},"status":"processing"}}}},"400":{"description":"Invalid request - unknown config or missing path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}":{"patch":{"tags":["Knowledge"],"summary":"Update Content","description":"Update content name, description, or metadata without re-uploading it. In Agno 2.7.4, this endpoint accepts `reader_id`. Local knowledge validates the value, but the content patch does not apply or persist the reader change.","operationId":"update_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","description":"Content ID","title":"Content Id"},"description":"Content ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_update_content"}}}},"responses":{"200":{"description":"Content updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Invalid request - malformed metadata or invalid reader_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"Get Content by ID","description":"Retrieve detailed information about a specific content item including processing status and metadata.","operationId":"get_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete Content by ID","description":"Permanently remove a specific content item from the knowledge base. This action cannot be undone.","operationId":"delete_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}/status":{"get":{"tags":["Knowledge"],"summary":"Get Content Status","description":"Retrieve the current processing status of a content item. Useful for monitoring asynchronous content processing progress and identifying any processing errors.","operationId":"get_content_status","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content status retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentStatusResponse"},"examples":{"completed":{"summary":"Example completed content status","value":{"status":"completed","status_message":""}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/search":{"post":{"tags":["Knowledge"],"summary":"Search Knowledge","description":"Search the knowledge base for relevant documents using query, filters and search type.","operationId":"search_knowledge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VectorSearchRequestSchema"}}},"required":true},"responses":{"200":{"description":"Search results retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_VectorSearchResult_"},"example":{"data":[{"id":"doc_123","content":"Jordan Mitchell - Software Engineer with skills in JavaScript, React, Python","name":"cv_1","meta_data":{"page":1,"chunk":1},"usage":{"total_tokens":14},"reranking_score":0.95,"content_id":"content_456"}],"meta":{"page":1,"limit":20,"total_pages":2,"total_count":35}}}}},"400":{"description":"Invalid search parameters"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No documents found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/knowledge/config":{"get":{"tags":["Knowledge"],"summary":"Get Config","description":"Retrieve available readers, chunkers, and configuration options for content processing. This endpoint provides metadata about supported file types, processing strategies, and filters.","operationId":"get_knowledge_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Knowledge configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponseSchema"},"example":{"readers":{"website":{"id":"website","name":"WebsiteReader","description":"Reads website files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"firecrawl":{"id":"firecrawl","name":"FirecrawlReader","description":"Reads firecrawl files","chunkers":["SemanticChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"youtube":{"id":"youtube","name":"YoutubeReader","description":"Reads youtube files","chunkers":["RecursiveChunker","AgenticChunker","DocumentChunker","SemanticChunker","FixedSizeChunker"]},"web_search":{"id":"web_search","name":"WebSearchReader","description":"Reads web_search files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"arxiv":{"id":"arxiv","name":"ArxivReader","description":"Reads arxiv files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"csv":{"id":"csv","name":"CsvReader","description":"Reads csv files","chunkers":["RowChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"docling":{"id":"docling","name":"DoclingReader","description":"Converts multiple document formats like PDF, DOCX, PPTX, images, HTML, etc. using IBM's Docling library","chunkers":["AgenticChunker","CodeChunker","DocumentChunker","FixedSizeChunker","RecursiveChunker","SemanticChunker"]},"docx":{"id":"docx","name":"DocxReader","description":"Reads docx files","chunkers":["DocumentChunker","FixedSizeChunker","SemanticChunker","AgenticChunker","RecursiveChunker"]},"gcs":{"id":"gcs","name":"GcsReader","description":"Reads gcs files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"json":{"id":"json","name":"JsonReader","description":"Reads json files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"markdown":{"id":"markdown","name":"MarkdownReader","description":"Reads markdown files","chunkers":["MarkdownChunker","DocumentChunker","AgenticChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"pdf":{"id":"pdf","name":"PdfReader","description":"Reads pdf files","chunkers":["DocumentChunker","FixedSizeChunker","AgenticChunker","SemanticChunker","RecursiveChunker"]},"text":{"id":"text","name":"TextReader","description":"Reads text files","chunkers":["CodeChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]}},"readersForType":{"url":["url","website","firecrawl","youtube","web_search","gcs"],"youtube":["youtube"],"text":["web_search"],"topic":["arxiv"],"file":["csv","gcs"],".csv":["csv","field_labeled_csv","docling"],".xlsx":["excel","docling"],".xls":["excel"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["excel"],"application/vnd.ms-excel":["excel"],".docx":["docx","docling"],".dotx":["docling"],".docm":["docling"],".dotm":["docling"],".pptx":["docling","pptx"],".potx":["docling"],".ppsx":["docling"],".pptm":["docling"],".ppsm":["docling"],".potm":["docling"],".doc":["docx"],".json":["json"],".md":["markdown","docling"],".pdf":["pdf","docling"],".txt":["text"],".html":["docling"],".htm":["docling"],".xhtml":["docling"],".xml":["docling"],".nxml":["docling"],".xbrl":["docling"],".adoc":["docling"],".asciidoc":["docling"],".asc":["docling"],".xlsm":["docling"],".tex":["docling"],".latex":["docling"],".tar.gz":["docling"],".vtt":["docling"],".png":["docling"],".jpeg":["docling"],".jpg":["docling"],".tiff":["docling"],".tif":["docling"],".bmp":["docling"],".webp":["docling"],".wav":["docling"],".mp3":["docling"],".m4a":["docling"],".aac":["docling"],".ogg":["docling"],".flac":["docling"],".mp4":["docling"],".avi":["docling"],".mov":["docling"]},"chunkers":{"AgenticChunker":{"key":"AgenticChunker","name":"AgenticChunker","description":"Chunking strategy that uses an LLM to determine natural breakpoints in the text","metadata":{"chunk_size":5000}},"CodeChunker":{"key":"CodeChunker","name":"CodeChunker","description":"The CodeChunker splits code into chunks based on its structure, leveraging Abstract Syntax Trees (ASTs) to create contextually relevant segments","metadata":{"chunk_size":2048}},"DocumentChunker":{"key":"DocumentChunker","name":"DocumentChunker","description":"A chunking strategy that splits text based on document structure like paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"FixedSizeChunker":{"key":"FixedSizeChunker","name":"FixedSizeChunker","description":"Chunking strategy that splits text into fixed-size chunks with optional overlap","metadata":{"chunk_size":5000,"chunk_overlap":0}},"MarkdownChunker":{"key":"MarkdownChunker","name":"MarkdownChunker","description":"A chunking strategy that splits markdown based on structure like headers, paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RecursiveChunker":{"key":"RecursiveChunker","name":"RecursiveChunker","description":"Chunking strategy that recursively splits text into chunks by finding natural break points","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RowChunker":{"key":"RowChunker","name":"RowChunker","description":"RowChunking chunking strategy","metadata":{}},"SemanticChunker":{"key":"SemanticChunker","name":"SemanticChunker","description":"Chunking strategy that splits text into semantic chunks using chonkie","metadata":{"chunk_size":5000}}},"vector_dbs":[{"id":"vector_db_1","name":"Vector DB 1","description":"Vector DB 1 description","search_types":["vector","keyword","hybrid"]}],"filters":["filter_tag_1","filter_tag2"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources":{"get":{"tags":["Knowledge"],"summary":"List Content Sources","description":"List all registered content sources (S3, GCS, SharePoint, GitHub) for the knowledge base.","operationId":"list_content_sources","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Content sources retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"title":"Response List Content Sources"},"example":[{"id":"company-s3","name":"Company Documents","type":"s3","prefix":"documents/"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources/{source_id}/files":{"get":{"tags":["Knowledge"],"summary":"List Files in Source","description":"List available files and folders in a specific content source. Supports pagination and folder navigation.","operationId":"list_source_files","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the content source","title":"Source Id"},"description":"ID of the content source"},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Path prefix to filter files","title":"Prefix"},"description":"Path prefix to filter files"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of files per page","default":100,"title":"Limit"},"description":"Number of files per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"delimiter","in":"query","required":false,"schema":{"type":"string","description":"Folder delimiter (enables folder grouping)","default":"/","title":"Delimiter"},"description":"Folder delimiter (enables folder grouping)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Files listed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceFilesResponseSchema"},"example":{"source_id":"company-s3","source_name":"Company Documents","prefix":"reports/","folders":[{"prefix":"reports/2024/","name":"2024","is_empty":false}],"files":[{"key":"reports/annual-summary.pdf","name":"annual-summary.pdf","size":102400,"last_modified":"2024-01-15T10:30:00Z","content_type":"application/pdf"}],"meta":{"page":1,"limit":100,"total_pages":1,"total_count":1}}}}},"400":{"description":"Unsupported source type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base or content source not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces":{"get":{"tags":["Traces","Traces"],"summary":"List Traces","description":"Retrieve a paginated list of execution traces with optional filtering.\n\n**Traces provide observability into:**\n- Agent execution flows\n- Model invocations and token usage\n- Tool calls and their results\n- Errors and performance bottlenecks\n\n**Filtering Options:**\n- By run, session, user, or agent ID\n- By status (OK, ERROR)\n- By time range\n\n**Pagination:**\n- Use `page` (1-indexed) and `limit` parameters\n- Response includes pagination metadata (total_pages, total_count, etc.)\n\n**Response Format:**\nReturns summary information for each trace. Use GET `/traces/{trace_id}` for detailed hierarchy.","operationId":"get_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run ID","title":"Run Id"},"description":"Filter by run ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status (OK, ERROR)","title":"Status"},"description":"Filter by status (OK, ERROR)"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of traces per page","default":20,"title":"Limit"},"description":"Number of traces per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"responses":{"200":{"description":"List of traces retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSummary_"},"example":{"data":[{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","total_spans":4,"error_count":0,"input":"What is the stock price of NVDA?","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"agent_stock","created_at":"2025-11-19T10:30:00+00:00"}],"meta":{"page":1,"limit":20,"total_pages":5,"total_count":95}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/filter-schema":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Filter Schema","description":"Returns the available filterable fields, their types, valid operators, and enum values.\n\nThe frontend uses this to dynamically build the filter bar UI:\n- Field dropdown populated from `fields[].key`\n- Operator dropdown changes per field type\n- Value input shows autocomplete for enum fields (e.g., status)\n- Logical operators (AND, OR) for combining clauses","operationId":"get_traces_filter_schema","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterSchemaResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/traces/{trace_id}":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace or Span Detail","description":"Retrieve detailed trace information with hierarchical span tree, or a specific span within the trace.\n\n**Without span_id parameter:**\nReturns the full trace with hierarchical span tree:\n- Trace metadata (ID, status, duration, context)\n- Hierarchical tree of all spans\n- Each span includes timing, status, and type-specific metadata\n\n**With span_id parameter:**\nReturns details for a specific span within the trace:\n- Span metadata (ID, name, type, timing)\n- Status and error information\n- Type-specific attributes (model, tokens, tool params, etc.)\n\n**Span Hierarchy (full trace):**\nThe `tree` field contains root spans, each with potential `children`.\nThis recursive structure represents the execution flow:\n```\nAgent.run (root)\n \u251c\u2500 LLM.invoke\n \u251c\u2500 Tool.execute\n \u2502 \u2514\u2500 LLM.invoke (nested)\n \u2514\u2500 LLM.invoke\n```\n\n**Span Types:**\n- `AGENT`: Agent execution with input/output\n- `LLM`: Model invocations with tokens and prompts\n- `TOOL`: Tool calls with parameters and results","operationId":"get_trace","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}},{"name":"span_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Span ID to retrieve specific span","title":"Span Id"},"description":"Optional: Span ID to retrieve specific span"},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Run ID to retrieve trace for","title":"Run Id"},"description":"Optional: Run ID to retrieve trace for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query trace from","title":"Db Id"},"description":"Database ID to query trace from"}],"responses":{"200":{"description":"Trace or span detail retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TraceDetail"},{"$ref":"#/components/schemas/TraceNode"}],"title":"Response Get Trace"},"examples":{"full_trace":{"summary":"Full trace with hierarchy (no span_id)","value":{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","end_time":"2025-11-19T10:30:01.200000+00:00","total_spans":4,"error_count":0,"input":"What is Tesla stock price?","output":"The current price of Tesla (TSLA) is $245.67.","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"stock_agent","created_at":"2025-11-19T10:30:00+00:00","tree":[{"id":"span1","name":"Stock_Price_Agent.run","type":"AGENT","duration":"1.2s","status":"OK","spans":[]}]}},"single_span":{"summary":"Single span detail (with span_id)","value":{"id":"span2","name":"gpt-4o-mini.invoke","type":"LLM","duration":"800ms","status":"OK","metadata":{"model":"gpt-4o-mini","input_tokens":120}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Trace or span not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/trace_session_stats":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Statistics by Session","description":"Retrieve aggregated trace statistics grouped by session ID with pagination.\n\n**Provides insights into:**\n- Total traces per session\n- First and last trace timestamps per session\n- Associated user and agent information\n\n**Filtering Options:**\n- By user ID\n- By agent ID\n\n**Use Cases:**\n- Monitor session-level activity\n- Track conversation flows\n- Identify high-activity sessions\n- Analyze user engagement patterns","operationId":"get_trace_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of sessions per page","default":20,"title":"Limit"},"description":"Number of sessions per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"}],"responses":{"200":{"description":"Trace statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"},"example":{"data":[{"session_id":"37029bc6-1794-4ba8-a629-1efedc53dcad","user_id":"kaustubh@agno.com","agent_id":"hackernews-agent","total_traces":5,"first_trace_at":"2025-11-19T10:15:16+00:00","last_trace_at":"2025-11-19T10:21:30+00:00"}],"meta":{"page":1,"limit":20,"total_pages":3,"total_count":45}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/search":{"post":{"tags":["Traces","Traces"],"summary":"Search Traces with Advanced Filters","description":"Search traces using the FilterExpr DSL for complex, composable queries.\n\n**Group By Mode:**\n- `run` (default): Returns `PaginatedResponse[TraceDetail]` with full span trees\n- `session`: Returns `PaginatedResponse[TraceSessionStats]` with aggregated session stats\n\n**Supported Operators:**\n- Comparison: `EQ`, `NEQ`, `GT`, `GTE`, `LT`, `LTE`\n- Inclusion: `IN`\n- String matching: `CONTAINS` (case-insensitive substring), `STARTSWITH` (prefix)\n- Logical: `AND`, `OR`, `NOT`\n\n**Filterable Fields:**\ntrace_id, name, status, start_time, end_time, duration_ms, run_id, session_id, user_id, agent_id, team_id, workflow_id, created_at\n\n**Example Request Body (runs):**\n```json\n{\n \"filter\": {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n}\n```\n\n**Example Request Body (sessions):**\n```json\n{\n \"filter\": {\"op\": \"CONTAINS\", \"key\": \"agent_id\", \"value\": \"stock\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n}\n```","operationId":"search_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PaginatedResponse_TraceDetail_"},{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"}],"title":"Response Search Traces"}}}},"400":{"description":"Invalid filter expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/all/migrate":{"post":{"tags":["Database"],"summary":"Migrate All Databases","description":"Migrate all database schemas to the given target version. If a target version is not provided, all databases will be migrated to the latest version.","operationId":"migrate_all_databases","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"All databases migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"All databases migrated successfully to version 3.0.0"}}}},"207":{"description":"Some database migrations failed","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"},"failed":{"type":"object","additionalProperties":{"type":"string"},"title":"Failed"}},"type":"object","required":["message","failed"],"title":"PartialMigrationResponse"},"example":{"message":"Migrated 2/3 databases to latest version","failed":{"archive-db":"Migration failed"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/{db_id}/migrate":{"post":{"tags":["Database"],"summary":"Migrate Database","description":"Migrate the given database schema to the given target version. If a target version is not provided, the database will be migrated to the latest version.","operationId":"migrate_database","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"Database migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"Database migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Database not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components":{"get":{"tags":["Components"],"summary":"List Components","description":"Retrieve a paginated list of components with optional filtering by type.","operationId":"list_components","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ComponentType"},{"type":"null"}],"description":"Filter by type: agent, team, workflow","title":"Component Type"},"description":"Filter by type: agent, team, workflow"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ComponentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Component","description":"Create a new component (agent, team, or workflow) with initial config.","operationId":"create_component","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}":{"get":{"tags":["Components"],"summary":"Get Component","description":"Retrieve a component by ID.","operationId":"get_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Components"],"summary":"Update Component","description":"Partially update a component by ID.","operationId":"update_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentUpdate","description":"Component fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Component","description":"Soft-delete a component by ID. Component configs and links remain stored.","operationId":"delete_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs":{"get":{"tags":["Components"],"summary":"List Configs","description":"List all configs for a component.","operationId":"list_configs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"include_config","in":"query","required":false,"schema":{"type":"boolean","description":"Include full config blob","default":true,"title":"Include Config"},"description":"Include full config blob"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComponentConfigResponse"},"title":"Response List Configs"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Config Version","description":"Create a new config version for a component.","operationId":"create_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigCreate","description":"Config data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}":{"patch":{"tags":["Components"],"summary":"Update Draft Config","description":"Update an existing draft config. Cannot update published configs.","operationId":"update_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigUpdate","description":"Config fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Components"],"summary":"Get Config Version","description":"Get a specific config version by number.","operationId":"get_config_version","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Config Version","description":"Delete a specific config version. Agno v2.7.4 rejects the current version. Synchronous SQLite and PostgreSQL storage allow deletion of a published non-current version.","operationId":"delete_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/current":{"get":{"tags":["Components"],"summary":"Get Current Config","description":"Get the current config version for a component.","operationId":"get_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}/set-current":{"post":{"tags":["Components"],"summary":"Set Current Config Version","description":"Set a published config version as current (for rollback).","operationId":"set_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/schedules":{"get":{"tags":["Schedules"],"summary":"List Schedules","operationId":"list_schedules_schedules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"post":{"tags":["Schedules"],"summary":"Create Schedule","operationId":"create_schedule_schedules_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule","operationId":"get_schedule_schedules__schedule_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"patch":{"tags":["Schedules"],"summary":"Update Schedule","operationId":"update_schedule_schedules__schedule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Schedules"],"summary":"Delete Schedule","operationId":"delete_schedule_schedules__schedule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/enable":{"post":{"tags":["Schedules"],"summary":"Enable Schedule","operationId":"enable_schedule_schedules__schedule_id__enable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/disable":{"post":{"tags":["Schedules"],"summary":"Disable Schedule","operationId":"disable_schedule_schedules__schedule_id__disable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/trigger":{"post":{"tags":["Schedules"],"summary":"Trigger Schedule","operationId":"trigger_schedule_schedules__schedule_id__trigger_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Schedule is disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler is not running or storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs":{"get":{"tags":["Schedules"],"summary":"List Schedule Runs","operationId":"list_schedule_runs_schedules__schedule_id__runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleRunResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs/{run_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule Run","operationId":"get_schedule_run_schedules__schedule_id__runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals":{"get":{"tags":["Approvals"],"summary":"List Approvals","operationId":"list_approvals_approvals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","approved","rejected","expired","cancelled"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"source_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"}},{"name":"approval_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["required","audit"],"type":"string"},{"type":"null"}],"title":"Approval Type"}},{"name":"pause_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"schedule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"}},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ApprovalResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approvals could not be listed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/count":{"get":{"tags":["Approvals"],"summary":"Get Approval Count","operationId":"get_approval_count_approvals_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalCountResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval count could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/status":{"get":{"tags":["Approvals"],"summary":"Get Approval Status","operationId":"get_approval_status_approvals__approval_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalStatusResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval status could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}":{"get":{"tags":["Approvals"],"summary":"Get Approval","operationId":"get_approval_approvals__approval_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Approvals"],"summary":"Delete Approval","operationId":"delete_approval_approvals__approval_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval is not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/resolve":{"post":{"tags":["Approvals"],"summary":"Resolve Approval","operationId":"resolve_approval_approvals__approval_id__resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResolve"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Approval has already been resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts":{"post":{"tags":["Service Accounts"],"summary":"Create Service Account","description":"Mint a service account token. The plaintext token is returned exactly once.","operationId":"create_service_account_service_accounts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreateResponse"}}}},"400":{"description":"Requested scopes are invalid, or privileged scopes were not explicitly allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"An active service account with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"get":{"tags":["Service Accounts"],"summary":"List Service Accounts","description":"List service accounts. Returns metadata and display prefixes only - never hashes or plaintext.","operationId":"list_service_accounts_service_accounts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Revoked"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ServiceAccountResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts/{service_account_id}":{"delete":{"tags":["Service Accounts"],"summary":"Revoke Service Account","description":"Revoke an existing service account.\n\nTakes effect immediately on this worker (the local verification cache entry is evicted) and within the cache TTL on other workers.","operationId":"revoke_service_account_service_accounts__service_account_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"service_account_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Service account not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/registry":{"get":{"tags":["Registry"],"summary":"List Registry","description":"List all resources in the registry with optional filtering.","operationId":"list_registry","security":[{"HTTPBearer":[]}],"parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RegistryResourceType"},{"type":"null"}],"description":"Filter by resource type","title":"Resource Type"},"description":"Filter by resource type"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (partial match)","title":"Name"},"description":"Filter by name (partial match)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_RegistryContentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}}},"components":{"schemas":{"A2ARequest_DataPart":{"description":"Represents a structured data segment (e.g., JSON) within a message or artifact.","properties":{"data":{"additionalProperties":true,"title":"Data","type":"object"},"kind":{"const":"data","default":"data","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["data"],"title":"DataPart","type":"object"},"A2ARequest_FilePart":{"description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI.","properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_FileWithBytes"},{"$ref":"#/components/schemas/A2ARequest_FileWithUri"}],"title":"File"},"kind":{"const":"file","default":"file","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["file"],"title":"FilePart","type":"object"},"A2ARequest_FileWithBytes":{"description":"Represents a file with its content provided directly as a base64-encoded string.","properties":{"bytes":{"title":"Bytes","type":"string"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"}},"required":["bytes"],"title":"FileWithBytes","type":"object"},"A2ARequest_FileWithUri":{"description":"Represents a file with its content located at a specific URI.","properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"FileWithUri","type":"object"},"A2ARequest_Message":{"description":"Represents a single message in the conversation between a user and an agent.","properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"kind":{"const":"message","default":"message","title":"Kind","type":"string"},"messageId":{"title":"Messageid","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/A2ARequest_Part"},"title":"Parts","type":"array"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/A2ARequest_Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Taskid"}},"required":["messageId","parts","role"],"title":"Message","type":"object"},"A2ARequest_MessageSendConfiguration":{"description":"Defines configuration options for a `message/send` or `message/stream` request.","properties":{"acceptedOutputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Acceptedoutputmodes"},"blocking":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Blocking"},"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"pushNotificationConfig":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationConfig"},{"type":"null"}],"default":null}},"title":"MessageSendConfiguration","type":"object"},"A2ARequest_MessageSendParams":{"description":"Defines the parameters for a request to send a message to an agent. This can be used\nto create a new task, continue an existing one, or restart a task.","properties":{"configuration":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_MessageSendConfiguration"},{"type":"null"}],"default":null},"message":{"$ref":"#/components/schemas/A2ARequest_Message"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["message"],"title":"MessageSendParams","type":"object"},"A2ARequest_Part":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_TextPart"},{"$ref":"#/components/schemas/A2ARequest_FilePart"},{"$ref":"#/components/schemas/A2ARequest_DataPart"}],"title":"Part"},"A2ARequest_PushNotificationAuthenticationInfo":{"description":"Defines authentication details for a push notification endpoint.","properties":{"credentials":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Credentials"},"schemes":{"items":{"type":"string"},"title":"Schemes","type":"array"}},"required":["schemes"],"title":"PushNotificationAuthenticationInfo","type":"object"},"A2ARequest_PushNotificationConfig":{"description":"Defines the configuration for setting up push notifications for task updates.","properties":{"authentication":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationAuthenticationInfo"},{"type":"null"}],"default":null},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Id"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Token"},"url":{"title":"Url","type":"string"}},"required":["url"],"title":"PushNotificationConfig","type":"object"},"A2ARequest_Role":{"description":"Identifies the sender of the message. `user` for the client, `agent` for the service.","enum":["agent","user"],"title":"Role","type":"string"},"A2ARequest_TextPart":{"description":"Represents a text segment within a message or artifact.","properties":{"kind":{"const":"text","default":"text","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"text":{"title":"Text","type":"string"}},"required":["text"],"title":"TextPart","type":"object"},"ActivityMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"activity","title":"Role","default":"activity"},"activityType":{"type":"string","title":"Activitytype"},"content":{"additionalProperties":true,"type":"object","title":"Content"}},"additionalProperties":true,"type":"object","required":["id","activityType","content"],"title":"ActivityMessage","description":"An activity progress message emitted between chat messages."},"AgentResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"extra_messages":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Messages"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"AgentResponse"},"AgentSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_session_id":{"type":"string","title":"Agent Session Id","description":"Unique agent session identifier"},"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID used in this session"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"agent_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Data","description":"Agent-specific data"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["agent_session_id","session_id","session_name"],"title":"AgentSessionDetailSchema"},"AgentSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the agent"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the agent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the agent"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the agent"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","title":"AgentSummaryResponse"},"ApprovalCountResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"ApprovalCountResponse","description":"Response model for pending approval count."},"ApprovalResolve":{"properties":{"status":{"type":"string","pattern":"^(approved|rejected)$","title":"Status"},"resolved_by":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Resolved By"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"}},"type":"object","required":["status"],"title":"ApprovalResolve","description":"Request body for resolving (approve/reject) an approval."},"ApprovalResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"},"source_type":{"type":"string","title":"Source Type"},"approval_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Type"},"pause_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Args"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"},"schedule_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Run Id"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"},"run_status":{"anyOf":[{"$ref":"#/components/schemas/RunStatus"},{"type":"null"}]}},"type":"object","required":["id","run_id","session_id","status","source_type"],"title":"ApprovalResponse","description":"Response model for a single approval."},"ApprovalStatusResponse":{"properties":{"approval_id":{"type":"string","title":"Approval Id"},"status":{"type":"string","title":"Status"},"run_id":{"type":"string","title":"Run Id"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"}},"type":"object","required":["approval_id","status","run_id"],"title":"ApprovalStatusResponse","description":"Lightweight response model for polling approval status."},"Artifact":{"properties":{"artifactId":{"type":"string","title":"Artifactid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"}},"type":"object","required":["artifactId","parts"],"title":"Artifact","description":"Represents a file, data structure, or other resource generated by an agent during a task."},"AssistantMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"assistant","title":"Role","default":"assistant"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"},"toolCalls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},{"type":"null"}],"title":"Toolcalls"}},"additionalProperties":true,"type":"object","required":["id"],"title":"AssistantMessage","description":"An assistant message."},"AudioInputContent":{"properties":{"type":{"type":"string","const":"audio","title":"Type","default":"audio"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"AudioInputContent","description":"An audio input content fragment."},"BackgroundRunResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the background run."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the background run."},"status":{"type":"string","title":"Status","description":"Initial run status."}},"type":"object","required":["run_id","session_id","status"],"title":"BackgroundRunResponse"},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"BadRequestResponse","example":{"detail":"Bad request","error_code":"BAD_REQUEST"}},"BinaryInputContent":{"properties":{"type":{"type":"string","const":"binary","title":"Type","default":"binary"},"mimeType":{"type":"string","title":"Mimetype"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"additionalProperties":true,"type":"object","required":["mimeType"],"title":"BinaryInputContent","description":"A deprecated binary payload reference in a multimodal user message."},"Body_continue_agent_run":{"properties":{"tools":{"type":"string","title":"Tools","description":"JSON string of tool call results to continue the paused run","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Optional new user-message text to append to the run before resuming. Use for continuing a COMPLETED run with a follow-up, or adding context to a RUNNING/ERROR resume."},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","description":"When true, clone the run with a new ``run_id`` before resuming. The original is untouched; the clone becomes a sibling within the same session, with ``forked_from_run_id`` set.","default":false},"regenerate":{"type":"boolean","title":"Regenerate","description":"Sugar: regenerate the last response of this run. Auto-computes ``continue_from='last_user'`` to land just after the last user message. Pair with ``additional_instructions`` to steer the new output. By default the original response is hidden from history (replaced); pass ``replace_original=false`` to keep both the original and the regenerated response visible side by side.","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original","description":"Only valid with ``regenerate=true``. Controls history visibility of the original response; the original run is always retained in storage. Defaults to true: the original is marked REGENERATED and hidden from history so the new response replaces it. Pass false to keep both the original and regenerated responses visible."},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions","description":"Only valid with ``regenerate=true``: extra guidance appended as a user message before re-generation. Friendly alias for ``input``."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run continue in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false}},"type":"object","title":"Body_continue_agent_run"},"Body_continue_team_run":{"properties":{"requirements":{"type":"string","title":"Requirements","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input"},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","default":false},"regenerate":{"type":"boolean","title":"Regenerate","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original"},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"stream":{"type":"boolean","title":"Stream","default":true},"background":{"type":"boolean","title":"Background","default":false}},"type":"object","title":"Body_continue_team_run"},"Body_continue_workflow_run":{"properties":{"step_requirements":{"type":"string","title":"Step Requirements","description":"JSON string of step requirement objects with resolution status","default":""},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}},"type":"object","title":"Body_continue_workflow_run"},"Body_create_agent_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the agent"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Agent version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic agent construction"}},"type":"object","required":["message"],"title":"Body_create_agent_run"},"Body_create_team_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the team"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"monitor":{"type":"boolean","title":"Monitor","description":"Enable monitoring and logging for this run","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Team version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic team construction"}},"type":"object","required":["message"],"title":"Body_create_team_run"},"Body_create_workflow_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the workflow"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run workflow in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Workflow version to use for this run"},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow construction"}},"type":"object","required":["message"],"title":"Body_create_workflow_run"},"Body_rename_session":{"properties":{"session_name":{"type":"string","title":"Session Name","description":"New name for the session"}},"type":"object","required":["session_name"],"title":"Body_rename_session"},"Body_resume_agent_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_agent_run_stream"},"Body_resume_team_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_team_run_stream"},"Body_resume_workflow_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_workflow_run_stream"},"Body_update_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"Content metadata as JSON string"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"Reader ID. In Agno 2.7.4, local knowledge validates the value, but the content patch does not apply or persist the reader change."}},"type":"object","title":"Body_update_content"},"Body_upload_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated from file/URL if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description for context"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"URL to fetch content from (JSON array or single URL string)"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object for additional content properties"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File","description":"File to upload for processing"},"text_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Content","description":"Raw text content to process"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for content processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply during processing"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size to use for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap to use for processing"}},"type":"object","title":"Body_upload_content"},"Body_upload_remote_content":{"properties":{"config_id":{"type":"string","title":"Config Id","description":"ID of the configured remote content source (from /knowledge/config)"},"path":{"type":"string","title":"Path","description":"Path to file or folder in the remote source"},"source_params":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Params","description":"JSON object of per-request parameters forwarded to the source's factory. Used for provider-specific routing that shouldn't be baked into the config. Currently supported keys: GitHub accepts 'repo' ('owner/repo'), letting one configured GitHub source serve multiple repositories the credentials can access."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap for processing"}},"type":"object","required":["config_id","path"],"title":"Body_upload_remote_content"},"ChatConfig":{"properties":{"quick_prompts":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Quick Prompts"}},"type":"object","required":["quick_prompts"],"title":"ChatConfig","description":"Configuration for the Chat page of the AgentOS"},"ChunkerSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["key"],"title":"ChunkerSchema"},"ComponentConfigResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"version":{"type":"integer","title":"Version"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"type":"string","title":"Stage"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","version","stage","config","created_at"],"title":"ComponentConfigResponse"},"ComponentCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Display name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id","description":"Unique identifier for the entity. Auto-generated from name if not provided."},"component_type":{"$ref":"#/components/schemas/ComponentType","description":"Type of entity: agent, team, or workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config","description":"Optional configuration"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["name","component_type"],"title":"ComponentCreate"},"ComponentResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"component_type":{"$ref":"#/components/schemas/ComponentType"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","component_type","created_at"],"title":"ComponentResponse"},"ComponentType":{"type":"string","enum":["agent","team","workflow"],"title":"ComponentType"},"ComponentUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"component_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"}},"type":"object","title":"ComponentUpdate"},"ConfigCreate":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config","description":"The configuration data"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Optional version number"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links","description":"Optional links to child components"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["config"],"title":"ConfigCreate"},"ConfigResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the OS instance"},"available_models":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Models","description":"List of available models"},"os_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Database","description":"ID of the database used for the OS instance"},"databases":{"items":{"type":"string"},"type":"array","title":"Databases","description":"List of database IDs used by the components of the OS instance"},"chat":{"anyOf":[{"$ref":"#/components/schemas/ChatConfig"},{"type":"null"}],"description":"Chat configuration"},"manifest":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Manifest"},"type":"object"},{"type":"null"}],"title":"Manifest","description":"Per-entity UI metadata keyed by agent/team/workflow id"},"session":{"anyOf":[{"$ref":"#/components/schemas/SessionConfig"},{"type":"null"}],"description":"Session configuration"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/MetricsConfig"},{"type":"null"}],"description":"Metrics configuration"},"memory":{"anyOf":[{"$ref":"#/components/schemas/MemoryConfig"},{"type":"null"}],"description":"Memory configuration"},"learning":{"anyOf":[{"$ref":"#/components/schemas/LearningConfig"},{"type":"null"}],"description":"Learning configuration"},"knowledge":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeConfig"},{"type":"null"}],"description":"Knowledge configuration"},"evals":{"anyOf":[{"$ref":"#/components/schemas/EvalsConfig"},{"type":"null"}],"description":"Evaluations configuration"},"traces":{"anyOf":[{"$ref":"#/components/schemas/TracesConfig"},{"type":"null"}],"description":"Traces configuration"},"agents":{"items":{"$ref":"#/components/schemas/AgentSummaryResponse"},"type":"array","title":"Agents","description":"List of registered agents"},"teams":{"items":{"$ref":"#/components/schemas/TeamSummaryResponse"},"type":"array","title":"Teams","description":"List of registered teams"},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Workflows","description":"List of registered workflows"},"interfaces":{"items":{"$ref":"#/components/schemas/InterfaceResponse"},"type":"array","title":"Interfaces","description":"List of available interfaces"}},"type":"object","required":["os_id","databases","agents","teams","workflows","interfaces"],"title":"ConfigResponse","description":"Response schema for the general config endpoint"},"ConfigResponseSchema":{"properties":{"readers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ReaderSchema"},"type":"object"},{"type":"null"}],"title":"Readers","description":"Available content readers"},"readersForType":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Readersfortype","description":"Mapping of content types to reader IDs"},"chunkers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ChunkerSchema"},"type":"object"},{"type":"null"}],"title":"Chunkers","description":"Available chunking strategies"},"filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filters","description":"Available filter tags"},"vector_dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/VectorDbSchema"},"type":"array"},{"type":"null"}],"title":"Vector Dbs","description":"Configured vector databases"},"remote_content_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"type":"array"},{"type":"null"}],"title":"Remote Content Sources","description":"Configured remote content sources (S3, GCS, SharePoint, GitHub)"}},"type":"object","title":"ConfigResponseSchema"},"ConfigUpdate":{"properties":{"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","title":"ConfigUpdate"},"ConflictResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ConflictResponse","example":{"detail":"Resource conflict"}},"ContentResponseSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the content"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"MIME type of the content"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"},"linked_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linked To","description":"ID of related content if linked"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata as key-value pairs"},"access_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Access Count","description":"Number of times content has been accessed"},"status":{"anyOf":[{"$ref":"#/components/schemas/ContentStatus"},{"type":"null"}],"description":"Processing status of the content"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message","description":"Status message or error details"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when content was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when content was last updated"}},"type":"object","required":["id"],"title":"ContentResponseSchema"},"ContentStatus":{"type":"string","enum":["processing","completed","failed"],"title":"ContentStatus","description":"Enumeration of possible content processing statuses."},"ContentStatusResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Content ID"},"status":{"$ref":"#/components/schemas/ContentStatus","description":"Current processing status of the content"},"status_message":{"type":"string","title":"Status Message","description":"Status message or error details","default":""}},"type":"object","required":["status"],"title":"ContentStatusResponse","description":"Response model for content status endpoint."},"Context":{"properties":{"description":{"type":"string","title":"Description"},"value":{"type":"string","title":"Value"}},"additionalProperties":true,"type":"object","required":["description","value"],"title":"Context","description":"Additional context for the agent."},"CreateSessionRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session ID (generated if not provided)"},"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Initial session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"}},"type":"object","title":"CreateSessionRequest"},"DataPart":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data"},"kind":{"type":"string","const":"data","title":"Kind","default":"data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["data"],"title":"DataPart","description":"Represents a structured data segment (e.g., JSON) within a message or artifact."},"DatabaseConfig_EvalsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/EvalsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[EvalsDomainConfig]"},"DatabaseConfig_LearningDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/LearningDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[LearningDomainConfig]"},"DatabaseConfig_MemoryDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MemoryDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MemoryDomainConfig]"},"DatabaseConfig_MetricsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MetricsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MetricsDomainConfig]"},"DatabaseConfig_SessionDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/SessionDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[SessionDomainConfig]"},"DatabaseConfig_TracesDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/TracesDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[TracesDomainConfig]"},"DayAggregatedMetrics":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the metrics record"},"agent_runs_count":{"type":"integer","minimum":0.0,"title":"Agent Runs Count","description":"Total number of agent runs"},"agent_sessions_count":{"type":"integer","minimum":0.0,"title":"Agent Sessions Count","description":"Total number of agent sessions"},"team_runs_count":{"type":"integer","minimum":0.0,"title":"Team Runs Count","description":"Total number of team runs"},"team_sessions_count":{"type":"integer","minimum":0.0,"title":"Team Sessions Count","description":"Total number of team sessions"},"workflow_runs_count":{"type":"integer","minimum":0.0,"title":"Workflow Runs Count","description":"Total number of workflow runs"},"workflow_sessions_count":{"type":"integer","minimum":0.0,"title":"Workflow Sessions Count","description":"Total number of workflow sessions"},"users_count":{"type":"integer","minimum":0.0,"title":"Users Count","description":"Total number of unique users"},"token_metrics":{"additionalProperties":true,"type":"object","title":"Token Metrics","description":"Token usage metrics (input, output, cached, etc.)"},"model_metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Model Metrics","description":"Metrics grouped by model (model_id, provider, count)"},"date":{"type":"string","format":"date-time","title":"Date","description":"Date for which these metrics are aggregated"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when metrics were created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when metrics were last updated"}},"type":"object","required":["id","agent_runs_count","agent_sessions_count","team_runs_count","team_sessions_count","workflow_runs_count","workflow_sessions_count","users_count","token_metrics","model_metrics","date","created_at","updated_at"],"title":"DayAggregatedMetrics","description":"Aggregated metrics for a given day"},"DeleteEvalRunsRequest":{"properties":{"eval_run_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Eval Run Ids","description":"List of evaluation run IDs to delete"}},"type":"object","required":["eval_run_ids"],"title":"DeleteEvalRunsRequest"},"DeleteMemoriesRequest":{"properties":{"memory_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Memory Ids","description":"List of memory IDs to delete"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID to filter memories for deletion"}},"type":"object","required":["memory_ids"],"title":"DeleteMemoriesRequest"},"DeleteSessionRequest":{"properties":{"session_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Session Ids","description":"List of session IDs to delete"},"session_types":{"items":{"$ref":"#/components/schemas/SessionType"},"type":"array","minItems":1,"title":"Session Types","description":"Types of sessions to delete"}},"type":"object","required":["session_ids","session_types"],"title":"DeleteSessionRequest"},"DeveloperMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"developer","title":"Role","default":"developer"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"DeveloperMessage","description":"A developer message."},"DocumentInputContent":{"properties":{"type":{"type":"string","const":"document","title":"Type","default":"document"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"DocumentInputContent","description":"A document input content fragment."},"EvalFilterType":{"type":"string","enum":["agent","team","workflow"],"title":"EvalFilterType"},"EvalRunInput":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID to evaluate"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID to evaluate"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID to use for evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation to run (accuracy, performance, or reliability)"},"input":{"type":"string","minLength":1,"title":"Input","description":"Input text/query for the evaluation"},"additional_guidelines":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Guidelines","description":"Additional guidelines for the evaluation"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for the evaluation"},"num_iterations":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Num Iterations","description":"Number of times to run the evaluation","default":1},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for this evaluation run"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output","description":"Expected output for accuracy evaluation"},"criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criteria","description":"Evaluation criteria for agent-as-judge evaluation"},"scoring_strategy":{"anyOf":[{"type":"string","enum":["numeric","binary"]},{"type":"null"}],"title":"Scoring Strategy","description":"Scoring strategy: 'numeric' (1-10 with threshold) or 'binary' (PASS/FAIL)","default":"binary"},"threshold":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Threshold","description":"Score threshold for pass/fail (1-10), only used with numeric scoring","default":7},"warmup_runs":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Warmup Runs","description":"Number of warmup runs before measuring performance","default":0},"expected_tool_calls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expected Tool Calls","description":"Expected tool calls for reliability evaluation"},"allow_additional_tool_calls":{"type":"boolean","title":"Allow Additional Tool Calls","description":"When True, tool calls not in expected_tool_calls are allowed (subset matching)","default":false},"expected_tool_call_arguments":{"anyOf":[{"additionalProperties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Expected Tool Call Arguments","description":"Expected arguments for specific tool calls, e.g. {\"tool_name\": {\"arg_name\": \"expected_value\"}} or {\"tool_name\": [{\"arg_name\": \"val1\"}, {\"arg_name\": \"val2\"}]}"}},"type":"object","required":["eval_type","input"],"title":"EvalRunInput"},"EvalSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the evaluation run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that was evaluated"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID used in evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that was evaluated"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was evaluated"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the evaluation run"},"evaluated_component_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluated Component Name","description":"Name of the evaluated component"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation (accuracy, performance, or reliability)"},"eval_data":{"additionalProperties":true,"type":"object","title":"Eval Data","description":"Evaluation results and metrics"},"eval_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eval Input","description":"Input parameters used for the evaluation"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when evaluation was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when evaluation was last updated"}},"type":"object","required":["id","eval_type","eval_data"],"title":"EvalSchema"},"EvalType":{"type":"string","enum":["accuracy","agent_as_judge","performance","reliability"],"title":"EvalType"},"EvalsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_EvalsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"EvalsConfig","description":"Configuration for the Evals domain of the AgentOS"},"EvalsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"EvalsDomainConfig","description":"Configuration for the Evals domain of the AgentOS"},"FilePart":{"properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/FileWithBytes"},{"$ref":"#/components/schemas/FileWithUri"}],"title":"File"},"kind":{"type":"string","const":"file","title":"Kind","default":"file"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["file"],"title":"FilePart","description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI."},"FileWithBytes":{"properties":{"bytes":{"type":"string","title":"Bytes"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["bytes"],"title":"FileWithBytes","description":"Represents a file with its content provided directly as a base64-encoded string."},"FileWithUri":{"properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uri":{"type":"string","title":"Uri"}},"type":"object","required":["uri"],"title":"FileWithUri","description":"Represents a file with its content located at a specific URI."},"FilterFieldSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Column/field name used in filter expressions"},"label":{"type":"string","title":"Label","description":"Human-readable display label for the UI"},"type":{"type":"string","title":"Type","description":"Field data type: string, number, datetime, enum"},"operators":{"items":{"type":"string"},"type":"array","title":"Operators","description":"List of valid filter operators for this field"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values","description":"Allowed enum values (for autocomplete/dropdown)"}},"type":"object","required":["key","label","type","operators"],"title":"FilterFieldSchema","description":"Schema describing a single filterable field for the frontend filter bar."},"FilterSchemaResponse":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FilterFieldSchema"},"type":"array","title":"Fields","description":"Available filterable fields"},"logical_operators":{"items":{"type":"string"},"type":"array","title":"Logical Operators","description":"Logical operators for combining filter clauses","default":["AND","OR"]}},"type":"object","required":["fields"],"title":"FilterSchemaResponse","description":"Response for the filter schema endpoint. Tells the FE what fields, operators, and values are available."},"ForbiddenResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ForbiddenResponse","example":{"detail":"Insufficient permissions"}},"FunctionCall":{"properties":{"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"additionalProperties":true,"type":"object","required":["name","arguments"],"title":"FunctionCall","description":"Name and arguments of a function call."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Health status of the service"},"instantiated_at":{"type":"string","format":"date-time","title":"Instantiated At","description":"Timestamp when service was instantiated"}},"type":"object","required":["status","instantiated_at"],"title":"HealthResponse","example":{"instantiated_at":"2025-06-10T12:00:00Z","status":"ok"}},"ImageInputContent":{"properties":{"type":{"type":"string","const":"image","title":"Type","default":"image"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"ImageInputContent","description":"An image input content fragment."},"InfoResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"agno_version":{"type":"string","title":"Agno Version","description":"Version of the agno framework"},"agent_count":{"type":"integer","title":"Agent Count","description":"Number of agents registered in the OS","default":0},"team_count":{"type":"integer","title":"Team Count","description":"Number of teams registered in the OS","default":0},"workflow_count":{"type":"integer","title":"Workflow Count","description":"Number of workflows registered in the OS","default":0},"mcp":{"$ref":"#/components/schemas/McpInfo","description":"MCP server availability for this OS instance"},"auth_mode":{"type":"string","enum":["none","security_key","jwt"],"title":"Auth Mode","description":"Authentication mode enforced on the REST/WS plane of this OS instance. MCP OAuth, when enabled, is described separately under `mcp.oauth`.","default":"none"}},"type":"object","required":["os_id","agno_version"],"title":"InfoResponse","description":"Response schema for the /info endpoint returning lightweight OS metadata."},"InputContentDataSource":{"properties":{"type":{"type":"string","const":"data","title":"Type","default":"data"},"value":{"type":"string","title":"Value"},"mimeType":{"type":"string","title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value","mimeType"],"title":"InputContentDataSource","description":"Inline base64-encoded source."},"InputContentUrlSource":{"properties":{"type":{"type":"string","const":"url","title":"Type","default":"url"},"value":{"type":"string","title":"Value"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value"],"title":"InputContentUrlSource","description":"URL-referenced source."},"InterfaceResponse":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the interface"},"version":{"type":"string","title":"Version","description":"Version of the interface"},"route":{"type":"string","title":"Route","description":"API route path"}},"type":"object","required":["type","version","route"],"title":"InterfaceResponse"},"InternalServerErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"InternalServerErrorResponse","example":{"detail":"Internal server error","error_code":"INTERNAL_SERVER_ERROR"}},"KnowledgeConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeDatabaseConfig"},"type":"array"},{"type":"null"}],"title":"Dbs"},"knowledge_instances":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeInstanceConfig"},"type":"array"},{"type":"null"}],"title":"Knowledge Instances"}},"type":"object","title":"KnowledgeConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeDatabaseConfig":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeDomainConfig"},{"type":"null"}]},"tables":{"items":{"type":"string"},"type":"array","title":"Tables","default":[]}},"type":"object","required":["db_id"],"title":"KnowledgeDatabaseConfig","description":"Configuration for a knowledge database with its tables"},"KnowledgeDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"KnowledgeDomainConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeInstanceConfig":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"db_id":{"type":"string","title":"Db Id"},"table":{"type":"string","title":"Table"}},"type":"object","required":["id","name","db_id","table"],"title":"KnowledgeInstanceConfig","description":"Configuration for a single knowledge instance"},"LearningConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_LearningDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"LearningConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningCreate":{"properties":{"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"content":{"additionalProperties":true,"type":"object","title":"Content","description":"The learning content payload"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID. When the request is authenticated, must match the JWT subject or be omitted/null (which creates a global / non-user-scoped record)."},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"}},"type":"object","required":["learning_type","content"],"title":"LearningCreate","description":"Request body for creating a learning record."},"LearningDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"LearningDomainConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningResponse":{"properties":{"learning_id":{"type":"string","title":"Learning Id","description":"Unique identifier for the learning record"},"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID (for entity-specific learnings)"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type (e.g. 'person', 'company')"},"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"The learning content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Creation timestamp (Unix epoch seconds)"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp (Unix epoch seconds)"}},"type":"object","required":["learning_id","learning_type"],"title":"LearningResponse","description":"A single learning record as returned by the API."},"LearningUpdate":{"properties":{"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Replacement content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Replacement metadata"}},"type":"object","title":"LearningUpdate","description":"Request body for updating a learning record. Identity fields are immutable."},"LearningUserStats":{"properties":{"user_id":{"type":"string","title":"User Id","description":"The user ID"},"last_learning_updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Learning Updated At","description":"Most recent learning update for this user (Unix epoch seconds)"}},"type":"object","required":["user_id"],"title":"LearningUserStats","description":"A user that owns learning records, with their most recent activity.\n\nUsed as a lightweight index for the per-user view: list users here, then drill into a\nsingle user's records via ``GET /learnings?user_id=...``. No per-user count is returned\n-- the user-scoped stores (``user_profile``, ``user_memory``) keep a single record per\nuser, so a record count would always be 1; the actual memory count lives in that\nrecord's ``content``."},"Manifest":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"},"quick_prompts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quick Prompts"}},"type":"object","title":"Manifest","description":"OS-level UI metadata for an agent/team/workflow.\n\nFields here are AgentOS UI metadata only. ``description`` is unrelated to\n``Agent.description`` / ``Team.description`` / ``Workflow.description``,\nwhich are sent to the model.\n\nRendering surfaces:\n- ``description``, ``labels``: home/landing card\n- ``quick_prompts``: chat page"},"McpInfo":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the MCP server is enabled on this OS instance","default":false},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Path where the MCP server is mounted, null when disabled"},"oauth":{"anyOf":[{"$ref":"#/components/schemas/McpOAuthInfo"},{"type":"null"}],"description":"OAuth discovery details when the MCP endpoint is OAuth-protected, null otherwise"}},"type":"object","title":"McpInfo","description":"MCP server availability for the /info endpoint."},"McpOAuthInfo":{"properties":{"authorization_servers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorization Servers","description":"Issuer URL(s) of the authorization server(s) protecting the MCP endpoint"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource","description":"RFC 9728 resource URL advertised for the MCP endpoint"}},"type":"object","title":"McpOAuthInfo","description":"OAuth discovery details for an MCP endpoint protected by ``AgentOS(mcp_auth=...)``."},"MemoryConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MemoryDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MemoryConfig","description":"Configuration for the Memory domain of the AgentOS"},"MemoryDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MemoryDomainConfig","description":"Configuration for the Memory domain of the AgentOS"},"Message":{"properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"kind":{"type":"string","const":"message","title":"Kind","default":"message"},"messageId":{"type":"string","title":"Messageid"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taskid"}},"type":"object","required":["messageId","parts","role"],"title":"Message","description":"Represents a single message in the conversation between a user and an agent."},"Meta":{"properties":{"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of results per page","default":20},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number","default":1}},"type":"object","title":"Meta","description":"Inline metadata schema for pagination."},"MetricsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MetricsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MetricsConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MetricsDomainConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsResponse":{"properties":{"metrics":{"items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"type":"array","title":"Metrics","description":"List of daily aggregated metrics"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp of the most recent metrics update"}},"type":"object","required":["metrics"],"title":"MetricsResponse"},"Model":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"Model"},"ModelResponse":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the model"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"ModelResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"NotFoundResponse","example":{"detail":"Not found","error_code":"NOT_FOUND"}},"NotImplementedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"NotImplementedResponse","example":{"detail":"Operation not supported for this resource type"}},"OptimizeMemoriesRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID to optimize memories for"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model in `provider:model_id` format. Current examples include `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, and `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`."},"apply":{"type":"boolean","title":"Apply","description":"If True, apply optimization changes to database. If False, return preview only without saving.","default":true}},"type":"object","required":["user_id"],"title":"OptimizeMemoriesRequest","description":"Schema for memory optimization request"},"OptimizeMemoriesResponse":{"properties":{"memories":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Memories","description":"List of optimized memory objects"},"memories_before":{"type":"integer","minimum":0.0,"title":"Memories Before","description":"Number of memories before optimization"},"memories_after":{"type":"integer","minimum":0.0,"title":"Memories After","description":"Number of memories after optimization"},"tokens_before":{"type":"integer","minimum":0.0,"title":"Tokens Before","description":"Token count before optimization"},"tokens_after":{"type":"integer","minimum":0.0,"title":"Tokens After","description":"Token count after optimization"},"tokens_saved":{"type":"integer","minimum":0.0,"title":"Tokens Saved","description":"Number of tokens saved through optimization"},"reduction_percentage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Reduction Percentage","description":"Percentage of token reduction achieved"}},"type":"object","required":["memories","memories_before","memories_after","tokens_before","tokens_after","tokens_saved","reduction_percentage"],"title":"OptimizeMemoriesResponse","description":"Schema for memory optimization response"},"PaginatedResponse_ApprovalResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ApprovalResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ApprovalResponse]"},"PaginatedResponse_ComponentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ComponentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ComponentResponse]"},"PaginatedResponse_ContentResponseSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentResponseSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ContentResponseSchema]"},"PaginatedResponse_EvalSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EvalSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[EvalSchema]"},"PaginatedResponse_LearningResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningResponse]"},"PaginatedResponse_LearningUserStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningUserStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningUserStats]"},"PaginatedResponse_RegistryContentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RegistryContentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[RegistryContentResponse]"},"PaginatedResponse_ScheduleResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleResponse]"},"PaginatedResponse_ScheduleRunResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleRunResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleRunResponse]"},"PaginatedResponse_ServiceAccountResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ServiceAccountResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ServiceAccountResponse]"},"PaginatedResponse_SessionSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SessionSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[SessionSchema]"},"PaginatedResponse_TraceDetail_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceDetail"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceDetail]"},"PaginatedResponse_TraceSessionStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSessionStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSessionStats]"},"PaginatedResponse_TraceSummary_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSummary"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSummary]"},"PaginatedResponse_UserMemorySchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserMemorySchema]"},"PaginatedResponse_UserStatsSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserStatsSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserStatsSchema]"},"PaginatedResponse_VectorSearchResult_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VectorSearchResult"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[VectorSearchResult]"},"PaginationInfo":{"properties":{"page":{"type":"integer","minimum":0.0,"title":"Page","description":"Current page number (0-indexed)","default":0},"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of items per page","default":20},"total_pages":{"type":"integer","minimum":0.0,"title":"Total Pages","description":"Total number of pages","default":0},"total_count":{"type":"integer","minimum":0.0,"title":"Total Count","description":"Total count of items","default":0},"search_time_ms":{"type":"number","minimum":0.0,"title":"Search Time Ms","description":"Search execution time in milliseconds","default":0}},"type":"object","title":"PaginationInfo"},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/DataPart"}],"title":"Part"},"ReaderSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the reader"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the reader"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the reader's capabilities"},"chunkers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chunkers","description":"List of supported chunking strategies"}},"type":"object","required":["id"],"title":"ReaderSchema"},"ReasoningMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"reasoning","title":"Role","default":"reasoning"},"content":{"type":"string","title":"Content"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"ReasoningMessage","description":"A reasoning message containing the agent's internal reasoning process."},"RegistryContentResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/RegistryResourceType"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name","type"],"title":"RegistryContentResponse"},"RegistryResourceType":{"type":"string","enum":["tool","model","db","vector_db","schema","function","agent","team","knowledge","memory_manager","session_summary_manager"],"title":"RegistryResourceType","description":"Types of resources that can be stored in a registry."},"RemoteContentSourceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content source"},"name":{"type":"string","title":"Name","description":"Display name for the content source"},"type":{"type":"string","title":"Type","description":"Type of content source (s3, gcs, sharepoint, github, azureblob)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Default path prefix for this source"}},"type":"object","required":["id","name","type"],"title":"RemoteContentSourceSchema","description":"Schema for remote content source configuration."},"ResumeEntry":{"properties":{"interruptId":{"type":"string","title":"Interruptid"},"status":{"type":"string","enum":["resolved","cancelled"],"title":"Status"},"payload":{"anyOf":[{},{"type":"null"}],"title":"Payload"}},"additionalProperties":true,"type":"object","required":["interruptId","status"],"title":"ResumeEntry","description":"A per-interrupt response in the resume array of a RunAgentInput."},"Role":{"type":"string","enum":["agent","user"],"title":"Role","description":"Identifies the sender of the message. `user` for the client, `agent` for the service."},"RunAgentInput":{"properties":{"threadId":{"type":"string","title":"Threadid"},"runId":{"type":"string","title":"Runid"},"parentRunId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentrunid"},"state":{"title":"State"},"messages":{"items":{"oneOf":[{"$ref":"#/components/schemas/DeveloperMessage"},{"$ref":"#/components/schemas/SystemMessage"},{"$ref":"#/components/schemas/AssistantMessage"},{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/ToolMessage"},{"$ref":"#/components/schemas/ActivityMessage"},{"$ref":"#/components/schemas/ReasoningMessage"}],"discriminator":{"propertyName":"role","mapping":{"activity":"#/components/schemas/ActivityMessage","assistant":"#/components/schemas/AssistantMessage","developer":"#/components/schemas/DeveloperMessage","reasoning":"#/components/schemas/ReasoningMessage","system":"#/components/schemas/SystemMessage","tool":"#/components/schemas/ToolMessage","user":"#/components/schemas/UserMessage"}}},"type":"array","title":"Messages"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","title":"Tools"},"context":{"items":{"$ref":"#/components/schemas/Context"},"type":"array","title":"Context"},"forwardedProps":{"title":"Forwardedprops"},"resume":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResumeEntry"},"type":"array"},{"type":"null"}],"title":"Resume"}},"additionalProperties":true,"type":"object","required":["threadId","runId","state","messages","tools","context","forwardedProps"],"title":"RunAgentInput","description":"Input for running an agent."},"RunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that executed this run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"RunSchema"},"RunStatus":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","PAUSED","CANCELLED","ERROR","REGENERATED"],"title":"RunStatus","description":"State of the main run response"},"ScheduleCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"cron_expr":{"type":"string","maxLength":128,"title":"Cron Expr"},"endpoint":{"type":"string","maxLength":512,"title":"Endpoint"},"method":{"type":"string","maxLength":10,"title":"Method","default":"POST"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"type":"string","maxLength":64,"title":"Timezone","default":"UTC"},"timeout_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Timeout Seconds","default":3600},"max_retries":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Max Retries","default":0},"retry_delay_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Retry Delay Seconds","default":60}},"type":"object","required":["name","cron_expr","endpoint"],"title":"ScheduleCreate"},"ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"cron_expr":{"type":"string","title":"Cron Expr"},"timezone":{"type":"string","title":"Timezone"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"max_retries":{"type":"integer","title":"Max Retries"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","method","endpoint","cron_expr","timezone","timeout_seconds","max_retries","retry_delay_seconds","enabled"],"title":"ScheduleResponse"},"ScheduleRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"schedule_id":{"type":"string","title":"Schedule Id"},"attempt":{"type":"integer","title":"Attempt"},"triggered_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triggered At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"status":{"type":"string","title":"Status"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","schedule_id","attempt","status"],"title":"ScheduleRunResponse"},"ScheduleStateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","enabled"],"title":"ScheduleStateResponse","description":"Trimmed response for state-changing operations (enable/disable)."},"ScheduleUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"cron_expr":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Cron Expr"},"endpoint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Endpoint"},"method":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Method"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Timezone"},"timeout_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":1.0},{"type":"null"}],"title":"Timeout Seconds"},"max_retries":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Max Retries"},"retry_delay_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":1.0},{"type":"null"}],"title":"Retry Delay Seconds"}},"type":"object","title":"ScheduleUpdate"},"ScopeItem":{"properties":{"scope":{"type":"string","title":"Scope","description":"Scope string, e.g. 'agents:*:run'"},"effect":{"type":"string","enum":["allow","deny"],"title":"Effect","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["scope"],"title":"ScopeItem","description":"Write shape for one scope grant \u2014 the canonical RBAC payload for every scope-bearing API.\n\nEndpoints that take scopes accept these objects only (a bare string is a validation\nerror). ``effect`` is constrained here so every consumer rejects typos at the model\nlayer; whether ``deny`` is *semantically* legal stays per-endpoint (roles support\ndeny rules, service-account tokens are pure grants and reject it)."},"ScopeSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Scope id (always null here; kept for shape parity with the cloud RBAC API, which addresses scopes individually)"},"raw":{"type":"string","title":"Raw","description":"Original scope string, e.g. 'agents:*:run'"},"namespace":{"type":"string","title":"Namespace","description":"Resource namespace, e.g. 'agents'"},"sub_namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Namespace","description":"Specific resource id or wildcard '*'"},"permission":{"type":"string","title":"Permission","description":"Action, e.g. 'read' / 'run' / 'write'"},"value":{"type":"string","title":"Value","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["raw","namespace","permission"],"title":"ScopeSchema","description":"Read shape for one scope \u2014 the parsed RBAC payload shared by every scope-bearing API.\n\nMirrors the cloud RBAC scope shape ({raw, namespace, sub_namespace, permission, value})\nso a frontend renders scopes from any AgentOS API with one integration."},"SendMessageRequest":{"description":"Represents a JSON-RPC request for the `message/send` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/send","default":"message/send","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendMessageRequest","type":"object"},"SendMessageSuccessResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id"},"jsonrpc":{"type":"string","const":"2.0","title":"Jsonrpc","default":"2.0"},"result":{"anyOf":[{"$ref":"#/components/schemas/Task"},{"$ref":"#/components/schemas/Message"}],"title":"Result"}},"type":"object","required":["result"],"title":"SendMessageSuccessResponse","description":"Represents a successful JSON-RPC response for the `message/send` method."},"SendStreamingMessageRequest":{"description":"Represents a JSON-RPC request for the `message/stream` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/stream","default":"message/stream","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendStreamingMessageRequest","type":"object"},"ServiceAccountCreate":{"properties":{"name":{"type":"string","maxLength":63,"title":"Name","description":"Machine identity name (lowercase slug), e.g. 'claude-code' or 'github-actions'"},"scopes":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScopeItem"},"type":"array"},{"type":"null"}],"title":"Scopes","description":"Scopes granted to the token, as {scope, effect} objects (the shared RBAC write shape; token scopes are grants, so only effect='allow' is accepted). Defaults to run and read scopes: agents:run, teams:run, workflows:run, sessions:read"},"expires_in_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Expires In Days","description":"Days until the token expires (default: 90)","default":90},"never_expires":{"type":"boolean","title":"Never Expires","description":"Mint a non-expiring token. Must be set explicitly; overrides expires_in_days.","default":false},"allow_privileged_scopes":{"type":"boolean","title":"Allow Privileged Scopes","description":"Required to grant privileged scopes: any write or delete action, the admin scope, or any service_accounts scope. Privileged tokens must be deliberate, never accidental.","default":false}},"type":"object","required":["name"],"title":"ServiceAccountCreate"},"ServiceAccountCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"token":{"type":"string","title":"Token","description":"The plaintext token. Shown exactly once - store it securely now."}},"type":"object","required":["id","name","principal","token_prefix","created_at","token"],"title":"ServiceAccountCreateResponse","description":"Returned once, at creation. The token is never retrievable again."},"ServiceAccountResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","name","principal","token_prefix","created_at"],"title":"ServiceAccountResponse","description":"Service account metadata. Never includes the token hash or plaintext."},"ServiceUnavailableResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ServiceUnavailableResponse","example":{"detail":"Feature not supported by the configured service"}},"SessionConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_SessionDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"SessionConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"SessionDomainConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier for the session"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state data of the session"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when session was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when session was last updated"},"session_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type","description":"Type of session: agent, team, or workflow"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["session_id","session_name"],"title":"SessionSchema"},"SessionType":{"type":"string","enum":["agent","team","workflow"],"title":"SessionType"},"SlackChallengeResponse":{"properties":{"challenge":{"type":"string","title":"Challenge","description":"Challenge string to echo back to Slack"}},"type":"object","required":["challenge"],"title":"SlackChallengeResponse"},"SlackEventResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"}},"type":"object","title":"SlackEventResponse"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"SourceFileSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Full path/key of the file"},"name":{"type":"string","title":"Name","description":"Display name (filename)"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"File size in bytes"},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified","description":"ISO 8601 timestamp of last modification"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"MIME type of the file"}},"type":"object","required":["key","name"],"title":"SourceFileSchema","description":"Schema for a file in a content source."},"SourceFilesResponseSchema":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"ID of the content source"},"source_name":{"type":"string","title":"Source Name","description":"Name of the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Prefix filter that was applied"},"folders":{"items":{"$ref":"#/components/schemas/SourceFolderSchema"},"type":"array","title":"Folders","description":"Subfolders at this level"},"files":{"items":{"$ref":"#/components/schemas/SourceFileSchema"},"type":"array","title":"Files","description":"List of files at this level"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["source_id","source_name","meta"],"title":"SourceFilesResponseSchema","description":"Response schema for listing files in a content source."},"SourceFolderSchema":{"properties":{"prefix":{"type":"string","title":"Prefix","description":"Full prefix to use for navigating into this folder"},"name":{"type":"string","title":"Name","description":"Display name of the folder"},"is_empty":{"type":"boolean","title":"Is Empty","description":"Whether the folder contains any files","default":false}},"type":"object","required":["prefix","name"],"title":"SourceFolderSchema","description":"Schema for a folder in a content source."},"SystemMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"system","title":"Role","default":"system"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"SystemMessage","description":"A system message."},"Task":{"properties":{"artifacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Artifact"},"type":"array"},{"type":"null"}],"title":"Artifacts"},"contextId":{"type":"string","title":"Contextid"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"History"},"id":{"type":"string","title":"Id"},"kind":{"type":"string","const":"task","title":"Kind","default":"task"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"status":{"$ref":"#/components/schemas/TaskStatus"}},"type":"object","required":["contextId","id","status"],"title":"Task","description":"Represents a single, stateful operation or conversation between a client and an agent."},"TaskState":{"type":"string","enum":["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"],"title":"TaskState","description":"Defines the lifecycle states of a Task."},"TaskStatus":{"properties":{"message":{"anyOf":[{"$ref":"#/components/schemas/Message"},{"type":"null"}]},"state":{"$ref":"#/components/schemas/TaskState"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp","examples":["2023-10-27T10:00:00Z"]}},"type":"object","required":["state"],"title":"TaskStatus","description":"Represents the status of a task at a specific point in time."},"TeamResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"members":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"$ref":"#/components/schemas/TeamResponse"}]},"type":"array"},{"type":"null"}],"title":"Members"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"TeamResponse"},"TeamRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the team run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that executed this run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the team run"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this team run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this team run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this team run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this team run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"TeamRunSchema"},"TeamSessionDetailSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID used in this session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of team interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"team_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Team Data","description":"Team-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"}},"type":"object","required":["session_id","session_name"],"title":"TeamSessionDetailSchema"},"TeamSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the team"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the team"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the team"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Team execution mode (coordinate, route, broadcast, tasks)"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the team leader"}},"type":"object","title":"TeamSummaryResponse"},"TelegramStatusResponse":{"properties":{"status":{"type":"string","title":"Status","default":"available"}},"type":"object","title":"TelegramStatusResponse"},"TelegramWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status"}},"type":"object","required":["status"],"title":"TelegramWebhookResponse"},"TextInputContent":{"properties":{"type":{"type":"string","const":"text","title":"Type","default":"text"},"text":{"type":"string","title":"Text"}},"additionalProperties":true,"type":"object","required":["text"],"title":"TextInputContent","description":"A text fragment in a multimodal user message."},"TextPart":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"TextPart","description":"Represents a text segment within a message or artifact."},"Tool":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{},{"type":"null"}],"title":"Parameters"}},"additionalProperties":true,"type":"object","required":["name","description"],"title":"Tool","description":"A tool definition."},"ToolCall":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/FunctionCall"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","function"],"title":"ToolCall","description":"A tool call, modelled after OpenAI tool calls."},"ToolMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"tool","title":"Role","default":"tool"},"content":{"type":"string","title":"Content"},"toolCallId":{"type":"string","title":"Toolcallid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content","toolCallId"],"title":"ToolMessage","description":"A tool result message."},"TraceDetail":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent/workflow"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the agent/workflow"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"},"tree":{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array","title":"Tree","description":"Hierarchical tree of spans (root nodes)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at","tree"],"title":"TraceDetail","description":"Detailed trace information with hierarchical span tree"},"TraceNode":{"properties":{"id":{"type":"string","title":"Id","description":"Span ID"},"name":{"type":"string","title":"Name","description":"Span name (e.g., 'agent.run', 'llm.invoke')"},"type":{"type":"string","title":"Type","description":"Span kind (AGENT, TEAM, WORKFLOW, LLM, TOOL)"},"duration":{"type":"string","title":"Duration","description":"Human-readable duration (e.g., '123ms', '1.5s')"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"End time (Pydantic auto-serializes to ISO 8601)"},"status":{"type":"string","title":"Status","description":"Status code (OK, ERROR)"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the span"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the span"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"spans":{"anyOf":[{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array"},{"type":"null"}],"title":"Spans","description":"Child spans in the trace hierarchy"},"step_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Type","description":"Workflow step type (Step, Condition, function, Agent, Team)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional span attributes and data"},"extra_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Data","description":"Flexible field for custom attributes and additional data"}},"type":"object","required":["id","name","type","duration","start_time","end_time","status"],"title":"TraceNode","description":"Recursive node structure for rendering trace hierarchy in the frontend"},"TraceSearchGroupBy":{"type":"string","enum":["run","session"],"title":"TraceSearchGroupBy","description":"Grouping options for trace search results."},"TraceSearchRequest":{"properties":{"filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter","description":"FilterExpr DSL as JSON dict. Supports operators: EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH, AND, OR, NOT."},"group_by":{"$ref":"#/components/schemas/TraceSearchGroupBy","description":"Grouping mode: 'run' returns individual TraceDetail, 'session' returns aggregated TraceSessionStats.","default":"run"},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number (1-indexed)","default":1},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"Number of traces per page (max 100)","default":20}},"type":"object","title":"TraceSearchRequest","description":"Request body for POST /traces/search with advanced filtering.\n\nThe filter field accepts a FilterExpr DSL dict supporting composable queries\nwith AND/OR/NOT logic and operators like EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH.\n\nExample for run grouping (default):\n {\n \"filter\": {\n \"op\": \"AND\",\n \"conditions\": [\n {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n {\"op\": \"CONTAINS\", \"key\": \"user_id\", \"value\": \"admin\"}\n ]\n },\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n }\n\nExample for session grouping:\n {\n \"filter\": {\"op\": \"EQ\", \"key\": \"agent_id\", \"value\": \"my-agent\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n }"},"TraceSessionStats":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID(s) used in the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID associated with the session"},"total_traces":{"type":"integer","title":"Total Traces","description":"Total number of traces in this session"},"first_trace_at":{"type":"string","format":"date-time","title":"First Trace At","description":"Time of first trace (Pydantic auto-serializes to ISO 8601)"},"last_trace_at":{"type":"string","format":"date-time","title":"Last Trace At","description":"Time of last trace (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["session_id","total_traces","first_trace_at","last_trace_at"],"title":"TraceSessionStats","description":"Aggregated trace statistics grouped by session"},"TraceSummary":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR, UNSET)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at"],"title":"TraceSummary","description":"Summary information for trace list view"},"TracesConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_TracesDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"TracesConfig","description":"Configuration for the Traces domain of the AgentOS"},"TracesDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"TracesDomainConfig","description":"Configuration for the Traces domain of the AgentOS"},"UnauthenticatedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"UnauthenticatedResponse","example":{"detail":"Unauthenticated access","error_code":"UNAUTHENTICATED"}},"UpdateEvalRunRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"New name for the evaluation run"}},"type":"object","required":["name"],"title":"UpdateEvalRunRequest"},"UpdateSessionRequest":{"properties":{"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Updated session name"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Updated session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Updated metadata"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary","description":"Session summary"}},"type":"object","title":"UpdateSessionRequest"},"UserMemoryCreateSchema":{"properties":{"memory":{"type":"string","maxLength":5000,"minLength":1,"title":"Memory","description":"Memory content text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags to categorize the memory"}},"type":"object","required":["memory"],"title":"UserMemoryCreateSchema","description":"Define the payload expected for creating a new user memory"},"UserMemorySchema":{"properties":{"memory_id":{"type":"string","title":"Memory Id","description":"Unique identifier for the memory"},"memory":{"type":"string","title":"Memory","description":"Memory content text"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags associated with the memory"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID associated with this memory"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with this memory"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when memory was last updated"}},"type":"object","required":["memory_id","memory"],"title":"UserMemorySchema"},"UserMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"user","title":"Role","default":"user"},"content":{"anyOf":[{"type":"string"},{"items":{"oneOf":[{"$ref":"#/components/schemas/TextInputContent"},{"$ref":"#/components/schemas/ImageInputContent"},{"$ref":"#/components/schemas/AudioInputContent"},{"$ref":"#/components/schemas/VideoInputContent"},{"$ref":"#/components/schemas/DocumentInputContent"},{"$ref":"#/components/schemas/BinaryInputContent"}],"discriminator":{"propertyName":"type","mapping":{"audio":"#/components/schemas/AudioInputContent","binary":"#/components/schemas/BinaryInputContent","document":"#/components/schemas/DocumentInputContent","image":"#/components/schemas/ImageInputContent","text":"#/components/schemas/TextInputContent","video":"#/components/schemas/VideoInputContent"}}},"type":"array"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"UserMessage","description":"A user message supporting text or multimodal content."},"UserStatsSchema":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"total_memories":{"type":"integer","minimum":0.0,"title":"Total Memories","description":"Total number of memories for this user"},"last_memory_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Memory Updated At","description":"Timestamp of the most recent memory update"}},"type":"object","required":["user_id","total_memories"],"title":"UserStatsSchema","description":"Schema for user memory statistics"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"ValidationErrorResponse","example":{"detail":"Validation error","error_code":"VALIDATION_ERROR"}},"VectorDbSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the vector database"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the vector database"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the vector database"},"search_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Search Types","description":"List of supported search types (vector, keyword, hybrid)"}},"type":"object","required":["id"],"title":"VectorDbSchema"},"VectorSearchRequestSchema":{"properties":{"query":{"type":"string","title":"Query","description":"The search query text"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database ID to search in"},"knowledge_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledge Id","description":"Knowledge base ID to search in"},"vector_db_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vector Db Ids","description":"List of vector database IDs to search in"},"search_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Type","description":"The type of search to perform (vector, keyword, hybrid)"},"max_results":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Max Results","description":"The maximum number of results to return"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Filters to apply to the search results"},"meta":{"anyOf":[{"$ref":"#/components/schemas/Meta"},{"type":"null"}],"description":"Pagination metadata. Limit and page number to return a subset of results."}},"type":"object","required":["query"],"title":"VectorSearchRequestSchema","description":"Schema for vector search request."},"VectorSearchResult":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the search result document"},"content":{"type":"string","title":"Content","description":"Content text of the document"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the document"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Metadata associated with the document"},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"Usage statistics (e.g., token counts)"},"reranking_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reranking Score","description":"Reranking score for relevance"},"content_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Id","description":"ID of the source content"},"content_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Origin","description":"Origin URL or source of the content"},"size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"}},"type":"object","required":["id","content"],"title":"VectorSearchResult","description":"Schema for search result documents."},"VideoInputContent":{"properties":{"type":{"type":"string","const":"video","title":"Type","default":"video"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"VideoInputContent","description":"A video input content fragment."},"WhatsAppWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status","default":"ok"}},"type":"object","title":"WhatsAppWebhookResponse"},"WorkflowResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema","description":"Input schema for the workflow"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps","description":"List of workflow steps"},"agent":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"type":"null"}],"description":"Agent configuration if used"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamResponse"},{"type":"null"}],"description":"Team configuration if used"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"workflow_agent":{"type":"boolean","title":"Workflow Agent","description":"Whether this workflow uses a WorkflowAgent","default":false},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowResponse"},"WorkflowRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the workflow run"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the workflow"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was executed"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the workflow"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"Type of content returned"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status of the workflow run"},"step_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Results","description":"Results from each workflow step"},"step_executor_runs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Executor Runs","description":"Executor runs for each step"},"step_requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Requirements","description":"HITL step requirements (resolved state for historical display)"},"pause_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Kind","description":"Kind of HITL pause: 'step' or 'executor'"},"paused_step_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Step Name","description":"Name of the step that caused the pause"},"paused_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Paused Step Index","description":"Index of the step that caused the pause"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the workflow"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the workflow"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the workflow"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the workflow"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the workflow"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"}},"type":"object","required":["run_id"],"title":"WorkflowRunSchema"},"WorkflowSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID used in this session"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name","description":"Name of the workflow"},"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Data","description":"Complete session data"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current workflow state"},"workflow_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Data","description":"Workflow-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["session_id","session_name"],"title":"WorkflowSessionDetailSchema"},"WorkflowSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowSummaryResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} diff --git a/reference-api/openapi.yaml b/reference-api/openapi.yaml index 451d81637..9feb5cb66 100644 --- a/reference-api/openapi.yaml +++ b/reference-api/openapi.yaml @@ -521,7 +521,7 @@ paths: $ref: '#/components/schemas/Body_continue_agent_run' responses: '200': - description: Agent run continued successfully + description: A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts. content: application/json: schema: @@ -534,7 +534,7 @@ paths: schema: type: string '400': - description: Invalid JSON in tools field or invalid tool structure + description: Invalid tools or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote agent content: application/json: schema: @@ -546,25 +546,41 @@ paths: schema: $ref: '#/components/schemas/UnauthenticatedResponse' '403': - description: Run has a pending admin approval and cannot be continued by the user yet. + description: Agent run access denied, or a required admin approval is unresolved + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': - description: Agent not found + description: Agent, session, or run not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' + '409': + description: Run is in a state that cannot be continued + content: + application/json: + schema: + $ref: '#/components/schemas/ConflictResponse' '422': description: Validation Error content: application/json: schema: - $ref: '#/components/schemas/ValidationErrorResponse' + $ref: '#/components/schemas/HTTPValidationError' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/InternalServerErrorResponse' + '503': + description: Remote agent is unavailable + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' /agents/{agent_id}/sessions/{session_id}/fork: post: tags: @@ -2446,7 +2462,7 @@ paths: $ref: '#/components/schemas/Body_continue_workflow_run' responses: '200': - description: Workflow run continued successfully + description: A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts. content: application/json: schema: @@ -2459,7 +2475,7 @@ paths: schema: type: string '400': - description: Invalid JSON in requirements field + description: Invalid step requirements or factory input, missing required session ID, rejected input, or remote workflow continuation requested content: application/json: schema: @@ -2477,19 +2493,23 @@ paths: schema: $ref: '#/components/schemas/ForbiddenResponse' '404': - description: Workflow not found + description: Workflow, session, or run not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' '409': - description: Run is not paused. Only PAUSED runs can be continued. + description: Run is not paused and cannot be continued + content: + application/json: + schema: + $ref: '#/components/schemas/ConflictResponse' '422': description: Validation Error content: application/json: schema: - $ref: '#/components/schemas/ValidationErrorResponse' + $ref: '#/components/schemas/HTTPValidationError' '500': description: Internal Server Error content: @@ -3719,7 +3739,7 @@ paths: tags: - A2A summary: Stream Message - description: '[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the ''agentId'' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or ''userId'' in params.message.metadata. Returns real-time updates as newline-delimited JSON (NDJSON).' + description: '[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the ''agentId'' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or ''userId'' in params.message.metadata. Returns real-time updates as Server-Sent Events (SSE).' operationId: stream_message responses: '200': diff --git a/scripts/make_openapi.py b/scripts/make_openapi.py index 82aaf114c..2378a5ff6 100644 --- a/scripts/make_openapi.py +++ b/scripts/make_openapi.py @@ -350,6 +350,48 @@ def sort_responses(operation: dict) -> None: assert "schema" not in continue_sse continue_sse["schema"] = {"type": "string"} + continue_agent_run = spec["paths"]["/agents/{agent_id}/runs/{run_id}/continue"]["post"] + continue_agent_responses = continue_agent_run["responses"] + assert continue_agent_responses["200"]["description"] == "Agent run continued successfully" + continue_agent_responses["200"]["description"] = ( + "A non-streaming run response or a server-sent event stream. Streaming execution failures " + "are delivered as events after the stream starts." + ) + assert continue_agent_responses["400"]["description"] == ( + "Invalid JSON in tools field or invalid tool structure" + ) + continue_agent_responses["400"]["description"] = ( + "Invalid tools or continuation boundary, missing local session ID, rejected input, " + "or background streaming requested for a remote agent" + ) + assert continue_agent_responses["403"] == { + "description": "Run has a pending admin approval and cannot be continued by the user yet." + } + continue_agent_responses["403"] = response_ref( + "Agent run access denied, or a required admin approval is unresolved", + "ForbiddenResponse", + ) + assert continue_agent_responses["404"]["description"] == "Agent not found" + continue_agent_responses["404"]["description"] = "Agent, session, or run not found" + add_response( + continue_agent_run, + "409", + "Run is in a state that cannot be continued", + "ConflictResponse", + ) + continue_agent_validation = continue_agent_responses["422"]["content"]["application/json"][ + "schema" + ] + assert continue_agent_validation == {"$ref": "#/components/schemas/ValidationErrorResponse"} + continue_agent_validation["$ref"] = "#/components/schemas/HTTPValidationError" + add_response( + continue_agent_run, + "503", + "Remote agent is unavailable", + "ServiceUnavailableResponse", + ) + sort_responses(continue_agent_run) + continue_team_run = spec["paths"]["/teams/{team_id}/runs/{run_id}/continue"]["post"] continue_team_responses = continue_team_run["responses"] assert continue_team_responses["200"]["description"] == "Team run continued successfully" @@ -396,6 +438,34 @@ def sort_responses(operation: dict) -> None: ) sort_responses(continue_team_run) + continue_workflow_run = spec["paths"]["/workflows/{workflow_id}/runs/{run_id}/continue"]["post"] + continue_workflow_responses = continue_workflow_run["responses"] + assert continue_workflow_responses["200"]["description"] == "Workflow run continued successfully" + continue_workflow_responses["200"]["description"] = ( + "A non-streaming run response or a server-sent event stream. Streaming execution failures " + "are delivered as events after the stream starts." + ) + assert continue_workflow_responses["400"]["description"] == "Invalid JSON in requirements field" + continue_workflow_responses["400"]["description"] = ( + "Invalid step requirements or factory input, missing required session ID, rejected input, " + "or remote workflow continuation requested" + ) + assert continue_workflow_responses["404"]["description"] == "Workflow not found" + continue_workflow_responses["404"]["description"] = "Workflow, session, or run not found" + assert continue_workflow_responses["409"] == { + "description": "Run is not paused. Only PAUSED runs can be continued." + } + continue_workflow_responses["409"] = response_ref( + "Run is not paused and cannot be continued", + "ConflictResponse", + ) + continue_workflow_validation = continue_workflow_responses["422"]["content"]["application/json"][ + "schema" + ] + assert continue_workflow_validation == {"$ref": "#/components/schemas/ValidationErrorResponse"} + continue_workflow_validation["$ref"] = "#/components/schemas/HTTPValidationError" + sort_responses(continue_workflow_run) + update_content = spec["paths"]["/knowledge/content/{content_id}"]["patch"] assert update_content["description"] == ( "Update content properties such as name, description, metadata, or processing configuration. " @@ -1121,6 +1191,12 @@ def sort_responses(operation: dict) -> None: assert "text/event-stream" in deprecated_stream_content del deprecated_stream_content["application/json"] deprecated_stream_content["text/event-stream"]["schema"] = {"type": "string"} + deprecated_stream_description = deprecated_stream["description"] + assert "Returns real-time updates as newline-delimited JSON (NDJSON)." in deprecated_stream_description + deprecated_stream["description"] = deprecated_stream_description.replace( + "Returns real-time updates as newline-delimited JSON (NDJSON).", + "Returns real-time updates as Server-Sent Events (SSE).", + ) resume_paths = ( "/agents/{agent_id}/runs/{run_id}/resume", From d26a3a0fc143c52fb1c8ef85d8fd0662050fb405 Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 07:14:15 +0100 Subject: [PATCH 22/47] docs: harden filtering and runnable setup --- examples/agent-os/dbs/valkey-db.mdx | 2 +- .../advanced/per-user-isolation/valkey-db.mdx | 2 +- examples/models/openai/responses/basic.mdx | 8 +++++ examples/storage/valkey/valkey-for-agent.mdx | 2 +- examples/storage/valkey/valkey-for-team.mdx | 2 +- .../storage/valkey/valkey-for-workflow.mdx | 2 +- knowledge/concepts/filters/overview.mdx | 36 +++++++++++-------- scripts/examples_sync/generate.py | 12 +++++++ tools/toolkits/web-scrape/crawl4ai.mdx | 6 ++-- 9 files changed, 50 insertions(+), 22 deletions(-) diff --git a/examples/agent-os/dbs/valkey-db.mdx b/examples/agent-os/dbs/valkey-db.mdx index 928d60e8b..a4b13fd59 100644 --- a/examples/agent-os/dbs/valkey-db.mdx +++ b/examples/agent-os/dbs/valkey-db.mdx @@ -83,7 +83,7 @@ if __name__ == "__main__": ```bash - uv pip install -U "agno[os]" glide-sync openai valkey-glide-sync + uv pip install -U "agno[os]" openai valkey-glide-sync ``` diff --git a/examples/knowledge/advanced/per-user-isolation/valkey-db.mdx b/examples/knowledge/advanced/per-user-isolation/valkey-db.mdx index 6c4d2a145..06006f680 100644 --- a/examples/knowledge/advanced/per-user-isolation/valkey-db.mdx +++ b/examples/knowledge/advanced/per-user-isolation/valkey-db.mdx @@ -119,7 +119,7 @@ if __name__ == "__main__": ```bash - uv pip install -U agno glide-sync valkey-glide-sync + uv pip install -U agno valkey-glide-sync ``` diff --git a/examples/models/openai/responses/basic.mdx b/examples/models/openai/responses/basic.mdx index c1b69e00e..4de5303df 100644 --- a/examples/models/openai/responses/basic.mdx +++ b/examples/models/openai/responses/basic.mdx @@ -4,6 +4,10 @@ description: "Run a gpt-4o agent through the Responses API in sync, async, and s source: cookbook/90_models/openai/responses/basic.py --- + + This example calls `asyncio.run()` twice while reusing one agent. `OpenAIResponses` caches an async client bound to the first event loop, so the second async call can fail with `RuntimeError: Event loop is closed`. Use the one-loop replacement below. + + ```python basic.py """ Openai Basic @@ -68,6 +72,10 @@ if __name__ == "__main__": + + Replace both `asyncio.run(...)` lines with one `async def main()` that awaits the non-streaming call followed by the streaming call, then invoke `asyncio.run(main())` once. + + Save the code above as `basic.py`, then run: ```bash diff --git a/examples/storage/valkey/valkey-for-agent.mdx b/examples/storage/valkey/valkey-for-agent.mdx index f2f3bed42..b11d23734 100644 --- a/examples/storage/valkey/valkey-for-agent.mdx +++ b/examples/storage/valkey/valkey-for-agent.mdx @@ -60,7 +60,7 @@ if __name__ == "__main__": ```bash - uv pip install -U agno ddgs glide-sync openai valkey-glide-sync + uv pip install -U agno ddgs openai valkey-glide-sync ``` diff --git a/examples/storage/valkey/valkey-for-team.mdx b/examples/storage/valkey/valkey-for-team.mdx index 7fed0d23d..d5c6b5d7a 100644 --- a/examples/storage/valkey/valkey-for-team.mdx +++ b/examples/storage/valkey/valkey-for-team.mdx @@ -91,7 +91,7 @@ if __name__ == "__main__": ```bash - uv pip install -U agno ddgs glide-sync openai valkey-glide-sync + uv pip install -U agno ddgs openai valkey-glide-sync ``` diff --git a/examples/storage/valkey/valkey-for-workflow.mdx b/examples/storage/valkey/valkey-for-workflow.mdx index 1fe700e03..0ff511345 100644 --- a/examples/storage/valkey/valkey-for-workflow.mdx +++ b/examples/storage/valkey/valkey-for-workflow.mdx @@ -89,7 +89,7 @@ if __name__ == "__main__": ```bash - uv pip install -U agno ddgs fastapi glide-sync openai valkey-glide-sync + uv pip install -U agno ddgs fastapi openai valkey-glide-sync ``` diff --git a/knowledge/concepts/filters/overview.mdx b/knowledge/concepts/filters/overview.mdx index 06d9c08ac..6a0092ea8 100644 --- a/knowledge/concepts/filters/overview.mdx +++ b/knowledge/concepts/filters/overview.mdx @@ -10,26 +10,31 @@ Filters restrict knowledge searches to documents matching specific criteria. Att from agno.agent import Agent from agno.knowledge.knowledge import Knowledge -# Add content with metadata -knowledge.insert( - path="resumes/", - metadata={"user_id": "jordan_mitchell", "document_type": "cv", "year": 2025} -) -# Search with filters -agent = Agent( - knowledge=knowledge, - search_knowledge=True, - knowledge_filters={"user_id": "jordan_mitchell"}, -) +def create_filtered_agent(knowledge: Knowledge) -> Agent: + knowledge.insert( + path="resumes/", + metadata={"user_id": "jordan_mitchell", "document_type": "cv", "year": 2025}, + ) + return Agent( + knowledge=knowledge, + search_knowledge=True, + knowledge_filters={"user_id": "jordan_mitchell"}, + ) ``` +Pass a configured `Knowledge` instance backed by a vector database that supports metadata filtering. + ## Why Use Filters - **Personalization**: Retrieve documents for a specific user or group -- **Access control**: Restrict searches to authorized content +- **Tenant scoping**: Apply trusted server-side filters before each search - **Precision**: Reduce noise by narrowing results to relevant documents + + Treat knowledge filters as retrieval constraints. Enforce authorization separately. Run-level `knowledge_filters` can replace agent defaults. Derive authorization filters in trusted server code and prevent untrusted clients from supplying replacements. + + ## Manual Filtering Pass filters explicitly when creating the agent or searching: @@ -55,7 +60,7 @@ results = knowledge.search( ) ``` -Multiple filters are combined with AND logic. +Keys within one dictionary filter are combined with AND logic. ## Agentic Filtering @@ -132,7 +137,7 @@ knowledge.insert(path="resume.pdf", metadata=metadata) **Tips:** - Use consistent values (always `"engineering"`, not sometimes `"eng"`) - Include temporal data for time-based filtering -- Add access levels for permission-based filtering +- Add scope metadata for trusted server-side filtering ## Supported Vector Databases @@ -147,6 +152,7 @@ Filtering is supported on: - Qdrant - SurrealDB - Upstash +- Valkey - Weaviate ## Next Steps @@ -161,4 +167,4 @@ Filtering is supported on: How filtering affects search - \ No newline at end of file + diff --git a/scripts/examples_sync/generate.py b/scripts/examples_sync/generate.py index 2d3514ab4..c296e1773 100644 --- a/scripts/examples_sync/generate.py +++ b/scripts/examples_sync/generate.py @@ -329,6 +329,7 @@ "agno.db.firestore": ["google-cloud-firestore"], "agno.db.gcs": ["google-cloud-storage"], "agno.db.surrealdb": ["surrealdb"], + "agno.db.valkey": ["valkey-glide-sync"], "agno.context.calendar": [ "google-api-python-client", "google-auth-httplib2", @@ -383,6 +384,7 @@ "brave": "brave-search", "github": "pygithub", "gitlab": "python-gitlab", + "glide_sync": "valkey-glide-sync", "phoenix": "arize-phoenix", "docx": "python-docx", "pptx": "python-pptx", @@ -750,6 +752,16 @@ "02_agents/07_knowledge/knowledge_filters.py": { "pre_code_warning": "The pinned source inserts `ThaiRecipes.pdf` without cuisine metadata, so its static and agentic cuisine filters cannot match that document. Add `metadata={\"cuisine\": \"thai\"}` to `knowledge.insert(...)` before running.", }, + "90_models/openai/responses/basic.py": { + "pre_code_warning": "The pinned source calls `asyncio.run()` twice while reusing one agent. `OpenAIResponses` caches an async client bound to the first event loop, so the second async call can fail with `RuntimeError: Event loop is closed`. Use the one-loop replacement below.", + "pre_run_steps": [ + ( + "Use one async event loop", + "Replace both `asyncio.run(...)` lines with one `async def main()` that awaits the non-streaming call followed by the streaming call, then invoke `asyncio.run(main())` once.", + None, + ) + ], + }, "06_storage/sqlite/sqlite_for_team.py": { "pre_code_warning": "The pinned source docstring names a removed cookbook path. Use the generated Run step below, which runs `cookbook/06_storage/sqlite/sqlite_for_team.py`.", }, diff --git a/tools/toolkits/web-scrape/crawl4ai.mdx b/tools/toolkits/web-scrape/crawl4ai.mdx index c12cdda27..a5c533987 100644 --- a/tools/toolkits/web-scrape/crawl4ai.mdx +++ b/tools/toolkits/web-scrape/crawl4ai.mdx @@ -7,10 +7,12 @@ description: "Crawl4aiTools exposes a crawl function that fetches one or more UR ## Prerequisites -The following example requires the `crawl4ai` library. +The following example requires the `crawl4ai` library and its browser runtime. -```shell +```bash uv pip install -U crawl4ai openai +crawl4ai-setup +crawl4ai-doctor ``` ## Example From 621af5344b179357409d25589c54c93476cf753a Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 07:25:41 +0100 Subject: [PATCH 23/47] docs: complete remaining API contracts --- reference-api/openapi.json | 2 +- reference-api/openapi.yaml | 1368 +++++++++++++++++++++++++++++++++--- scripts/make_openapi.py | 317 ++++++++- 3 files changed, 1574 insertions(+), 113 deletions(-) diff --git a/reference-api/openapi.json b/reference-api/openapi.json index 6652fc970..8a67cd270 100644 --- a/reference-api/openapi.json +++ b/reference-api/openapi.json @@ -1 +1 @@ -{"openapi":"3.1.0","info":{"title":"Agno API Reference","description":"The all-in-one, private, secure agent platform that runs in your cloud.","version":"2.7.4"},"paths":{"/":{"get":{"tags":["Home"],"summary":"API Information","description":"Return the AgentOS instance name, ID, and version.","operationId":"get_api_info","responses":{"200":{"description":"API information retrieved successfully","content":{"application/json":{"schema":{"properties":{"name":{"type":"string","title":"Name"},"id":{"type":"string","title":"Id"},"version":{"type":"string","title":"Version"}},"type":"object","required":["name","id","version"],"title":"ApiInfoResponse"},"examples":{"home":{"summary":"Example home response","value":{"name":"AgentOS API","id":"demo-os","version":"1.0.0"}}}}}}}}},"/health":{"get":{"tags":["Health"],"summary":"Health Check","description":"Check the health status of the AgentOS API. Returns a simple status indicator.","operationId":"health_check","responses":{"200":{"description":"API is healthy and operational","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"},"example":{"status":"ok","instantiated_at":"2025-06-10T12:00:00Z"}}}}}}},"/info":{"get":{"tags":["Core"],"summary":"Get OS Info","description":"Return lightweight, unauthenticated metadata about this AgentOS instance.","operationId":"get_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoResponse"}}}}}}},"/config":{"get":{"tags":["Core"],"summary":"Get OS Configuration","description":"Retrieve the complete configuration of the AgentOS instance, including:\n\n- Available models and databases\n- Registered agents, teams, and workflows\n- Chat, session, memory, knowledge, and evaluation configurations\n- Available interfaces and their routes","operationId":"get_config","responses":{"200":{"description":"OS configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"},"example":{"description":"Example AgentOS configuration","available_models":[],"databases":["9c884dc4-9066-448c-9074-ef49ec7eb73c"],"session":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Sessions"}}]},"metrics":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Metrics"}}]},"memory":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Memory"}}]},"knowledge":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Knowledge"}}]},"evals":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Evals"}}]},"agents":[{"id":"main-agent","name":"Main Agent","db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c"}],"teams":[],"workflows":[],"interfaces":[],"os_id":"demo"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/models":{"get":{"tags":["Core"],"summary":"Get Available Models","description":"Retrieve a list of all unique models currently used by agents and teams in this OS instance. This includes the model ID and provider information for each model.","operationId":"get_models","responses":{"200":{"description":"List of models retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Response Get Models"},"example":[{"id":"gpt-4","provider":"openai"},{"id":"claude-3-sonnet","provider":"anthropic"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}/runs":{"post":{"tags":["Agents"],"summary":"Create Agent Run","description":"Execute an agent with a message and optional media files. Supports both streaming and non-streaming responses.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_agent_run"}}}},"responses":{"200":{"description":"Agent run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"examples":{"event_stream":{"summary":"Example event stream response","value":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Agents"],"summary":"List Agent Runs","description":"List runs for an agent within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_agent_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED","title":"Status"},"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RunSchema"},"type":"array","title":"Response List Agent Runs"}}}},"400":{"description":"Run listing is unavailable for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Agent resolution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/cancel":{"post":{"tags":["Agents"],"summary":"Cancel Agent Run","description":"Cancel a currently executing agent run. This will attempt to stop the agent's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/continue":{"post":{"tags":["Agents"],"summary":"Continue Agent Run","description":"Advance a persisted agent run from its current state. Dispatches on the body shape and the persisted run state (see ADR-003 in specs/agno/features/checkpointing/decisions.md).\n\n**Variants:**\n- PAUSED + tools provided \u2192 apply HITL tool results, resume\n- PAUSED + resolved admin approval (empty tools) \u2192 apply resolution, resume\n- RUNNING / ERROR (no unresolved HITL requirements) \u2192 resume from last persisted state\n- COMPLETED + new tools \u2192 continue with appended messages\n\n**Tools Parameter:**\nJSON string containing array of tool execution objects with results. Optional \u2014 only required when the persisted run has unresolved HITL requirements.","operationId":"continue_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_agent_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid tools or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Agent run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Remote agent is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/agents/{agent_id}/sessions/{session_id}/fork":{"post":{"tags":["Agents"],"summary":"Fork Agent Session","description":"Deep-copy a session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_agent_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents":{"get":{"tags":["Agents"],"summary":"List All Agents","description":"Retrieve a comprehensive list of all agents configured in this OS instance.\n\n**Returns:**\n- Agent metadata (ID, name, description)\n- Model configuration and capabilities\n- Available tools and their configurations\n- Session, knowledge, memory, and reasoning settings\n- Only meaningful (non-default) configurations are included","operationId":"get_agents","responses":{"200":{"description":"List of agents retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentResponse"},"type":"array","title":"Response Get Agents"},"example":[{"id":"main-agent","name":"Main Agent","db_id":"c6bf0644-feb8-4930-a305-380dae5ad6aa","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Details","description":"Retrieve detailed configuration and capabilities of a specific agent.\n\n**Returns comprehensive agent information including:**\n- Model configuration and provider details\n- Complete tool inventory and configurations\n- Session management settings\n- Knowledge base and memory configurations\n- Reasoning capabilities and settings\n- System prompts and response formatting options","operationId":"get_agent","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Agent details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"},"example":{"id":"main-agent","name":"Main Agent","db_id":"9e064c70-6821-4840-a333-ce6230908a70","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Run","description":"Retrieve the status and output of an agent run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Agents"],"summary":"List Agent Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_agent_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Agents"],"summary":"Get Agent Run Checkpoint Snapshot","description":"Return a derived run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_agent_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/resume":{"post":{"tags":["Agents"],"summary":"Resume Agent Run Stream","description":"Resume an SSE stream for an agent run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_agent_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_agent_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Not supported for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs":{"post":{"tags":["Teams"],"summary":"Create Team Run","description":"Execute a team collaboration with multiple agents working together on a task.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_team_run"}}}},"responses":{"200":{"description":"Team run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Teams"],"summary":"List Team Runs","description":"List runs for a team within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_team_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/cancel":{"post":{"tags":["Teams"],"summary":"Cancel Team Run","description":"Cancel a currently executing team run. This will attempt to stop the team's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel team run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/resume":{"post":{"tags":["Teams"],"summary":"Resume Team Run Stream","description":"Resume an SSE stream for a team run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_team_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_team_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory teams. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/continue":{"post":{"tags":["Teams"],"summary":"Continue Team Run","description":"Continue a paused or incomplete team run with updated requirements.\n\n**Use Cases:**\n- Resume execution after tool approval/rejection\n- Provide manual tool execution results\n- Resume after admin approval (requirements can be empty; resolution fetched from DB)\n\n**Requirements Parameter:**\nJSON string containing array of requirement objects with tool execution results.\nCan be empty when an admin-required approval has been resolved.","operationId":"continue_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_team_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid requirements or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Team run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Remote team is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/teams/{team_id}/sessions/{session_id}/fork":{"post":{"tags":["Teams"],"summary":"Fork Team Session","description":"Deep-copy a team session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_team_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams":{"get":{"tags":["Teams"],"summary":"List All Teams","description":"Retrieve a comprehensive list of all teams configured in this OS instance.\n\n**Returns team information including:**\n- Team metadata (ID, name, description, execution mode)\n- Model configuration for team coordination\n- Team member roster with roles and capabilities\n- Knowledge sharing and memory configurations","operationId":"get_teams","responses":{"200":{"description":"List of teams retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamResponse"},"type":"array","title":"Response Get Teams"},"example":[{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"agno_memories","app_url":"/memory/1","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/teams/{team_id}":{"get":{"tags":["Teams"],"summary":"Get Team Details","description":"Retrieve detailed configuration and member information for a specific team.","operationId":"get_team","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"},"example":{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}":{"get":{"tags":["Teams"],"summary":"Get Team Run","description":"Retrieve the status and output of a team run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Teams"],"summary":"List Team Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored team run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_team_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Teams"],"summary":"Get Team Run Checkpoint Snapshot","description":"Return a derived team run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_team_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows":{"get":{"tags":["Workflows"],"summary":"List All Workflows","description":"Retrieve a comprehensive list of all workflows configured in this OS instance.\n\n**Return Information:**\n- Workflow metadata (ID, name, description)\n- Input schema requirements\n- Step sequence and execution flow\n- Associated agents and teams","operationId":"get_workflows","responses":{"200":{"description":"List of workflows retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Response Get Workflows"},"example":[{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/workflows/{workflow_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Details","description":"Retrieve detailed configuration and step information for a specific workflow.","operationId":"get_workflow","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Workflow version to retrieve","title":"Version"},"description":"Workflow version to retrieve"}],"responses":{"200":{"description":"Workflow details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"},"example":{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs":{"post":{"tags":["Workflows"],"summary":"Execute Workflow","description":"Execute a workflow with the provided input data. Workflows can run in streaming or batch mode.\n\n**Execution Modes:**\n- **Streaming (`stream=true`)**: Real-time step-by-step execution updates via SSE\n- **Non-Streaming (`stream=false`)**: Complete workflow execution with final result\n\n**Workflow Execution Process:**\n1. Input validation against workflow schema\n2. Sequential or parallel step execution based on workflow design\n3. Data flow between steps with transformation\n4. Error handling and automatic retries where configured\n5. Final result compilation and response\n\n**Session Management:**\nWorkflows support session continuity for stateful execution across multiple runs.","operationId":"create_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_run"}}}},"responses":{"200":{"description":"Workflow executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid input data or workflow configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Workflow execution error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"List Workflow Runs","description":"List runs for a workflow within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_workflow_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/continue":{"post":{"tags":["Workflows"],"summary":"Continue Workflow Run","description":"Continue a paused workflow run with resolved requirements.\n\n**Use Cases:**\n- Resume after step-level HITL (confirmation, user input, router selection)\n- Resume after executor-level HITL (agent/team tool confirmation within a step)\n\n**Requirements Parameter:**\nJSON string containing the resolved step requirements.","operationId":"continue_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_workflow_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: StepCompleted\ndata: {\"step_name\": \"step1\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid step requirements or factory input, missing required session ID, rejected input, or remote workflow continuation requested","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is not paused and cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/cancel":{"post":{"tags":["Workflows"],"summary":"Cancel Workflow Run","description":"Cancel a currently executing workflow run, stopping all active steps and cleanup.\n**Note:** Complex workflows with multiple parallel steps may take time to fully cancel.","operationId":"cancel_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found, or the requested run was not found in the caller's session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel workflow run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/resume":{"post":{"tags":["Workflows"],"summary":"Resume Workflow Run Stream","description":"Resume an SSE stream for a workflow run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_workflow_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_workflow_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory workflows. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Run","description":"Retrieve the status and output of a workflow run. Use this to poll for run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/slack/events":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Receives incoming Slack events (messages, mentions, thread starts).\n\n**URL Verification:** On first setup, Slack sends a `url_verification` challenge. The endpoint echoes back the challenge string.\n\n**Event Processing:** Normal events are acknowledged immediately with `{\"status\": \"ok\"}` and processed in the background. This prevents Slack's 3-second retry timeout.\n\n**Retry Handling:** Events with `X-Slack-Retry-Num` header are duplicates and return 200 without reprocessing.\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Event Subscriptions > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for creating a Slack App or use the [manifest](/agent-os/interfaces/slack/setup#2-create-the-slack-app) for quick setup.\n","operationId":"slack_events_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SlackChallengeResponse"},{"$ref":"#/components/schemas/SlackEventResponse"}],"title":"Response Slack Events Simple Agent"}}}},"400":{"description":"Missing Slack headers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured, or the event body is not valid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number (present on retried events)"}]}},"/slack/interactions":{"post":{"tags":["Slack"],"summary":"Slack Interactions","description":"Handles Slack interactive components for Human-in-the-Loop (HITL) workflows.\n\n**Supported Actions:**\n- `row_approve` - Approve a pending tool call\n- `row_reject` - Reject a pending tool call\n- `submit_pause` - Submit form data for a paused workflow\n- `check_status` - Check an admin approval and resume an approved run\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Interactivity & Shortcuts > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for step-by-step instructions or the [HITL guide](/agent-os/interfaces/slack/hitl) for approval workflows.\n","operationId":"slack_interactions_simple_agent","responses":{"200":{"description":"Interaction accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackEventResponse"}}}},"400":{"description":"Missing Slack headers or malformed interaction payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number. Retried interactions return 200 without reprocessing."}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"URL-encoded JSON interaction payload (Slack sends interactive component data as a single form field)"}}}}}}}},"/whatsapp/status":{"get":{"tags":["Whatsapp"],"summary":"Status","operationId":"whatsapp_status_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"WhatsAppStatusResponse","example":{"status":"available"}}}}}}}},"/whatsapp/webhook":{"get":{"tags":["Whatsapp"],"summary":"Whatsapp Verify","description":"Handle WhatsApp webhook verification","operationId":"whatsapp_verify_simple_agent","responses":{"200":{"description":"Webhook challenge accepted","content":{"text/plain":{"schema":{"type":"string"},"example":"challenge-token"}}},"400":{"description":"No challenge was provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid verify token or mode","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Webhook verification is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"hub.mode","in":"query","required":true,"schema":{"type":"string"},"description":"Webhook verification mode. Meta sends `subscribe`."},{"name":"hub.verify_token","in":"query","required":true,"schema":{"type":"string"},"description":"Verification token configured for the WhatsApp interface."},{"name":"hub.challenge","in":"query","required":true,"schema":{"type":"string"},"description":"Challenge returned as plain text after successful verification."}]},"post":{"tags":["Whatsapp"],"summary":"Whatsapp Webhook","description":"Process incoming WhatsApp messages","operationId":"whatsapp_webhook_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppWebhookResponse"}}}},"403":{"description":"Invalid webhook signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Signature validation is not configured, or the JSON body is malformed or is not an object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Hub-Signature-256","in":"header","required":true,"schema":{"type":"string"},"description":"SHA-256 HMAC signature for the raw request body, prefixed with `sha256=`"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}},"/telegram/status":{"get":{"tags":["Telegram"],"summary":"Telegram Status","operationId":"telegram_status_simple-agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramStatusResponse"}}}}}}},"/telegram/webhook":{"post":{"tags":["Telegram"],"summary":"Telegram Webhook","operationId":"telegram_webhook_simple-agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramWebhookResponse"}}}},"403":{"description":"Invalid webhook secret token"}}}},"/agui":{"post":{"tags":["AGUI"],"summary":"Run Agent","operationId":"run_agent_agui_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentInput"}}},"required":true},"responses":{"200":{"description":"Server-sent event stream","content":{"text/event-stream":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/status":{"get":{"tags":["AGUI"],"summary":"Get Status","operationId":"get_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/a2a/agents/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Agent Card","operationId":"get_agent_card_a2a_agents__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Agent","description":"Send a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"A2A is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/agents/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Agent Task","description":"Get the status and result of an agent task by ID.","operationId":"get_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Agent Task","description":"Cancel a running agent task.","operationId":"cancel_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/agents/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Agent","description":"Stream a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/teams/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Team Card","operationId":"get_team_card_a2a_teams__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Team","description":"Send a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/teams/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Team Task","description":"Get the status and result of a team task by ID.","operationId":"get_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Team Task","description":"Cancel a running team task.","operationId":"cancel_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/teams/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Team","description":"Stream a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/workflows/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Workflow Card","operationId":"get_workflow_card_a2a_workflows__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/a2a/workflows/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Workflow","description":"Send a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/workflows/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Workflow","description":"Stream a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/message/send":{"post":{"tags":["A2A"],"summary":"Send Message","description":"[DEPRECATED] Send a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"send_message","responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"jsonrpc":"2.0","id":"request-123","result":{"task":{"id":"task-456","context_id":"context-789","status":"completed","history":[{"message_id":"msg-1","role":"agent","parts":[{"kind":"text","text":"Response from agent"}]}]}}}}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/a2a/message/stream":{"post":{"tags":["A2A"],"summary":"Stream Message","description":"[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as Server-Sent Events (SSE).","operationId":"stream_message","responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request or unsupported method"},"404":{"description":"Agent, Team, or Workflow not found"}}}},"/sessions":{"get":{"tags":["Sessions"],"summary":"List Sessions","description":"Retrieve paginated list of sessions with filtering and sorting options. Supports filtering by session type (agent, team, workflow), component, user, and name. Sessions represent conversation histories and execution contexts.","operationId":"get_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types.","title":"Type"},"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types."},{"name":"component_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by component ID (agent/team/workflow ID)","title":"Component Id"},"description":"Filter sessions by component ID (agent/team/workflow ID)"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by user ID","title":"User Id"},"description":"Filter sessions by user ID"},{"name":"session_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by name (partial match)","title":"Session Name"},"description":"Filter sessions by name (partial match)"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of sessions to return per page","default":20,"title":"Limit"},"description":"Number of sessions to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort sessions by","default":"created_at","title":"Sort By"},"description":"Field to sort sessions by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query sessions from","title":"Db Id"},"description":"Database ID to query sessions from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Sessions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_SessionSchema_"},"example":{"session_example":{"summary":"Example session response","value":{"data":[{"session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_state":{},"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}]}}}}}},"400":{"description":"Invalid session type or filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in query parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Sessions"],"summary":"Create New Session","description":"Create a new empty session with optional configuration. Useful for pre-creating sessions with specific session_state, metadata, or other properties before running any agent/team/workflow interactions. The session can later be used by providing its session_id in run requests.","operationId":"create_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SessionType","description":"Type of session to create (agent, team, or workflow)","default":"agent"},"description":"Type of session to create (agent, team, or workflow)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to create session in","title":"Db Id"},"description":"Database ID to create session in"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest","description":"Session configuration data","default":{}}}}},"responses":{"201":{"description":"Session created successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Create Session"},"examples":{"agent_session_example":{"summary":"Example created agent session","value":{"user_id":"user-123","agent_session_id":"new-session-id","session_id":"new-session-id","session_name":"New Session","session_state":{"key":"value"},"metadata":{"key":"value"},"agent_id":"agent-1","created_at":"2025-10-21T12:00:00Z","updated_at":"2025-10-21T12:00:00Z"}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A session with the supplied session_id already exists"},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Multiple Sessions","description":"Delete multiple sessions by their IDs in a single operation. This action cannot be undone and will permanently remove all specified sessions and their runs.","operationId":"delete_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSessionRequest"}}}},"responses":{"204":{"description":"Sessions deleted successfully"},"400":{"description":"Invalid request - session IDs and types length mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["Sessions"],"summary":"Get Session by ID","description":"Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow).","operationId":"get_session_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to retrieve","title":"Session Id"},"description":"Session ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query session from","title":"User Id"},"description":"User ID to query session from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query session from","title":"Db Id"},"description":"Database ID to query session from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query session from","title":"Table"},"description":"Table to query session from"}],"responses":{"200":{"description":"Session details retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Get Session By Id"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Session","description":"Permanently delete a specific session and all its associated runs. This action cannot be undone and will remove all conversation history.","operationId":"delete_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to delete","title":"Session Id"},"description":"Session ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Sessions"],"summary":"Update Session","description":"Update session properties such as session_name, session_state, metadata, or summary. Use this endpoint to modify the session name, update state, add metadata, or update the session summary.","operationId":"update_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to update","title":"Session Id"},"description":"Session ID to update"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID","title":"User Id"},"description":"User ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update operation","title":"Db Id"},"description":"Database ID to use for update operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update operation","title":"Table"},"description":"Table to use for update operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest","description":"Session update data"}}}},"responses":{"200":{"description":"Session updated successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Update Session"},"examples":{"update_summary":{"summary":"Update session summary","value":{"summary":{"summary":"The user discussed project planning with the agent.","updated_at":"2025-10-21T14:30:00Z"}}},"update_metadata":{"summary":"Update session metadata","value":{"metadata":{"tags":["planning","project"],"priority":"high"}}},"update_session_name":{"summary":"Update session name","value":{"session_name":"Updated Session Name"}},"update_session_state":{"summary":"Update session state","value":{"session_state":{"step":"completed","context":"Project planning finished","progress":100}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs":{"get":{"tags":["Sessions"],"summary":"Get Session Runs","description":"Retrieve all runs (executions) for a specific session with optional timestamp filtering. Runs represent individual interactions or executions within a session. Response schema varies based on session type.","operationId":"get_session_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get runs from","title":"Session Id"},"description":"Session ID to get runs from"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query runs from","title":"User Id"},"description":"User ID to query runs from"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created after this Unix timestamp (epoch time in seconds)","title":"Created After"},"description":"Filter runs created after this Unix timestamp (epoch time in seconds)"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created before this Unix timestamp (epoch time in seconds)","title":"Created Before"},"description":"Filter runs created before this Unix timestamp (epoch time in seconds)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query runs from","title":"Db Id"},"description":"Database ID to query runs from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query runs from","title":"Table"},"description":"Table to query runs from"}],"responses":{"200":{"description":"Session runs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}]},"title":"Response Get Session Runs"},"examples":{"completed_run":{"summary":"Example completed run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"","run_input":"Which tools do you have access to?","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","run_response_format":"text","reasoning_content":"","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069},"messages":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-08 17:52:10.101003.\n\n\nYou have the capability to retain memories from previous interactions with the user, but have not had any interactions with the user yet.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757346730},{"content":"Which tools do you have access to?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757346730},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138},"created_at":1757346730}],"events":[{"created_at":1757346730,"event":"RunStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","model":"gpt-4o","model_provider":"OpenAI"},{"created_at":1757346733,"event":"MemoryUpdateStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"MemoryUpdateCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"RunCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","content_type":"str","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069}}],"created_at":"2025-09-08T15:52:10Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found or has no runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs/{run_id}":{"get":{"tags":["Sessions"],"summary":"Get Run by ID","description":"Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run).","operationId":"get_session_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get run from","title":"Session Id"},"description":"Session ID to get run from"},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","description":"Run ID to retrieve","title":"Run Id"},"description":"Run ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query run from","title":"User Id"},"description":"User ID to query run from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query run from","title":"Db Id"},"description":"Database ID to query run from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query run from","title":"Table"},"description":"Table to query run from"}],"responses":{"200":{"description":"Run retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}],"title":"Response Get Session Run"},"examples":{"agent_run":{"summary":"Example agent run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"user_123","run_input":"Which tools do you have access to?","content":"I don't have access to external tools.","created_at":1728499200}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/rename":{"post":{"tags":["Sessions"],"summary":"Rename Session","description":"Update the name of an existing session. Useful for organizing and categorizing sessions with meaningful names for better identification and management.","operationId":"rename_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to rename","title":"Session Id"},"description":"Session ID to rename"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope rename to","title":"User Id"},"description":"User ID to scope rename to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for rename operation","title":"Db Id"},"description":"Database ID to use for rename operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_rename_session"}}}},"responses":{"200":{"description":"Session renamed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Rename Session"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Invalid session name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type or validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories":{"post":{"tags":["Memory"],"summary":"Create Memory","description":"Create a new user memory with content and associated topics. Memories are used to store contextual information for users across conversations.","operationId":"create_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for memory storage","title":"Db Id"},"description":"Database ID to use for memory storage"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for memory storage","title":"Table"},"description":"Table to use for memory storage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"mem-123","memory":"User prefers technical explanations with code examples","topics":["preferences","communication_style","technical"],"user_id":"user-456","created_at":"2024-01-15T10:30:00Z","updated_at":"2024-01-15T10:30:00Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Memory"],"summary":"Delete Multiple Memories","description":"Delete multiple user memories by their IDs in a single operation. This action cannot be undone and all specified memories will be permanently removed.","operationId":"delete_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMemoriesRequest"}}}},"responses":{"204":{"description":"Memories deleted successfully"},"400":{"description":"Invalid request - empty memory_ids list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"List Memories","description":"Retrieve paginated list of user memories with filtering and search capabilities. Filter by user, agent, team, topics, or search within memory content.","operationId":"get_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by user ID","title":"User Id"},"description":"Filter memories by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by agent ID","title":"Agent Id"},"description":"Filter memories by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by team ID","title":"Team Id"},"description":"Filter memories by team ID"},{"name":"search_content","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fuzzy search within memory content","title":"Search Content"},"description":"Fuzzy search within memory content"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of memories to return per page","default":20,"title":"Limit"},"description":"Number of memories to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort memories by","default":"updated_at","title":"Sort By"},"description":"Field to sort memories by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memories from","title":"Db Id"},"description":"Database ID to query memories from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Comma-separated list of topics to filter by","examples":["preferences,technical,communication_style"],"title":"Topics"},"description":"Comma-separated list of topics to filter by"}],"responses":{"200":{"description":"Memories retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserMemorySchema_"},"example":{"data":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories/{memory_id}":{"delete":{"tags":["Memory"],"summary":"Delete Memory","description":"Permanently delete a specific user memory. This action cannot be undone.","operationId":"delete_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to delete","title":"Memory Id"},"description":"Memory ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to delete memory for","title":"User Id"},"description":"User ID to delete memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Memory deleted successfully"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"Get Memory by ID","description":"Retrieve detailed information about a specific user memory by its ID.","operationId":"get_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to retrieve","title":"Memory Id"},"description":"Memory ID to retrieve"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query memory for","title":"User Id"},"description":"User ID to query memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memory from","title":"Db Id"},"description":"Database ID to query memory from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query memory from","title":"Table"},"description":"Table to query memory from"}],"responses":{"200":{"description":"Memory retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Memory"],"summary":"Update Memory","description":"Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values.","operationId":"update_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to update","title":"Memory Id"},"description":"Memory ID to update"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update","title":"Db Id"},"description":"Database ID to use for update"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update","title":"Table"},"description":"Table to use for update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memory_topics":{"get":{"tags":["Memory"],"summary":"Get Memory Topics","description":"Retrieve all unique topics associated with memories in the system. Useful for filtering and categorizing memories by topic.","operationId":"get_memory_topics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter topics for","title":"User Id"},"description":"User ID to filter topics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query topics from","title":"Db Id"},"description":"Database ID to query topics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query topics from","title":"Table"},"description":"Table to query topics from"}],"responses":{"200":{"description":"Memory topics retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Get Memory Topics"},"example":["preferences","communication_style","technical","industry","compliance","code_examples","requirements","healthcare","finance"]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/user_memory_stats":{"get":{"tags":["Memory"],"summary":"Get User Memory Statistics","description":"Retrieve paginated statistics about memory usage by user. Provides insights into user engagement and memory distribution across users.","operationId":"get_user_memory_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of user statistics to return per page","default":20,"title":"Limit"},"description":"Number of user statistics to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter statistics for","title":"User Id"},"description":"User ID to filter statistics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query statistics from","title":"Table"},"description":"Table to query statistics from"}],"responses":{"200":{"description":"User memory statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserStatsSchema_"},"example":{"data":[{"user_id":"123","total_memories":3,"last_memory_updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve user statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/optimize-memories":{"post":{"tags":["Memory"],"summary":"Optimize User Memories","description":"Optimize all memories for a user with the summarize strategy. The operation combines the user's memories into one summary. Set `apply=false` to preview the result without saving it. Specify a custom model as `provider:model_id`, for example `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, or `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`.","operationId":"optimize_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for optimization","title":"Db Id"},"description":"Database ID to use for optimization"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for optimization","title":"Table"},"description":"Table to use for optimization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesRequest"}}}},"responses":{"200":{"description":"Memories optimized successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesResponse"},"example":{"memories":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User has a 3-year-old golden retriever named Max who loves fetch and walks. Lives in San Francisco's Mission district, works as a product manager in tech. Enjoys hiking Bay Area trails, trying new restaurants (especially Japanese, Thai, Mexican), and learning piano for 1.5 years.","topics":["pets","location","work","hobbies","food_preferences"],"user_id":"user2","updated_at":"2025-11-18T10:30:00Z"}],"memories_before":4,"memories_after":1,"tokens_before":450,"tokens_after":180,"tokens_saved":270,"reduction_percentage":60.0}}}},"400":{"description":"Bad request - User ID is required or invalid model string format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No memories found for user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to optimize memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings":{"get":{"tags":["Learnings"],"summary":"List Learnings","description":"List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) \u2014 this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`).","operationId":"list_learnings","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by learning type","title":"Learning Type"},"description":"Filter by learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"namespace","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by namespace","title":"Namespace"},"description":"Filter by namespace"},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity ID","title":"Entity Id"},"description":"Filter by entity ID"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity type","title":"Entity Type"},"description":"Filter by entity type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":100,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used).","title":"Sort By"},"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used)."},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Learnings"],"summary":"Create Learning","description":"Create a new learning record. For the identity-keyed learning types (`user_profile`, `user_memory`, `session_context`, `entity_memory`) the record id is derived deterministically from the identity fields so it reconciles with what the agent reads/writes \u2014 provide those fields (else 422), and if a record already exists the request is rejected with 409 (use PATCH to update it). Other types get a generated id. For a scoped (non-admin) caller, the body's `user_id` must be omitted/null or match the caller (mismatch \u2192 403); admins and unscoped callers may set any `user_id`.","operationId":"create_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users":{"get":{"tags":["Learnings"],"summary":"List Learning Users","description":"List the users that own learning records, with a per-user count and last-updated timestamp. Intended as the entry point for a per-user view: list users here, then drill into a single user's learnings via `GET /learnings?user_id=...`. Records with no owner (`user_id IS NULL`) are excluded. Pass `learning_type` to restrict the grouping to a single store (e.g. `user_profile` or `user_memory`). For a scoped (non-admin) caller results are bound to that user; an explicit `user_id` that differs is rejected with 403. Admins and unscoped callers list all users. Sortable by `user_id` or `last_learning_updated_at` (the default).","operationId":"list_learning_users","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the grouping to a single learning type","title":"Learning Type"},"description":"Restrict the grouping to a single learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the result to a single user","title":"User Id"},"description":"Restrict the result to a single user"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by: user_id or last_learning_updated_at (the default)","title":"Sort By"},"description":"Field to sort by: user_id or last_learning_updated_at (the default)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningUserStats_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/users/{user_id}":{"delete":{"tags":["Learnings"],"summary":"Delete Learning User","description":"Delete the learning records owned by a user. By default removes every learning type backed by the agno_learnings table (user_profile, user_memory, and any user-scoped entity records); pass `learning_type` to restrict deletion to a single store. Records with no owner (`user_id IS NULL`) are not affected. For a scoped (non-admin) caller, only their own learnings may be deleted; a different `user_id` is rejected with 403. Admins and unscoped callers may delete any user's learnings. Returns 204 even if the user had no matching records.","operationId":"delete_learning_user","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The user whose learnings should be deleted","title":"User Id"},"description":"The user whose learnings should be deleted"},{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings","title":"Learning Type"},"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings/{learning_id}":{"get":{"tags":["Learnings"],"summary":"Get Learning","description":"Retrieve a single learning record by its ID.","operationId":"get_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Learnings"],"summary":"Update Learning","description":"Update a learning record. Only `content` and `metadata` may be modified; identity fields (user_id, agent_id, team_id, etc.) are immutable. Provided fields fully replace the existing values. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) are readable by any caller but may only be modified by an admin.","operationId":"update_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Learnings"],"summary":"Delete Learning","description":"Permanently delete a learning record by its ID. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) may only be deleted by an admin.","operationId":"delete_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs":{"get":{"tags":["Evals"],"summary":"List Evaluation Runs","description":"Retrieve paginated evaluation runs with filtering and sorting options. Filter by agent, team, workflow, model, or evaluation type.","operationId":"get_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Workflow ID","title":"Workflow Id"},"description":"Workflow ID"},{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model ID","title":"Model Id"},"description":"Model ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EvalFilterType"},{"type":"null"}],"description":"Filter type","title":"Type"},"description":"Filter type"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of eval runs to return","default":20,"title":"Limit"},"description":"Number of eval runs to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"eval_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)","examples":["accuracy,agent_as_judge,performance,reliability"],"title":"Eval Types"},"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)"}],"responses":{"200":{"description":"Evaluation runs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_EvalSchema_"},"example":{"data":[{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Evals"],"summary":"Delete Evaluation Runs","description":"Delete multiple evaluation runs by their IDs. This action cannot be undone.","operationId":"delete_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvalRunsRequest"}}}},"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Deletion failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Evals"],"summary":"Execute Evaluation","description":"Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both.","operationId":"run_eval","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for evaluation","title":"Db Id"},"description":"Database ID to use for evaluation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for evaluation","title":"Table"},"description":"Table to use for evaluation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRunInput"}}}},"responses":{"200":{"description":"Evaluation executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"f2b2d72f-e9e2-4f0e-8810-0a7e1ff58614","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Invalid request - provide either agent_id or team_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs/{eval_run_id}":{"get":{"tags":["Evals"],"summary":"Get Evaluation Run","description":"Retrieve detailed results and metrics for a specific evaluation run.","operationId":"get_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query eval run from","title":"Table"},"description":"Table to query eval run from"}],"responses":{"200":{"description":"Evaluation run details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Evals"],"summary":"Update Evaluation Run","description":"Update the name or other properties of an existing evaluation run.","operationId":"update_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvalRunRequest"}}}},"responses":{"200":{"description":"Evaluation run updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update evaluation run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics":{"get":{"tags":["Metrics"],"summary":"Get AgentOS Metrics","description":"Retrieve AgentOS metrics and analytics data for a specified date range. If no date range is specified, returns all available metrics.","operationId":"get_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"starting_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Starting date for metrics range (YYYY-MM-DD format)","title":"Starting Date"},"description":"Starting date for metrics range (YYYY-MM-DD format)"},{"name":"ending_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Ending date for metrics range (YYYY-MM-DD format)","title":"Ending Date"},"description":"Ending date for metrics range (YYYY-MM-DD format)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query metrics from","title":"Db Id"},"description":"Database ID to query metrics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Metrics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"},"example":{"metrics":[{"id":"7bf39658-a00a-484c-8a28-67fd8a9ddb2a","agent_runs_count":5,"agent_sessions_count":5,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":448,"output_tokens":148,"total_tokens":596,"audio_tokens":0,"input_audio_tokens":0,"output_audio_tokens":0,"cached_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":5}],"date":"2025-07-31T00:00:00Z","created_at":"2025-07-31T12:38:52Z","updated_at":"2025-07-31T12:49:01Z"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Metrics retrieval failed. In Agno 2.7.4, invalid or ambiguous database selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics/refresh":{"post":{"tags":["Metrics"],"summary":"Refresh Metrics","description":"Manually trigger recalculation of system metrics from raw data. This operation analyzes system activity logs and regenerates aggregated metrics. Useful for ensuring metrics are up-to-date or after system maintenance.","operationId":"refresh_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for metrics calculation","title":"Db Id"},"description":"Database ID to use for metrics calculation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for metrics calculation","title":"Table"},"description":"Table to use for metrics calculation"}],"responses":{"200":{"description":"Metrics refreshed successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"title":"Response Refresh Metrics"},"example":[{"id":"e77c9531-818b-47a5-99cd-59fed61e5403","agent_runs_count":2,"agent_sessions_count":2,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":256,"output_tokens":441,"total_tokens":697,"audio_total_tokens":0,"audio_input_tokens":0,"audio_output_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":2}],"date":"2025-08-12T00:00:00Z","created_at":"2025-08-12T08:01:47Z","updated_at":"2025-08-12T08:01:47Z"}]}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Refresh failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content":{"post":{"tags":["Knowledge"],"summary":"Upload Content","description":"Upload content to the knowledge base. Supports file uploads, text content, or URLs. Content is processed asynchronously in the background. Supports custom readers and chunking strategies.","operationId":"upload_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_content"}}}},"responses":{"202":{"description":"Content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-123","name":"example-document.pdf","description":"Sample document for processing","metadata":{"category":"documentation","priority":"high"},"status":"processing"}}}},"400":{"description":"Invalid request - malformed metadata or missing content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in form data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"List Content","description":"Retrieve paginated list of all content in the knowledge base with filtering and sorting options. Filter by status, content type, or metadata properties.","operationId":"get_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of content entries to return","default":20,"title":"Limit"},"description":"Number of content entries to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ContentResponseSchema_"},"example":{"data":[{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}],"meta":{"page":1,"limit":20,"total_pages":1,"total_count":2}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete All Content","description":"Permanently remove all content from the knowledge base. This is a destructive operation that cannot be undone. Use with extreme caution.","operationId":"delete_all_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete all content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/remote-content":{"post":{"tags":["Knowledge"],"summary":"Upload Remote Content","description":"Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.","operationId":"upload_remote_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_upload_remote_content"}}}},"responses":{"202":{"description":"Remote content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-456","name":"reports/q1-2024.pdf","description":"Q1 Report from S3","metadata":{"source":"s3-docs"},"status":"processing"}}}},"400":{"description":"Invalid request - unknown config or missing path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}":{"patch":{"tags":["Knowledge"],"summary":"Update Content","description":"Update content name, description, or metadata without re-uploading it. In Agno 2.7.4, this endpoint accepts `reader_id`. Local knowledge validates the value, but the content patch does not apply or persist the reader change.","operationId":"update_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","description":"Content ID","title":"Content Id"},"description":"Content ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_update_content"}}}},"responses":{"200":{"description":"Content updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Invalid request - malformed metadata or invalid reader_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"Get Content by ID","description":"Retrieve detailed information about a specific content item including processing status and metadata.","operationId":"get_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete Content by ID","description":"Permanently remove a specific content item from the knowledge base. This action cannot be undone.","operationId":"delete_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}/status":{"get":{"tags":["Knowledge"],"summary":"Get Content Status","description":"Retrieve the current processing status of a content item. Useful for monitoring asynchronous content processing progress and identifying any processing errors.","operationId":"get_content_status","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content status retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentStatusResponse"},"examples":{"completed":{"summary":"Example completed content status","value":{"status":"completed","status_message":""}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/search":{"post":{"tags":["Knowledge"],"summary":"Search Knowledge","description":"Search the knowledge base for relevant documents using query, filters and search type.","operationId":"search_knowledge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VectorSearchRequestSchema"}}},"required":true},"responses":{"200":{"description":"Search results retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_VectorSearchResult_"},"example":{"data":[{"id":"doc_123","content":"Jordan Mitchell - Software Engineer with skills in JavaScript, React, Python","name":"cv_1","meta_data":{"page":1,"chunk":1},"usage":{"total_tokens":14},"reranking_score":0.95,"content_id":"content_456"}],"meta":{"page":1,"limit":20,"total_pages":2,"total_count":35}}}}},"400":{"description":"Invalid search parameters"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No documents found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/knowledge/config":{"get":{"tags":["Knowledge"],"summary":"Get Config","description":"Retrieve available readers, chunkers, and configuration options for content processing. This endpoint provides metadata about supported file types, processing strategies, and filters.","operationId":"get_knowledge_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Knowledge configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponseSchema"},"example":{"readers":{"website":{"id":"website","name":"WebsiteReader","description":"Reads website files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"firecrawl":{"id":"firecrawl","name":"FirecrawlReader","description":"Reads firecrawl files","chunkers":["SemanticChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"youtube":{"id":"youtube","name":"YoutubeReader","description":"Reads youtube files","chunkers":["RecursiveChunker","AgenticChunker","DocumentChunker","SemanticChunker","FixedSizeChunker"]},"web_search":{"id":"web_search","name":"WebSearchReader","description":"Reads web_search files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"arxiv":{"id":"arxiv","name":"ArxivReader","description":"Reads arxiv files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"csv":{"id":"csv","name":"CsvReader","description":"Reads csv files","chunkers":["RowChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"docling":{"id":"docling","name":"DoclingReader","description":"Converts multiple document formats like PDF, DOCX, PPTX, images, HTML, etc. using IBM's Docling library","chunkers":["AgenticChunker","CodeChunker","DocumentChunker","FixedSizeChunker","RecursiveChunker","SemanticChunker"]},"docx":{"id":"docx","name":"DocxReader","description":"Reads docx files","chunkers":["DocumentChunker","FixedSizeChunker","SemanticChunker","AgenticChunker","RecursiveChunker"]},"gcs":{"id":"gcs","name":"GcsReader","description":"Reads gcs files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"json":{"id":"json","name":"JsonReader","description":"Reads json files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"markdown":{"id":"markdown","name":"MarkdownReader","description":"Reads markdown files","chunkers":["MarkdownChunker","DocumentChunker","AgenticChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"pdf":{"id":"pdf","name":"PdfReader","description":"Reads pdf files","chunkers":["DocumentChunker","FixedSizeChunker","AgenticChunker","SemanticChunker","RecursiveChunker"]},"text":{"id":"text","name":"TextReader","description":"Reads text files","chunkers":["CodeChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]}},"readersForType":{"url":["url","website","firecrawl","youtube","web_search","gcs"],"youtube":["youtube"],"text":["web_search"],"topic":["arxiv"],"file":["csv","gcs"],".csv":["csv","field_labeled_csv","docling"],".xlsx":["excel","docling"],".xls":["excel"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["excel"],"application/vnd.ms-excel":["excel"],".docx":["docx","docling"],".dotx":["docling"],".docm":["docling"],".dotm":["docling"],".pptx":["docling","pptx"],".potx":["docling"],".ppsx":["docling"],".pptm":["docling"],".ppsm":["docling"],".potm":["docling"],".doc":["docx"],".json":["json"],".md":["markdown","docling"],".pdf":["pdf","docling"],".txt":["text"],".html":["docling"],".htm":["docling"],".xhtml":["docling"],".xml":["docling"],".nxml":["docling"],".xbrl":["docling"],".adoc":["docling"],".asciidoc":["docling"],".asc":["docling"],".xlsm":["docling"],".tex":["docling"],".latex":["docling"],".tar.gz":["docling"],".vtt":["docling"],".png":["docling"],".jpeg":["docling"],".jpg":["docling"],".tiff":["docling"],".tif":["docling"],".bmp":["docling"],".webp":["docling"],".wav":["docling"],".mp3":["docling"],".m4a":["docling"],".aac":["docling"],".ogg":["docling"],".flac":["docling"],".mp4":["docling"],".avi":["docling"],".mov":["docling"]},"chunkers":{"AgenticChunker":{"key":"AgenticChunker","name":"AgenticChunker","description":"Chunking strategy that uses an LLM to determine natural breakpoints in the text","metadata":{"chunk_size":5000}},"CodeChunker":{"key":"CodeChunker","name":"CodeChunker","description":"The CodeChunker splits code into chunks based on its structure, leveraging Abstract Syntax Trees (ASTs) to create contextually relevant segments","metadata":{"chunk_size":2048}},"DocumentChunker":{"key":"DocumentChunker","name":"DocumentChunker","description":"A chunking strategy that splits text based on document structure like paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"FixedSizeChunker":{"key":"FixedSizeChunker","name":"FixedSizeChunker","description":"Chunking strategy that splits text into fixed-size chunks with optional overlap","metadata":{"chunk_size":5000,"chunk_overlap":0}},"MarkdownChunker":{"key":"MarkdownChunker","name":"MarkdownChunker","description":"A chunking strategy that splits markdown based on structure like headers, paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RecursiveChunker":{"key":"RecursiveChunker","name":"RecursiveChunker","description":"Chunking strategy that recursively splits text into chunks by finding natural break points","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RowChunker":{"key":"RowChunker","name":"RowChunker","description":"RowChunking chunking strategy","metadata":{}},"SemanticChunker":{"key":"SemanticChunker","name":"SemanticChunker","description":"Chunking strategy that splits text into semantic chunks using chonkie","metadata":{"chunk_size":5000}}},"vector_dbs":[{"id":"vector_db_1","name":"Vector DB 1","description":"Vector DB 1 description","search_types":["vector","keyword","hybrid"]}],"filters":["filter_tag_1","filter_tag2"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources":{"get":{"tags":["Knowledge"],"summary":"List Content Sources","description":"List all registered content sources (S3, GCS, SharePoint, GitHub) for the knowledge base.","operationId":"list_content_sources","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Content sources retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"title":"Response List Content Sources"},"example":[{"id":"company-s3","name":"Company Documents","type":"s3","prefix":"documents/"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources/{source_id}/files":{"get":{"tags":["Knowledge"],"summary":"List Files in Source","description":"List available files and folders in a specific content source. Supports pagination and folder navigation.","operationId":"list_source_files","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the content source","title":"Source Id"},"description":"ID of the content source"},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Path prefix to filter files","title":"Prefix"},"description":"Path prefix to filter files"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of files per page","default":100,"title":"Limit"},"description":"Number of files per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"delimiter","in":"query","required":false,"schema":{"type":"string","description":"Folder delimiter (enables folder grouping)","default":"/","title":"Delimiter"},"description":"Folder delimiter (enables folder grouping)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Files listed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceFilesResponseSchema"},"example":{"source_id":"company-s3","source_name":"Company Documents","prefix":"reports/","folders":[{"prefix":"reports/2024/","name":"2024","is_empty":false}],"files":[{"key":"reports/annual-summary.pdf","name":"annual-summary.pdf","size":102400,"last_modified":"2024-01-15T10:30:00Z","content_type":"application/pdf"}],"meta":{"page":1,"limit":100,"total_pages":1,"total_count":1}}}}},"400":{"description":"Unsupported source type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base or content source not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces":{"get":{"tags":["Traces","Traces"],"summary":"List Traces","description":"Retrieve a paginated list of execution traces with optional filtering.\n\n**Traces provide observability into:**\n- Agent execution flows\n- Model invocations and token usage\n- Tool calls and their results\n- Errors and performance bottlenecks\n\n**Filtering Options:**\n- By run, session, user, or agent ID\n- By status (OK, ERROR)\n- By time range\n\n**Pagination:**\n- Use `page` (1-indexed) and `limit` parameters\n- Response includes pagination metadata (total_pages, total_count, etc.)\n\n**Response Format:**\nReturns summary information for each trace. Use GET `/traces/{trace_id}` for detailed hierarchy.","operationId":"get_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run ID","title":"Run Id"},"description":"Filter by run ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status (OK, ERROR)","title":"Status"},"description":"Filter by status (OK, ERROR)"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of traces per page","default":20,"title":"Limit"},"description":"Number of traces per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"responses":{"200":{"description":"List of traces retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSummary_"},"example":{"data":[{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","total_spans":4,"error_count":0,"input":"What is the stock price of NVDA?","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"agent_stock","created_at":"2025-11-19T10:30:00+00:00"}],"meta":{"page":1,"limit":20,"total_pages":5,"total_count":95}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/filter-schema":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Filter Schema","description":"Returns the available filterable fields, their types, valid operators, and enum values.\n\nThe frontend uses this to dynamically build the filter bar UI:\n- Field dropdown populated from `fields[].key`\n- Operator dropdown changes per field type\n- Value input shows autocomplete for enum fields (e.g., status)\n- Logical operators (AND, OR) for combining clauses","operationId":"get_traces_filter_schema","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterSchemaResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/traces/{trace_id}":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace or Span Detail","description":"Retrieve detailed trace information with hierarchical span tree, or a specific span within the trace.\n\n**Without span_id parameter:**\nReturns the full trace with hierarchical span tree:\n- Trace metadata (ID, status, duration, context)\n- Hierarchical tree of all spans\n- Each span includes timing, status, and type-specific metadata\n\n**With span_id parameter:**\nReturns details for a specific span within the trace:\n- Span metadata (ID, name, type, timing)\n- Status and error information\n- Type-specific attributes (model, tokens, tool params, etc.)\n\n**Span Hierarchy (full trace):**\nThe `tree` field contains root spans, each with potential `children`.\nThis recursive structure represents the execution flow:\n```\nAgent.run (root)\n \u251c\u2500 LLM.invoke\n \u251c\u2500 Tool.execute\n \u2502 \u2514\u2500 LLM.invoke (nested)\n \u2514\u2500 LLM.invoke\n```\n\n**Span Types:**\n- `AGENT`: Agent execution with input/output\n- `LLM`: Model invocations with tokens and prompts\n- `TOOL`: Tool calls with parameters and results","operationId":"get_trace","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}},{"name":"span_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Span ID to retrieve specific span","title":"Span Id"},"description":"Optional: Span ID to retrieve specific span"},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Run ID to retrieve trace for","title":"Run Id"},"description":"Optional: Run ID to retrieve trace for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query trace from","title":"Db Id"},"description":"Database ID to query trace from"}],"responses":{"200":{"description":"Trace or span detail retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TraceDetail"},{"$ref":"#/components/schemas/TraceNode"}],"title":"Response Get Trace"},"examples":{"full_trace":{"summary":"Full trace with hierarchy (no span_id)","value":{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","end_time":"2025-11-19T10:30:01.200000+00:00","total_spans":4,"error_count":0,"input":"What is Tesla stock price?","output":"The current price of Tesla (TSLA) is $245.67.","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"stock_agent","created_at":"2025-11-19T10:30:00+00:00","tree":[{"id":"span1","name":"Stock_Price_Agent.run","type":"AGENT","duration":"1.2s","status":"OK","spans":[]}]}},"single_span":{"summary":"Single span detail (with span_id)","value":{"id":"span2","name":"gpt-4o-mini.invoke","type":"LLM","duration":"800ms","status":"OK","metadata":{"model":"gpt-4o-mini","input_tokens":120}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Trace or span not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/trace_session_stats":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Statistics by Session","description":"Retrieve aggregated trace statistics grouped by session ID with pagination.\n\n**Provides insights into:**\n- Total traces per session\n- First and last trace timestamps per session\n- Associated user and agent information\n\n**Filtering Options:**\n- By user ID\n- By agent ID\n\n**Use Cases:**\n- Monitor session-level activity\n- Track conversation flows\n- Identify high-activity sessions\n- Analyze user engagement patterns","operationId":"get_trace_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of sessions per page","default":20,"title":"Limit"},"description":"Number of sessions per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"}],"responses":{"200":{"description":"Trace statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"},"example":{"data":[{"session_id":"37029bc6-1794-4ba8-a629-1efedc53dcad","user_id":"kaustubh@agno.com","agent_id":"hackernews-agent","total_traces":5,"first_trace_at":"2025-11-19T10:15:16+00:00","last_trace_at":"2025-11-19T10:21:30+00:00"}],"meta":{"page":1,"limit":20,"total_pages":3,"total_count":45}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/search":{"post":{"tags":["Traces","Traces"],"summary":"Search Traces with Advanced Filters","description":"Search traces using the FilterExpr DSL for complex, composable queries.\n\n**Group By Mode:**\n- `run` (default): Returns `PaginatedResponse[TraceDetail]` with full span trees\n- `session`: Returns `PaginatedResponse[TraceSessionStats]` with aggregated session stats\n\n**Supported Operators:**\n- Comparison: `EQ`, `NEQ`, `GT`, `GTE`, `LT`, `LTE`\n- Inclusion: `IN`\n- String matching: `CONTAINS` (case-insensitive substring), `STARTSWITH` (prefix)\n- Logical: `AND`, `OR`, `NOT`\n\n**Filterable Fields:**\ntrace_id, name, status, start_time, end_time, duration_ms, run_id, session_id, user_id, agent_id, team_id, workflow_id, created_at\n\n**Example Request Body (runs):**\n```json\n{\n \"filter\": {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n}\n```\n\n**Example Request Body (sessions):**\n```json\n{\n \"filter\": {\"op\": \"CONTAINS\", \"key\": \"agent_id\", \"value\": \"stock\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n}\n```","operationId":"search_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PaginatedResponse_TraceDetail_"},{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"}],"title":"Response Search Traces"}}}},"400":{"description":"Invalid filter expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/all/migrate":{"post":{"tags":["Database"],"summary":"Migrate All Databases","description":"Migrate all database schemas to the given target version. If a target version is not provided, all databases will be migrated to the latest version.","operationId":"migrate_all_databases","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"All databases migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"All databases migrated successfully to version 3.0.0"}}}},"207":{"description":"Some database migrations failed","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"},"failed":{"type":"object","additionalProperties":{"type":"string"},"title":"Failed"}},"type":"object","required":["message","failed"],"title":"PartialMigrationResponse"},"example":{"message":"Migrated 2/3 databases to latest version","failed":{"archive-db":"Migration failed"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/{db_id}/migrate":{"post":{"tags":["Database"],"summary":"Migrate Database","description":"Migrate the given database schema to the given target version. If a target version is not provided, the database will be migrated to the latest version.","operationId":"migrate_database","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"Database migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"Database migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Database not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components":{"get":{"tags":["Components"],"summary":"List Components","description":"Retrieve a paginated list of components with optional filtering by type.","operationId":"list_components","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ComponentType"},{"type":"null"}],"description":"Filter by type: agent, team, workflow","title":"Component Type"},"description":"Filter by type: agent, team, workflow"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ComponentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Component","description":"Create a new component (agent, team, or workflow) with initial config.","operationId":"create_component","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}":{"get":{"tags":["Components"],"summary":"Get Component","description":"Retrieve a component by ID.","operationId":"get_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Components"],"summary":"Update Component","description":"Partially update a component by ID.","operationId":"update_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentUpdate","description":"Component fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Component","description":"Soft-delete a component by ID. Component configs and links remain stored.","operationId":"delete_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs":{"get":{"tags":["Components"],"summary":"List Configs","description":"List all configs for a component.","operationId":"list_configs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"include_config","in":"query","required":false,"schema":{"type":"boolean","description":"Include full config blob","default":true,"title":"Include Config"},"description":"Include full config blob"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComponentConfigResponse"},"title":"Response List Configs"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Config Version","description":"Create a new config version for a component.","operationId":"create_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigCreate","description":"Config data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}":{"patch":{"tags":["Components"],"summary":"Update Draft Config","description":"Update an existing draft config. Cannot update published configs.","operationId":"update_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigUpdate","description":"Config fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Components"],"summary":"Get Config Version","description":"Get a specific config version by number.","operationId":"get_config_version","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Config Version","description":"Delete a specific config version. Agno v2.7.4 rejects the current version. Synchronous SQLite and PostgreSQL storage allow deletion of a published non-current version.","operationId":"delete_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/current":{"get":{"tags":["Components"],"summary":"Get Current Config","description":"Get the current config version for a component.","operationId":"get_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}/set-current":{"post":{"tags":["Components"],"summary":"Set Current Config Version","description":"Set a published config version as current (for rollback).","operationId":"set_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/schedules":{"get":{"tags":["Schedules"],"summary":"List Schedules","operationId":"list_schedules_schedules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"post":{"tags":["Schedules"],"summary":"Create Schedule","operationId":"create_schedule_schedules_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule","operationId":"get_schedule_schedules__schedule_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"patch":{"tags":["Schedules"],"summary":"Update Schedule","operationId":"update_schedule_schedules__schedule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Schedules"],"summary":"Delete Schedule","operationId":"delete_schedule_schedules__schedule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/enable":{"post":{"tags":["Schedules"],"summary":"Enable Schedule","operationId":"enable_schedule_schedules__schedule_id__enable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/disable":{"post":{"tags":["Schedules"],"summary":"Disable Schedule","operationId":"disable_schedule_schedules__schedule_id__disable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/trigger":{"post":{"tags":["Schedules"],"summary":"Trigger Schedule","operationId":"trigger_schedule_schedules__schedule_id__trigger_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Schedule is disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler is not running or storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs":{"get":{"tags":["Schedules"],"summary":"List Schedule Runs","operationId":"list_schedule_runs_schedules__schedule_id__runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleRunResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs/{run_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule Run","operationId":"get_schedule_run_schedules__schedule_id__runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals":{"get":{"tags":["Approvals"],"summary":"List Approvals","operationId":"list_approvals_approvals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","approved","rejected","expired","cancelled"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"source_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"}},{"name":"approval_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["required","audit"],"type":"string"},{"type":"null"}],"title":"Approval Type"}},{"name":"pause_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"schedule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"}},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ApprovalResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approvals could not be listed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/count":{"get":{"tags":["Approvals"],"summary":"Get Approval Count","operationId":"get_approval_count_approvals_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalCountResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval count could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/status":{"get":{"tags":["Approvals"],"summary":"Get Approval Status","operationId":"get_approval_status_approvals__approval_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalStatusResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval status could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}":{"get":{"tags":["Approvals"],"summary":"Get Approval","operationId":"get_approval_approvals__approval_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Approvals"],"summary":"Delete Approval","operationId":"delete_approval_approvals__approval_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval is not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/resolve":{"post":{"tags":["Approvals"],"summary":"Resolve Approval","operationId":"resolve_approval_approvals__approval_id__resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResolve"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Approval has already been resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts":{"post":{"tags":["Service Accounts"],"summary":"Create Service Account","description":"Mint a service account token. The plaintext token is returned exactly once.","operationId":"create_service_account_service_accounts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreateResponse"}}}},"400":{"description":"Requested scopes are invalid, or privileged scopes were not explicitly allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"An active service account with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"get":{"tags":["Service Accounts"],"summary":"List Service Accounts","description":"List service accounts. Returns metadata and display prefixes only - never hashes or plaintext.","operationId":"list_service_accounts_service_accounts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Revoked"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ServiceAccountResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts/{service_account_id}":{"delete":{"tags":["Service Accounts"],"summary":"Revoke Service Account","description":"Revoke an existing service account.\n\nTakes effect immediately on this worker (the local verification cache entry is evicted) and within the cache TTL on other workers.","operationId":"revoke_service_account_service_accounts__service_account_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"service_account_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Service account not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/registry":{"get":{"tags":["Registry"],"summary":"List Registry","description":"List all resources in the registry with optional filtering.","operationId":"list_registry","security":[{"HTTPBearer":[]}],"parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RegistryResourceType"},{"type":"null"}],"description":"Filter by resource type","title":"Resource Type"},"description":"Filter by resource type"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (partial match)","title":"Name"},"description":"Filter by name (partial match)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_RegistryContentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}}},"components":{"schemas":{"A2ARequest_DataPart":{"description":"Represents a structured data segment (e.g., JSON) within a message or artifact.","properties":{"data":{"additionalProperties":true,"title":"Data","type":"object"},"kind":{"const":"data","default":"data","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["data"],"title":"DataPart","type":"object"},"A2ARequest_FilePart":{"description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI.","properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_FileWithBytes"},{"$ref":"#/components/schemas/A2ARequest_FileWithUri"}],"title":"File"},"kind":{"const":"file","default":"file","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["file"],"title":"FilePart","type":"object"},"A2ARequest_FileWithBytes":{"description":"Represents a file with its content provided directly as a base64-encoded string.","properties":{"bytes":{"title":"Bytes","type":"string"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"}},"required":["bytes"],"title":"FileWithBytes","type":"object"},"A2ARequest_FileWithUri":{"description":"Represents a file with its content located at a specific URI.","properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"FileWithUri","type":"object"},"A2ARequest_Message":{"description":"Represents a single message in the conversation between a user and an agent.","properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"kind":{"const":"message","default":"message","title":"Kind","type":"string"},"messageId":{"title":"Messageid","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/A2ARequest_Part"},"title":"Parts","type":"array"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/A2ARequest_Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Taskid"}},"required":["messageId","parts","role"],"title":"Message","type":"object"},"A2ARequest_MessageSendConfiguration":{"description":"Defines configuration options for a `message/send` or `message/stream` request.","properties":{"acceptedOutputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Acceptedoutputmodes"},"blocking":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Blocking"},"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"pushNotificationConfig":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationConfig"},{"type":"null"}],"default":null}},"title":"MessageSendConfiguration","type":"object"},"A2ARequest_MessageSendParams":{"description":"Defines the parameters for a request to send a message to an agent. This can be used\nto create a new task, continue an existing one, or restart a task.","properties":{"configuration":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_MessageSendConfiguration"},{"type":"null"}],"default":null},"message":{"$ref":"#/components/schemas/A2ARequest_Message"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["message"],"title":"MessageSendParams","type":"object"},"A2ARequest_Part":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_TextPart"},{"$ref":"#/components/schemas/A2ARequest_FilePart"},{"$ref":"#/components/schemas/A2ARequest_DataPart"}],"title":"Part"},"A2ARequest_PushNotificationAuthenticationInfo":{"description":"Defines authentication details for a push notification endpoint.","properties":{"credentials":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Credentials"},"schemes":{"items":{"type":"string"},"title":"Schemes","type":"array"}},"required":["schemes"],"title":"PushNotificationAuthenticationInfo","type":"object"},"A2ARequest_PushNotificationConfig":{"description":"Defines the configuration for setting up push notifications for task updates.","properties":{"authentication":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationAuthenticationInfo"},{"type":"null"}],"default":null},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Id"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Token"},"url":{"title":"Url","type":"string"}},"required":["url"],"title":"PushNotificationConfig","type":"object"},"A2ARequest_Role":{"description":"Identifies the sender of the message. `user` for the client, `agent` for the service.","enum":["agent","user"],"title":"Role","type":"string"},"A2ARequest_TextPart":{"description":"Represents a text segment within a message or artifact.","properties":{"kind":{"const":"text","default":"text","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"text":{"title":"Text","type":"string"}},"required":["text"],"title":"TextPart","type":"object"},"ActivityMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"activity","title":"Role","default":"activity"},"activityType":{"type":"string","title":"Activitytype"},"content":{"additionalProperties":true,"type":"object","title":"Content"}},"additionalProperties":true,"type":"object","required":["id","activityType","content"],"title":"ActivityMessage","description":"An activity progress message emitted between chat messages."},"AgentResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"extra_messages":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Messages"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"AgentResponse"},"AgentSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_session_id":{"type":"string","title":"Agent Session Id","description":"Unique agent session identifier"},"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID used in this session"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"agent_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Data","description":"Agent-specific data"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["agent_session_id","session_id","session_name"],"title":"AgentSessionDetailSchema"},"AgentSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the agent"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the agent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the agent"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the agent"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","title":"AgentSummaryResponse"},"ApprovalCountResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"ApprovalCountResponse","description":"Response model for pending approval count."},"ApprovalResolve":{"properties":{"status":{"type":"string","pattern":"^(approved|rejected)$","title":"Status"},"resolved_by":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Resolved By"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"}},"type":"object","required":["status"],"title":"ApprovalResolve","description":"Request body for resolving (approve/reject) an approval."},"ApprovalResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"},"source_type":{"type":"string","title":"Source Type"},"approval_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Type"},"pause_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Args"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"},"schedule_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Run Id"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"},"run_status":{"anyOf":[{"$ref":"#/components/schemas/RunStatus"},{"type":"null"}]}},"type":"object","required":["id","run_id","session_id","status","source_type"],"title":"ApprovalResponse","description":"Response model for a single approval."},"ApprovalStatusResponse":{"properties":{"approval_id":{"type":"string","title":"Approval Id"},"status":{"type":"string","title":"Status"},"run_id":{"type":"string","title":"Run Id"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"}},"type":"object","required":["approval_id","status","run_id"],"title":"ApprovalStatusResponse","description":"Lightweight response model for polling approval status."},"Artifact":{"properties":{"artifactId":{"type":"string","title":"Artifactid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"}},"type":"object","required":["artifactId","parts"],"title":"Artifact","description":"Represents a file, data structure, or other resource generated by an agent during a task."},"AssistantMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"assistant","title":"Role","default":"assistant"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"},"toolCalls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},{"type":"null"}],"title":"Toolcalls"}},"additionalProperties":true,"type":"object","required":["id"],"title":"AssistantMessage","description":"An assistant message."},"AudioInputContent":{"properties":{"type":{"type":"string","const":"audio","title":"Type","default":"audio"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"AudioInputContent","description":"An audio input content fragment."},"BackgroundRunResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the background run."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the background run."},"status":{"type":"string","title":"Status","description":"Initial run status."}},"type":"object","required":["run_id","session_id","status"],"title":"BackgroundRunResponse"},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"BadRequestResponse","example":{"detail":"Bad request","error_code":"BAD_REQUEST"}},"BinaryInputContent":{"properties":{"type":{"type":"string","const":"binary","title":"Type","default":"binary"},"mimeType":{"type":"string","title":"Mimetype"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"additionalProperties":true,"type":"object","required":["mimeType"],"title":"BinaryInputContent","description":"A deprecated binary payload reference in a multimodal user message."},"Body_continue_agent_run":{"properties":{"tools":{"type":"string","title":"Tools","description":"JSON string of tool call results to continue the paused run","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Optional new user-message text to append to the run before resuming. Use for continuing a COMPLETED run with a follow-up, or adding context to a RUNNING/ERROR resume."},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","description":"When true, clone the run with a new ``run_id`` before resuming. The original is untouched; the clone becomes a sibling within the same session, with ``forked_from_run_id`` set.","default":false},"regenerate":{"type":"boolean","title":"Regenerate","description":"Sugar: regenerate the last response of this run. Auto-computes ``continue_from='last_user'`` to land just after the last user message. Pair with ``additional_instructions`` to steer the new output. By default the original response is hidden from history (replaced); pass ``replace_original=false`` to keep both the original and the regenerated response visible side by side.","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original","description":"Only valid with ``regenerate=true``. Controls history visibility of the original response; the original run is always retained in storage. Defaults to true: the original is marked REGENERATED and hidden from history so the new response replaces it. Pass false to keep both the original and regenerated responses visible."},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions","description":"Only valid with ``regenerate=true``: extra guidance appended as a user message before re-generation. Friendly alias for ``input``."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run continue in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false}},"type":"object","title":"Body_continue_agent_run"},"Body_continue_team_run":{"properties":{"requirements":{"type":"string","title":"Requirements","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input"},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","default":false},"regenerate":{"type":"boolean","title":"Regenerate","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original"},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"stream":{"type":"boolean","title":"Stream","default":true},"background":{"type":"boolean","title":"Background","default":false}},"type":"object","title":"Body_continue_team_run"},"Body_continue_workflow_run":{"properties":{"step_requirements":{"type":"string","title":"Step Requirements","description":"JSON string of step requirement objects with resolution status","default":""},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}},"type":"object","title":"Body_continue_workflow_run"},"Body_create_agent_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the agent"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Agent version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic agent construction"}},"type":"object","required":["message"],"title":"Body_create_agent_run"},"Body_create_team_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the team"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"monitor":{"type":"boolean","title":"Monitor","description":"Enable monitoring and logging for this run","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Team version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic team construction"}},"type":"object","required":["message"],"title":"Body_create_team_run"},"Body_create_workflow_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the workflow"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run workflow in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Workflow version to use for this run"},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow construction"}},"type":"object","required":["message"],"title":"Body_create_workflow_run"},"Body_rename_session":{"properties":{"session_name":{"type":"string","title":"Session Name","description":"New name for the session"}},"type":"object","required":["session_name"],"title":"Body_rename_session"},"Body_resume_agent_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_agent_run_stream"},"Body_resume_team_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_team_run_stream"},"Body_resume_workflow_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_workflow_run_stream"},"Body_update_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"Content metadata as JSON string"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"Reader ID. In Agno 2.7.4, local knowledge validates the value, but the content patch does not apply or persist the reader change."}},"type":"object","title":"Body_update_content"},"Body_upload_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated from file/URL if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description for context"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"URL to fetch content from (JSON array or single URL string)"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object for additional content properties"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File","description":"File to upload for processing"},"text_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Content","description":"Raw text content to process"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for content processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply during processing"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size to use for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap to use for processing"}},"type":"object","title":"Body_upload_content"},"Body_upload_remote_content":{"properties":{"config_id":{"type":"string","title":"Config Id","description":"ID of the configured remote content source (from /knowledge/config)"},"path":{"type":"string","title":"Path","description":"Path to file or folder in the remote source"},"source_params":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Params","description":"JSON object of per-request parameters forwarded to the source's factory. Used for provider-specific routing that shouldn't be baked into the config. Currently supported keys: GitHub accepts 'repo' ('owner/repo'), letting one configured GitHub source serve multiple repositories the credentials can access."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap for processing"}},"type":"object","required":["config_id","path"],"title":"Body_upload_remote_content"},"ChatConfig":{"properties":{"quick_prompts":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Quick Prompts"}},"type":"object","required":["quick_prompts"],"title":"ChatConfig","description":"Configuration for the Chat page of the AgentOS"},"ChunkerSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["key"],"title":"ChunkerSchema"},"ComponentConfigResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"version":{"type":"integer","title":"Version"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"type":"string","title":"Stage"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","version","stage","config","created_at"],"title":"ComponentConfigResponse"},"ComponentCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Display name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id","description":"Unique identifier for the entity. Auto-generated from name if not provided."},"component_type":{"$ref":"#/components/schemas/ComponentType","description":"Type of entity: agent, team, or workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config","description":"Optional configuration"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["name","component_type"],"title":"ComponentCreate"},"ComponentResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"component_type":{"$ref":"#/components/schemas/ComponentType"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","component_type","created_at"],"title":"ComponentResponse"},"ComponentType":{"type":"string","enum":["agent","team","workflow"],"title":"ComponentType"},"ComponentUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"component_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"}},"type":"object","title":"ComponentUpdate"},"ConfigCreate":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config","description":"The configuration data"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Optional version number"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links","description":"Optional links to child components"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["config"],"title":"ConfigCreate"},"ConfigResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the OS instance"},"available_models":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Models","description":"List of available models"},"os_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Database","description":"ID of the database used for the OS instance"},"databases":{"items":{"type":"string"},"type":"array","title":"Databases","description":"List of database IDs used by the components of the OS instance"},"chat":{"anyOf":[{"$ref":"#/components/schemas/ChatConfig"},{"type":"null"}],"description":"Chat configuration"},"manifest":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Manifest"},"type":"object"},{"type":"null"}],"title":"Manifest","description":"Per-entity UI metadata keyed by agent/team/workflow id"},"session":{"anyOf":[{"$ref":"#/components/schemas/SessionConfig"},{"type":"null"}],"description":"Session configuration"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/MetricsConfig"},{"type":"null"}],"description":"Metrics configuration"},"memory":{"anyOf":[{"$ref":"#/components/schemas/MemoryConfig"},{"type":"null"}],"description":"Memory configuration"},"learning":{"anyOf":[{"$ref":"#/components/schemas/LearningConfig"},{"type":"null"}],"description":"Learning configuration"},"knowledge":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeConfig"},{"type":"null"}],"description":"Knowledge configuration"},"evals":{"anyOf":[{"$ref":"#/components/schemas/EvalsConfig"},{"type":"null"}],"description":"Evaluations configuration"},"traces":{"anyOf":[{"$ref":"#/components/schemas/TracesConfig"},{"type":"null"}],"description":"Traces configuration"},"agents":{"items":{"$ref":"#/components/schemas/AgentSummaryResponse"},"type":"array","title":"Agents","description":"List of registered agents"},"teams":{"items":{"$ref":"#/components/schemas/TeamSummaryResponse"},"type":"array","title":"Teams","description":"List of registered teams"},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Workflows","description":"List of registered workflows"},"interfaces":{"items":{"$ref":"#/components/schemas/InterfaceResponse"},"type":"array","title":"Interfaces","description":"List of available interfaces"}},"type":"object","required":["os_id","databases","agents","teams","workflows","interfaces"],"title":"ConfigResponse","description":"Response schema for the general config endpoint"},"ConfigResponseSchema":{"properties":{"readers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ReaderSchema"},"type":"object"},{"type":"null"}],"title":"Readers","description":"Available content readers"},"readersForType":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Readersfortype","description":"Mapping of content types to reader IDs"},"chunkers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ChunkerSchema"},"type":"object"},{"type":"null"}],"title":"Chunkers","description":"Available chunking strategies"},"filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filters","description":"Available filter tags"},"vector_dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/VectorDbSchema"},"type":"array"},{"type":"null"}],"title":"Vector Dbs","description":"Configured vector databases"},"remote_content_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"type":"array"},{"type":"null"}],"title":"Remote Content Sources","description":"Configured remote content sources (S3, GCS, SharePoint, GitHub)"}},"type":"object","title":"ConfigResponseSchema"},"ConfigUpdate":{"properties":{"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","title":"ConfigUpdate"},"ConflictResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ConflictResponse","example":{"detail":"Resource conflict"}},"ContentResponseSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the content"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"MIME type of the content"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"},"linked_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linked To","description":"ID of related content if linked"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata as key-value pairs"},"access_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Access Count","description":"Number of times content has been accessed"},"status":{"anyOf":[{"$ref":"#/components/schemas/ContentStatus"},{"type":"null"}],"description":"Processing status of the content"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message","description":"Status message or error details"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when content was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when content was last updated"}},"type":"object","required":["id"],"title":"ContentResponseSchema"},"ContentStatus":{"type":"string","enum":["processing","completed","failed"],"title":"ContentStatus","description":"Enumeration of possible content processing statuses."},"ContentStatusResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Content ID"},"status":{"$ref":"#/components/schemas/ContentStatus","description":"Current processing status of the content"},"status_message":{"type":"string","title":"Status Message","description":"Status message or error details","default":""}},"type":"object","required":["status"],"title":"ContentStatusResponse","description":"Response model for content status endpoint."},"Context":{"properties":{"description":{"type":"string","title":"Description"},"value":{"type":"string","title":"Value"}},"additionalProperties":true,"type":"object","required":["description","value"],"title":"Context","description":"Additional context for the agent."},"CreateSessionRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session ID (generated if not provided)"},"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Initial session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"}},"type":"object","title":"CreateSessionRequest"},"DataPart":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data"},"kind":{"type":"string","const":"data","title":"Kind","default":"data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["data"],"title":"DataPart","description":"Represents a structured data segment (e.g., JSON) within a message or artifact."},"DatabaseConfig_EvalsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/EvalsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[EvalsDomainConfig]"},"DatabaseConfig_LearningDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/LearningDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[LearningDomainConfig]"},"DatabaseConfig_MemoryDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MemoryDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MemoryDomainConfig]"},"DatabaseConfig_MetricsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MetricsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MetricsDomainConfig]"},"DatabaseConfig_SessionDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/SessionDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[SessionDomainConfig]"},"DatabaseConfig_TracesDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/TracesDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[TracesDomainConfig]"},"DayAggregatedMetrics":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the metrics record"},"agent_runs_count":{"type":"integer","minimum":0.0,"title":"Agent Runs Count","description":"Total number of agent runs"},"agent_sessions_count":{"type":"integer","minimum":0.0,"title":"Agent Sessions Count","description":"Total number of agent sessions"},"team_runs_count":{"type":"integer","minimum":0.0,"title":"Team Runs Count","description":"Total number of team runs"},"team_sessions_count":{"type":"integer","minimum":0.0,"title":"Team Sessions Count","description":"Total number of team sessions"},"workflow_runs_count":{"type":"integer","minimum":0.0,"title":"Workflow Runs Count","description":"Total number of workflow runs"},"workflow_sessions_count":{"type":"integer","minimum":0.0,"title":"Workflow Sessions Count","description":"Total number of workflow sessions"},"users_count":{"type":"integer","minimum":0.0,"title":"Users Count","description":"Total number of unique users"},"token_metrics":{"additionalProperties":true,"type":"object","title":"Token Metrics","description":"Token usage metrics (input, output, cached, etc.)"},"model_metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Model Metrics","description":"Metrics grouped by model (model_id, provider, count)"},"date":{"type":"string","format":"date-time","title":"Date","description":"Date for which these metrics are aggregated"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when metrics were created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when metrics were last updated"}},"type":"object","required":["id","agent_runs_count","agent_sessions_count","team_runs_count","team_sessions_count","workflow_runs_count","workflow_sessions_count","users_count","token_metrics","model_metrics","date","created_at","updated_at"],"title":"DayAggregatedMetrics","description":"Aggregated metrics for a given day"},"DeleteEvalRunsRequest":{"properties":{"eval_run_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Eval Run Ids","description":"List of evaluation run IDs to delete"}},"type":"object","required":["eval_run_ids"],"title":"DeleteEvalRunsRequest"},"DeleteMemoriesRequest":{"properties":{"memory_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Memory Ids","description":"List of memory IDs to delete"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID to filter memories for deletion"}},"type":"object","required":["memory_ids"],"title":"DeleteMemoriesRequest"},"DeleteSessionRequest":{"properties":{"session_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Session Ids","description":"List of session IDs to delete"},"session_types":{"items":{"$ref":"#/components/schemas/SessionType"},"type":"array","minItems":1,"title":"Session Types","description":"Types of sessions to delete"}},"type":"object","required":["session_ids","session_types"],"title":"DeleteSessionRequest"},"DeveloperMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"developer","title":"Role","default":"developer"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"DeveloperMessage","description":"A developer message."},"DocumentInputContent":{"properties":{"type":{"type":"string","const":"document","title":"Type","default":"document"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"DocumentInputContent","description":"A document input content fragment."},"EvalFilterType":{"type":"string","enum":["agent","team","workflow"],"title":"EvalFilterType"},"EvalRunInput":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID to evaluate"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID to evaluate"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID to use for evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation to run (accuracy, performance, or reliability)"},"input":{"type":"string","minLength":1,"title":"Input","description":"Input text/query for the evaluation"},"additional_guidelines":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Guidelines","description":"Additional guidelines for the evaluation"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for the evaluation"},"num_iterations":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Num Iterations","description":"Number of times to run the evaluation","default":1},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for this evaluation run"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output","description":"Expected output for accuracy evaluation"},"criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criteria","description":"Evaluation criteria for agent-as-judge evaluation"},"scoring_strategy":{"anyOf":[{"type":"string","enum":["numeric","binary"]},{"type":"null"}],"title":"Scoring Strategy","description":"Scoring strategy: 'numeric' (1-10 with threshold) or 'binary' (PASS/FAIL)","default":"binary"},"threshold":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Threshold","description":"Score threshold for pass/fail (1-10), only used with numeric scoring","default":7},"warmup_runs":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Warmup Runs","description":"Number of warmup runs before measuring performance","default":0},"expected_tool_calls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expected Tool Calls","description":"Expected tool calls for reliability evaluation"},"allow_additional_tool_calls":{"type":"boolean","title":"Allow Additional Tool Calls","description":"When True, tool calls not in expected_tool_calls are allowed (subset matching)","default":false},"expected_tool_call_arguments":{"anyOf":[{"additionalProperties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Expected Tool Call Arguments","description":"Expected arguments for specific tool calls, e.g. {\"tool_name\": {\"arg_name\": \"expected_value\"}} or {\"tool_name\": [{\"arg_name\": \"val1\"}, {\"arg_name\": \"val2\"}]}"}},"type":"object","required":["eval_type","input"],"title":"EvalRunInput"},"EvalSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the evaluation run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that was evaluated"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID used in evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that was evaluated"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was evaluated"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the evaluation run"},"evaluated_component_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluated Component Name","description":"Name of the evaluated component"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation (accuracy, performance, or reliability)"},"eval_data":{"additionalProperties":true,"type":"object","title":"Eval Data","description":"Evaluation results and metrics"},"eval_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eval Input","description":"Input parameters used for the evaluation"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when evaluation was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when evaluation was last updated"}},"type":"object","required":["id","eval_type","eval_data"],"title":"EvalSchema"},"EvalType":{"type":"string","enum":["accuracy","agent_as_judge","performance","reliability"],"title":"EvalType"},"EvalsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_EvalsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"EvalsConfig","description":"Configuration for the Evals domain of the AgentOS"},"EvalsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"EvalsDomainConfig","description":"Configuration for the Evals domain of the AgentOS"},"FilePart":{"properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/FileWithBytes"},{"$ref":"#/components/schemas/FileWithUri"}],"title":"File"},"kind":{"type":"string","const":"file","title":"Kind","default":"file"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["file"],"title":"FilePart","description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI."},"FileWithBytes":{"properties":{"bytes":{"type":"string","title":"Bytes"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["bytes"],"title":"FileWithBytes","description":"Represents a file with its content provided directly as a base64-encoded string."},"FileWithUri":{"properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uri":{"type":"string","title":"Uri"}},"type":"object","required":["uri"],"title":"FileWithUri","description":"Represents a file with its content located at a specific URI."},"FilterFieldSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Column/field name used in filter expressions"},"label":{"type":"string","title":"Label","description":"Human-readable display label for the UI"},"type":{"type":"string","title":"Type","description":"Field data type: string, number, datetime, enum"},"operators":{"items":{"type":"string"},"type":"array","title":"Operators","description":"List of valid filter operators for this field"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values","description":"Allowed enum values (for autocomplete/dropdown)"}},"type":"object","required":["key","label","type","operators"],"title":"FilterFieldSchema","description":"Schema describing a single filterable field for the frontend filter bar."},"FilterSchemaResponse":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FilterFieldSchema"},"type":"array","title":"Fields","description":"Available filterable fields"},"logical_operators":{"items":{"type":"string"},"type":"array","title":"Logical Operators","description":"Logical operators for combining filter clauses","default":["AND","OR"]}},"type":"object","required":["fields"],"title":"FilterSchemaResponse","description":"Response for the filter schema endpoint. Tells the FE what fields, operators, and values are available."},"ForbiddenResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ForbiddenResponse","example":{"detail":"Insufficient permissions"}},"FunctionCall":{"properties":{"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"additionalProperties":true,"type":"object","required":["name","arguments"],"title":"FunctionCall","description":"Name and arguments of a function call."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Health status of the service"},"instantiated_at":{"type":"string","format":"date-time","title":"Instantiated At","description":"Timestamp when service was instantiated"}},"type":"object","required":["status","instantiated_at"],"title":"HealthResponse","example":{"instantiated_at":"2025-06-10T12:00:00Z","status":"ok"}},"ImageInputContent":{"properties":{"type":{"type":"string","const":"image","title":"Type","default":"image"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"ImageInputContent","description":"An image input content fragment."},"InfoResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"agno_version":{"type":"string","title":"Agno Version","description":"Version of the agno framework"},"agent_count":{"type":"integer","title":"Agent Count","description":"Number of agents registered in the OS","default":0},"team_count":{"type":"integer","title":"Team Count","description":"Number of teams registered in the OS","default":0},"workflow_count":{"type":"integer","title":"Workflow Count","description":"Number of workflows registered in the OS","default":0},"mcp":{"$ref":"#/components/schemas/McpInfo","description":"MCP server availability for this OS instance"},"auth_mode":{"type":"string","enum":["none","security_key","jwt"],"title":"Auth Mode","description":"Authentication mode enforced on the REST/WS plane of this OS instance. MCP OAuth, when enabled, is described separately under `mcp.oauth`.","default":"none"}},"type":"object","required":["os_id","agno_version"],"title":"InfoResponse","description":"Response schema for the /info endpoint returning lightweight OS metadata."},"InputContentDataSource":{"properties":{"type":{"type":"string","const":"data","title":"Type","default":"data"},"value":{"type":"string","title":"Value"},"mimeType":{"type":"string","title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value","mimeType"],"title":"InputContentDataSource","description":"Inline base64-encoded source."},"InputContentUrlSource":{"properties":{"type":{"type":"string","const":"url","title":"Type","default":"url"},"value":{"type":"string","title":"Value"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value"],"title":"InputContentUrlSource","description":"URL-referenced source."},"InterfaceResponse":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the interface"},"version":{"type":"string","title":"Version","description":"Version of the interface"},"route":{"type":"string","title":"Route","description":"API route path"}},"type":"object","required":["type","version","route"],"title":"InterfaceResponse"},"InternalServerErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"InternalServerErrorResponse","example":{"detail":"Internal server error","error_code":"INTERNAL_SERVER_ERROR"}},"KnowledgeConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeDatabaseConfig"},"type":"array"},{"type":"null"}],"title":"Dbs"},"knowledge_instances":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeInstanceConfig"},"type":"array"},{"type":"null"}],"title":"Knowledge Instances"}},"type":"object","title":"KnowledgeConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeDatabaseConfig":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeDomainConfig"},{"type":"null"}]},"tables":{"items":{"type":"string"},"type":"array","title":"Tables","default":[]}},"type":"object","required":["db_id"],"title":"KnowledgeDatabaseConfig","description":"Configuration for a knowledge database with its tables"},"KnowledgeDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"KnowledgeDomainConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeInstanceConfig":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"db_id":{"type":"string","title":"Db Id"},"table":{"type":"string","title":"Table"}},"type":"object","required":["id","name","db_id","table"],"title":"KnowledgeInstanceConfig","description":"Configuration for a single knowledge instance"},"LearningConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_LearningDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"LearningConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningCreate":{"properties":{"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"content":{"additionalProperties":true,"type":"object","title":"Content","description":"The learning content payload"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID. When the request is authenticated, must match the JWT subject or be omitted/null (which creates a global / non-user-scoped record)."},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"}},"type":"object","required":["learning_type","content"],"title":"LearningCreate","description":"Request body for creating a learning record."},"LearningDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"LearningDomainConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningResponse":{"properties":{"learning_id":{"type":"string","title":"Learning Id","description":"Unique identifier for the learning record"},"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID (for entity-specific learnings)"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type (e.g. 'person', 'company')"},"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"The learning content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Creation timestamp (Unix epoch seconds)"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp (Unix epoch seconds)"}},"type":"object","required":["learning_id","learning_type"],"title":"LearningResponse","description":"A single learning record as returned by the API."},"LearningUpdate":{"properties":{"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Replacement content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Replacement metadata"}},"type":"object","title":"LearningUpdate","description":"Request body for updating a learning record. Identity fields are immutable."},"LearningUserStats":{"properties":{"user_id":{"type":"string","title":"User Id","description":"The user ID"},"last_learning_updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Learning Updated At","description":"Most recent learning update for this user (Unix epoch seconds)"}},"type":"object","required":["user_id"],"title":"LearningUserStats","description":"A user that owns learning records, with their most recent activity.\n\nUsed as a lightweight index for the per-user view: list users here, then drill into a\nsingle user's records via ``GET /learnings?user_id=...``. No per-user count is returned\n-- the user-scoped stores (``user_profile``, ``user_memory``) keep a single record per\nuser, so a record count would always be 1; the actual memory count lives in that\nrecord's ``content``."},"Manifest":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"},"quick_prompts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quick Prompts"}},"type":"object","title":"Manifest","description":"OS-level UI metadata for an agent/team/workflow.\n\nFields here are AgentOS UI metadata only. ``description`` is unrelated to\n``Agent.description`` / ``Team.description`` / ``Workflow.description``,\nwhich are sent to the model.\n\nRendering surfaces:\n- ``description``, ``labels``: home/landing card\n- ``quick_prompts``: chat page"},"McpInfo":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the MCP server is enabled on this OS instance","default":false},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Path where the MCP server is mounted, null when disabled"},"oauth":{"anyOf":[{"$ref":"#/components/schemas/McpOAuthInfo"},{"type":"null"}],"description":"OAuth discovery details when the MCP endpoint is OAuth-protected, null otherwise"}},"type":"object","title":"McpInfo","description":"MCP server availability for the /info endpoint."},"McpOAuthInfo":{"properties":{"authorization_servers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorization Servers","description":"Issuer URL(s) of the authorization server(s) protecting the MCP endpoint"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource","description":"RFC 9728 resource URL advertised for the MCP endpoint"}},"type":"object","title":"McpOAuthInfo","description":"OAuth discovery details for an MCP endpoint protected by ``AgentOS(mcp_auth=...)``."},"MemoryConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MemoryDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MemoryConfig","description":"Configuration for the Memory domain of the AgentOS"},"MemoryDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MemoryDomainConfig","description":"Configuration for the Memory domain of the AgentOS"},"Message":{"properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"kind":{"type":"string","const":"message","title":"Kind","default":"message"},"messageId":{"type":"string","title":"Messageid"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taskid"}},"type":"object","required":["messageId","parts","role"],"title":"Message","description":"Represents a single message in the conversation between a user and an agent."},"Meta":{"properties":{"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of results per page","default":20},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number","default":1}},"type":"object","title":"Meta","description":"Inline metadata schema for pagination."},"MetricsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MetricsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MetricsConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MetricsDomainConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsResponse":{"properties":{"metrics":{"items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"type":"array","title":"Metrics","description":"List of daily aggregated metrics"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp of the most recent metrics update"}},"type":"object","required":["metrics"],"title":"MetricsResponse"},"Model":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"Model"},"ModelResponse":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the model"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"ModelResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"NotFoundResponse","example":{"detail":"Not found","error_code":"NOT_FOUND"}},"NotImplementedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"NotImplementedResponse","example":{"detail":"Operation not supported for this resource type"}},"OptimizeMemoriesRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID to optimize memories for"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model in `provider:model_id` format. Current examples include `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, and `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`."},"apply":{"type":"boolean","title":"Apply","description":"If True, apply optimization changes to database. If False, return preview only without saving.","default":true}},"type":"object","required":["user_id"],"title":"OptimizeMemoriesRequest","description":"Schema for memory optimization request"},"OptimizeMemoriesResponse":{"properties":{"memories":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Memories","description":"List of optimized memory objects"},"memories_before":{"type":"integer","minimum":0.0,"title":"Memories Before","description":"Number of memories before optimization"},"memories_after":{"type":"integer","minimum":0.0,"title":"Memories After","description":"Number of memories after optimization"},"tokens_before":{"type":"integer","minimum":0.0,"title":"Tokens Before","description":"Token count before optimization"},"tokens_after":{"type":"integer","minimum":0.0,"title":"Tokens After","description":"Token count after optimization"},"tokens_saved":{"type":"integer","minimum":0.0,"title":"Tokens Saved","description":"Number of tokens saved through optimization"},"reduction_percentage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Reduction Percentage","description":"Percentage of token reduction achieved"}},"type":"object","required":["memories","memories_before","memories_after","tokens_before","tokens_after","tokens_saved","reduction_percentage"],"title":"OptimizeMemoriesResponse","description":"Schema for memory optimization response"},"PaginatedResponse_ApprovalResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ApprovalResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ApprovalResponse]"},"PaginatedResponse_ComponentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ComponentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ComponentResponse]"},"PaginatedResponse_ContentResponseSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentResponseSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ContentResponseSchema]"},"PaginatedResponse_EvalSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EvalSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[EvalSchema]"},"PaginatedResponse_LearningResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningResponse]"},"PaginatedResponse_LearningUserStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningUserStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningUserStats]"},"PaginatedResponse_RegistryContentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RegistryContentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[RegistryContentResponse]"},"PaginatedResponse_ScheduleResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleResponse]"},"PaginatedResponse_ScheduleRunResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleRunResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleRunResponse]"},"PaginatedResponse_ServiceAccountResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ServiceAccountResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ServiceAccountResponse]"},"PaginatedResponse_SessionSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SessionSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[SessionSchema]"},"PaginatedResponse_TraceDetail_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceDetail"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceDetail]"},"PaginatedResponse_TraceSessionStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSessionStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSessionStats]"},"PaginatedResponse_TraceSummary_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSummary"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSummary]"},"PaginatedResponse_UserMemorySchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserMemorySchema]"},"PaginatedResponse_UserStatsSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserStatsSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserStatsSchema]"},"PaginatedResponse_VectorSearchResult_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VectorSearchResult"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[VectorSearchResult]"},"PaginationInfo":{"properties":{"page":{"type":"integer","minimum":0.0,"title":"Page","description":"Current page number (0-indexed)","default":0},"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of items per page","default":20},"total_pages":{"type":"integer","minimum":0.0,"title":"Total Pages","description":"Total number of pages","default":0},"total_count":{"type":"integer","minimum":0.0,"title":"Total Count","description":"Total count of items","default":0},"search_time_ms":{"type":"number","minimum":0.0,"title":"Search Time Ms","description":"Search execution time in milliseconds","default":0}},"type":"object","title":"PaginationInfo"},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/DataPart"}],"title":"Part"},"ReaderSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the reader"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the reader"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the reader's capabilities"},"chunkers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chunkers","description":"List of supported chunking strategies"}},"type":"object","required":["id"],"title":"ReaderSchema"},"ReasoningMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"reasoning","title":"Role","default":"reasoning"},"content":{"type":"string","title":"Content"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"ReasoningMessage","description":"A reasoning message containing the agent's internal reasoning process."},"RegistryContentResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/RegistryResourceType"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name","type"],"title":"RegistryContentResponse"},"RegistryResourceType":{"type":"string","enum":["tool","model","db","vector_db","schema","function","agent","team","knowledge","memory_manager","session_summary_manager"],"title":"RegistryResourceType","description":"Types of resources that can be stored in a registry."},"RemoteContentSourceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content source"},"name":{"type":"string","title":"Name","description":"Display name for the content source"},"type":{"type":"string","title":"Type","description":"Type of content source (s3, gcs, sharepoint, github, azureblob)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Default path prefix for this source"}},"type":"object","required":["id","name","type"],"title":"RemoteContentSourceSchema","description":"Schema for remote content source configuration."},"ResumeEntry":{"properties":{"interruptId":{"type":"string","title":"Interruptid"},"status":{"type":"string","enum":["resolved","cancelled"],"title":"Status"},"payload":{"anyOf":[{},{"type":"null"}],"title":"Payload"}},"additionalProperties":true,"type":"object","required":["interruptId","status"],"title":"ResumeEntry","description":"A per-interrupt response in the resume array of a RunAgentInput."},"Role":{"type":"string","enum":["agent","user"],"title":"Role","description":"Identifies the sender of the message. `user` for the client, `agent` for the service."},"RunAgentInput":{"properties":{"threadId":{"type":"string","title":"Threadid"},"runId":{"type":"string","title":"Runid"},"parentRunId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentrunid"},"state":{"title":"State"},"messages":{"items":{"oneOf":[{"$ref":"#/components/schemas/DeveloperMessage"},{"$ref":"#/components/schemas/SystemMessage"},{"$ref":"#/components/schemas/AssistantMessage"},{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/ToolMessage"},{"$ref":"#/components/schemas/ActivityMessage"},{"$ref":"#/components/schemas/ReasoningMessage"}],"discriminator":{"propertyName":"role","mapping":{"activity":"#/components/schemas/ActivityMessage","assistant":"#/components/schemas/AssistantMessage","developer":"#/components/schemas/DeveloperMessage","reasoning":"#/components/schemas/ReasoningMessage","system":"#/components/schemas/SystemMessage","tool":"#/components/schemas/ToolMessage","user":"#/components/schemas/UserMessage"}}},"type":"array","title":"Messages"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","title":"Tools"},"context":{"items":{"$ref":"#/components/schemas/Context"},"type":"array","title":"Context"},"forwardedProps":{"title":"Forwardedprops"},"resume":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResumeEntry"},"type":"array"},{"type":"null"}],"title":"Resume"}},"additionalProperties":true,"type":"object","required":["threadId","runId","state","messages","tools","context","forwardedProps"],"title":"RunAgentInput","description":"Input for running an agent."},"RunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that executed this run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"RunSchema"},"RunStatus":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","PAUSED","CANCELLED","ERROR","REGENERATED"],"title":"RunStatus","description":"State of the main run response"},"ScheduleCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"cron_expr":{"type":"string","maxLength":128,"title":"Cron Expr"},"endpoint":{"type":"string","maxLength":512,"title":"Endpoint"},"method":{"type":"string","maxLength":10,"title":"Method","default":"POST"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"type":"string","maxLength":64,"title":"Timezone","default":"UTC"},"timeout_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Timeout Seconds","default":3600},"max_retries":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Max Retries","default":0},"retry_delay_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Retry Delay Seconds","default":60}},"type":"object","required":["name","cron_expr","endpoint"],"title":"ScheduleCreate"},"ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"cron_expr":{"type":"string","title":"Cron Expr"},"timezone":{"type":"string","title":"Timezone"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"max_retries":{"type":"integer","title":"Max Retries"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","method","endpoint","cron_expr","timezone","timeout_seconds","max_retries","retry_delay_seconds","enabled"],"title":"ScheduleResponse"},"ScheduleRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"schedule_id":{"type":"string","title":"Schedule Id"},"attempt":{"type":"integer","title":"Attempt"},"triggered_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triggered At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"status":{"type":"string","title":"Status"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","schedule_id","attempt","status"],"title":"ScheduleRunResponse"},"ScheduleStateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","enabled"],"title":"ScheduleStateResponse","description":"Trimmed response for state-changing operations (enable/disable)."},"ScheduleUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"cron_expr":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Cron Expr"},"endpoint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Endpoint"},"method":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Method"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Timezone"},"timeout_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":1.0},{"type":"null"}],"title":"Timeout Seconds"},"max_retries":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Max Retries"},"retry_delay_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":1.0},{"type":"null"}],"title":"Retry Delay Seconds"}},"type":"object","title":"ScheduleUpdate"},"ScopeItem":{"properties":{"scope":{"type":"string","title":"Scope","description":"Scope string, e.g. 'agents:*:run'"},"effect":{"type":"string","enum":["allow","deny"],"title":"Effect","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["scope"],"title":"ScopeItem","description":"Write shape for one scope grant \u2014 the canonical RBAC payload for every scope-bearing API.\n\nEndpoints that take scopes accept these objects only (a bare string is a validation\nerror). ``effect`` is constrained here so every consumer rejects typos at the model\nlayer; whether ``deny`` is *semantically* legal stays per-endpoint (roles support\ndeny rules, service-account tokens are pure grants and reject it)."},"ScopeSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Scope id (always null here; kept for shape parity with the cloud RBAC API, which addresses scopes individually)"},"raw":{"type":"string","title":"Raw","description":"Original scope string, e.g. 'agents:*:run'"},"namespace":{"type":"string","title":"Namespace","description":"Resource namespace, e.g. 'agents'"},"sub_namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Namespace","description":"Specific resource id or wildcard '*'"},"permission":{"type":"string","title":"Permission","description":"Action, e.g. 'read' / 'run' / 'write'"},"value":{"type":"string","title":"Value","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["raw","namespace","permission"],"title":"ScopeSchema","description":"Read shape for one scope \u2014 the parsed RBAC payload shared by every scope-bearing API.\n\nMirrors the cloud RBAC scope shape ({raw, namespace, sub_namespace, permission, value})\nso a frontend renders scopes from any AgentOS API with one integration."},"SendMessageRequest":{"description":"Represents a JSON-RPC request for the `message/send` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/send","default":"message/send","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendMessageRequest","type":"object"},"SendMessageSuccessResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id"},"jsonrpc":{"type":"string","const":"2.0","title":"Jsonrpc","default":"2.0"},"result":{"anyOf":[{"$ref":"#/components/schemas/Task"},{"$ref":"#/components/schemas/Message"}],"title":"Result"}},"type":"object","required":["result"],"title":"SendMessageSuccessResponse","description":"Represents a successful JSON-RPC response for the `message/send` method."},"SendStreamingMessageRequest":{"description":"Represents a JSON-RPC request for the `message/stream` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/stream","default":"message/stream","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendStreamingMessageRequest","type":"object"},"ServiceAccountCreate":{"properties":{"name":{"type":"string","maxLength":63,"title":"Name","description":"Machine identity name (lowercase slug), e.g. 'claude-code' or 'github-actions'"},"scopes":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScopeItem"},"type":"array"},{"type":"null"}],"title":"Scopes","description":"Scopes granted to the token, as {scope, effect} objects (the shared RBAC write shape; token scopes are grants, so only effect='allow' is accepted). Defaults to run and read scopes: agents:run, teams:run, workflows:run, sessions:read"},"expires_in_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Expires In Days","description":"Days until the token expires (default: 90)","default":90},"never_expires":{"type":"boolean","title":"Never Expires","description":"Mint a non-expiring token. Must be set explicitly; overrides expires_in_days.","default":false},"allow_privileged_scopes":{"type":"boolean","title":"Allow Privileged Scopes","description":"Required to grant privileged scopes: any write or delete action, the admin scope, or any service_accounts scope. Privileged tokens must be deliberate, never accidental.","default":false}},"type":"object","required":["name"],"title":"ServiceAccountCreate"},"ServiceAccountCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"token":{"type":"string","title":"Token","description":"The plaintext token. Shown exactly once - store it securely now."}},"type":"object","required":["id","name","principal","token_prefix","created_at","token"],"title":"ServiceAccountCreateResponse","description":"Returned once, at creation. The token is never retrievable again."},"ServiceAccountResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","name","principal","token_prefix","created_at"],"title":"ServiceAccountResponse","description":"Service account metadata. Never includes the token hash or plaintext."},"ServiceUnavailableResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ServiceUnavailableResponse","example":{"detail":"Feature not supported by the configured service"}},"SessionConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_SessionDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"SessionConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"SessionDomainConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier for the session"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state data of the session"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when session was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when session was last updated"},"session_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type","description":"Type of session: agent, team, or workflow"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["session_id","session_name"],"title":"SessionSchema"},"SessionType":{"type":"string","enum":["agent","team","workflow"],"title":"SessionType"},"SlackChallengeResponse":{"properties":{"challenge":{"type":"string","title":"Challenge","description":"Challenge string to echo back to Slack"}},"type":"object","required":["challenge"],"title":"SlackChallengeResponse"},"SlackEventResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"}},"type":"object","title":"SlackEventResponse"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"SourceFileSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Full path/key of the file"},"name":{"type":"string","title":"Name","description":"Display name (filename)"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"File size in bytes"},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified","description":"ISO 8601 timestamp of last modification"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"MIME type of the file"}},"type":"object","required":["key","name"],"title":"SourceFileSchema","description":"Schema for a file in a content source."},"SourceFilesResponseSchema":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"ID of the content source"},"source_name":{"type":"string","title":"Source Name","description":"Name of the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Prefix filter that was applied"},"folders":{"items":{"$ref":"#/components/schemas/SourceFolderSchema"},"type":"array","title":"Folders","description":"Subfolders at this level"},"files":{"items":{"$ref":"#/components/schemas/SourceFileSchema"},"type":"array","title":"Files","description":"List of files at this level"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["source_id","source_name","meta"],"title":"SourceFilesResponseSchema","description":"Response schema for listing files in a content source."},"SourceFolderSchema":{"properties":{"prefix":{"type":"string","title":"Prefix","description":"Full prefix to use for navigating into this folder"},"name":{"type":"string","title":"Name","description":"Display name of the folder"},"is_empty":{"type":"boolean","title":"Is Empty","description":"Whether the folder contains any files","default":false}},"type":"object","required":["prefix","name"],"title":"SourceFolderSchema","description":"Schema for a folder in a content source."},"SystemMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"system","title":"Role","default":"system"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"SystemMessage","description":"A system message."},"Task":{"properties":{"artifacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Artifact"},"type":"array"},{"type":"null"}],"title":"Artifacts"},"contextId":{"type":"string","title":"Contextid"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"History"},"id":{"type":"string","title":"Id"},"kind":{"type":"string","const":"task","title":"Kind","default":"task"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"status":{"$ref":"#/components/schemas/TaskStatus"}},"type":"object","required":["contextId","id","status"],"title":"Task","description":"Represents a single, stateful operation or conversation between a client and an agent."},"TaskState":{"type":"string","enum":["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"],"title":"TaskState","description":"Defines the lifecycle states of a Task."},"TaskStatus":{"properties":{"message":{"anyOf":[{"$ref":"#/components/schemas/Message"},{"type":"null"}]},"state":{"$ref":"#/components/schemas/TaskState"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp","examples":["2023-10-27T10:00:00Z"]}},"type":"object","required":["state"],"title":"TaskStatus","description":"Represents the status of a task at a specific point in time."},"TeamResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"members":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"$ref":"#/components/schemas/TeamResponse"}]},"type":"array"},{"type":"null"}],"title":"Members"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"TeamResponse"},"TeamRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the team run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that executed this run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the team run"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this team run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this team run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this team run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this team run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"TeamRunSchema"},"TeamSessionDetailSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID used in this session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of team interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"team_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Team Data","description":"Team-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"}},"type":"object","required":["session_id","session_name"],"title":"TeamSessionDetailSchema"},"TeamSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the team"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the team"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the team"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Team execution mode (coordinate, route, broadcast, tasks)"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the team leader"}},"type":"object","title":"TeamSummaryResponse"},"TelegramStatusResponse":{"properties":{"status":{"type":"string","title":"Status","default":"available"}},"type":"object","title":"TelegramStatusResponse"},"TelegramWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status"}},"type":"object","required":["status"],"title":"TelegramWebhookResponse"},"TextInputContent":{"properties":{"type":{"type":"string","const":"text","title":"Type","default":"text"},"text":{"type":"string","title":"Text"}},"additionalProperties":true,"type":"object","required":["text"],"title":"TextInputContent","description":"A text fragment in a multimodal user message."},"TextPart":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"TextPart","description":"Represents a text segment within a message or artifact."},"Tool":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{},{"type":"null"}],"title":"Parameters"}},"additionalProperties":true,"type":"object","required":["name","description"],"title":"Tool","description":"A tool definition."},"ToolCall":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/FunctionCall"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","function"],"title":"ToolCall","description":"A tool call, modelled after OpenAI tool calls."},"ToolMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"tool","title":"Role","default":"tool"},"content":{"type":"string","title":"Content"},"toolCallId":{"type":"string","title":"Toolcallid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content","toolCallId"],"title":"ToolMessage","description":"A tool result message."},"TraceDetail":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent/workflow"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the agent/workflow"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"},"tree":{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array","title":"Tree","description":"Hierarchical tree of spans (root nodes)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at","tree"],"title":"TraceDetail","description":"Detailed trace information with hierarchical span tree"},"TraceNode":{"properties":{"id":{"type":"string","title":"Id","description":"Span ID"},"name":{"type":"string","title":"Name","description":"Span name (e.g., 'agent.run', 'llm.invoke')"},"type":{"type":"string","title":"Type","description":"Span kind (AGENT, TEAM, WORKFLOW, LLM, TOOL)"},"duration":{"type":"string","title":"Duration","description":"Human-readable duration (e.g., '123ms', '1.5s')"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"End time (Pydantic auto-serializes to ISO 8601)"},"status":{"type":"string","title":"Status","description":"Status code (OK, ERROR)"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the span"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the span"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"spans":{"anyOf":[{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array"},{"type":"null"}],"title":"Spans","description":"Child spans in the trace hierarchy"},"step_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Type","description":"Workflow step type (Step, Condition, function, Agent, Team)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional span attributes and data"},"extra_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Data","description":"Flexible field for custom attributes and additional data"}},"type":"object","required":["id","name","type","duration","start_time","end_time","status"],"title":"TraceNode","description":"Recursive node structure for rendering trace hierarchy in the frontend"},"TraceSearchGroupBy":{"type":"string","enum":["run","session"],"title":"TraceSearchGroupBy","description":"Grouping options for trace search results."},"TraceSearchRequest":{"properties":{"filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter","description":"FilterExpr DSL as JSON dict. Supports operators: EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH, AND, OR, NOT."},"group_by":{"$ref":"#/components/schemas/TraceSearchGroupBy","description":"Grouping mode: 'run' returns individual TraceDetail, 'session' returns aggregated TraceSessionStats.","default":"run"},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number (1-indexed)","default":1},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"Number of traces per page (max 100)","default":20}},"type":"object","title":"TraceSearchRequest","description":"Request body for POST /traces/search with advanced filtering.\n\nThe filter field accepts a FilterExpr DSL dict supporting composable queries\nwith AND/OR/NOT logic and operators like EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH.\n\nExample for run grouping (default):\n {\n \"filter\": {\n \"op\": \"AND\",\n \"conditions\": [\n {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n {\"op\": \"CONTAINS\", \"key\": \"user_id\", \"value\": \"admin\"}\n ]\n },\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n }\n\nExample for session grouping:\n {\n \"filter\": {\"op\": \"EQ\", \"key\": \"agent_id\", \"value\": \"my-agent\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n }"},"TraceSessionStats":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID(s) used in the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID associated with the session"},"total_traces":{"type":"integer","title":"Total Traces","description":"Total number of traces in this session"},"first_trace_at":{"type":"string","format":"date-time","title":"First Trace At","description":"Time of first trace (Pydantic auto-serializes to ISO 8601)"},"last_trace_at":{"type":"string","format":"date-time","title":"Last Trace At","description":"Time of last trace (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["session_id","total_traces","first_trace_at","last_trace_at"],"title":"TraceSessionStats","description":"Aggregated trace statistics grouped by session"},"TraceSummary":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR, UNSET)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at"],"title":"TraceSummary","description":"Summary information for trace list view"},"TracesConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_TracesDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"TracesConfig","description":"Configuration for the Traces domain of the AgentOS"},"TracesDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"TracesDomainConfig","description":"Configuration for the Traces domain of the AgentOS"},"UnauthenticatedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"UnauthenticatedResponse","example":{"detail":"Unauthenticated access","error_code":"UNAUTHENTICATED"}},"UpdateEvalRunRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"New name for the evaluation run"}},"type":"object","required":["name"],"title":"UpdateEvalRunRequest"},"UpdateSessionRequest":{"properties":{"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Updated session name"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Updated session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Updated metadata"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary","description":"Session summary"}},"type":"object","title":"UpdateSessionRequest"},"UserMemoryCreateSchema":{"properties":{"memory":{"type":"string","maxLength":5000,"minLength":1,"title":"Memory","description":"Memory content text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags to categorize the memory"}},"type":"object","required":["memory"],"title":"UserMemoryCreateSchema","description":"Define the payload expected for creating a new user memory"},"UserMemorySchema":{"properties":{"memory_id":{"type":"string","title":"Memory Id","description":"Unique identifier for the memory"},"memory":{"type":"string","title":"Memory","description":"Memory content text"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags associated with the memory"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID associated with this memory"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with this memory"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when memory was last updated"}},"type":"object","required":["memory_id","memory"],"title":"UserMemorySchema"},"UserMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"user","title":"Role","default":"user"},"content":{"anyOf":[{"type":"string"},{"items":{"oneOf":[{"$ref":"#/components/schemas/TextInputContent"},{"$ref":"#/components/schemas/ImageInputContent"},{"$ref":"#/components/schemas/AudioInputContent"},{"$ref":"#/components/schemas/VideoInputContent"},{"$ref":"#/components/schemas/DocumentInputContent"},{"$ref":"#/components/schemas/BinaryInputContent"}],"discriminator":{"propertyName":"type","mapping":{"audio":"#/components/schemas/AudioInputContent","binary":"#/components/schemas/BinaryInputContent","document":"#/components/schemas/DocumentInputContent","image":"#/components/schemas/ImageInputContent","text":"#/components/schemas/TextInputContent","video":"#/components/schemas/VideoInputContent"}}},"type":"array"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"UserMessage","description":"A user message supporting text or multimodal content."},"UserStatsSchema":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"total_memories":{"type":"integer","minimum":0.0,"title":"Total Memories","description":"Total number of memories for this user"},"last_memory_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Memory Updated At","description":"Timestamp of the most recent memory update"}},"type":"object","required":["user_id","total_memories"],"title":"UserStatsSchema","description":"Schema for user memory statistics"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"ValidationErrorResponse","example":{"detail":"Validation error","error_code":"VALIDATION_ERROR"}},"VectorDbSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the vector database"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the vector database"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the vector database"},"search_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Search Types","description":"List of supported search types (vector, keyword, hybrid)"}},"type":"object","required":["id"],"title":"VectorDbSchema"},"VectorSearchRequestSchema":{"properties":{"query":{"type":"string","title":"Query","description":"The search query text"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database ID to search in"},"knowledge_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledge Id","description":"Knowledge base ID to search in"},"vector_db_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vector Db Ids","description":"List of vector database IDs to search in"},"search_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Type","description":"The type of search to perform (vector, keyword, hybrid)"},"max_results":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Max Results","description":"The maximum number of results to return"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Filters to apply to the search results"},"meta":{"anyOf":[{"$ref":"#/components/schemas/Meta"},{"type":"null"}],"description":"Pagination metadata. Limit and page number to return a subset of results."}},"type":"object","required":["query"],"title":"VectorSearchRequestSchema","description":"Schema for vector search request."},"VectorSearchResult":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the search result document"},"content":{"type":"string","title":"Content","description":"Content text of the document"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the document"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Metadata associated with the document"},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"Usage statistics (e.g., token counts)"},"reranking_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reranking Score","description":"Reranking score for relevance"},"content_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Id","description":"ID of the source content"},"content_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Origin","description":"Origin URL or source of the content"},"size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"}},"type":"object","required":["id","content"],"title":"VectorSearchResult","description":"Schema for search result documents."},"VideoInputContent":{"properties":{"type":{"type":"string","const":"video","title":"Type","default":"video"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"VideoInputContent","description":"A video input content fragment."},"WhatsAppWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status","default":"ok"}},"type":"object","title":"WhatsAppWebhookResponse"},"WorkflowResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema","description":"Input schema for the workflow"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps","description":"List of workflow steps"},"agent":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"type":"null"}],"description":"Agent configuration if used"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamResponse"},{"type":"null"}],"description":"Team configuration if used"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"workflow_agent":{"type":"boolean","title":"Workflow Agent","description":"Whether this workflow uses a WorkflowAgent","default":false},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowResponse"},"WorkflowRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the workflow run"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the workflow"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was executed"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the workflow"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"Type of content returned"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status of the workflow run"},"step_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Results","description":"Results from each workflow step"},"step_executor_runs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Executor Runs","description":"Executor runs for each step"},"step_requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Requirements","description":"HITL step requirements (resolved state for historical display)"},"pause_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Kind","description":"Kind of HITL pause: 'step' or 'executor'"},"paused_step_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Step Name","description":"Name of the step that caused the pause"},"paused_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Paused Step Index","description":"Index of the step that caused the pause"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the workflow"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the workflow"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the workflow"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the workflow"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the workflow"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"}},"type":"object","required":["run_id"],"title":"WorkflowRunSchema"},"WorkflowSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID used in this session"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name","description":"Name of the workflow"},"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Data","description":"Complete session data"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current workflow state"},"workflow_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Data","description":"Workflow-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["session_id","session_name"],"title":"WorkflowSessionDetailSchema"},"WorkflowSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowSummaryResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} +{"openapi":"3.1.0","info":{"title":"Agno API Reference","description":"The all-in-one, private, secure agent platform that runs in your cloud.","version":"2.7.4"},"paths":{"/":{"get":{"tags":["Home"],"summary":"API Information","description":"Return the AgentOS instance name, ID, and version.","operationId":"get_api_info","responses":{"200":{"description":"API information retrieved successfully","content":{"application/json":{"schema":{"properties":{"name":{"type":"string","title":"Name"},"id":{"type":"string","title":"Id"},"version":{"type":"string","title":"Version"}},"type":"object","required":["name","id","version"],"title":"ApiInfoResponse"},"examples":{"home":{"summary":"Example home response","value":{"name":"AgentOS API","id":"demo-os","version":"1.0.0"}}}}}}}}},"/health":{"get":{"tags":["Health"],"summary":"Health Check","description":"Check the health status of the AgentOS API. Returns a simple status indicator.","operationId":"health_check","responses":{"200":{"description":"API is healthy and operational","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"},"example":{"status":"ok","instantiated_at":"2025-06-10T12:00:00Z"}}}}}}},"/info":{"get":{"tags":["Core"],"summary":"Get OS Info","description":"Return lightweight, unauthenticated metadata about this AgentOS instance.","operationId":"get_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoResponse"}}}}}}},"/config":{"get":{"tags":["Core"],"summary":"Get OS Configuration","description":"Retrieve the complete configuration of the AgentOS instance, including:\n\n- Available models and databases\n- Registered agents, teams, and workflows\n- Chat, session, memory, knowledge, and evaluation configurations\n- Available interfaces and their routes","operationId":"get_config","responses":{"200":{"description":"OS configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"},"example":{"description":"Example AgentOS configuration","available_models":[],"databases":["9c884dc4-9066-448c-9074-ef49ec7eb73c"],"session":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Sessions"}}]},"metrics":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Metrics"}}]},"memory":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Memory"}}]},"knowledge":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Knowledge"}}]},"evals":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Evals"}}]},"agents":[{"id":"main-agent","name":"Main Agent","db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c"}],"teams":[],"workflows":[],"interfaces":[],"os_id":"demo"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/models":{"get":{"tags":["Core"],"summary":"Get Available Models","description":"Retrieve a list of all unique models currently used by agents and teams in this OS instance. This includes the model ID and provider information for each model.","operationId":"get_models","responses":{"200":{"description":"List of models retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Response Get Models"},"example":[{"id":"gpt-4","provider":"openai"},{"id":"claude-3-sonnet","provider":"anthropic"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}/runs":{"post":{"tags":["Agents"],"summary":"Create Agent Run","description":"Execute an agent with a message and optional media files. Supports both streaming and non-streaming responses.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_agent_run"}}}},"responses":{"200":{"description":"Agent run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"examples":{"event_stream":{"summary":"Example event stream response","value":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Agents"],"summary":"List Agent Runs","description":"List runs for an agent within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_agent_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED","title":"Status"},"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RunSchema"},"type":"array","title":"Response List Agent Runs"}}}},"400":{"description":"Run listing is unavailable for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Agent resolution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/cancel":{"post":{"tags":["Agents"],"summary":"Cancel Agent Run","description":"Cancel a currently executing agent run. This will attempt to stop the agent's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run cancellation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/continue":{"post":{"tags":["Agents"],"summary":"Continue Agent Run","description":"Advance a persisted agent run from its current state. Dispatches on the body shape and the persisted run state (see ADR-003 in specs/agno/features/checkpointing/decisions.md).\n\n**Variants:**\n- PAUSED + tools provided \u2192 apply HITL tool results, resume\n- PAUSED + resolved admin approval (empty tools) \u2192 apply resolution, resume\n- RUNNING / ERROR (no unresolved HITL requirements) \u2192 resume from last persisted state\n- COMPLETED + new tools \u2192 continue with appended messages\n\n**Tools Parameter:**\nJSON string containing array of tool execution objects with results. Optional \u2014 only required when the persisted run has unresolved HITL requirements.","operationId":"continue_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_agent_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid tools or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Agent run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run continuation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"503":{"description":"Remote agent is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/agents/{agent_id}/sessions/{session_id}/fork":{"post":{"tags":["Agents"],"summary":"Fork Agent Session","description":"Deep-copy a session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_agent_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents":{"get":{"tags":["Agents"],"summary":"List All Agents","description":"Retrieve a comprehensive list of all agents configured in this OS instance.\n\n**Returns:**\n- Agent metadata (ID, name, description)\n- Model configuration and capabilities\n- Available tools and their configurations\n- Session, knowledge, memory, and reasoning settings\n- Only meaningful (non-default) configurations are included","operationId":"get_agents","responses":{"200":{"description":"List of agents retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentResponse"},"type":"array","title":"Response Get Agents"},"example":[{"id":"main-agent","name":"Main Agent","db_id":"c6bf0644-feb8-4930-a305-380dae5ad6aa","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Details","description":"Retrieve detailed configuration and capabilities of a specific agent.\n\n**Returns comprehensive agent information including:**\n- Model configuration and provider details\n- Complete tool inventory and configurations\n- Session management settings\n- Knowledge base and memory configurations\n- Reasoning capabilities and settings\n- System prompts and response formatting options","operationId":"get_agent","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Agent details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"},"example":{"id":"main-agent","name":"Main Agent","db_id":"9e064c70-6821-4840-a333-ce6230908a70","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Run","description":"Retrieve the status and output of an agent run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Agents"],"summary":"List Agent Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_agent_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Agents"],"summary":"Get Agent Run Checkpoint Snapshot","description":"Return a derived run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_agent_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/resume":{"post":{"tags":["Agents"],"summary":"Resume Agent Run Stream","description":"Resume an SSE stream for an agent run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_agent_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_agent_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Not supported for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs":{"post":{"tags":["Teams"],"summary":"Create Team Run","description":"Execute a team collaboration with multiple agents working together on a task.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_team_run"}}}},"responses":{"200":{"description":"Team run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Teams"],"summary":"List Team Runs","description":"List runs for a team within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_team_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/cancel":{"post":{"tags":["Teams"],"summary":"Cancel Team Run","description":"Cancel a currently executing team run. This will attempt to stop the team's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel team run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/resume":{"post":{"tags":["Teams"],"summary":"Resume Team Run Stream","description":"Resume an SSE stream for a team run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_team_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_team_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory teams. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/continue":{"post":{"tags":["Teams"],"summary":"Continue Team Run","description":"Continue a paused or incomplete team run with updated requirements.\n\n**Use Cases:**\n- Resume execution after tool approval/rejection\n- Provide manual tool execution results\n- Resume after admin approval (requirements can be empty; resolution fetched from DB)\n\n**Requirements Parameter:**\nJSON string containing array of requirement objects with tool execution results.\nCan be empty when an admin-required approval has been resolved.","operationId":"continue_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_team_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid requirements or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Team run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Remote team is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/teams/{team_id}/sessions/{session_id}/fork":{"post":{"tags":["Teams"],"summary":"Fork Team Session","description":"Deep-copy a team session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_team_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams":{"get":{"tags":["Teams"],"summary":"List Accessible Teams","description":"Retrieve configured team metadata, models, members, knowledge, and memory settings. When authorization is enabled, in-memory team registrations are filtered by caller scopes. Database-loaded team components are also included.","operationId":"get_teams","responses":{"200":{"description":"List of teams retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamResponse"},"type":"array","title":"Response Get Teams"},"example":[{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"agno_memories","app_url":"/memory/1","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/teams/{team_id}":{"get":{"tags":["Teams"],"summary":"Get Team Details","description":"Retrieve detailed configuration and member information for a specific team.","operationId":"get_team","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"},"example":{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}":{"get":{"tags":["Teams"],"summary":"Get Team Run","description":"Retrieve the status and output of a team run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Teams"],"summary":"List Team Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored team run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_team_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Teams"],"summary":"Get Team Run Checkpoint Snapshot","description":"Return a derived team run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_team_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows":{"get":{"tags":["Workflows"],"summary":"List All Workflows","description":"Retrieve a comprehensive list of all workflows configured in this OS instance.\n\n**Return Information:**\n- Workflow metadata (ID, name, description)\n- Input schema requirements\n- Step sequence and execution flow\n- Associated agents and teams","operationId":"get_workflows","responses":{"200":{"description":"List of workflows retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Response Get Workflows"},"example":[{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/workflows/{workflow_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Details","description":"Retrieve detailed configuration and step information for a specific workflow.","operationId":"get_workflow","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Workflow version to retrieve","title":"Version"},"description":"Workflow version to retrieve"}],"responses":{"200":{"description":"Workflow details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"},"example":{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs":{"post":{"tags":["Workflows"],"summary":"Execute Workflow","description":"Execute a workflow with the provided input data. Workflows can run in streaming or batch mode.\n\n**Execution Modes:**\n- **Streaming (`stream=true`)**: Real-time step-by-step execution updates via SSE\n- **Non-Streaming (`stream=false`)**: Complete workflow execution with final result\n\n**Workflow Execution Process:**\n1. Input validation against workflow schema\n2. Sequential or parallel step execution based on workflow design\n3. Data flow between steps with transformation\n4. Error handling and automatic retries where configured\n5. Final result compilation and response\n\n**Session Management:**\nWorkflows support session continuity for stateful execution across multiple runs.","operationId":"create_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_run"}}}},"responses":{"200":{"description":"Workflow executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid input data or workflow configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Workflow execution error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"List Workflow Runs","description":"List runs for a workflow within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_workflow_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/continue":{"post":{"tags":["Workflows"],"summary":"Continue Workflow Run","description":"Continue a paused workflow run with resolved requirements.\n\n**Use Cases:**\n- Resume after step-level HITL (confirmation, user input, router selection)\n- Resume after executor-level HITL (agent/team tool confirmation within a step)\n\n**Requirements Parameter:**\nJSON string containing the resolved step requirements.","operationId":"continue_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_workflow_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: StepCompleted\ndata: {\"step_name\": \"step1\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid step requirements or factory input, missing required session ID, rejected input, or remote workflow continuation requested","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is not paused and cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/cancel":{"post":{"tags":["Workflows"],"summary":"Cancel Workflow Run","description":"Cancel a currently executing workflow run, stopping all active steps and cleanup.\n**Note:** Complex workflows with multiple parallel steps may take time to fully cancel.","operationId":"cancel_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found, or the requested run was not found in the caller's session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel workflow run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/resume":{"post":{"tags":["Workflows"],"summary":"Resume Workflow Run Stream","description":"Resume an SSE stream for a workflow run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_workflow_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_workflow_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory workflows. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Run","description":"Retrieve the status and output of a workflow run. Use this to poll for run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/slack/events":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Receives incoming Slack events (messages, mentions, thread starts).\n\n**URL Verification:** On first setup, Slack sends a `url_verification` challenge. The endpoint echoes back the challenge string.\n\n**Event Processing:** Normal events are acknowledged immediately with `{\"status\": \"ok\"}` and processed in the background. This prevents Slack's 3-second retry timeout.\n\n**Retry Handling:** Events with `X-Slack-Retry-Num` header are duplicates and return 200 without reprocessing.\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Event Subscriptions > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for creating a Slack App or use the [manifest](/agent-os/interfaces/slack/setup#2-create-the-slack-app) for quick setup.\n","operationId":"slack_events_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SlackChallengeResponse"},{"$ref":"#/components/schemas/SlackEventResponse"}],"title":"Response Slack Events Simple Agent"}}}},"400":{"description":"Missing Slack headers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured, or the event body is not valid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number (present on retried events)"}]}},"/slack/interactions":{"post":{"tags":["Slack"],"summary":"Slack Interactions","description":"Handles Slack interactive components for Human-in-the-Loop (HITL) workflows.\n\n**Supported Actions:**\n- `row_approve` - Approve a pending tool call\n- `row_reject` - Reject a pending tool call\n- `submit_pause` - Submit form data for a paused workflow\n- `check_status` - Check an admin approval and resume an approved run\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Interactivity & Shortcuts > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for step-by-step instructions or the [HITL guide](/agent-os/interfaces/slack/hitl) for approval workflows.\n","operationId":"slack_interactions_simple_agent","responses":{"200":{"description":"Interaction accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackEventResponse"}}}},"400":{"description":"Missing Slack headers or malformed interaction payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number. Retried interactions return 200 without reprocessing."}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"URL-encoded JSON interaction payload (Slack sends interactive component data as a single form field)"}}}}}}}},"/whatsapp/status":{"get":{"tags":["Whatsapp"],"summary":"Status","operationId":"whatsapp_status_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"WhatsAppStatusResponse","example":{"status":"available"}}}}}}}},"/whatsapp/webhook":{"get":{"tags":["Whatsapp"],"summary":"Whatsapp Verify","description":"Handle WhatsApp webhook verification","operationId":"whatsapp_verify_simple_agent","responses":{"200":{"description":"Webhook challenge accepted","content":{"text/plain":{"schema":{"type":"string"},"example":"challenge-token"}}},"400":{"description":"No challenge was provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid verify token or mode","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Webhook verification is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"hub.mode","in":"query","required":true,"schema":{"type":"string"},"description":"Webhook verification mode. Meta sends `subscribe`."},{"name":"hub.verify_token","in":"query","required":true,"schema":{"type":"string"},"description":"Verification token configured for the WhatsApp interface."},{"name":"hub.challenge","in":"query","required":true,"schema":{"type":"string"},"description":"Challenge returned as plain text after successful verification."}]},"post":{"tags":["Whatsapp"],"summary":"Whatsapp Webhook","description":"Process incoming WhatsApp messages","operationId":"whatsapp_webhook_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppWebhookResponse"}}}},"403":{"description":"Invalid webhook signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Signature validation is not configured, or the JSON body is malformed or is not an object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Hub-Signature-256","in":"header","required":true,"schema":{"type":"string"},"description":"SHA-256 HMAC signature for the raw request body, prefixed with `sha256=`"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}},"/telegram/status":{"get":{"tags":["Telegram"],"summary":"Telegram Status","operationId":"telegram_status_simple-agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramStatusResponse"}}}}}}},"/telegram/webhook":{"post":{"tags":["Telegram"],"summary":"Telegram Webhook","operationId":"telegram_webhook_simple-agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramWebhookResponse"}}}},"403":{"description":"Invalid webhook secret token"}}}},"/agui":{"post":{"tags":["AGUI"],"summary":"Run Agent","operationId":"run_agent_agui_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentInput"}}},"required":true},"responses":{"200":{"description":"Server-sent event stream","content":{"text/event-stream":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/status":{"get":{"tags":["AGUI"],"summary":"Get Status","operationId":"get_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/a2a/agents/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Agent Card","operationId":"get_agent_card_a2a_agents__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/a2a/agents/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Agent","description":"Send a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"A2A is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/agents/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Agent Task","description":"Get the status and result of an agent task by ID. `params.contextId` identifies the session containing the task.","operationId":"get_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent task retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Missing task or context ID, or task polling requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"Task polling is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/get","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/agents/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Agent Task","description":"Cancel a running agent task. Scoped non-admin callers must identify the task's session with `params.contextId`.","operationId":"cancel_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent task canceled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"canceled"}}}}}},"400":{"description":"Missing task or required context ID, or task cancellation requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"Task cancellation is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/cancel","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/agents/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Agent","description":"Stream a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/teams/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Team Card","operationId":"get_team_card_a2a_teams__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/a2a/teams/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Team","description":"Send a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/teams/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Team Task","description":"Get the status and result of a team task by ID. `params.contextId` identifies the session containing the task.","operationId":"get_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team task retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Missing task or context ID, or task polling requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/get","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/teams/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Team Task","description":"Cancel a running team task. Scoped non-admin callers must identify the task's session with `params.contextId`.","operationId":"cancel_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team task canceled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"canceled"}}}}}},"400":{"description":"Missing task or required context ID, or task cancellation requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/cancel","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/teams/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Team","description":"Stream a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/workflows/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Workflow Card","operationId":"get_workflow_card_a2a_workflows__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Workflow card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/a2a/workflows/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Workflow","description":"Send a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/workflows/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Workflow","description":"Stream a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/message/send":{"post":{"tags":["A2A"],"summary":"Send Message","description":"[DEPRECATED] Send a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"send_message","responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request or unsupported method","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, team, or workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"deprecated":true,"security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Agent-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Target agent, team, or workflow ID when `params.message.agentId` is omitted."},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/message/stream":{"post":{"tags":["A2A"],"summary":"Stream Message","description":"[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as Server-Sent Events (SSE).","operationId":"stream_message","responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request or unsupported method","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, team, or workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"deprecated":true,"security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Agent-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Target agent, team, or workflow ID when `params.message.agentId` is omitted."},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/sessions":{"get":{"tags":["Sessions"],"summary":"List Sessions","description":"Retrieve paginated list of sessions with filtering and sorting options. Supports filtering by session type (agent, team, workflow), component, user, and name. Sessions represent conversation histories and execution contexts.","operationId":"get_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types.","title":"Type"},"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types."},{"name":"component_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by component ID (agent/team/workflow ID)","title":"Component Id"},"description":"Filter sessions by component ID (agent/team/workflow ID)"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by user ID","title":"User Id"},"description":"Filter sessions by user ID"},{"name":"session_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by name (partial match)","title":"Session Name"},"description":"Filter sessions by name (partial match)"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of sessions to return per page","default":20,"title":"Limit"},"description":"Number of sessions to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort sessions by","default":"created_at","title":"Sort By"},"description":"Field to sort sessions by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query sessions from","title":"Db Id"},"description":"Database ID to query sessions from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Sessions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_SessionSchema_"},"example":{"session_example":{"summary":"Example session response","value":{"data":[{"session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_state":{},"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}]}}}}}},"400":{"description":"Invalid session type or filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in query parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Sessions"],"summary":"Create New Session","description":"Create a new empty session with optional configuration. Useful for pre-creating sessions with specific session_state, metadata, or other properties before running any agent/team/workflow interactions. The session can later be used by providing its session_id in run requests.","operationId":"create_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SessionType","description":"Type of session to create (agent, team, or workflow)","default":"agent"},"description":"Type of session to create (agent, team, or workflow)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to create session in","title":"Db Id"},"description":"Database ID to create session in"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest","description":"Session configuration data","default":{}}}}},"responses":{"201":{"description":"Session created successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Create Session"},"examples":{"agent_session_example":{"summary":"Example created agent session","value":{"user_id":"user-123","agent_session_id":"new-session-id","session_id":"new-session-id","session_name":"New Session","session_state":{"key":"value"},"metadata":{"key":"value"},"agent_id":"agent-1","created_at":"2025-10-21T12:00:00Z","updated_at":"2025-10-21T12:00:00Z"}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A session with the supplied session_id already exists"},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Multiple Sessions","description":"Delete multiple sessions by their IDs in a single operation. This action cannot be undone and will permanently remove all specified sessions and their runs.","operationId":"delete_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSessionRequest"}}}},"responses":{"204":{"description":"Sessions deleted successfully"},"400":{"description":"Invalid request - session IDs and types length mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["Sessions"],"summary":"Get Session by ID","description":"Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow).","operationId":"get_session_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to retrieve","title":"Session Id"},"description":"Session ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query session from","title":"User Id"},"description":"User ID to query session from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query session from","title":"Db Id"},"description":"Database ID to query session from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query session from","title":"Table"},"description":"Table to query session from"}],"responses":{"200":{"description":"Session details retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Get Session By Id"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Session","description":"Permanently delete a specific session and all its associated runs. This action cannot be undone and will remove all conversation history.","operationId":"delete_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to delete","title":"Session Id"},"description":"Session ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Sessions"],"summary":"Update Session","description":"Update session properties such as session_name, session_state, metadata, or summary. Use this endpoint to modify the session name, update state, add metadata, or update the session summary.","operationId":"update_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to update","title":"Session Id"},"description":"Session ID to update"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID","title":"User Id"},"description":"User ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update operation","title":"Db Id"},"description":"Database ID to use for update operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update operation","title":"Table"},"description":"Table to use for update operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest","description":"Session update data"}}}},"responses":{"200":{"description":"Session updated successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Update Session"},"examples":{"update_summary":{"summary":"Update session summary","value":{"summary":{"summary":"The user discussed project planning with the agent.","updated_at":"2025-10-21T14:30:00Z"}}},"update_metadata":{"summary":"Update session metadata","value":{"metadata":{"tags":["planning","project"],"priority":"high"}}},"update_session_name":{"summary":"Update session name","value":{"session_name":"Updated Session Name"}},"update_session_state":{"summary":"Update session state","value":{"session_state":{"step":"completed","context":"Project planning finished","progress":100}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs":{"get":{"tags":["Sessions"],"summary":"Get Session Runs","description":"Retrieve all runs (executions) for a specific session with optional timestamp filtering. Runs represent individual interactions or executions within a session. Response schema varies based on session type.","operationId":"get_session_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get runs from","title":"Session Id"},"description":"Session ID to get runs from"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query runs from","title":"User Id"},"description":"User ID to query runs from"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created after this Unix timestamp (epoch time in seconds)","title":"Created After"},"description":"Filter runs created after this Unix timestamp (epoch time in seconds)"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created before this Unix timestamp (epoch time in seconds)","title":"Created Before"},"description":"Filter runs created before this Unix timestamp (epoch time in seconds)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query runs from","title":"Db Id"},"description":"Database ID to query runs from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query runs from","title":"Table"},"description":"Table to query runs from"}],"responses":{"200":{"description":"Session runs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}]},"title":"Response Get Session Runs"},"examples":{"completed_run":{"summary":"Example completed run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"","run_input":"Which tools do you have access to?","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","run_response_format":"text","reasoning_content":"","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069},"messages":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-08 17:52:10.101003.\n\n\nYou have the capability to retain memories from previous interactions with the user, but have not had any interactions with the user yet.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757346730},{"content":"Which tools do you have access to?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757346730},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138},"created_at":1757346730}],"events":[{"created_at":1757346730,"event":"RunStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","model":"gpt-4o","model_provider":"OpenAI"},{"created_at":1757346733,"event":"MemoryUpdateStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"MemoryUpdateCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"RunCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","content_type":"str","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069}}],"created_at":"2025-09-08T15:52:10Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found or has no runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs/{run_id}":{"get":{"tags":["Sessions"],"summary":"Get Run by ID","description":"Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run).","operationId":"get_session_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get run from","title":"Session Id"},"description":"Session ID to get run from"},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","description":"Run ID to retrieve","title":"Run Id"},"description":"Run ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query run from","title":"User Id"},"description":"User ID to query run from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query run from","title":"Db Id"},"description":"Database ID to query run from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query run from","title":"Table"},"description":"Table to query run from"}],"responses":{"200":{"description":"Run retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}],"title":"Response Get Session Run"},"examples":{"agent_run":{"summary":"Example agent run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"user_123","run_input":"Which tools do you have access to?","content":"I don't have access to external tools.","created_at":1728499200}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/rename":{"post":{"tags":["Sessions"],"summary":"Rename Session","description":"Update the name of an existing session. Useful for organizing and categorizing sessions with meaningful names for better identification and management.","operationId":"rename_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to rename","title":"Session Id"},"description":"Session ID to rename"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope rename to","title":"User Id"},"description":"User ID to scope rename to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for rename operation","title":"Db Id"},"description":"Database ID to use for rename operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_rename_session"}}}},"responses":{"200":{"description":"Session renamed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Rename Session"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Invalid session name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type or validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories":{"post":{"tags":["Memory"],"summary":"Create Memory","description":"Create a new user memory with content and associated topics. Memories are used to store contextual information for users across conversations.","operationId":"create_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for memory storage","title":"Db Id"},"description":"Database ID to use for memory storage"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for memory storage","title":"Table"},"description":"Table to use for memory storage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"mem-123","memory":"User prefers technical explanations with code examples","topics":["preferences","communication_style","technical"],"user_id":"user-456","created_at":"2024-01-15T10:30:00Z","updated_at":"2024-01-15T10:30:00Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Memory"],"summary":"Delete Multiple Memories","description":"Delete multiple user memories by their IDs in a single operation. This action cannot be undone and all specified memories will be permanently removed.","operationId":"delete_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMemoriesRequest"}}}},"responses":{"204":{"description":"Memories deleted successfully"},"400":{"description":"Invalid request - empty memory_ids list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"List Memories","description":"Retrieve paginated list of user memories with filtering and search capabilities. Filter by user, agent, team, topics, or search within memory content.","operationId":"get_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by user ID","title":"User Id"},"description":"Filter memories by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by agent ID","title":"Agent Id"},"description":"Filter memories by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by team ID","title":"Team Id"},"description":"Filter memories by team ID"},{"name":"search_content","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fuzzy search within memory content","title":"Search Content"},"description":"Fuzzy search within memory content"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of memories to return per page","default":20,"title":"Limit"},"description":"Number of memories to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort memories by","default":"updated_at","title":"Sort By"},"description":"Field to sort memories by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memories from","title":"Db Id"},"description":"Database ID to query memories from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Comma-separated list of topics to filter by","examples":["preferences,technical,communication_style"],"title":"Topics"},"description":"Comma-separated list of topics to filter by"}],"responses":{"200":{"description":"Memories retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserMemorySchema_"},"example":{"data":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories/{memory_id}":{"delete":{"tags":["Memory"],"summary":"Delete Memory","description":"Permanently delete a specific user memory. This action cannot be undone.","operationId":"delete_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to delete","title":"Memory Id"},"description":"Memory ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to delete memory for","title":"User Id"},"description":"User ID to delete memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Memory deleted successfully"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"Get Memory by ID","description":"Retrieve detailed information about a specific user memory by its ID.","operationId":"get_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to retrieve","title":"Memory Id"},"description":"Memory ID to retrieve"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query memory for","title":"User Id"},"description":"User ID to query memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memory from","title":"Db Id"},"description":"Database ID to query memory from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query memory from","title":"Table"},"description":"Table to query memory from"}],"responses":{"200":{"description":"Memory retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Memory"],"summary":"Update Memory","description":"Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values.","operationId":"update_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to update","title":"Memory Id"},"description":"Memory ID to update"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update","title":"Db Id"},"description":"Database ID to use for update"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update","title":"Table"},"description":"Table to use for update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memory_topics":{"get":{"tags":["Memory"],"summary":"Get Memory Topics","description":"Retrieve all unique topics associated with memories in the system. Useful for filtering and categorizing memories by topic.","operationId":"get_memory_topics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter topics for","title":"User Id"},"description":"User ID to filter topics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query topics from","title":"Db Id"},"description":"Database ID to query topics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query topics from","title":"Table"},"description":"Table to query topics from"}],"responses":{"200":{"description":"Memory topics retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Get Memory Topics"},"example":["preferences","communication_style","technical","industry","compliance","code_examples","requirements","healthcare","finance"]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/user_memory_stats":{"get":{"tags":["Memory"],"summary":"Get User Memory Statistics","description":"Retrieve paginated statistics about memory usage by user. Provides insights into user engagement and memory distribution across users.","operationId":"get_user_memory_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of user statistics to return per page","default":20,"title":"Limit"},"description":"Number of user statistics to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter statistics for","title":"User Id"},"description":"User ID to filter statistics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query statistics from","title":"Table"},"description":"Table to query statistics from"}],"responses":{"200":{"description":"User memory statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserStatsSchema_"},"example":{"data":[{"user_id":"123","total_memories":3,"last_memory_updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve user statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/optimize-memories":{"post":{"tags":["Memory"],"summary":"Optimize User Memories","description":"Optimize all memories for a user with the summarize strategy. The operation combines the user's memories into one summary. Set `apply=false` to preview the result without saving it. Specify a custom model as `provider:model_id`, for example `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, or `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`.","operationId":"optimize_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for optimization","title":"Db Id"},"description":"Database ID to use for optimization"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for optimization","title":"Table"},"description":"Table to use for optimization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesRequest"}}}},"responses":{"200":{"description":"Memories optimized successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesResponse"},"example":{"memories":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User has a 3-year-old golden retriever named Max who loves fetch and walks. Lives in San Francisco's Mission district, works as a product manager in tech. Enjoys hiking Bay Area trails, trying new restaurants (especially Japanese, Thai, Mexican), and learning piano for 1.5 years.","topics":["pets","location","work","hobbies","food_preferences"],"user_id":"user2","updated_at":"2025-11-18T10:30:00Z"}],"memories_before":4,"memories_after":1,"tokens_before":450,"tokens_after":180,"tokens_saved":270,"reduction_percentage":60.0}}}},"400":{"description":"Bad request - User ID is required or invalid model string format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No memories found for user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to optimize memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings":{"get":{"tags":["Learnings"],"summary":"List Learnings","description":"List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) \u2014 this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`).","operationId":"list_learnings","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by learning type","title":"Learning Type"},"description":"Filter by learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"namespace","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by namespace","title":"Namespace"},"description":"Filter by namespace"},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity ID","title":"Entity Id"},"description":"Filter by entity ID"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity type","title":"Entity Type"},"description":"Filter by entity type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":100,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used).","title":"Sort By"},"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used)."},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"post":{"tags":["Learnings"],"summary":"Create Learning","description":"Create a new learning record. For the identity-keyed learning types (`user_profile`, `user_memory`, `session_context`, `entity_memory`) the record id is derived deterministically from the identity fields so it reconciles with what the agent reads/writes \u2014 provide those fields (else 422), and if a record already exists the request is rejected with 409 (use PATCH to update it). Other types get a generated id. For a scoped (non-admin) caller, the body's `user_id` must be omitted/null or match the caller (mismatch \u2192 403); admins and unscoped callers may set any `user_id`.","operationId":"create_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"An identity-keyed learning already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/users":{"get":{"tags":["Learnings"],"summary":"List Learning Users","description":"List the users that own learning records, with a per-user count and last-updated timestamp. Intended as the entry point for a per-user view: list users here, then drill into a single user's learnings via `GET /learnings?user_id=...`. Records with no owner (`user_id IS NULL`) are excluded. Pass `learning_type` to restrict the grouping to a single store (e.g. `user_profile` or `user_memory`). For a scoped (non-admin) caller results are bound to that user; an explicit `user_id` that differs is rejected with 403. Admins and unscoped callers list all users. Sortable by `user_id` or `last_learning_updated_at` (the default).","operationId":"list_learning_users","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the grouping to a single learning type","title":"Learning Type"},"description":"Restrict the grouping to a single learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the result to a single user","title":"User Id"},"description":"Restrict the result to a single user"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by: user_id or last_learning_updated_at (the default)","title":"Sort By"},"description":"Field to sort by: user_id or last_learning_updated_at (the default)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningUserStats_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/users/{user_id}":{"delete":{"tags":["Learnings"],"summary":"Delete Learning User","description":"Delete the learning records owned by a user. By default removes every learning type backed by the agno_learnings table (user_profile, user_memory, and any user-scoped entity records); pass `learning_type` to restrict deletion to a single store. Records with no owner (`user_id IS NULL`) are not affected. For a scoped (non-admin) caller, only their own learnings may be deleted; a different `user_id` is rejected with 403. Admins and unscoped callers may delete any user's learnings. Returns 204 even if the user had no matching records.","operationId":"delete_learning_user","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The user whose learnings should be deleted","title":"User Id"},"description":"The user whose learnings should be deleted"},{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings","title":"Learning Type"},"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/{learning_id}":{"get":{"tags":["Learnings"],"summary":"Get Learning","description":"Retrieve a single learning record by its ID.","operationId":"get_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"patch":{"tags":["Learnings"],"summary":"Update Learning","description":"Update a learning record. Only `content` and `metadata` may be modified; identity fields (user_id, agent_id, team_id, etc.) are immutable. Provided fields fully replace the existing values. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) are readable by any caller but may only be modified by an admin.","operationId":"update_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"delete":{"tags":["Learnings"],"summary":"Delete Learning","description":"Permanently delete a learning record by its ID. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) may only be deleted by an admin.","operationId":"delete_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/eval-runs":{"get":{"tags":["Evals"],"summary":"List Evaluation Runs","description":"Retrieve paginated evaluation runs with filtering and sorting options. Filter by agent, team, workflow, model, or evaluation type.","operationId":"get_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Workflow ID","title":"Workflow Id"},"description":"Workflow ID"},{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model ID","title":"Model Id"},"description":"Model ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EvalFilterType"},{"type":"null"}],"description":"Filter type","title":"Type"},"description":"Filter type"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of eval runs to return","default":20,"title":"Limit"},"description":"Number of eval runs to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"eval_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)","examples":["accuracy,agent_as_judge,performance,reliability"],"title":"Eval Types"},"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)"}],"responses":{"200":{"description":"Evaluation runs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_EvalSchema_"},"example":{"data":[{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Evals"],"summary":"Delete Evaluation Runs","description":"Delete multiple evaluation runs by their IDs. This action cannot be undone.","operationId":"delete_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvalRunsRequest"}}}},"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Deletion failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Evals"],"summary":"Execute Evaluation","description":"Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both.","operationId":"run_eval","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for evaluation","title":"Db Id"},"description":"Database ID to use for evaluation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for evaluation","title":"Table"},"description":"Table to use for evaluation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRunInput"}}}},"responses":{"200":{"description":"Evaluation executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"f2b2d72f-e9e2-4f0e-8810-0a7e1ff58614","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Invalid request - provide either agent_id or team_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs/{eval_run_id}":{"get":{"tags":["Evals"],"summary":"Get Evaluation Run","description":"Retrieve detailed results and metrics for a specific evaluation run.","operationId":"get_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query eval run from","title":"Table"},"description":"Table to query eval run from"}],"responses":{"200":{"description":"Evaluation run details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Evals"],"summary":"Update Evaluation Run","description":"Update the name or other properties of an existing evaluation run.","operationId":"update_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvalRunRequest"}}}},"responses":{"200":{"description":"Evaluation run updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update evaluation run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics":{"get":{"tags":["Metrics"],"summary":"Get AgentOS Metrics","description":"Retrieve AgentOS metrics and analytics data for a specified date range. If no date range is specified, returns all available metrics.","operationId":"get_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"starting_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Starting date for metrics range (YYYY-MM-DD format)","title":"Starting Date"},"description":"Starting date for metrics range (YYYY-MM-DD format)"},{"name":"ending_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Ending date for metrics range (YYYY-MM-DD format)","title":"Ending Date"},"description":"Ending date for metrics range (YYYY-MM-DD format)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query metrics from","title":"Db Id"},"description":"Database ID to query metrics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Metrics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"},"example":{"metrics":[{"id":"7bf39658-a00a-484c-8a28-67fd8a9ddb2a","agent_runs_count":5,"agent_sessions_count":5,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":448,"output_tokens":148,"total_tokens":596,"audio_tokens":0,"input_audio_tokens":0,"output_audio_tokens":0,"cached_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":5}],"date":"2025-07-31T00:00:00Z","created_at":"2025-07-31T12:38:52Z","updated_at":"2025-07-31T12:49:01Z"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Metrics retrieval failed. In Agno 2.7.4, invalid or ambiguous database selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics/refresh":{"post":{"tags":["Metrics"],"summary":"Refresh Metrics","description":"Manually trigger recalculation of system metrics from raw data. This operation analyzes system activity logs and regenerates aggregated metrics. Useful for ensuring metrics are up-to-date or after system maintenance.","operationId":"refresh_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for metrics calculation","title":"Db Id"},"description":"Database ID to use for metrics calculation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for metrics calculation","title":"Table"},"description":"Table to use for metrics calculation"}],"responses":{"200":{"description":"Metrics refreshed successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"title":"Response Refresh Metrics"},"example":[{"id":"e77c9531-818b-47a5-99cd-59fed61e5403","agent_runs_count":2,"agent_sessions_count":2,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":256,"output_tokens":441,"total_tokens":697,"audio_total_tokens":0,"audio_input_tokens":0,"audio_output_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":2}],"date":"2025-08-12T00:00:00Z","created_at":"2025-08-12T08:01:47Z","updated_at":"2025-08-12T08:01:47Z"}]}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Refresh failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content":{"post":{"tags":["Knowledge"],"summary":"Upload Content","description":"Upload content to the knowledge base. Supports file uploads, text content, or URLs. Content is processed asynchronously in the background. Supports custom readers and chunking strategies.","operationId":"upload_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_content"}}}},"responses":{"202":{"description":"Content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-123","name":"example-document.pdf","description":"Sample document for processing","metadata":{"category":"documentation","priority":"high"},"status":"processing"}}}},"400":{"description":"Invalid request - malformed metadata or missing content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in form data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"List Content","description":"Retrieve paginated list of all content in the knowledge base with filtering and sorting options. Filter by status, content type, or metadata properties.","operationId":"get_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of content entries to return","default":20,"title":"Limit"},"description":"Number of content entries to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ContentResponseSchema_"},"example":{"data":[{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}],"meta":{"page":1,"limit":20,"total_pages":1,"total_count":2}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete All Content","description":"Permanently remove all content from the knowledge base. This is a destructive operation that cannot be undone. Use with extreme caution.","operationId":"delete_all_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete all content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/remote-content":{"post":{"tags":["Knowledge"],"summary":"Upload Remote Content","description":"Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.","operationId":"upload_remote_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_upload_remote_content"}}}},"responses":{"202":{"description":"Remote content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-456","name":"reports/q1-2024.pdf","description":"Q1 Report from S3","metadata":{"source":"s3-docs"},"status":"processing"}}}},"400":{"description":"Invalid request - unknown config or missing path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Remote content upload is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/knowledge/content/{content_id}":{"patch":{"tags":["Knowledge"],"summary":"Update Content","description":"Update content name, description, or metadata without re-uploading it. In Agno 2.7.4, this endpoint accepts `reader_id`. Local knowledge validates the value, but the content patch does not apply or persist the reader change.","operationId":"update_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","description":"Content ID","title":"Content Id"},"description":"Content ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_update_content"}}}},"responses":{"200":{"description":"Content updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Invalid request - malformed metadata or invalid reader_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"Get Content by ID","description":"Retrieve detailed information about a specific content item including processing status and metadata.","operationId":"get_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete Content by ID","description":"Permanently remove a specific content item from the knowledge base. This action cannot be undone.","operationId":"delete_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}/status":{"get":{"tags":["Knowledge"],"summary":"Get Content Status","description":"Retrieve the current processing status of a content item. Useful for monitoring asynchronous content processing progress and identifying any processing errors.","operationId":"get_content_status","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content status retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentStatusResponse"},"examples":{"completed":{"summary":"Example completed content status","value":{"status":"completed","status_message":""}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/search":{"post":{"tags":["Knowledge"],"summary":"Search Knowledge","description":"Search the knowledge base for relevant documents using query, filters and search type.","operationId":"search_knowledge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VectorSearchRequestSchema"}}},"required":true},"responses":{"200":{"description":"Search results retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_VectorSearchResult_"},"example":{"data":[{"id":"doc_123","content":"Jordan Mitchell - Software Engineer with skills in JavaScript, React, Python","name":"cv_1","meta_data":{"page":1,"chunk":1},"usage":{"total_tokens":14},"reranking_score":0.95,"content_id":"content_456"}],"meta":{"page":1,"limit":20,"total_pages":2,"total_count":35}}}}},"400":{"description":"Invalid search parameters"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No documents found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/knowledge/config":{"get":{"tags":["Knowledge"],"summary":"Get Config","description":"Retrieve available readers, chunkers, and configuration options for content processing. This endpoint provides metadata about supported file types, processing strategies, and filters.","operationId":"get_knowledge_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Knowledge configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponseSchema"},"example":{"readers":{"website":{"id":"website","name":"WebsiteReader","description":"Reads website files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"firecrawl":{"id":"firecrawl","name":"FirecrawlReader","description":"Reads firecrawl files","chunkers":["SemanticChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"youtube":{"id":"youtube","name":"YoutubeReader","description":"Reads youtube files","chunkers":["RecursiveChunker","AgenticChunker","DocumentChunker","SemanticChunker","FixedSizeChunker"]},"web_search":{"id":"web_search","name":"WebSearchReader","description":"Reads web_search files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"arxiv":{"id":"arxiv","name":"ArxivReader","description":"Reads arxiv files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"csv":{"id":"csv","name":"CsvReader","description":"Reads csv files","chunkers":["RowChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"docling":{"id":"docling","name":"DoclingReader","description":"Converts multiple document formats like PDF, DOCX, PPTX, images, HTML, etc. using IBM's Docling library","chunkers":["AgenticChunker","CodeChunker","DocumentChunker","FixedSizeChunker","RecursiveChunker","SemanticChunker"]},"docx":{"id":"docx","name":"DocxReader","description":"Reads docx files","chunkers":["DocumentChunker","FixedSizeChunker","SemanticChunker","AgenticChunker","RecursiveChunker"]},"gcs":{"id":"gcs","name":"GcsReader","description":"Reads gcs files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"json":{"id":"json","name":"JsonReader","description":"Reads json files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"markdown":{"id":"markdown","name":"MarkdownReader","description":"Reads markdown files","chunkers":["MarkdownChunker","DocumentChunker","AgenticChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"pdf":{"id":"pdf","name":"PdfReader","description":"Reads pdf files","chunkers":["DocumentChunker","FixedSizeChunker","AgenticChunker","SemanticChunker","RecursiveChunker"]},"text":{"id":"text","name":"TextReader","description":"Reads text files","chunkers":["CodeChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]}},"readersForType":{"url":["url","website","firecrawl","youtube","web_search","gcs"],"youtube":["youtube"],"text":["web_search"],"topic":["arxiv"],"file":["csv","gcs"],".csv":["csv","field_labeled_csv","docling"],".xlsx":["excel","docling"],".xls":["excel"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["excel"],"application/vnd.ms-excel":["excel"],".docx":["docx","docling"],".dotx":["docling"],".docm":["docling"],".dotm":["docling"],".pptx":["docling","pptx"],".potx":["docling"],".ppsx":["docling"],".pptm":["docling"],".ppsm":["docling"],".potm":["docling"],".doc":["docx"],".json":["json"],".md":["markdown","docling"],".pdf":["pdf","docling"],".txt":["text"],".html":["docling"],".htm":["docling"],".xhtml":["docling"],".xml":["docling"],".nxml":["docling"],".xbrl":["docling"],".adoc":["docling"],".asciidoc":["docling"],".asc":["docling"],".xlsm":["docling"],".tex":["docling"],".latex":["docling"],".tar.gz":["docling"],".vtt":["docling"],".png":["docling"],".jpeg":["docling"],".jpg":["docling"],".tiff":["docling"],".tif":["docling"],".bmp":["docling"],".webp":["docling"],".wav":["docling"],".mp3":["docling"],".m4a":["docling"],".aac":["docling"],".ogg":["docling"],".flac":["docling"],".mp4":["docling"],".avi":["docling"],".mov":["docling"]},"chunkers":{"AgenticChunker":{"key":"AgenticChunker","name":"AgenticChunker","description":"Chunking strategy that uses an LLM to determine natural breakpoints in the text","metadata":{"chunk_size":5000}},"CodeChunker":{"key":"CodeChunker","name":"CodeChunker","description":"The CodeChunker splits code into chunks based on its structure, leveraging Abstract Syntax Trees (ASTs) to create contextually relevant segments","metadata":{"chunk_size":2048}},"DocumentChunker":{"key":"DocumentChunker","name":"DocumentChunker","description":"A chunking strategy that splits text based on document structure like paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"FixedSizeChunker":{"key":"FixedSizeChunker","name":"FixedSizeChunker","description":"Chunking strategy that splits text into fixed-size chunks with optional overlap","metadata":{"chunk_size":5000,"chunk_overlap":0}},"MarkdownChunker":{"key":"MarkdownChunker","name":"MarkdownChunker","description":"A chunking strategy that splits markdown based on structure like headers, paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RecursiveChunker":{"key":"RecursiveChunker","name":"RecursiveChunker","description":"Chunking strategy that recursively splits text into chunks by finding natural break points","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RowChunker":{"key":"RowChunker","name":"RowChunker","description":"RowChunking chunking strategy","metadata":{}},"SemanticChunker":{"key":"SemanticChunker","name":"SemanticChunker","description":"Chunking strategy that splits text into semantic chunks using chonkie","metadata":{"chunk_size":5000}}},"vector_dbs":[{"id":"vector_db_1","name":"Vector DB 1","description":"Vector DB 1 description","search_types":["vector","keyword","hybrid"]}],"filters":["filter_tag_1","filter_tag2"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources":{"get":{"tags":["Knowledge"],"summary":"List Content Sources","description":"List all registered content sources (S3, GCS, SharePoint, GitHub) for the knowledge base.","operationId":"list_content_sources","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Content sources retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"title":"Response List Content Sources"},"example":[{"id":"company-s3","name":"Company Documents","type":"s3","prefix":"documents/"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Content source listing is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/knowledge/{knowledge_id}/sources/{source_id}/files":{"get":{"tags":["Knowledge"],"summary":"List Files in Source","description":"List available files and folders in a specific content source. Supports pagination and folder navigation.","operationId":"list_source_files","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the content source","title":"Source Id"},"description":"ID of the content source"},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Path prefix to filter files","title":"Prefix"},"description":"Path prefix to filter files"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of files per page","default":100,"title":"Limit"},"description":"Number of files per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"delimiter","in":"query","required":false,"schema":{"type":"string","description":"Folder delimiter (enables folder grouping)","default":"/","title":"Delimiter"},"description":"Folder delimiter (enables folder grouping)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Files listed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceFilesResponseSchema"},"example":{"source_id":"company-s3","source_name":"Company Documents","prefix":"reports/","folders":[{"prefix":"reports/2024/","name":"2024","is_empty":false}],"files":[{"key":"reports/annual-summary.pdf","name":"annual-summary.pdf","size":102400,"last_modified":"2024-01-15T10:30:00Z","content_type":"application/pdf"}],"meta":{"page":1,"limit":100,"total_pages":1,"total_count":1}}}}},"400":{"description":"Unsupported source type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base or content source not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Source file listing is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/traces":{"get":{"tags":["Traces","Traces"],"summary":"List Traces","description":"Retrieve a paginated list of execution traces with optional filtering.\n\n**Traces provide observability into:**\n- Agent execution flows\n- Model invocations and token usage\n- Tool calls and their results\n- Errors and performance bottlenecks\n\n**Filtering Options:**\n- By run, session, user, or agent ID\n- By status (OK, ERROR)\n- By time range\n\n**Pagination:**\n- Use `page` (1-indexed) and `limit` parameters\n- Response includes pagination metadata (total_pages, total_count, etc.)\n\n**Response Format:**\nReturns summary information for each trace. Use GET `/traces/{trace_id}` for detailed hierarchy.","operationId":"get_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run ID","title":"Run Id"},"description":"Filter by run ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status (OK, ERROR)","title":"Status"},"description":"Filter by status (OK, ERROR)"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of traces per page","default":20,"title":"Limit"},"description":"Number of traces per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"responses":{"200":{"description":"List of traces retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSummary_"},"example":{"data":[{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","total_spans":4,"error_count":0,"input":"What is the stock price of NVDA?","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"agent_stock","created_at":"2025-11-19T10:30:00+00:00"}],"meta":{"page":1,"limit":20,"total_pages":5,"total_count":95}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/filter-schema":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Filter Schema","description":"Returns the available filterable fields, their types, valid operators, and enum values.\n\nThe frontend uses this to dynamically build the filter bar UI:\n- Field dropdown populated from `fields[].key`\n- Operator dropdown changes per field type\n- Value input shows autocomplete for enum fields (e.g., status)\n- Logical operators (AND, OR) for combining clauses","operationId":"get_traces_filter_schema","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterSchemaResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/traces/{trace_id}":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace or Span Detail","description":"Retrieve detailed trace information with hierarchical span tree, or a specific span within the trace.\n\n**Without span_id parameter:**\nReturns the full trace with hierarchical span tree:\n- Trace metadata (ID, status, duration, context)\n- Hierarchical tree of all spans\n- Each span includes timing, status, and type-specific metadata\n\n**With span_id parameter:**\nReturns details for a specific span within the trace:\n- Span metadata (ID, name, type, timing)\n- Status and error information\n- Type-specific attributes (model, tokens, tool params, etc.)\n\n**Span Hierarchy (full trace):**\nThe `tree` field contains root spans, each with potential `children`.\nThis recursive structure represents the execution flow:\n```\nAgent.run (root)\n \u251c\u2500 LLM.invoke\n \u251c\u2500 Tool.execute\n \u2502 \u2514\u2500 LLM.invoke (nested)\n \u2514\u2500 LLM.invoke\n```\n\n**Span Types:**\n- `AGENT`: Agent execution with input/output\n- `LLM`: Model invocations with tokens and prompts\n- `TOOL`: Tool calls with parameters and results","operationId":"get_trace","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}},{"name":"span_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Span ID to retrieve specific span","title":"Span Id"},"description":"Optional: Span ID to retrieve specific span"},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Run ID to retrieve trace for","title":"Run Id"},"description":"Optional: Run ID to retrieve trace for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query trace from","title":"Db Id"},"description":"Database ID to query trace from"}],"responses":{"200":{"description":"Trace or span detail retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TraceDetail"},{"$ref":"#/components/schemas/TraceNode"}],"title":"Response Get Trace"},"examples":{"full_trace":{"summary":"Full trace with hierarchy (no span_id)","value":{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","end_time":"2025-11-19T10:30:01.200000+00:00","total_spans":4,"error_count":0,"input":"What is Tesla stock price?","output":"The current price of Tesla (TSLA) is $245.67.","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"stock_agent","created_at":"2025-11-19T10:30:00+00:00","tree":[{"id":"span1","name":"Stock_Price_Agent.run","type":"AGENT","duration":"1.2s","status":"OK","spans":[]}]}},"single_span":{"summary":"Single span detail (with span_id)","value":{"id":"span2","name":"gpt-4o-mini.invoke","type":"LLM","duration":"800ms","status":"OK","metadata":{"model":"gpt-4o-mini","input_tokens":120}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Trace or span not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/trace_session_stats":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Statistics by Session","description":"Retrieve aggregated trace statistics grouped by session ID with pagination.\n\n**Provides insights into:**\n- Total traces per session\n- First and last trace timestamps per session\n- Associated user and agent information\n\n**Filtering Options:**\n- By user ID\n- By agent ID\n\n**Use Cases:**\n- Monitor session-level activity\n- Track conversation flows\n- Identify high-activity sessions\n- Analyze user engagement patterns","operationId":"get_trace_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of sessions per page","default":20,"title":"Limit"},"description":"Number of sessions per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"}],"responses":{"200":{"description":"Trace statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"},"example":{"data":[{"session_id":"37029bc6-1794-4ba8-a629-1efedc53dcad","user_id":"kaustubh@agno.com","agent_id":"hackernews-agent","total_traces":5,"first_trace_at":"2025-11-19T10:15:16+00:00","last_trace_at":"2025-11-19T10:21:30+00:00"}],"meta":{"page":1,"limit":20,"total_pages":3,"total_count":45}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/search":{"post":{"tags":["Traces","Traces"],"summary":"Search Traces with Advanced Filters","description":"Search traces using the FilterExpr DSL for complex, composable queries.\n\n**Group By Mode:**\n- `run` (default): Returns `PaginatedResponse[TraceDetail]` with full span trees\n- `session`: Returns `PaginatedResponse[TraceSessionStats]` with aggregated session stats\n\n**Supported Operators:**\n- Comparison: `EQ`, `NEQ`, `GT`, `GTE`, `LT`, `LTE`\n- Inclusion: `IN`\n- String matching: `CONTAINS` (case-insensitive substring), `STARTSWITH` (prefix)\n- Logical: `AND`, `OR`, `NOT`\n\n**Filterable Fields:**\ntrace_id, name, status, start_time, end_time, duration_ms, run_id, session_id, user_id, agent_id, team_id, workflow_id, created_at\n\n**Example Request Body (runs):**\n```json\n{\n \"filter\": {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n}\n```\n\n**Example Request Body (sessions):**\n```json\n{\n \"filter\": {\"op\": \"CONTAINS\", \"key\": \"agent_id\", \"value\": \"stock\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n}\n```","operationId":"search_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PaginatedResponse_TraceDetail_"},{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"}],"title":"Response Search Traces"}}}},"400":{"description":"Invalid filter expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/all/migrate":{"post":{"tags":["Database"],"summary":"Migrate All Databases","description":"Migrate all database schemas to the given target version. If a target version is not provided, all databases will be migrated to the latest version.","operationId":"migrate_all_databases","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"All databases migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"All databases migrated successfully to version 3.0.0"}}}},"207":{"description":"Some database migrations failed","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"},"failed":{"type":"object","additionalProperties":{"type":"string"},"title":"Failed"}},"type":"object","required":["message","failed"],"title":"PartialMigrationResponse"},"example":{"message":"Migrated 2/3 databases to latest version","failed":{"archive-db":"Migration failed"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/{db_id}/migrate":{"post":{"tags":["Database"],"summary":"Migrate Database","description":"Migrate the given database schema to the given target version. If a target version is not provided, the database will be migrated to the latest version.","operationId":"migrate_database","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"Database migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"Database migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Database not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components":{"get":{"tags":["Components"],"summary":"List Components","description":"Retrieve a paginated list of components with optional filtering by type.","operationId":"list_components","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ComponentType"},{"type":"null"}],"description":"Filter by type: agent, team, workflow","title":"Component Type"},"description":"Filter by type: agent, team, workflow"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ComponentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Component","description":"Create a new component (agent, team, or workflow) with initial config.","operationId":"create_component","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}":{"get":{"tags":["Components"],"summary":"Get Component","description":"Retrieve a component by ID.","operationId":"get_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Components"],"summary":"Update Component","description":"Partially update a component by ID.","operationId":"update_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentUpdate","description":"Component fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Component","description":"Soft-delete a component by ID. Component configs and links remain stored.","operationId":"delete_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs":{"get":{"tags":["Components"],"summary":"List Configs","description":"List all configs for a component.","operationId":"list_configs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"include_config","in":"query","required":false,"schema":{"type":"boolean","description":"Include full config blob","default":true,"title":"Include Config"},"description":"Include full config blob"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComponentConfigResponse"},"title":"Response List Configs"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Config Version","description":"Create a new config version for a component.","operationId":"create_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigCreate","description":"Config data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}":{"patch":{"tags":["Components"],"summary":"Update Draft Config","description":"Update an existing draft config. Cannot update published configs.","operationId":"update_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigUpdate","description":"Config fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Components"],"summary":"Get Config Version","description":"Get a specific config version by number.","operationId":"get_config_version","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Config Version","description":"Delete a specific config version. Agno v2.7.4 rejects the current version. Synchronous SQLite and PostgreSQL storage allow deletion of a published non-current version.","operationId":"delete_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/current":{"get":{"tags":["Components"],"summary":"Get Current Config","description":"Get the current config version for a component.","operationId":"get_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}/set-current":{"post":{"tags":["Components"],"summary":"Set Current Config Version","description":"Set a published config version as current (for rollback).","operationId":"set_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/schedules":{"get":{"tags":["Schedules"],"summary":"List Schedules","operationId":"list_schedules_schedules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"post":{"tags":["Schedules"],"summary":"Create Schedule","operationId":"create_schedule_schedules_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule","operationId":"get_schedule_schedules__schedule_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"patch":{"tags":["Schedules"],"summary":"Update Schedule","operationId":"update_schedule_schedules__schedule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Schedules"],"summary":"Delete Schedule","operationId":"delete_schedule_schedules__schedule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/enable":{"post":{"tags":["Schedules"],"summary":"Enable Schedule","operationId":"enable_schedule_schedules__schedule_id__enable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/disable":{"post":{"tags":["Schedules"],"summary":"Disable Schedule","operationId":"disable_schedule_schedules__schedule_id__disable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/trigger":{"post":{"tags":["Schedules"],"summary":"Trigger Schedule","operationId":"trigger_schedule_schedules__schedule_id__trigger_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Schedule is disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler is not running or storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs":{"get":{"tags":["Schedules"],"summary":"List Schedule Runs","operationId":"list_schedule_runs_schedules__schedule_id__runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleRunResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs/{run_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule Run","operationId":"get_schedule_run_schedules__schedule_id__runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals":{"get":{"tags":["Approvals"],"summary":"List Approvals","operationId":"list_approvals_approvals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","approved","rejected","expired","cancelled"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"source_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"}},{"name":"approval_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["required","audit"],"type":"string"},{"type":"null"}],"title":"Approval Type"}},{"name":"pause_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"schedule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"}},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ApprovalResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approvals could not be listed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/count":{"get":{"tags":["Approvals"],"summary":"Get Approval Count","operationId":"get_approval_count_approvals_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalCountResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval count could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/status":{"get":{"tags":["Approvals"],"summary":"Get Approval Status","operationId":"get_approval_status_approvals__approval_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalStatusResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval status could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}":{"get":{"tags":["Approvals"],"summary":"Get Approval","operationId":"get_approval_approvals__approval_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Approvals"],"summary":"Delete Approval","operationId":"delete_approval_approvals__approval_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval is not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/resolve":{"post":{"tags":["Approvals"],"summary":"Resolve Approval","operationId":"resolve_approval_approvals__approval_id__resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResolve"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Approval has already been resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts":{"post":{"tags":["Service Accounts"],"summary":"Create Service Account","description":"Mint a service account token. The plaintext token is returned exactly once.","operationId":"create_service_account_service_accounts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreateResponse"}}}},"400":{"description":"Requested scopes are invalid, or privileged scopes were not explicitly allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"An active service account with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"get":{"tags":["Service Accounts"],"summary":"List Service Accounts","description":"List service accounts. Returns metadata and display prefixes only - never hashes or plaintext.","operationId":"list_service_accounts_service_accounts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Revoked"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ServiceAccountResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts/{service_account_id}":{"delete":{"tags":["Service Accounts"],"summary":"Revoke Service Account","description":"Revoke an existing service account.\n\nTakes effect immediately on this worker (the local verification cache entry is evicted) and within the cache TTL on other workers.","operationId":"revoke_service_account_service_accounts__service_account_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"service_account_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Service account not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/registry":{"get":{"tags":["Registry"],"summary":"List Registry","description":"List all resources in the registry with optional filtering.","operationId":"list_registry","security":[{"HTTPBearer":[]}],"parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RegistryResourceType"},{"type":"null"}],"description":"Filter by resource type","title":"Resource Type"},"description":"Filter by resource type"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (partial match)","title":"Name"},"description":"Filter by name (partial match)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_RegistryContentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}}},"components":{"schemas":{"A2ACard_APIKeySecurityScheme":{"description":"Defines a security scheme using an API key.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"in":{"$ref":"#/components/schemas/A2ACard_In"},"name":{"title":"Name","type":"string"},"type":{"const":"apiKey","default":"apiKey","title":"Type","type":"string"}},"required":["in","name"],"title":"APIKeySecurityScheme","type":"object"},"A2ACard_AgentCapabilities":{"description":"Defines optional capabilities supported by an agent.","properties":{"extensions":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentExtension"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"pushNotifications":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Pushnotifications"},"stateTransitionHistory":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Statetransitionhistory"},"streaming":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Streaming"}},"title":"AgentCapabilities","type":"object"},"A2ACard_AgentCardSignature":{"description":"AgentCardSignature represents a JWS signature of an AgentCard.\nThis follows the JSON format of an RFC 7515 JSON Web Signature (JWS).","properties":{"header":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Header"},"protected":{"title":"Protected","type":"string"},"signature":{"title":"Signature","type":"string"}},"required":["protected","signature"],"title":"AgentCardSignature","type":"object"},"A2ACard_AgentExtension":{"description":"A declaration of a protocol extension supported by an Agent.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"params":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Params"},"required":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Required"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"AgentExtension","type":"object"},"A2ACard_AgentInterface":{"description":"Declares a combination of a target URL and a transport protocol for interacting with the agent.\nThis allows agents to expose the same functionality over multiple transport mechanisms.","properties":{"transport":{"examples":["JSONRPC","GRPC","HTTP+JSON"],"title":"Transport","type":"string"},"url":{"examples":["https://api.example.com/a2a/v1","https://grpc.example.com/a2a","https://rest.example.com/v1"],"title":"Url","type":"string"}},"required":["transport","url"],"title":"AgentInterface","type":"object"},"A2ACard_AgentProvider":{"description":"Represents the service provider of an agent.","properties":{"organization":{"title":"Organization","type":"string"},"url":{"title":"Url","type":"string"}},"required":["organization","url"],"title":"AgentProvider","type":"object"},"A2ACard_AgentSkill":{"description":"Represents a distinct capability or function that an agent can perform.","properties":{"description":{"title":"Description","type":"string"},"examples":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"examples":[["I need a recipe for bread"]],"title":"Examples"},"id":{"title":"Id","type":"string"},"inputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Inputmodes"},"name":{"title":"Name","type":"string"},"outputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Outputmodes"},"security":{"anyOf":[{"items":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},"type":"array"},{"type":"null"}],"default":null,"examples":[[{"google":["oidc"]}]],"title":"Security"},"tags":{"examples":[["cooking","customer support","billing"]],"items":{"type":"string"},"title":"Tags","type":"array"}},"required":["description","id","name","tags"],"title":"AgentSkill","type":"object"},"A2ACard_AuthorizationCodeOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Authorization Code flow.","properties":{"authorizationUrl":{"title":"Authorizationurl","type":"string"},"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["authorizationUrl","scopes","tokenUrl"],"title":"AuthorizationCodeOAuthFlow","type":"object"},"A2ACard_ClientCredentialsOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Client Credentials flow.","properties":{"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["scopes","tokenUrl"],"title":"ClientCredentialsOAuthFlow","type":"object"},"A2ACard_HTTPAuthSecurityScheme":{"description":"Defines a security scheme using HTTP authentication.","properties":{"bearerFormat":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Bearerformat"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"scheme":{"title":"Scheme","type":"string"},"type":{"const":"http","default":"http","title":"Type","type":"string"}},"required":["scheme"],"title":"HTTPAuthSecurityScheme","type":"object"},"A2ACard_ImplicitOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Implicit flow.","properties":{"authorizationUrl":{"title":"Authorizationurl","type":"string"},"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"}},"required":["authorizationUrl","scopes"],"title":"ImplicitOAuthFlow","type":"object"},"A2ACard_In":{"description":"The location of the API key.","enum":["cookie","header","query"],"title":"In","type":"string"},"A2ACard_MutualTLSSecurityScheme":{"description":"Defines a security scheme using mTLS authentication.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"type":{"const":"mutualTLS","default":"mutualTLS","title":"Type","type":"string"}},"title":"MutualTLSSecurityScheme","type":"object"},"A2ACard_OAuth2SecurityScheme":{"description":"Defines a security scheme using OAuth 2.0.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"flows":{"$ref":"#/components/schemas/A2ACard_OAuthFlows"},"oauth2MetadataUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Oauth2Metadataurl"},"type":{"const":"oauth2","default":"oauth2","title":"Type","type":"string"}},"required":["flows"],"title":"OAuth2SecurityScheme","type":"object"},"A2ACard_OAuthFlows":{"description":"Defines the configuration for the supported OAuth 2.0 flows.","properties":{"authorizationCode":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_AuthorizationCodeOAuthFlow"},{"type":"null"}],"default":null},"clientCredentials":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_ClientCredentialsOAuthFlow"},{"type":"null"}],"default":null},"implicit":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_ImplicitOAuthFlow"},{"type":"null"}],"default":null},"password":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_PasswordOAuthFlow"},{"type":"null"}],"default":null}},"title":"OAuthFlows","type":"object"},"A2ACard_OpenIdConnectSecurityScheme":{"description":"Defines a security scheme using OpenID Connect.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"openIdConnectUrl":{"title":"Openidconnecturl","type":"string"},"type":{"const":"openIdConnect","default":"openIdConnect","title":"Type","type":"string"}},"required":["openIdConnectUrl"],"title":"OpenIdConnectSecurityScheme","type":"object"},"A2ACard_PasswordOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Resource Owner Password flow.","properties":{"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["scopes","tokenUrl"],"title":"PasswordOAuthFlow","type":"object"},"A2ACard_SecurityScheme":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_APIKeySecurityScheme"},{"$ref":"#/components/schemas/A2ACard_HTTPAuthSecurityScheme"},{"$ref":"#/components/schemas/A2ACard_OAuth2SecurityScheme"},{"$ref":"#/components/schemas/A2ACard_OpenIdConnectSecurityScheme"},{"$ref":"#/components/schemas/A2ACard_MutualTLSSecurityScheme"}],"title":"SecurityScheme"},"A2ARequest_DataPart":{"description":"Represents a structured data segment (e.g., JSON) within a message or artifact.","properties":{"data":{"additionalProperties":true,"title":"Data","type":"object"},"kind":{"const":"data","default":"data","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["data"],"title":"DataPart","type":"object"},"A2ARequest_FilePart":{"description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI.","properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_FileWithBytes"},{"$ref":"#/components/schemas/A2ARequest_FileWithUri"}],"title":"File"},"kind":{"const":"file","default":"file","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["file"],"title":"FilePart","type":"object"},"A2ARequest_FileWithBytes":{"description":"Represents a file with its content provided directly as a base64-encoded string.","properties":{"bytes":{"title":"Bytes","type":"string"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"}},"required":["bytes"],"title":"FileWithBytes","type":"object"},"A2ARequest_FileWithUri":{"description":"Represents a file with its content located at a specific URI.","properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"FileWithUri","type":"object"},"A2ARequest_Message":{"description":"Represents a single message in the conversation between a user and an agent.","properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"kind":{"const":"message","default":"message","title":"Kind","type":"string"},"messageId":{"title":"Messageid","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/A2ARequest_Part"},"title":"Parts","type":"array"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/A2ARequest_Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Taskid"},"agentId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Agent ID","description":"Target agent, team, or workflow ID for deprecated dynamic-dispatch endpoints."}},"required":["messageId","parts","role"],"title":"Message","type":"object"},"A2ARequest_MessageSendConfiguration":{"description":"Defines configuration options for a `message/send` or `message/stream` request.","properties":{"acceptedOutputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Acceptedoutputmodes"},"blocking":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Blocking"},"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"pushNotificationConfig":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationConfig"},{"type":"null"}],"default":null}},"title":"MessageSendConfiguration","type":"object"},"A2ARequest_MessageSendParams":{"description":"Defines the parameters for a request to send a message to an agent. This can be used\nto create a new task, continue an existing one, or restart a task.","properties":{"configuration":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_MessageSendConfiguration"},{"type":"null"}],"default":null},"message":{"$ref":"#/components/schemas/A2ARequest_Message"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["message"],"title":"MessageSendParams","type":"object"},"A2ARequest_Part":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_TextPart"},{"$ref":"#/components/schemas/A2ARequest_FilePart"},{"$ref":"#/components/schemas/A2ARequest_DataPart"}],"title":"Part"},"A2ARequest_PushNotificationAuthenticationInfo":{"description":"Defines authentication details for a push notification endpoint.","properties":{"credentials":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Credentials"},"schemes":{"items":{"type":"string"},"title":"Schemes","type":"array"}},"required":["schemes"],"title":"PushNotificationAuthenticationInfo","type":"object"},"A2ARequest_PushNotificationConfig":{"description":"Defines the configuration for setting up push notifications for task updates.","properties":{"authentication":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationAuthenticationInfo"},{"type":"null"}],"default":null},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Id"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Token"},"url":{"title":"Url","type":"string"}},"required":["url"],"title":"PushNotificationConfig","type":"object"},"A2ARequest_Role":{"description":"Identifies the sender of the message. `user` for the client, `agent` for the service.","enum":["agent","user"],"title":"Role","type":"string"},"A2ARequest_TaskIdParams":{"description":"Defines parameters containing a task ID, used for simple task operations.","properties":{"id":{"title":"Id","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"contextId":{"type":"string","title":"Context ID","description":"Agno session ID containing the task."}},"required":["id"],"title":"TaskIdParams","type":"object"},"A2ARequest_TaskQueryParams":{"description":"Defines parameters for querying a task, with an option to limit history length.","properties":{"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"id":{"title":"Id","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"contextId":{"type":"string","title":"Context ID","description":"Agno session ID containing the task."}},"required":["id","contextId"],"title":"TaskQueryParams","type":"object"},"A2ARequest_TextPart":{"description":"Represents a text segment within a message or artifact.","properties":{"kind":{"const":"text","default":"text","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"text":{"title":"Text","type":"string"}},"required":["text"],"title":"TextPart","type":"object"},"ActivityMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"activity","title":"Role","default":"activity"},"activityType":{"type":"string","title":"Activitytype"},"content":{"additionalProperties":true,"type":"object","title":"Content"}},"additionalProperties":true,"type":"object","required":["id","activityType","content"],"title":"ActivityMessage","description":"An activity progress message emitted between chat messages."},"AgentCard":{"description":"The AgentCard is a self-describing manifest for an agent. It provides essential\nmetadata including the agent's identity, capabilities, skills, supported\ncommunication methods, and security requirements.","properties":{"additionalInterfaces":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentInterface"},"type":"array"},{"type":"null"}],"default":null,"title":"Additionalinterfaces"},"capabilities":{"$ref":"#/components/schemas/A2ACard_AgentCapabilities"},"defaultInputModes":{"items":{"type":"string"},"title":"Defaultinputmodes","type":"array"},"defaultOutputModes":{"items":{"type":"string"},"title":"Defaultoutputmodes","type":"array"},"description":{"examples":["Agent that helps users with recipes and cooking."],"title":"Description","type":"string"},"documentationUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Documentationurl"},"iconUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Iconurl"},"name":{"examples":["Recipe Agent"],"title":"Name","type":"string"},"preferredTransport":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"JSONRPC","examples":["JSONRPC","GRPC","HTTP+JSON"],"title":"Preferredtransport"},"protocolVersion":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"0.3.0","title":"Protocolversion"},"provider":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_AgentProvider"},{"type":"null"}],"default":null},"security":{"anyOf":[{"items":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},"type":"array"},{"type":"null"}],"default":null,"examples":[[{"oauth":["read"]},{"api-key":[],"mtls":[]}]],"title":"Security"},"securitySchemes":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/A2ACard_SecurityScheme"},"type":"object"},{"type":"null"}],"default":null,"title":"Securityschemes"},"signatures":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentCardSignature"},"type":"array"},{"type":"null"}],"default":null,"title":"Signatures"},"skills":{"items":{"$ref":"#/components/schemas/A2ACard_AgentSkill"},"title":"Skills","type":"array"},"supportsAuthenticatedExtendedCard":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Supportsauthenticatedextendedcard"},"url":{"examples":["https://api.example.com/a2a/v1"],"title":"Url","type":"string"},"version":{"examples":["1.0.0"],"title":"Version","type":"string"}},"required":["capabilities","defaultInputModes","defaultOutputModes","description","name","skills","url","version"],"title":"AgentCard","type":"object"},"AgentResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"extra_messages":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Messages"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"AgentResponse"},"AgentSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_session_id":{"type":"string","title":"Agent Session Id","description":"Unique agent session identifier"},"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID used in this session"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"agent_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Data","description":"Agent-specific data"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["agent_session_id","session_id","session_name"],"title":"AgentSessionDetailSchema"},"AgentSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the agent"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the agent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the agent"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the agent"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","title":"AgentSummaryResponse"},"ApprovalCountResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"ApprovalCountResponse","description":"Response model for pending approval count."},"ApprovalResolve":{"properties":{"status":{"type":"string","pattern":"^(approved|rejected)$","title":"Status"},"resolved_by":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Resolved By"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"}},"type":"object","required":["status"],"title":"ApprovalResolve","description":"Request body for resolving (approve/reject) an approval."},"ApprovalResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"},"source_type":{"type":"string","title":"Source Type"},"approval_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Type"},"pause_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Args"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"},"schedule_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Run Id"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"},"run_status":{"anyOf":[{"$ref":"#/components/schemas/RunStatus"},{"type":"null"}]}},"type":"object","required":["id","run_id","session_id","status","source_type"],"title":"ApprovalResponse","description":"Response model for a single approval."},"ApprovalStatusResponse":{"properties":{"approval_id":{"type":"string","title":"Approval Id"},"status":{"type":"string","title":"Status"},"run_id":{"type":"string","title":"Run Id"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"}},"type":"object","required":["approval_id","status","run_id"],"title":"ApprovalStatusResponse","description":"Lightweight response model for polling approval status."},"Artifact":{"properties":{"artifactId":{"type":"string","title":"Artifactid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"}},"type":"object","required":["artifactId","parts"],"title":"Artifact","description":"Represents a file, data structure, or other resource generated by an agent during a task."},"AssistantMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"assistant","title":"Role","default":"assistant"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"},"toolCalls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},{"type":"null"}],"title":"Toolcalls"}},"additionalProperties":true,"type":"object","required":["id"],"title":"AssistantMessage","description":"An assistant message."},"AudioInputContent":{"properties":{"type":{"type":"string","const":"audio","title":"Type","default":"audio"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"AudioInputContent","description":"An audio input content fragment."},"BackgroundRunResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the background run."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the background run."},"status":{"type":"string","title":"Status","description":"Initial run status."}},"type":"object","required":["run_id","session_id","status"],"title":"BackgroundRunResponse"},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"BadRequestResponse","example":{"detail":"Bad request","error_code":"BAD_REQUEST"}},"BinaryInputContent":{"properties":{"type":{"type":"string","const":"binary","title":"Type","default":"binary"},"mimeType":{"type":"string","title":"Mimetype"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"additionalProperties":true,"type":"object","required":["mimeType"],"title":"BinaryInputContent","description":"A deprecated binary payload reference in a multimodal user message."},"Body_continue_agent_run":{"properties":{"tools":{"type":"string","title":"Tools","description":"JSON string of tool call results to continue the paused run","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Optional new user-message text to append to the run before resuming. Use for continuing a COMPLETED run with a follow-up, or adding context to a RUNNING/ERROR resume."},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","description":"When true, clone the run with a new ``run_id`` before resuming. The original is untouched; the clone becomes a sibling within the same session, with ``forked_from_run_id`` set.","default":false},"regenerate":{"type":"boolean","title":"Regenerate","description":"Sugar: regenerate the last response of this run. Auto-computes ``continue_from='last_user'`` to land just after the last user message. Pair with ``additional_instructions`` to steer the new output. By default the original response is hidden from history (replaced); pass ``replace_original=false`` to keep both the original and the regenerated response visible side by side.","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original","description":"Only valid with ``regenerate=true``. Controls history visibility of the original response; the original run is always retained in storage. Defaults to true: the original is marked REGENERATED and hidden from history so the new response replaces it. Pass false to keep both the original and regenerated responses visible."},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions","description":"Only valid with ``regenerate=true``: extra guidance appended as a user message before re-generation. Friendly alias for ``input``."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run continue in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false}},"type":"object","title":"Body_continue_agent_run"},"Body_continue_team_run":{"properties":{"requirements":{"type":"string","title":"Requirements","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input"},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","default":false},"regenerate":{"type":"boolean","title":"Regenerate","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original"},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"stream":{"type":"boolean","title":"Stream","default":true},"background":{"type":"boolean","title":"Background","default":false}},"type":"object","title":"Body_continue_team_run"},"Body_continue_workflow_run":{"properties":{"step_requirements":{"type":"string","title":"Step Requirements","description":"JSON string of step requirement objects with resolution status","default":""},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}},"type":"object","title":"Body_continue_workflow_run"},"Body_create_agent_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the agent"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Agent version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic agent construction"}},"type":"object","required":["message"],"title":"Body_create_agent_run"},"Body_create_team_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the team"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"monitor":{"type":"boolean","title":"Monitor","description":"Enable monitoring and logging for this run","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Team version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic team construction"}},"type":"object","required":["message"],"title":"Body_create_team_run"},"Body_create_workflow_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the workflow"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run workflow in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Workflow version to use for this run"},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow construction"}},"type":"object","required":["message"],"title":"Body_create_workflow_run"},"Body_rename_session":{"properties":{"session_name":{"type":"string","title":"Session Name","description":"New name for the session"}},"type":"object","required":["session_name"],"title":"Body_rename_session"},"Body_resume_agent_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_agent_run_stream"},"Body_resume_team_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_team_run_stream"},"Body_resume_workflow_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_workflow_run_stream"},"Body_update_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"Content metadata as JSON string"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"Reader ID. In Agno 2.7.4, local knowledge validates the value, but the content patch does not apply or persist the reader change."}},"type":"object","title":"Body_update_content"},"Body_upload_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated from file/URL if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description for context"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"URL to fetch content from (JSON array or single URL string)"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object for additional content properties"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File","description":"File to upload for processing"},"text_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Content","description":"Raw text content to process"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for content processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply during processing"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size to use for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap to use for processing"}},"type":"object","title":"Body_upload_content"},"Body_upload_remote_content":{"properties":{"config_id":{"type":"string","title":"Config Id","description":"ID of the configured remote content source (from /knowledge/config)"},"path":{"type":"string","title":"Path","description":"Path to file or folder in the remote source"},"source_params":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Params","description":"JSON object of per-request parameters forwarded to the source's factory. Used for provider-specific routing that shouldn't be baked into the config. Currently supported keys: GitHub accepts 'repo' ('owner/repo'), letting one configured GitHub source serve multiple repositories the credentials can access."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap for processing"}},"type":"object","required":["config_id","path"],"title":"Body_upload_remote_content"},"CancelTaskRequest":{"description":"Represents a JSON-RPC request for the `tasks/cancel` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"tasks/cancel","default":"tasks/cancel","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_TaskIdParams"}},"required":["id","params"],"title":"CancelTaskRequest","type":"object"},"CancelTaskSuccessResponse":{"description":"Represents a successful JSON-RPC response for the `tasks/cancel` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"default":null,"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"result":{"$ref":"#/components/schemas/Task"}},"required":["result"],"title":"CancelTaskSuccessResponse","type":"object"},"ChatConfig":{"properties":{"quick_prompts":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Quick Prompts"}},"type":"object","required":["quick_prompts"],"title":"ChatConfig","description":"Configuration for the Chat page of the AgentOS"},"ChunkerSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["key"],"title":"ChunkerSchema"},"ComponentConfigResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"version":{"type":"integer","title":"Version"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"type":"string","title":"Stage"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","version","stage","config","created_at"],"title":"ComponentConfigResponse"},"ComponentCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Display name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id","description":"Unique identifier for the entity. Auto-generated from name if not provided."},"component_type":{"$ref":"#/components/schemas/ComponentType","description":"Type of entity: agent, team, or workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config","description":"Optional configuration"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["name","component_type"],"title":"ComponentCreate"},"ComponentResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"component_type":{"$ref":"#/components/schemas/ComponentType"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","component_type","created_at"],"title":"ComponentResponse"},"ComponentType":{"type":"string","enum":["agent","team","workflow"],"title":"ComponentType"},"ComponentUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"component_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"}},"type":"object","title":"ComponentUpdate"},"ConfigCreate":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config","description":"The configuration data"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Optional version number"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links","description":"Optional links to child components"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["config"],"title":"ConfigCreate"},"ConfigResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the OS instance"},"available_models":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Models","description":"List of available models"},"os_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Database","description":"ID of the database used for the OS instance"},"databases":{"items":{"type":"string"},"type":"array","title":"Databases","description":"List of database IDs used by the components of the OS instance"},"chat":{"anyOf":[{"$ref":"#/components/schemas/ChatConfig"},{"type":"null"}],"description":"Chat configuration"},"manifest":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Manifest"},"type":"object"},{"type":"null"}],"title":"Manifest","description":"Per-entity UI metadata keyed by agent/team/workflow id"},"session":{"anyOf":[{"$ref":"#/components/schemas/SessionConfig"},{"type":"null"}],"description":"Session configuration"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/MetricsConfig"},{"type":"null"}],"description":"Metrics configuration"},"memory":{"anyOf":[{"$ref":"#/components/schemas/MemoryConfig"},{"type":"null"}],"description":"Memory configuration"},"learning":{"anyOf":[{"$ref":"#/components/schemas/LearningConfig"},{"type":"null"}],"description":"Learning configuration"},"knowledge":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeConfig"},{"type":"null"}],"description":"Knowledge configuration"},"evals":{"anyOf":[{"$ref":"#/components/schemas/EvalsConfig"},{"type":"null"}],"description":"Evaluations configuration"},"traces":{"anyOf":[{"$ref":"#/components/schemas/TracesConfig"},{"type":"null"}],"description":"Traces configuration"},"agents":{"items":{"$ref":"#/components/schemas/AgentSummaryResponse"},"type":"array","title":"Agents","description":"List of registered agents"},"teams":{"items":{"$ref":"#/components/schemas/TeamSummaryResponse"},"type":"array","title":"Teams","description":"List of registered teams"},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Workflows","description":"List of registered workflows"},"interfaces":{"items":{"$ref":"#/components/schemas/InterfaceResponse"},"type":"array","title":"Interfaces","description":"List of available interfaces"}},"type":"object","required":["os_id","databases","agents","teams","workflows","interfaces"],"title":"ConfigResponse","description":"Response schema for the general config endpoint"},"ConfigResponseSchema":{"properties":{"readers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ReaderSchema"},"type":"object"},{"type":"null"}],"title":"Readers","description":"Available content readers"},"readersForType":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Readersfortype","description":"Mapping of content types to reader IDs"},"chunkers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ChunkerSchema"},"type":"object"},{"type":"null"}],"title":"Chunkers","description":"Available chunking strategies"},"filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filters","description":"Available filter tags"},"vector_dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/VectorDbSchema"},"type":"array"},{"type":"null"}],"title":"Vector Dbs","description":"Configured vector databases"},"remote_content_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"type":"array"},{"type":"null"}],"title":"Remote Content Sources","description":"Configured remote content sources (S3, GCS, SharePoint, GitHub)"}},"type":"object","title":"ConfigResponseSchema"},"ConfigUpdate":{"properties":{"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","title":"ConfigUpdate"},"ConflictResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ConflictResponse","example":{"detail":"Resource conflict"}},"ContentResponseSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the content"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"MIME type of the content"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"},"linked_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linked To","description":"ID of related content if linked"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata as key-value pairs"},"access_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Access Count","description":"Number of times content has been accessed"},"status":{"anyOf":[{"$ref":"#/components/schemas/ContentStatus"},{"type":"null"}],"description":"Processing status of the content"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message","description":"Status message or error details"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when content was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when content was last updated"}},"type":"object","required":["id"],"title":"ContentResponseSchema"},"ContentStatus":{"type":"string","enum":["processing","completed","failed"],"title":"ContentStatus","description":"Enumeration of possible content processing statuses."},"ContentStatusResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Content ID"},"status":{"$ref":"#/components/schemas/ContentStatus","description":"Current processing status of the content"},"status_message":{"type":"string","title":"Status Message","description":"Status message or error details","default":""}},"type":"object","required":["status"],"title":"ContentStatusResponse","description":"Response model for content status endpoint."},"Context":{"properties":{"description":{"type":"string","title":"Description"},"value":{"type":"string","title":"Value"}},"additionalProperties":true,"type":"object","required":["description","value"],"title":"Context","description":"Additional context for the agent."},"CreateSessionRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session ID (generated if not provided)"},"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Initial session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"}},"type":"object","title":"CreateSessionRequest"},"DataPart":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data"},"kind":{"type":"string","const":"data","title":"Kind","default":"data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["data"],"title":"DataPart","description":"Represents a structured data segment (e.g., JSON) within a message or artifact."},"DatabaseConfig_EvalsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/EvalsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[EvalsDomainConfig]"},"DatabaseConfig_LearningDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/LearningDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[LearningDomainConfig]"},"DatabaseConfig_MemoryDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MemoryDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MemoryDomainConfig]"},"DatabaseConfig_MetricsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MetricsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MetricsDomainConfig]"},"DatabaseConfig_SessionDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/SessionDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[SessionDomainConfig]"},"DatabaseConfig_TracesDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/TracesDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[TracesDomainConfig]"},"DayAggregatedMetrics":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the metrics record"},"agent_runs_count":{"type":"integer","minimum":0.0,"title":"Agent Runs Count","description":"Total number of agent runs"},"agent_sessions_count":{"type":"integer","minimum":0.0,"title":"Agent Sessions Count","description":"Total number of agent sessions"},"team_runs_count":{"type":"integer","minimum":0.0,"title":"Team Runs Count","description":"Total number of team runs"},"team_sessions_count":{"type":"integer","minimum":0.0,"title":"Team Sessions Count","description":"Total number of team sessions"},"workflow_runs_count":{"type":"integer","minimum":0.0,"title":"Workflow Runs Count","description":"Total number of workflow runs"},"workflow_sessions_count":{"type":"integer","minimum":0.0,"title":"Workflow Sessions Count","description":"Total number of workflow sessions"},"users_count":{"type":"integer","minimum":0.0,"title":"Users Count","description":"Total number of unique users"},"token_metrics":{"additionalProperties":true,"type":"object","title":"Token Metrics","description":"Token usage metrics (input, output, cached, etc.)"},"model_metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Model Metrics","description":"Metrics grouped by model (model_id, provider, count)"},"date":{"type":"string","format":"date-time","title":"Date","description":"Date for which these metrics are aggregated"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when metrics were created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when metrics were last updated"}},"type":"object","required":["id","agent_runs_count","agent_sessions_count","team_runs_count","team_sessions_count","workflow_runs_count","workflow_sessions_count","users_count","token_metrics","model_metrics","date","created_at","updated_at"],"title":"DayAggregatedMetrics","description":"Aggregated metrics for a given day"},"DeleteEvalRunsRequest":{"properties":{"eval_run_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Eval Run Ids","description":"List of evaluation run IDs to delete"}},"type":"object","required":["eval_run_ids"],"title":"DeleteEvalRunsRequest"},"DeleteMemoriesRequest":{"properties":{"memory_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Memory Ids","description":"List of memory IDs to delete"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID to filter memories for deletion"}},"type":"object","required":["memory_ids"],"title":"DeleteMemoriesRequest"},"DeleteSessionRequest":{"properties":{"session_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Session Ids","description":"List of session IDs to delete"},"session_types":{"items":{"$ref":"#/components/schemas/SessionType"},"type":"array","minItems":1,"title":"Session Types","description":"Types of sessions to delete"}},"type":"object","required":["session_ids","session_types"],"title":"DeleteSessionRequest"},"DeveloperMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"developer","title":"Role","default":"developer"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"DeveloperMessage","description":"A developer message."},"DocumentInputContent":{"properties":{"type":{"type":"string","const":"document","title":"Type","default":"document"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"DocumentInputContent","description":"A document input content fragment."},"EvalFilterType":{"type":"string","enum":["agent","team","workflow"],"title":"EvalFilterType"},"EvalRunInput":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID to evaluate"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID to evaluate"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID to use for evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation to run (accuracy, performance, or reliability)"},"input":{"type":"string","minLength":1,"title":"Input","description":"Input text/query for the evaluation"},"additional_guidelines":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Guidelines","description":"Additional guidelines for the evaluation"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for the evaluation"},"num_iterations":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Num Iterations","description":"Number of times to run the evaluation","default":1},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for this evaluation run"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output","description":"Expected output for accuracy evaluation"},"criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criteria","description":"Evaluation criteria for agent-as-judge evaluation"},"scoring_strategy":{"anyOf":[{"type":"string","enum":["numeric","binary"]},{"type":"null"}],"title":"Scoring Strategy","description":"Scoring strategy: 'numeric' (1-10 with threshold) or 'binary' (PASS/FAIL)","default":"binary"},"threshold":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Threshold","description":"Score threshold for pass/fail (1-10), only used with numeric scoring","default":7},"warmup_runs":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Warmup Runs","description":"Number of warmup runs before measuring performance","default":0},"expected_tool_calls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expected Tool Calls","description":"Expected tool calls for reliability evaluation"},"allow_additional_tool_calls":{"type":"boolean","title":"Allow Additional Tool Calls","description":"When True, tool calls not in expected_tool_calls are allowed (subset matching)","default":false},"expected_tool_call_arguments":{"anyOf":[{"additionalProperties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Expected Tool Call Arguments","description":"Expected arguments for specific tool calls, e.g. {\"tool_name\": {\"arg_name\": \"expected_value\"}} or {\"tool_name\": [{\"arg_name\": \"val1\"}, {\"arg_name\": \"val2\"}]}"}},"type":"object","required":["eval_type","input"],"title":"EvalRunInput"},"EvalSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the evaluation run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that was evaluated"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID used in evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that was evaluated"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was evaluated"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the evaluation run"},"evaluated_component_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluated Component Name","description":"Name of the evaluated component"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation (accuracy, performance, or reliability)"},"eval_data":{"additionalProperties":true,"type":"object","title":"Eval Data","description":"Evaluation results and metrics"},"eval_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eval Input","description":"Input parameters used for the evaluation"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when evaluation was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when evaluation was last updated"}},"type":"object","required":["id","eval_type","eval_data"],"title":"EvalSchema"},"EvalType":{"type":"string","enum":["accuracy","agent_as_judge","performance","reliability"],"title":"EvalType"},"EvalsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_EvalsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"EvalsConfig","description":"Configuration for the Evals domain of the AgentOS"},"EvalsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"EvalsDomainConfig","description":"Configuration for the Evals domain of the AgentOS"},"FilePart":{"properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/FileWithBytes"},{"$ref":"#/components/schemas/FileWithUri"}],"title":"File"},"kind":{"type":"string","const":"file","title":"Kind","default":"file"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["file"],"title":"FilePart","description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI."},"FileWithBytes":{"properties":{"bytes":{"type":"string","title":"Bytes"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["bytes"],"title":"FileWithBytes","description":"Represents a file with its content provided directly as a base64-encoded string."},"FileWithUri":{"properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uri":{"type":"string","title":"Uri"}},"type":"object","required":["uri"],"title":"FileWithUri","description":"Represents a file with its content located at a specific URI."},"FilterFieldSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Column/field name used in filter expressions"},"label":{"type":"string","title":"Label","description":"Human-readable display label for the UI"},"type":{"type":"string","title":"Type","description":"Field data type: string, number, datetime, enum"},"operators":{"items":{"type":"string"},"type":"array","title":"Operators","description":"List of valid filter operators for this field"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values","description":"Allowed enum values (for autocomplete/dropdown)"}},"type":"object","required":["key","label","type","operators"],"title":"FilterFieldSchema","description":"Schema describing a single filterable field for the frontend filter bar."},"FilterSchemaResponse":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FilterFieldSchema"},"type":"array","title":"Fields","description":"Available filterable fields"},"logical_operators":{"items":{"type":"string"},"type":"array","title":"Logical Operators","description":"Logical operators for combining filter clauses","default":["AND","OR"]}},"type":"object","required":["fields"],"title":"FilterSchemaResponse","description":"Response for the filter schema endpoint. Tells the FE what fields, operators, and values are available."},"ForbiddenResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ForbiddenResponse","example":{"detail":"Insufficient permissions"}},"FunctionCall":{"properties":{"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"additionalProperties":true,"type":"object","required":["name","arguments"],"title":"FunctionCall","description":"Name and arguments of a function call."},"GetTaskRequest":{"description":"Represents a JSON-RPC request for the `tasks/get` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"tasks/get","default":"tasks/get","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_TaskQueryParams"}},"required":["id","params"],"title":"GetTaskRequest","type":"object"},"GetTaskSuccessResponse":{"description":"Represents a successful JSON-RPC response for the `tasks/get` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"default":null,"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"result":{"$ref":"#/components/schemas/Task"}},"required":["result"],"title":"GetTaskSuccessResponse","type":"object"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Health status of the service"},"instantiated_at":{"type":"string","format":"date-time","title":"Instantiated At","description":"Timestamp when service was instantiated"}},"type":"object","required":["status","instantiated_at"],"title":"HealthResponse","example":{"instantiated_at":"2025-06-10T12:00:00Z","status":"ok"}},"ImageInputContent":{"properties":{"type":{"type":"string","const":"image","title":"Type","default":"image"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"ImageInputContent","description":"An image input content fragment."},"InfoResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"agno_version":{"type":"string","title":"Agno Version","description":"Version of the agno framework"},"agent_count":{"type":"integer","title":"Agent Count","description":"Number of agents registered in the OS","default":0},"team_count":{"type":"integer","title":"Team Count","description":"Number of teams registered in the OS","default":0},"workflow_count":{"type":"integer","title":"Workflow Count","description":"Number of workflows registered in the OS","default":0},"mcp":{"$ref":"#/components/schemas/McpInfo","description":"MCP server availability for this OS instance"},"auth_mode":{"type":"string","enum":["none","security_key","jwt"],"title":"Auth Mode","description":"Authentication mode enforced on the REST/WS plane of this OS instance. MCP OAuth, when enabled, is described separately under `mcp.oauth`.","default":"none"}},"type":"object","required":["os_id","agno_version"],"title":"InfoResponse","description":"Response schema for the /info endpoint returning lightweight OS metadata."},"InputContentDataSource":{"properties":{"type":{"type":"string","const":"data","title":"Type","default":"data"},"value":{"type":"string","title":"Value"},"mimeType":{"type":"string","title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value","mimeType"],"title":"InputContentDataSource","description":"Inline base64-encoded source."},"InputContentUrlSource":{"properties":{"type":{"type":"string","const":"url","title":"Type","default":"url"},"value":{"type":"string","title":"Value"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value"],"title":"InputContentUrlSource","description":"URL-referenced source."},"InterfaceResponse":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the interface"},"version":{"type":"string","title":"Version","description":"Version of the interface"},"route":{"type":"string","title":"Route","description":"API route path"}},"type":"object","required":["type","version","route"],"title":"InterfaceResponse"},"InternalServerErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"InternalServerErrorResponse","example":{"detail":"Internal server error","error_code":"INTERNAL_SERVER_ERROR"}},"KnowledgeConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeDatabaseConfig"},"type":"array"},{"type":"null"}],"title":"Dbs"},"knowledge_instances":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeInstanceConfig"},"type":"array"},{"type":"null"}],"title":"Knowledge Instances"}},"type":"object","title":"KnowledgeConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeDatabaseConfig":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeDomainConfig"},{"type":"null"}]},"tables":{"items":{"type":"string"},"type":"array","title":"Tables","default":[]}},"type":"object","required":["db_id"],"title":"KnowledgeDatabaseConfig","description":"Configuration for a knowledge database with its tables"},"KnowledgeDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"KnowledgeDomainConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeInstanceConfig":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"db_id":{"type":"string","title":"Db Id"},"table":{"type":"string","title":"Table"}},"type":"object","required":["id","name","db_id","table"],"title":"KnowledgeInstanceConfig","description":"Configuration for a single knowledge instance"},"LearningConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_LearningDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"LearningConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningCreate":{"properties":{"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"content":{"additionalProperties":true,"type":"object","title":"Content","description":"The learning content payload"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID. When the request is authenticated, must match the JWT subject or be omitted/null (which creates a global / non-user-scoped record)."},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"}},"type":"object","required":["learning_type","content"],"title":"LearningCreate","description":"Request body for creating a learning record."},"LearningDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"LearningDomainConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningResponse":{"properties":{"learning_id":{"type":"string","title":"Learning Id","description":"Unique identifier for the learning record"},"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID (for entity-specific learnings)"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type (e.g. 'person', 'company')"},"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"The learning content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Creation timestamp (Unix epoch seconds)"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp (Unix epoch seconds)"}},"type":"object","required":["learning_id","learning_type"],"title":"LearningResponse","description":"A single learning record as returned by the API."},"LearningUpdate":{"properties":{"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Replacement content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Replacement metadata"}},"type":"object","title":"LearningUpdate","description":"Request body for updating a learning record. Identity fields are immutable."},"LearningUserStats":{"properties":{"user_id":{"type":"string","title":"User Id","description":"The user ID"},"last_learning_updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Learning Updated At","description":"Most recent learning update for this user (Unix epoch seconds)"}},"type":"object","required":["user_id"],"title":"LearningUserStats","description":"A user that owns learning records, with their most recent activity.\n\nUsed as a lightweight index for the per-user view: list users here, then drill into a\nsingle user's records via ``GET /learnings?user_id=...``. No per-user count is returned\n-- the user-scoped stores (``user_profile``, ``user_memory``) keep a single record per\nuser, so a record count would always be 1; the actual memory count lives in that\nrecord's ``content``."},"Manifest":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"},"quick_prompts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quick Prompts"}},"type":"object","title":"Manifest","description":"OS-level UI metadata for an agent/team/workflow.\n\nFields here are AgentOS UI metadata only. ``description`` is unrelated to\n``Agent.description`` / ``Team.description`` / ``Workflow.description``,\nwhich are sent to the model.\n\nRendering surfaces:\n- ``description``, ``labels``: home/landing card\n- ``quick_prompts``: chat page"},"McpInfo":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the MCP server is enabled on this OS instance","default":false},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Path where the MCP server is mounted, null when disabled"},"oauth":{"anyOf":[{"$ref":"#/components/schemas/McpOAuthInfo"},{"type":"null"}],"description":"OAuth discovery details when the MCP endpoint is OAuth-protected, null otherwise"}},"type":"object","title":"McpInfo","description":"MCP server availability for the /info endpoint."},"McpOAuthInfo":{"properties":{"authorization_servers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorization Servers","description":"Issuer URL(s) of the authorization server(s) protecting the MCP endpoint"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource","description":"RFC 9728 resource URL advertised for the MCP endpoint"}},"type":"object","title":"McpOAuthInfo","description":"OAuth discovery details for an MCP endpoint protected by ``AgentOS(mcp_auth=...)``."},"MemoryConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MemoryDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MemoryConfig","description":"Configuration for the Memory domain of the AgentOS"},"MemoryDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MemoryDomainConfig","description":"Configuration for the Memory domain of the AgentOS"},"Message":{"properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"kind":{"type":"string","const":"message","title":"Kind","default":"message"},"messageId":{"type":"string","title":"Messageid"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taskid"}},"type":"object","required":["messageId","parts","role"],"title":"Message","description":"Represents a single message in the conversation between a user and an agent."},"Meta":{"properties":{"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of results per page","default":20},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number","default":1}},"type":"object","title":"Meta","description":"Inline metadata schema for pagination."},"MetricsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MetricsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MetricsConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MetricsDomainConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsResponse":{"properties":{"metrics":{"items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"type":"array","title":"Metrics","description":"List of daily aggregated metrics"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp of the most recent metrics update"}},"type":"object","required":["metrics"],"title":"MetricsResponse"},"Model":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"Model"},"ModelResponse":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the model"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"ModelResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"NotFoundResponse","example":{"detail":"Not found","error_code":"NOT_FOUND"}},"NotImplementedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"NotImplementedResponse","example":{"detail":"Operation not supported for this resource type"}},"OptimizeMemoriesRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID to optimize memories for"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model in `provider:model_id` format. Current examples include `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, and `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`."},"apply":{"type":"boolean","title":"Apply","description":"If True, apply optimization changes to database. If False, return preview only without saving.","default":true}},"type":"object","required":["user_id"],"title":"OptimizeMemoriesRequest","description":"Schema for memory optimization request"},"OptimizeMemoriesResponse":{"properties":{"memories":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Memories","description":"List of optimized memory objects"},"memories_before":{"type":"integer","minimum":0.0,"title":"Memories Before","description":"Number of memories before optimization"},"memories_after":{"type":"integer","minimum":0.0,"title":"Memories After","description":"Number of memories after optimization"},"tokens_before":{"type":"integer","minimum":0.0,"title":"Tokens Before","description":"Token count before optimization"},"tokens_after":{"type":"integer","minimum":0.0,"title":"Tokens After","description":"Token count after optimization"},"tokens_saved":{"type":"integer","minimum":0.0,"title":"Tokens Saved","description":"Number of tokens saved through optimization"},"reduction_percentage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Reduction Percentage","description":"Percentage of token reduction achieved"}},"type":"object","required":["memories","memories_before","memories_after","tokens_before","tokens_after","tokens_saved","reduction_percentage"],"title":"OptimizeMemoriesResponse","description":"Schema for memory optimization response"},"PaginatedResponse_ApprovalResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ApprovalResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ApprovalResponse]"},"PaginatedResponse_ComponentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ComponentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ComponentResponse]"},"PaginatedResponse_ContentResponseSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentResponseSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ContentResponseSchema]"},"PaginatedResponse_EvalSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EvalSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[EvalSchema]"},"PaginatedResponse_LearningResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningResponse]"},"PaginatedResponse_LearningUserStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningUserStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningUserStats]"},"PaginatedResponse_RegistryContentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RegistryContentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[RegistryContentResponse]"},"PaginatedResponse_ScheduleResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleResponse]"},"PaginatedResponse_ScheduleRunResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleRunResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleRunResponse]"},"PaginatedResponse_ServiceAccountResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ServiceAccountResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ServiceAccountResponse]"},"PaginatedResponse_SessionSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SessionSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[SessionSchema]"},"PaginatedResponse_TraceDetail_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceDetail"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceDetail]"},"PaginatedResponse_TraceSessionStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSessionStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSessionStats]"},"PaginatedResponse_TraceSummary_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSummary"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSummary]"},"PaginatedResponse_UserMemorySchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserMemorySchema]"},"PaginatedResponse_UserStatsSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserStatsSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserStatsSchema]"},"PaginatedResponse_VectorSearchResult_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VectorSearchResult"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[VectorSearchResult]"},"PaginationInfo":{"properties":{"page":{"type":"integer","minimum":0.0,"title":"Page","description":"Current page number (0-indexed)","default":0},"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of items per page","default":20},"total_pages":{"type":"integer","minimum":0.0,"title":"Total Pages","description":"Total number of pages","default":0},"total_count":{"type":"integer","minimum":0.0,"title":"Total Count","description":"Total count of items","default":0},"search_time_ms":{"type":"number","minimum":0.0,"title":"Search Time Ms","description":"Search execution time in milliseconds","default":0}},"type":"object","title":"PaginationInfo"},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/DataPart"}],"title":"Part"},"ReaderSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the reader"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the reader"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the reader's capabilities"},"chunkers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chunkers","description":"List of supported chunking strategies"}},"type":"object","required":["id"],"title":"ReaderSchema"},"ReasoningMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"reasoning","title":"Role","default":"reasoning"},"content":{"type":"string","title":"Content"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"ReasoningMessage","description":"A reasoning message containing the agent's internal reasoning process."},"RegistryContentResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/RegistryResourceType"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name","type"],"title":"RegistryContentResponse"},"RegistryResourceType":{"type":"string","enum":["tool","model","db","vector_db","schema","function","agent","team","knowledge","memory_manager","session_summary_manager"],"title":"RegistryResourceType","description":"Types of resources that can be stored in a registry."},"RemoteContentSourceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content source"},"name":{"type":"string","title":"Name","description":"Display name for the content source"},"type":{"type":"string","title":"Type","description":"Type of content source (s3, gcs, sharepoint, github, azureblob)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Default path prefix for this source"}},"type":"object","required":["id","name","type"],"title":"RemoteContentSourceSchema","description":"Schema for remote content source configuration."},"ResumeEntry":{"properties":{"interruptId":{"type":"string","title":"Interruptid"},"status":{"type":"string","enum":["resolved","cancelled"],"title":"Status"},"payload":{"anyOf":[{},{"type":"null"}],"title":"Payload"}},"additionalProperties":true,"type":"object","required":["interruptId","status"],"title":"ResumeEntry","description":"A per-interrupt response in the resume array of a RunAgentInput."},"Role":{"type":"string","enum":["agent","user"],"title":"Role","description":"Identifies the sender of the message. `user` for the client, `agent` for the service."},"RunAgentInput":{"properties":{"threadId":{"type":"string","title":"Threadid"},"runId":{"type":"string","title":"Runid"},"parentRunId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentrunid"},"state":{"title":"State"},"messages":{"items":{"oneOf":[{"$ref":"#/components/schemas/DeveloperMessage"},{"$ref":"#/components/schemas/SystemMessage"},{"$ref":"#/components/schemas/AssistantMessage"},{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/ToolMessage"},{"$ref":"#/components/schemas/ActivityMessage"},{"$ref":"#/components/schemas/ReasoningMessage"}],"discriminator":{"propertyName":"role","mapping":{"activity":"#/components/schemas/ActivityMessage","assistant":"#/components/schemas/AssistantMessage","developer":"#/components/schemas/DeveloperMessage","reasoning":"#/components/schemas/ReasoningMessage","system":"#/components/schemas/SystemMessage","tool":"#/components/schemas/ToolMessage","user":"#/components/schemas/UserMessage"}}},"type":"array","title":"Messages"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","title":"Tools"},"context":{"items":{"$ref":"#/components/schemas/Context"},"type":"array","title":"Context"},"forwardedProps":{"title":"Forwardedprops"},"resume":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResumeEntry"},"type":"array"},{"type":"null"}],"title":"Resume"}},"additionalProperties":true,"type":"object","required":["threadId","runId","state","messages","tools","context","forwardedProps"],"title":"RunAgentInput","description":"Input for running an agent."},"RunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that executed this run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"RunSchema"},"RunStatus":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","PAUSED","CANCELLED","ERROR","REGENERATED"],"title":"RunStatus","description":"State of the main run response"},"ScheduleCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"cron_expr":{"type":"string","maxLength":128,"title":"Cron Expr"},"endpoint":{"type":"string","maxLength":512,"title":"Endpoint"},"method":{"type":"string","maxLength":10,"title":"Method","default":"POST"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"type":"string","maxLength":64,"title":"Timezone","default":"UTC"},"timeout_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Timeout Seconds","default":3600},"max_retries":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Max Retries","default":0},"retry_delay_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Retry Delay Seconds","default":60}},"type":"object","required":["name","cron_expr","endpoint"],"title":"ScheduleCreate"},"ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"cron_expr":{"type":"string","title":"Cron Expr"},"timezone":{"type":"string","title":"Timezone"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"max_retries":{"type":"integer","title":"Max Retries"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","method","endpoint","cron_expr","timezone","timeout_seconds","max_retries","retry_delay_seconds","enabled"],"title":"ScheduleResponse"},"ScheduleRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"schedule_id":{"type":"string","title":"Schedule Id"},"attempt":{"type":"integer","title":"Attempt"},"triggered_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triggered At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"status":{"type":"string","title":"Status"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","schedule_id","attempt","status"],"title":"ScheduleRunResponse"},"ScheduleStateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","enabled"],"title":"ScheduleStateResponse","description":"Trimmed response for state-changing operations (enable/disable)."},"ScheduleUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"cron_expr":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Cron Expr"},"endpoint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Endpoint"},"method":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Method"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Timezone"},"timeout_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":1.0},{"type":"null"}],"title":"Timeout Seconds"},"max_retries":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Max Retries"},"retry_delay_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":1.0},{"type":"null"}],"title":"Retry Delay Seconds"}},"type":"object","title":"ScheduleUpdate"},"ScopeItem":{"properties":{"scope":{"type":"string","title":"Scope","description":"Scope string, e.g. 'agents:*:run'"},"effect":{"type":"string","enum":["allow","deny"],"title":"Effect","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["scope"],"title":"ScopeItem","description":"Write shape for one scope grant \u2014 the canonical RBAC payload for every scope-bearing API.\n\nEndpoints that take scopes accept these objects only (a bare string is a validation\nerror). ``effect`` is constrained here so every consumer rejects typos at the model\nlayer; whether ``deny`` is *semantically* legal stays per-endpoint (roles support\ndeny rules, service-account tokens are pure grants and reject it)."},"ScopeSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Scope id (always null here; kept for shape parity with the cloud RBAC API, which addresses scopes individually)"},"raw":{"type":"string","title":"Raw","description":"Original scope string, e.g. 'agents:*:run'"},"namespace":{"type":"string","title":"Namespace","description":"Resource namespace, e.g. 'agents'"},"sub_namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Namespace","description":"Specific resource id or wildcard '*'"},"permission":{"type":"string","title":"Permission","description":"Action, e.g. 'read' / 'run' / 'write'"},"value":{"type":"string","title":"Value","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["raw","namespace","permission"],"title":"ScopeSchema","description":"Read shape for one scope \u2014 the parsed RBAC payload shared by every scope-bearing API.\n\nMirrors the cloud RBAC scope shape ({raw, namespace, sub_namespace, permission, value})\nso a frontend renders scopes from any AgentOS API with one integration."},"SendMessageRequest":{"description":"Represents a JSON-RPC request for the `message/send` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/send","default":"message/send","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendMessageRequest","type":"object"},"SendMessageSuccessResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id"},"jsonrpc":{"type":"string","const":"2.0","title":"Jsonrpc","default":"2.0"},"result":{"anyOf":[{"$ref":"#/components/schemas/Task"},{"$ref":"#/components/schemas/Message"}],"title":"Result"}},"type":"object","required":["result"],"title":"SendMessageSuccessResponse","description":"Represents a successful JSON-RPC response for the `message/send` method."},"SendStreamingMessageRequest":{"description":"Represents a JSON-RPC request for the `message/stream` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/stream","default":"message/stream","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendStreamingMessageRequest","type":"object"},"ServiceAccountCreate":{"properties":{"name":{"type":"string","maxLength":63,"title":"Name","description":"Machine identity name (lowercase slug), e.g. 'claude-code' or 'github-actions'"},"scopes":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScopeItem"},"type":"array"},{"type":"null"}],"title":"Scopes","description":"Scopes granted to the token, as {scope, effect} objects (the shared RBAC write shape; token scopes are grants, so only effect='allow' is accepted). Defaults to run and read scopes: agents:run, teams:run, workflows:run, sessions:read"},"expires_in_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Expires In Days","description":"Days until the token expires (default: 90)","default":90},"never_expires":{"type":"boolean","title":"Never Expires","description":"Mint a non-expiring token. Must be set explicitly; overrides expires_in_days.","default":false},"allow_privileged_scopes":{"type":"boolean","title":"Allow Privileged Scopes","description":"Required to grant privileged scopes: any write or delete action, the admin scope, or any service_accounts scope. Privileged tokens must be deliberate, never accidental.","default":false}},"type":"object","required":["name"],"title":"ServiceAccountCreate"},"ServiceAccountCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"token":{"type":"string","title":"Token","description":"The plaintext token. Shown exactly once - store it securely now."}},"type":"object","required":["id","name","principal","token_prefix","created_at","token"],"title":"ServiceAccountCreateResponse","description":"Returned once, at creation. The token is never retrievable again."},"ServiceAccountResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","name","principal","token_prefix","created_at"],"title":"ServiceAccountResponse","description":"Service account metadata. Never includes the token hash or plaintext."},"ServiceUnavailableResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ServiceUnavailableResponse","example":{"detail":"Feature not supported by the configured service"}},"SessionConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_SessionDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"SessionConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"SessionDomainConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier for the session"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state data of the session"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when session was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when session was last updated"},"session_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type","description":"Type of session: agent, team, or workflow"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["session_id","session_name"],"title":"SessionSchema"},"SessionType":{"type":"string","enum":["agent","team","workflow"],"title":"SessionType"},"SlackChallengeResponse":{"properties":{"challenge":{"type":"string","title":"Challenge","description":"Challenge string to echo back to Slack"}},"type":"object","required":["challenge"],"title":"SlackChallengeResponse"},"SlackEventResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"}},"type":"object","title":"SlackEventResponse"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"SourceFileSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Full path/key of the file"},"name":{"type":"string","title":"Name","description":"Display name (filename)"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"File size in bytes"},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified","description":"ISO 8601 timestamp of last modification"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"MIME type of the file"}},"type":"object","required":["key","name"],"title":"SourceFileSchema","description":"Schema for a file in a content source."},"SourceFilesResponseSchema":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"ID of the content source"},"source_name":{"type":"string","title":"Source Name","description":"Name of the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Prefix filter that was applied"},"folders":{"items":{"$ref":"#/components/schemas/SourceFolderSchema"},"type":"array","title":"Folders","description":"Subfolders at this level"},"files":{"items":{"$ref":"#/components/schemas/SourceFileSchema"},"type":"array","title":"Files","description":"List of files at this level"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["source_id","source_name","meta"],"title":"SourceFilesResponseSchema","description":"Response schema for listing files in a content source."},"SourceFolderSchema":{"properties":{"prefix":{"type":"string","title":"Prefix","description":"Full prefix to use for navigating into this folder"},"name":{"type":"string","title":"Name","description":"Display name of the folder"},"is_empty":{"type":"boolean","title":"Is Empty","description":"Whether the folder contains any files","default":false}},"type":"object","required":["prefix","name"],"title":"SourceFolderSchema","description":"Schema for a folder in a content source."},"SystemMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"system","title":"Role","default":"system"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"SystemMessage","description":"A system message."},"Task":{"properties":{"artifacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Artifact"},"type":"array"},{"type":"null"}],"title":"Artifacts"},"contextId":{"type":"string","title":"Contextid"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"History"},"id":{"type":"string","title":"Id"},"kind":{"type":"string","const":"task","title":"Kind","default":"task"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"status":{"$ref":"#/components/schemas/TaskStatus"}},"type":"object","required":["contextId","id","status"],"title":"Task","description":"Represents a single, stateful operation or conversation between a client and an agent."},"TaskState":{"type":"string","enum":["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"],"title":"TaskState","description":"Defines the lifecycle states of a Task."},"TaskStatus":{"properties":{"message":{"anyOf":[{"$ref":"#/components/schemas/Message"},{"type":"null"}]},"state":{"$ref":"#/components/schemas/TaskState"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp","examples":["2023-10-27T10:00:00Z"]}},"type":"object","required":["state"],"title":"TaskStatus","description":"Represents the status of a task at a specific point in time."},"TeamResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"members":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"$ref":"#/components/schemas/TeamResponse"}]},"type":"array"},{"type":"null"}],"title":"Members"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"TeamResponse"},"TeamRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the team run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that executed this run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the team run"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this team run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this team run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this team run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this team run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"TeamRunSchema"},"TeamSessionDetailSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID used in this session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of team interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"team_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Team Data","description":"Team-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"}},"type":"object","required":["session_id","session_name"],"title":"TeamSessionDetailSchema"},"TeamSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the team"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the team"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the team"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Team execution mode (coordinate, route, broadcast, tasks)"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the team leader"}},"type":"object","title":"TeamSummaryResponse"},"TelegramStatusResponse":{"properties":{"status":{"type":"string","title":"Status","default":"available"}},"type":"object","title":"TelegramStatusResponse"},"TelegramWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status"}},"type":"object","required":["status"],"title":"TelegramWebhookResponse"},"TextInputContent":{"properties":{"type":{"type":"string","const":"text","title":"Type","default":"text"},"text":{"type":"string","title":"Text"}},"additionalProperties":true,"type":"object","required":["text"],"title":"TextInputContent","description":"A text fragment in a multimodal user message."},"TextPart":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"TextPart","description":"Represents a text segment within a message or artifact."},"Tool":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{},{"type":"null"}],"title":"Parameters"}},"additionalProperties":true,"type":"object","required":["name","description"],"title":"Tool","description":"A tool definition."},"ToolCall":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/FunctionCall"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","function"],"title":"ToolCall","description":"A tool call, modelled after OpenAI tool calls."},"ToolMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"tool","title":"Role","default":"tool"},"content":{"type":"string","title":"Content"},"toolCallId":{"type":"string","title":"Toolcallid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content","toolCallId"],"title":"ToolMessage","description":"A tool result message."},"TraceDetail":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent/workflow"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the agent/workflow"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"},"tree":{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array","title":"Tree","description":"Hierarchical tree of spans (root nodes)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at","tree"],"title":"TraceDetail","description":"Detailed trace information with hierarchical span tree"},"TraceNode":{"properties":{"id":{"type":"string","title":"Id","description":"Span ID"},"name":{"type":"string","title":"Name","description":"Span name (e.g., 'agent.run', 'llm.invoke')"},"type":{"type":"string","title":"Type","description":"Span kind (AGENT, TEAM, WORKFLOW, LLM, TOOL)"},"duration":{"type":"string","title":"Duration","description":"Human-readable duration (e.g., '123ms', '1.5s')"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"End time (Pydantic auto-serializes to ISO 8601)"},"status":{"type":"string","title":"Status","description":"Status code (OK, ERROR)"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the span"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the span"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"spans":{"anyOf":[{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array"},{"type":"null"}],"title":"Spans","description":"Child spans in the trace hierarchy"},"step_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Type","description":"Workflow step type (Step, Condition, function, Agent, Team)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional span attributes and data"},"extra_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Data","description":"Flexible field for custom attributes and additional data"}},"type":"object","required":["id","name","type","duration","start_time","end_time","status"],"title":"TraceNode","description":"Recursive node structure for rendering trace hierarchy in the frontend"},"TraceSearchGroupBy":{"type":"string","enum":["run","session"],"title":"TraceSearchGroupBy","description":"Grouping options for trace search results."},"TraceSearchRequest":{"properties":{"filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter","description":"FilterExpr DSL as JSON dict. Supports operators: EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH, AND, OR, NOT."},"group_by":{"$ref":"#/components/schemas/TraceSearchGroupBy","description":"Grouping mode: 'run' returns individual TraceDetail, 'session' returns aggregated TraceSessionStats.","default":"run"},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number (1-indexed)","default":1},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"Number of traces per page (max 100)","default":20}},"type":"object","title":"TraceSearchRequest","description":"Request body for POST /traces/search with advanced filtering.\n\nThe filter field accepts a FilterExpr DSL dict supporting composable queries\nwith AND/OR/NOT logic and operators like EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH.\n\nExample for run grouping (default):\n {\n \"filter\": {\n \"op\": \"AND\",\n \"conditions\": [\n {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n {\"op\": \"CONTAINS\", \"key\": \"user_id\", \"value\": \"admin\"}\n ]\n },\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n }\n\nExample for session grouping:\n {\n \"filter\": {\"op\": \"EQ\", \"key\": \"agent_id\", \"value\": \"my-agent\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n }"},"TraceSessionStats":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID(s) used in the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID associated with the session"},"total_traces":{"type":"integer","title":"Total Traces","description":"Total number of traces in this session"},"first_trace_at":{"type":"string","format":"date-time","title":"First Trace At","description":"Time of first trace (Pydantic auto-serializes to ISO 8601)"},"last_trace_at":{"type":"string","format":"date-time","title":"Last Trace At","description":"Time of last trace (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["session_id","total_traces","first_trace_at","last_trace_at"],"title":"TraceSessionStats","description":"Aggregated trace statistics grouped by session"},"TraceSummary":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR, UNSET)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at"],"title":"TraceSummary","description":"Summary information for trace list view"},"TracesConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_TracesDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"TracesConfig","description":"Configuration for the Traces domain of the AgentOS"},"TracesDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"TracesDomainConfig","description":"Configuration for the Traces domain of the AgentOS"},"UnauthenticatedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"UnauthenticatedResponse","example":{"detail":"Unauthenticated access","error_code":"UNAUTHENTICATED"}},"UpdateEvalRunRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"New name for the evaluation run"}},"type":"object","required":["name"],"title":"UpdateEvalRunRequest"},"UpdateSessionRequest":{"properties":{"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Updated session name"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Updated session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Updated metadata"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary","description":"Session summary"}},"type":"object","title":"UpdateSessionRequest"},"UserMemoryCreateSchema":{"properties":{"memory":{"type":"string","maxLength":5000,"minLength":1,"title":"Memory","description":"Memory content text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags to categorize the memory"}},"type":"object","required":["memory"],"title":"UserMemoryCreateSchema","description":"Define the payload expected for creating a new user memory"},"UserMemorySchema":{"properties":{"memory_id":{"type":"string","title":"Memory Id","description":"Unique identifier for the memory"},"memory":{"type":"string","title":"Memory","description":"Memory content text"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags associated with the memory"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID associated with this memory"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with this memory"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when memory was last updated"}},"type":"object","required":["memory_id","memory"],"title":"UserMemorySchema"},"UserMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"user","title":"Role","default":"user"},"content":{"anyOf":[{"type":"string"},{"items":{"oneOf":[{"$ref":"#/components/schemas/TextInputContent"},{"$ref":"#/components/schemas/ImageInputContent"},{"$ref":"#/components/schemas/AudioInputContent"},{"$ref":"#/components/schemas/VideoInputContent"},{"$ref":"#/components/schemas/DocumentInputContent"},{"$ref":"#/components/schemas/BinaryInputContent"}],"discriminator":{"propertyName":"type","mapping":{"audio":"#/components/schemas/AudioInputContent","binary":"#/components/schemas/BinaryInputContent","document":"#/components/schemas/DocumentInputContent","image":"#/components/schemas/ImageInputContent","text":"#/components/schemas/TextInputContent","video":"#/components/schemas/VideoInputContent"}}},"type":"array"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"UserMessage","description":"A user message supporting text or multimodal content."},"UserStatsSchema":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"total_memories":{"type":"integer","minimum":0.0,"title":"Total Memories","description":"Total number of memories for this user"},"last_memory_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Memory Updated At","description":"Timestamp of the most recent memory update"}},"type":"object","required":["user_id","total_memories"],"title":"UserStatsSchema","description":"Schema for user memory statistics"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"ValidationErrorResponse","example":{"detail":"Validation error","error_code":"VALIDATION_ERROR"}},"VectorDbSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the vector database"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the vector database"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the vector database"},"search_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Search Types","description":"List of supported search types (vector, keyword, hybrid)"}},"type":"object","required":["id"],"title":"VectorDbSchema"},"VectorSearchRequestSchema":{"properties":{"query":{"type":"string","title":"Query","description":"The search query text"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database ID to search in"},"knowledge_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledge Id","description":"Knowledge base ID to search in"},"vector_db_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vector Db Ids","description":"List of vector database IDs to search in"},"search_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Type","description":"The type of search to perform (vector, keyword, hybrid)"},"max_results":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Max Results","description":"The maximum number of results to return"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Filters to apply to the search results"},"meta":{"anyOf":[{"$ref":"#/components/schemas/Meta"},{"type":"null"}],"description":"Pagination metadata. Limit and page number to return a subset of results."}},"type":"object","required":["query"],"title":"VectorSearchRequestSchema","description":"Schema for vector search request."},"VectorSearchResult":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the search result document"},"content":{"type":"string","title":"Content","description":"Content text of the document"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the document"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Metadata associated with the document"},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"Usage statistics (e.g., token counts)"},"reranking_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reranking Score","description":"Reranking score for relevance"},"content_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Id","description":"ID of the source content"},"content_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Origin","description":"Origin URL or source of the content"},"size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"}},"type":"object","required":["id","content"],"title":"VectorSearchResult","description":"Schema for search result documents."},"VideoInputContent":{"properties":{"type":{"type":"string","const":"video","title":"Type","default":"video"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"VideoInputContent","description":"A video input content fragment."},"WhatsAppWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status","default":"ok"}},"type":"object","title":"WhatsAppWebhookResponse"},"WorkflowResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema","description":"Input schema for the workflow"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps","description":"List of workflow steps"},"agent":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"type":"null"}],"description":"Agent configuration if used"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamResponse"},{"type":"null"}],"description":"Team configuration if used"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"workflow_agent":{"type":"boolean","title":"Workflow Agent","description":"Whether this workflow uses a WorkflowAgent","default":false},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowResponse"},"WorkflowRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the workflow run"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the workflow"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was executed"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the workflow"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"Type of content returned"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status of the workflow run"},"step_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Results","description":"Results from each workflow step"},"step_executor_runs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Executor Runs","description":"Executor runs for each step"},"step_requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Requirements","description":"HITL step requirements (resolved state for historical display)"},"pause_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Kind","description":"Kind of HITL pause: 'step' or 'executor'"},"paused_step_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Step Name","description":"Name of the step that caused the pause"},"paused_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Paused Step Index","description":"Index of the step that caused the pause"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the workflow"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the workflow"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the workflow"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the workflow"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the workflow"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"}},"type":"object","required":["run_id"],"title":"WorkflowRunSchema"},"WorkflowSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID used in this session"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name","description":"Name of the workflow"},"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Data","description":"Complete session data"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current workflow state"},"workflow_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Data","description":"Workflow-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["session_id","session_name"],"title":"WorkflowSessionDetailSchema"},"WorkflowSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowSummaryResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} diff --git a/reference-api/openapi.yaml b/reference-api/openapi.yaml index 9feb5cb66..c4e670a8a 100644 --- a/reference-api/openapi.yaml +++ b/reference-api/openapi.yaml @@ -482,6 +482,12 @@ paths: application/json: schema: $ref: '#/components/schemas/InternalServerErrorResponse' + '501': + description: The selected agent does not support run cancellation + content: + application/json: + schema: + $ref: '#/components/schemas/NotImplementedResponse' /agents/{agent_id}/runs/{run_id}/continue: post: tags: @@ -575,6 +581,12 @@ paths: application/json: schema: $ref: '#/components/schemas/InternalServerErrorResponse' + '501': + description: The selected agent does not support run continuation + content: + application/json: + schema: + $ref: '#/components/schemas/NotImplementedResponse' '503': description: Remote agent is unavailable content: @@ -1653,15 +1665,8 @@ paths: get: tags: - Teams - summary: List All Teams - description: |- - Retrieve a comprehensive list of all teams configured in this OS instance. - - **Returns team information including:** - - Team metadata (ID, name, description, execution mode) - - Model configuration for team coordination - - Team member roster with roles and capabilities - - Knowledge sharing and memory configurations + summary: List Accessible Teams + description: Retrieve configured team metadata, models, members, knowledge, and memory settings. When authorization is enabled, in-memory team registrations are filtered by caller scopes. Database-loaded team components are also included. operationId: get_teams responses: '200': @@ -3112,16 +3117,37 @@ paths: title: Id responses: '200': - description: Successful Response + description: Agent card retrieved successfully content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/AgentCard' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' + '404': + description: Agent not found + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] /a2a/agents/{id}/v1/message:send: post: tags: @@ -3205,7 +3231,7 @@ paths: tags: - A2A summary: Get Agent Task - description: Get the status and result of an agent task by ID. + description: Get the status and result of an agent task by ID. `params.contextId` identifies the session containing the task. operationId: get_agent_task parameters: - name: id @@ -3216,22 +3242,77 @@ paths: title: Id responses: '200': - description: Successful Response + description: Agent task retrieved successfully content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/GetTaskSuccessResponse' + example: + id: request-123 + jsonrpc: '2.0' + result: + contextId: context-789 + id: task-456 + kind: task + status: + state: completed + '400': + description: Missing task or context ID, or task polling requested for a remote agent + content: + application/json: + schema: + $ref: '#/components/schemas/BadRequestResponse' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' + '404': + description: Agent, session, or task not found + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + '501': + description: Task polling is not supported for this agent type + content: + application/json: + schema: + $ref: '#/components/schemas/NotImplementedResponse' + security: + - HTTPBearer: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/GetTaskRequest' + example: + jsonrpc: '2.0' + id: request-123 + method: tasks/get + params: + id: task-456 + contextId: context-789 /a2a/agents/{id}/v1/tasks:cancel: post: tags: - A2A summary: Cancel Agent Task - description: Cancel a running agent task. + description: Cancel a running agent task. Scoped non-admin callers must identify the task's session with `params.contextId`. operationId: cancel_agent_task parameters: - name: id @@ -3242,16 +3323,71 @@ paths: title: Id responses: '200': - description: Successful Response + description: Agent task canceled successfully content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/CancelTaskSuccessResponse' + example: + id: request-123 + jsonrpc: '2.0' + result: + contextId: context-789 + id: task-456 + kind: task + status: + state: canceled + '400': + description: Missing task or required context ID, or task cancellation requested for a remote agent + content: + application/json: + schema: + $ref: '#/components/schemas/BadRequestResponse' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' + '404': + description: Agent, session, or task not found + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + '501': + description: Task cancellation is not supported for this agent type + content: + application/json: + schema: + $ref: '#/components/schemas/NotImplementedResponse' + security: + - HTTPBearer: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CancelTaskRequest' + example: + jsonrpc: '2.0' + id: request-123 + method: tasks/cancel + params: + id: task-456 + contextId: context-789 /a2a/agents/{id}/v1/message:stream: post: tags: @@ -3337,16 +3473,37 @@ paths: title: Id responses: '200': - description: Successful Response + description: Team card retrieved successfully content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/AgentCard' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' + '404': + description: Team not found + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] /a2a/teams/{id}/v1/message:send: post: tags: @@ -3424,7 +3581,7 @@ paths: tags: - A2A summary: Get Team Task - description: Get the status and result of a team task by ID. + description: Get the status and result of a team task by ID. `params.contextId` identifies the session containing the task. operationId: get_team_task parameters: - name: id @@ -3435,22 +3592,71 @@ paths: title: Id responses: '200': - description: Successful Response + description: Team task retrieved successfully content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/GetTaskSuccessResponse' + example: + id: request-123 + jsonrpc: '2.0' + result: + contextId: context-789 + id: task-456 + kind: task + status: + state: completed + '400': + description: Missing task or context ID, or task polling requested for a remote team + content: + application/json: + schema: + $ref: '#/components/schemas/BadRequestResponse' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' + '404': + description: Team, session, or task not found + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/GetTaskRequest' + example: + jsonrpc: '2.0' + id: request-123 + method: tasks/get + params: + id: task-456 + contextId: context-789 /a2a/teams/{id}/v1/tasks:cancel: post: tags: - A2A summary: Cancel Team Task - description: Cancel a running team task. + description: Cancel a running team task. Scoped non-admin callers must identify the task's session with `params.contextId`. operationId: cancel_team_task parameters: - name: id @@ -3461,16 +3667,65 @@ paths: title: Id responses: '200': - description: Successful Response + description: Team task canceled successfully content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/CancelTaskSuccessResponse' + example: + id: request-123 + jsonrpc: '2.0' + result: + contextId: context-789 + id: task-456 + kind: task + status: + state: canceled + '400': + description: Missing task or required context ID, or task cancellation requested for a remote team + content: + application/json: + schema: + $ref: '#/components/schemas/BadRequestResponse' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' + '404': + description: Team, session, or task not found + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CancelTaskRequest' + example: + jsonrpc: '2.0' + id: request-123 + method: tasks/cancel + params: + id: task-456 + contextId: context-789 /a2a/teams/{id}/v1/message:stream: post: tags: @@ -3556,16 +3811,37 @@ paths: title: Id responses: '200': - description: Successful Response + description: Workflow card retrieved successfully content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/AgentCard' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' + '404': + description: Workflow not found + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] /a2a/workflows/{id}/v1/message:send: post: tags: @@ -3717,23 +3993,60 @@ paths: schema: $ref: '#/components/schemas/SendMessageSuccessResponse' example: - jsonrpc: '2.0' id: request-123 + jsonrpc: '2.0' result: - task: - id: task-456 - context_id: context-789 - status: completed - history: - - message_id: msg-1 - role: agent - parts: - - kind: text - text: Response from agent + contextId: context-789 + id: task-456 + kind: task + status: + state: completed '400': description: Invalid request or unsupported method + content: + application/json: + schema: + $ref: '#/components/schemas/BadRequestResponse' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': - description: Agent, Team, or Workflow not found + description: Agent, team, or workflow not found + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponse' + deprecated: true + security: + - HTTPBearer: [] + parameters: + - name: X-Agent-ID + in: header + required: false + schema: + type: string + description: Target agent, team, or workflow ID when `params.message.agentId` is omitted. + - name: X-User-ID + in: header + required: false + schema: + type: string + description: Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SendMessageRequest' /a2a/message/stream: post: tags: @@ -3757,8 +4070,56 @@ paths: type: string '400': description: Invalid request or unsupported method + content: + application/json: + schema: + $ref: '#/components/schemas/BadRequestResponse' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponse' '404': - description: Agent, Team, or Workflow not found + description: Agent, team, or workflow not found + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponse' + '500': + description: Run could not be started + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerErrorResponse' + deprecated: true + security: + - HTTPBearer: [] + parameters: + - name: X-Agent-ID + in: header + required: false + schema: + type: string + description: Target agent, team, or workflow ID when `params.message.agentId` is omitted. + - name: X-User-ID + in: header + required: false + schema: + type: string + description: Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SendStreamingMessageRequest' /sessions: get: tags: @@ -6128,6 +6489,12 @@ paths: application/json: schema: $ref: '#/components/schemas/InternalServerErrorResponse' + '501': + description: Learnings are unavailable for remote or unsupported databases + content: + application/json: + schema: + $ref: '#/components/schemas/NotImplementedResponse' post: tags: - Learnings @@ -6194,6 +6561,12 @@ paths: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' + '409': + description: An identity-keyed learning already exists + content: + application/json: + schema: + $ref: '#/components/schemas/ConflictResponse' '422': description: Validation Error content: @@ -6206,6 +6579,12 @@ paths: application/json: schema: $ref: '#/components/schemas/InternalServerErrorResponse' + '501': + description: Learnings are unavailable for remote or unsupported databases + content: + application/json: + schema: + $ref: '#/components/schemas/NotImplementedResponse' /learnings/users: get: tags: @@ -6341,6 +6720,12 @@ paths: application/json: schema: $ref: '#/components/schemas/InternalServerErrorResponse' + '501': + description: Learnings are unavailable for remote or unsupported databases + content: + application/json: + schema: + $ref: '#/components/schemas/NotImplementedResponse' /learnings/users/{user_id}: delete: tags: @@ -6428,6 +6813,12 @@ paths: application/json: schema: $ref: '#/components/schemas/InternalServerErrorResponse' + '501': + description: Learnings are unavailable for remote or unsupported databases + content: + application/json: + schema: + $ref: '#/components/schemas/NotImplementedResponse' /learnings/{learning_id}: get: tags: @@ -6509,6 +6900,12 @@ paths: application/json: schema: $ref: '#/components/schemas/InternalServerErrorResponse' + '501': + description: Learnings are unavailable for remote or unsupported databases + content: + application/json: + schema: + $ref: '#/components/schemas/NotImplementedResponse' patch: tags: - Learnings @@ -6595,6 +6992,12 @@ paths: application/json: schema: $ref: '#/components/schemas/InternalServerErrorResponse' + '501': + description: Learnings are unavailable for remote or unsupported databases + content: + application/json: + schema: + $ref: '#/components/schemas/NotImplementedResponse' delete: tags: - Learnings @@ -6671,6 +7074,12 @@ paths: application/json: schema: $ref: '#/components/schemas/InternalServerErrorResponse' + '501': + description: Learnings are unavailable for remote or unsupported databases + content: + application/json: + schema: + $ref: '#/components/schemas/NotImplementedResponse' /eval-runs: get: tags: @@ -7799,6 +8208,12 @@ paths: application/json: schema: $ref: '#/components/schemas/InternalServerErrorResponse' + '501': + description: Remote content upload is unavailable for remote knowledge bases + content: + application/json: + schema: + $ref: '#/components/schemas/NotImplementedResponse' /knowledge/content/{content_id}: patch: tags: @@ -8691,6 +9106,12 @@ paths: application/json: schema: $ref: '#/components/schemas/InternalServerErrorResponse' + '501': + description: Content source listing is unavailable for remote knowledge bases + content: + application/json: + schema: + $ref: '#/components/schemas/NotImplementedResponse' /knowledge/{knowledge_id}/sources/{source_id}/files: get: tags: @@ -8829,6 +9250,12 @@ paths: application/json: schema: $ref: '#/components/schemas/InternalServerErrorResponse' + '501': + description: Source file listing is unavailable for remote knowledge bases + content: + application/json: + schema: + $ref: '#/components/schemas/NotImplementedResponse' /traces: get: tags: @@ -11850,111 +12277,548 @@ paths: $ref: '#/components/schemas/InternalServerErrorResponse' components: schemas: - A2ARequest_DataPart: - description: Represents a structured data segment (e.g., JSON) within a message or artifact. + A2ACard_APIKeySecurityScheme: + description: Defines a security scheme using an API key. properties: - data: - additionalProperties: true - title: Data - type: object - kind: - const: data - default: data - title: Kind - type: string - metadata: + description: anyOf: - - additionalProperties: true - type: object + - type: string - type: 'null' default: null - title: Metadata + title: Description + in: + $ref: '#/components/schemas/A2ACard_In' + name: + title: Name + type: string + type: + const: apiKey + default: apiKey + title: Type + type: string required: - - data - title: DataPart + - in + - name + title: APIKeySecurityScheme type: object - A2ARequest_FilePart: - description: |- - Represents a file segment within a message or artifact. The file content can be - provided either directly as bytes or as a URI. + A2ACard_AgentCapabilities: + description: Defines optional capabilities supported by an agent. properties: - file: + extensions: anyOf: - - $ref: '#/components/schemas/A2ARequest_FileWithBytes' - - $ref: '#/components/schemas/A2ARequest_FileWithUri' - title: File - kind: - const: file - default: file - title: Kind - type: string - metadata: + - items: + $ref: '#/components/schemas/A2ACard_AgentExtension' + type: array + - type: 'null' + default: null + title: Extensions + pushNotifications: anyOf: - - additionalProperties: true - type: object + - type: boolean - type: 'null' default: null - title: Metadata - required: - - file - title: FilePart - type: object - A2ARequest_FileWithBytes: - description: Represents a file with its content provided directly as a base64-encoded string. - properties: - bytes: - title: Bytes - type: string - mimeType: + title: Pushnotifications + stateTransitionHistory: anyOf: - - type: string + - type: boolean - type: 'null' default: null - title: Mimetype - name: + title: Statetransitionhistory + streaming: anyOf: - - type: string + - type: boolean - type: 'null' default: null - title: Name + title: Streaming + title: AgentCapabilities + type: object + A2ACard_AgentCardSignature: + description: |- + AgentCardSignature represents a JWS signature of an AgentCard. + This follows the JSON format of an RFC 7515 JSON Web Signature (JWS). + properties: + header: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: null + title: Header + protected: + title: Protected + type: string + signature: + title: Signature + type: string required: - - bytes - title: FileWithBytes + - protected + - signature + title: AgentCardSignature type: object - A2ARequest_FileWithUri: - description: Represents a file with its content located at a specific URI. + A2ACard_AgentExtension: + description: A declaration of a protocol extension supported by an Agent. properties: - mimeType: + description: anyOf: - type: string - type: 'null' default: null - title: Mimetype - name: + title: Description + params: anyOf: - - type: string + - additionalProperties: true + type: object - type: 'null' default: null - title: Name + title: Params + required: + anyOf: + - type: boolean + - type: 'null' + default: null + title: Required uri: title: Uri type: string required: - uri - title: FileWithUri + title: AgentExtension type: object - A2ARequest_Message: - description: Represents a single message in the conversation between a user and an agent. + A2ACard_AgentInterface: + description: |- + Declares a combination of a target URL and a transport protocol for interacting with the agent. + This allows agents to expose the same functionality over multiple transport mechanisms. properties: - contextId: - anyOf: - - type: string - - type: 'null' - default: null - title: Contextid - extensions: - anyOf: - - items: + transport: + examples: + - JSONRPC + - GRPC + - HTTP+JSON + title: Transport + type: string + url: + examples: + - https://api.example.com/a2a/v1 + - https://grpc.example.com/a2a + - https://rest.example.com/v1 + title: Url + type: string + required: + - transport + - url + title: AgentInterface + type: object + A2ACard_AgentProvider: + description: Represents the service provider of an agent. + properties: + organization: + title: Organization + type: string + url: + title: Url + type: string + required: + - organization + - url + title: AgentProvider + type: object + A2ACard_AgentSkill: + description: Represents a distinct capability or function that an agent can perform. + properties: + description: + title: Description + type: string + examples: + anyOf: + - items: + type: string + type: array + - type: 'null' + default: null + examples: + - - I need a recipe for bread + title: Examples + id: + title: Id + type: string + inputModes: + anyOf: + - items: + type: string + type: array + - type: 'null' + default: null + title: Inputmodes + name: + title: Name + type: string + outputModes: + anyOf: + - items: + type: string + type: array + - type: 'null' + default: null + title: Outputmodes + security: + anyOf: + - items: + additionalProperties: + items: + type: string + type: array + type: object + type: array + - type: 'null' + default: null + examples: + - - google: + - oidc + title: Security + tags: + examples: + - - cooking + - customer support + - billing + items: + type: string + title: Tags + type: array + required: + - description + - id + - name + - tags + title: AgentSkill + type: object + A2ACard_AuthorizationCodeOAuthFlow: + description: Defines configuration details for the OAuth 2.0 Authorization Code flow. + properties: + authorizationUrl: + title: Authorizationurl + type: string + refreshUrl: + anyOf: + - type: string + - type: 'null' + default: null + title: Refreshurl + scopes: + additionalProperties: + type: string + title: Scopes + type: object + tokenUrl: + title: Tokenurl + type: string + required: + - authorizationUrl + - scopes + - tokenUrl + title: AuthorizationCodeOAuthFlow + type: object + A2ACard_ClientCredentialsOAuthFlow: + description: Defines configuration details for the OAuth 2.0 Client Credentials flow. + properties: + refreshUrl: + anyOf: + - type: string + - type: 'null' + default: null + title: Refreshurl + scopes: + additionalProperties: + type: string + title: Scopes + type: object + tokenUrl: + title: Tokenurl + type: string + required: + - scopes + - tokenUrl + title: ClientCredentialsOAuthFlow + type: object + A2ACard_HTTPAuthSecurityScheme: + description: Defines a security scheme using HTTP authentication. + properties: + bearerFormat: + anyOf: + - type: string + - type: 'null' + default: null + title: Bearerformat + description: + anyOf: + - type: string + - type: 'null' + default: null + title: Description + scheme: + title: Scheme + type: string + type: + const: http + default: http + title: Type + type: string + required: + - scheme + title: HTTPAuthSecurityScheme + type: object + A2ACard_ImplicitOAuthFlow: + description: Defines configuration details for the OAuth 2.0 Implicit flow. + properties: + authorizationUrl: + title: Authorizationurl + type: string + refreshUrl: + anyOf: + - type: string + - type: 'null' + default: null + title: Refreshurl + scopes: + additionalProperties: + type: string + title: Scopes + type: object + required: + - authorizationUrl + - scopes + title: ImplicitOAuthFlow + type: object + A2ACard_In: + description: The location of the API key. + enum: + - cookie + - header + - query + title: In + type: string + A2ACard_MutualTLSSecurityScheme: + description: Defines a security scheme using mTLS authentication. + properties: + description: + anyOf: + - type: string + - type: 'null' + default: null + title: Description + type: + const: mutualTLS + default: mutualTLS + title: Type + type: string + title: MutualTLSSecurityScheme + type: object + A2ACard_OAuth2SecurityScheme: + description: Defines a security scheme using OAuth 2.0. + properties: + description: + anyOf: + - type: string + - type: 'null' + default: null + title: Description + flows: + $ref: '#/components/schemas/A2ACard_OAuthFlows' + oauth2MetadataUrl: + anyOf: + - type: string + - type: 'null' + default: null + title: Oauth2Metadataurl + type: + const: oauth2 + default: oauth2 + title: Type + type: string + required: + - flows + title: OAuth2SecurityScheme + type: object + A2ACard_OAuthFlows: + description: Defines the configuration for the supported OAuth 2.0 flows. + properties: + authorizationCode: + anyOf: + - $ref: '#/components/schemas/A2ACard_AuthorizationCodeOAuthFlow' + - type: 'null' + default: null + clientCredentials: + anyOf: + - $ref: '#/components/schemas/A2ACard_ClientCredentialsOAuthFlow' + - type: 'null' + default: null + implicit: + anyOf: + - $ref: '#/components/schemas/A2ACard_ImplicitOAuthFlow' + - type: 'null' + default: null + password: + anyOf: + - $ref: '#/components/schemas/A2ACard_PasswordOAuthFlow' + - type: 'null' + default: null + title: OAuthFlows + type: object + A2ACard_OpenIdConnectSecurityScheme: + description: Defines a security scheme using OpenID Connect. + properties: + description: + anyOf: + - type: string + - type: 'null' + default: null + title: Description + openIdConnectUrl: + title: Openidconnecturl + type: string + type: + const: openIdConnect + default: openIdConnect + title: Type + type: string + required: + - openIdConnectUrl + title: OpenIdConnectSecurityScheme + type: object + A2ACard_PasswordOAuthFlow: + description: Defines configuration details for the OAuth 2.0 Resource Owner Password flow. + properties: + refreshUrl: + anyOf: + - type: string + - type: 'null' + default: null + title: Refreshurl + scopes: + additionalProperties: + type: string + title: Scopes + type: object + tokenUrl: + title: Tokenurl + type: string + required: + - scopes + - tokenUrl + title: PasswordOAuthFlow + type: object + A2ACard_SecurityScheme: + anyOf: + - $ref: '#/components/schemas/A2ACard_APIKeySecurityScheme' + - $ref: '#/components/schemas/A2ACard_HTTPAuthSecurityScheme' + - $ref: '#/components/schemas/A2ACard_OAuth2SecurityScheme' + - $ref: '#/components/schemas/A2ACard_OpenIdConnectSecurityScheme' + - $ref: '#/components/schemas/A2ACard_MutualTLSSecurityScheme' + title: SecurityScheme + A2ARequest_DataPart: + description: Represents a structured data segment (e.g., JSON) within a message or artifact. + properties: + data: + additionalProperties: true + title: Data + type: object + kind: + const: data + default: data + title: Kind + type: string + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: null + title: Metadata + required: + - data + title: DataPart + type: object + A2ARequest_FilePart: + description: |- + Represents a file segment within a message or artifact. The file content can be + provided either directly as bytes or as a URI. + properties: + file: + anyOf: + - $ref: '#/components/schemas/A2ARequest_FileWithBytes' + - $ref: '#/components/schemas/A2ARequest_FileWithUri' + title: File + kind: + const: file + default: file + title: Kind + type: string + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: null + title: Metadata + required: + - file + title: FilePart + type: object + A2ARequest_FileWithBytes: + description: Represents a file with its content provided directly as a base64-encoded string. + properties: + bytes: + title: Bytes + type: string + mimeType: + anyOf: + - type: string + - type: 'null' + default: null + title: Mimetype + name: + anyOf: + - type: string + - type: 'null' + default: null + title: Name + required: + - bytes + title: FileWithBytes + type: object + A2ARequest_FileWithUri: + description: Represents a file with its content located at a specific URI. + properties: + mimeType: + anyOf: + - type: string + - type: 'null' + default: null + title: Mimetype + name: + anyOf: + - type: string + - type: 'null' + default: null + title: Name + uri: + title: Uri + type: string + required: + - uri + title: FileWithUri + type: object + A2ARequest_Message: + description: Represents a single message in the conversation between a user and an agent. + properties: + contextId: + anyOf: + - type: string + - type: 'null' + default: null + title: Contextid + extensions: + anyOf: + - items: type: string type: array - type: 'null' @@ -11996,6 +12860,13 @@ components: - type: 'null' default: null title: Taskid + agentId: + anyOf: + - type: string + - type: 'null' + default: null + title: Agent ID + description: Target agent, team, or workflow ID for deprecated dynamic-dispatch endpoints. required: - messageId - parts @@ -12113,6 +12984,55 @@ components: - user title: Role type: string + A2ARequest_TaskIdParams: + description: Defines parameters containing a task ID, used for simple task operations. + properties: + id: + title: Id + type: string + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: null + title: Metadata + contextId: + type: string + title: Context ID + description: Agno session ID containing the task. + required: + - id + title: TaskIdParams + type: object + A2ARequest_TaskQueryParams: + description: Defines parameters for querying a task, with an option to limit history length. + properties: + historyLength: + anyOf: + - type: integer + - type: 'null' + default: null + title: Historylength + id: + title: Id + type: string + metadata: + anyOf: + - additionalProperties: true + type: object + - type: 'null' + default: null + title: Metadata + contextId: + type: string + title: Context ID + description: Agno session ID containing the task. + required: + - id + - contextId + title: TaskQueryParams + type: object A2ARequest_TextPart: description: Represents a text segment within a message or artifact. properties: @@ -12160,6 +13080,140 @@ components: - content title: ActivityMessage description: An activity progress message emitted between chat messages. + AgentCard: + description: |- + The AgentCard is a self-describing manifest for an agent. It provides essential + metadata including the agent's identity, capabilities, skills, supported + communication methods, and security requirements. + properties: + additionalInterfaces: + anyOf: + - items: + $ref: '#/components/schemas/A2ACard_AgentInterface' + type: array + - type: 'null' + default: null + title: Additionalinterfaces + capabilities: + $ref: '#/components/schemas/A2ACard_AgentCapabilities' + defaultInputModes: + items: + type: string + title: Defaultinputmodes + type: array + defaultOutputModes: + items: + type: string + title: Defaultoutputmodes + type: array + description: + examples: + - Agent that helps users with recipes and cooking. + title: Description + type: string + documentationUrl: + anyOf: + - type: string + - type: 'null' + default: null + title: Documentationurl + iconUrl: + anyOf: + - type: string + - type: 'null' + default: null + title: Iconurl + name: + examples: + - Recipe Agent + title: Name + type: string + preferredTransport: + anyOf: + - type: string + - type: 'null' + default: JSONRPC + examples: + - JSONRPC + - GRPC + - HTTP+JSON + title: Preferredtransport + protocolVersion: + anyOf: + - type: string + - type: 'null' + default: 0.3.0 + title: Protocolversion + provider: + anyOf: + - $ref: '#/components/schemas/A2ACard_AgentProvider' + - type: 'null' + default: null + security: + anyOf: + - items: + additionalProperties: + items: + type: string + type: array + type: object + type: array + - type: 'null' + default: null + examples: + - - oauth: + - read + - api-key: [] + mtls: [] + title: Security + securitySchemes: + anyOf: + - additionalProperties: + $ref: '#/components/schemas/A2ACard_SecurityScheme' + type: object + - type: 'null' + default: null + title: Securityschemes + signatures: + anyOf: + - items: + $ref: '#/components/schemas/A2ACard_AgentCardSignature' + type: array + - type: 'null' + default: null + title: Signatures + skills: + items: + $ref: '#/components/schemas/A2ACard_AgentSkill' + title: Skills + type: array + supportsAuthenticatedExtendedCard: + anyOf: + - type: boolean + - type: 'null' + default: null + title: Supportsauthenticatedextendedcard + url: + examples: + - https://api.example.com/a2a/v1 + title: Url + type: string + version: + examples: + - 1.0.0 + title: Version + type: string + required: + - capabilities + - defaultInputModes + - defaultOutputModes + - description + - name + - skills + - url + - version + title: AgentCard + type: object AgentResponse: properties: id: @@ -13321,6 +14375,52 @@ components: - config_id - path title: Body_upload_remote_content + CancelTaskRequest: + description: Represents a JSON-RPC request for the `tasks/cancel` method. + properties: + id: + anyOf: + - type: string + - type: integer + title: Id + jsonrpc: + const: '2.0' + default: '2.0' + title: Jsonrpc + type: string + method: + const: tasks/cancel + default: tasks/cancel + title: Method + type: string + params: + $ref: '#/components/schemas/A2ARequest_TaskIdParams' + required: + - id + - params + title: CancelTaskRequest + type: object + CancelTaskSuccessResponse: + description: Represents a successful JSON-RPC response for the `tasks/cancel` method. + properties: + id: + anyOf: + - type: string + - type: integer + - type: 'null' + default: null + title: Id + jsonrpc: + const: '2.0' + default: '2.0' + title: Jsonrpc + type: string + result: + $ref: '#/components/schemas/Task' + required: + - result + title: CancelTaskSuccessResponse + type: object ChatConfig: properties: quick_prompts: @@ -14728,6 +15828,52 @@ components: - arguments title: FunctionCall description: Name and arguments of a function call. + GetTaskRequest: + description: Represents a JSON-RPC request for the `tasks/get` method. + properties: + id: + anyOf: + - type: string + - type: integer + title: Id + jsonrpc: + const: '2.0' + default: '2.0' + title: Jsonrpc + type: string + method: + const: tasks/get + default: tasks/get + title: Method + type: string + params: + $ref: '#/components/schemas/A2ARequest_TaskQueryParams' + required: + - id + - params + title: GetTaskRequest + type: object + GetTaskSuccessResponse: + description: Represents a successful JSON-RPC response for the `tasks/get` method. + properties: + id: + anyOf: + - type: string + - type: integer + - type: 'null' + default: null + title: Id + jsonrpc: + const: '2.0' + default: '2.0' + title: Jsonrpc + type: string + result: + $ref: '#/components/schemas/Task' + required: + - result + title: GetTaskSuccessResponse + type: object HTTPValidationError: properties: detail: diff --git a/scripts/make_openapi.py b/scripts/make_openapi.py index 2378a5ff6..9b19d4532 100644 --- a/scripts/make_openapi.py +++ b/scripts/make_openapi.py @@ -390,8 +390,23 @@ def sort_responses(operation: dict) -> None: "Remote agent is unavailable", "ServiceUnavailableResponse", ) + add_response( + continue_agent_run, + "501", + "The selected agent does not support run continuation", + "NotImplementedResponse", + ) sort_responses(continue_agent_run) + cancel_agent_run = spec["paths"]["/agents/{agent_id}/runs/{run_id}/cancel"]["post"] + add_response( + cancel_agent_run, + "501", + "The selected agent does not support run cancellation", + "NotImplementedResponse", + ) + sort_responses(cancel_agent_run) + continue_team_run = spec["paths"]["/teams/{team_id}/runs/{run_id}/continue"]["post"] continue_team_responses = continue_team_run["responses"] assert continue_team_responses["200"]["description"] == "Team run continued successfully" @@ -466,6 +481,66 @@ def sort_responses(operation: dict) -> None: continue_workflow_validation["$ref"] = "#/components/schemas/HTTPValidationError" sort_responses(continue_workflow_run) + list_teams = spec["paths"]["/teams"]["get"] + assert list_teams["summary"] == "List All Teams" + list_teams["summary"] = "List Accessible Teams" + assert list_teams["description"] == ( + "Retrieve a comprehensive list of all teams configured in this OS instance.\n\n" + "**Returns team information including:**\n" + "- Team metadata (ID, name, description, execution mode)\n" + "- Model configuration for team coordination\n" + "- Team member roster with roles and capabilities\n" + "- Knowledge sharing and memory configurations" + ) + list_teams["description"] = ( + "Retrieve configured team metadata, models, members, knowledge, and memory settings. " + "When authorization is enabled, in-memory team registrations are filtered by caller scopes. " + "Database-loaded team components are also included." + ) + + for path, description in ( + ("/knowledge/remote-content", "Remote content upload is unavailable for remote knowledge bases"), + ( + "/knowledge/{knowledge_id}/sources", + "Content source listing is unavailable for remote knowledge bases", + ), + ( + "/knowledge/{knowledge_id}/sources/{source_id}/files", + "Source file listing is unavailable for remote knowledge bases", + ), + ): + operation = spec["paths"][path]["post" if path == "/knowledge/remote-content" else "get"] + add_response(operation, "501", description, "NotImplementedResponse") + sort_responses(operation) + + learning_operations = ( + ("/learnings", "get"), + ("/learnings", "post"), + ("/learnings/users", "get"), + ("/learnings/users/{user_id}", "delete"), + ("/learnings/{learning_id}", "get"), + ("/learnings/{learning_id}", "patch"), + ("/learnings/{learning_id}", "delete"), + ) + for path, method in learning_operations: + operation = spec["paths"][path][method] + add_response( + operation, + "501", + "Learnings are unavailable for remote or unsupported databases", + "NotImplementedResponse", + ) + sort_responses(operation) + + create_learning = spec["paths"]["/learnings"]["post"] + add_response( + create_learning, + "409", + "An identity-keyed learning already exists", + "ConflictResponse", + ) + sort_responses(create_learning) + update_content = spec["paths"]["/knowledge/content/{content_id}"]["patch"] assert update_content["description"] == ( "Update content properties such as name, description, metadata, or processing configuration. " @@ -1077,7 +1152,16 @@ def sort_responses(operation: dict) -> None: present_a2a_paths = [path for path in a2a_paths if path in spec["paths"]] if present_a2a_paths: assert present_a2a_paths == a2a_paths - from a2a.types import SendMessageRequest, SendMessageSuccessResponse, SendStreamingMessageRequest + from a2a.types import ( + AgentCard, + CancelTaskSuccessResponse, + CancelTaskRequest, + GetTaskSuccessResponse, + GetTaskRequest, + SendMessageRequest, + SendMessageSuccessResponse, + SendStreamingMessageRequest, + ) for request_model in (SendMessageRequest, SendStreamingMessageRequest): request_schema = request_model.model_json_schema( @@ -1093,6 +1177,61 @@ def sort_responses(operation: dict) -> None: assert request_model.__name__ not in schemas schemas[request_model.__name__] = request_schema + deprecated_entity_id = schemas["A2ARequest_Message"]["properties"] + assert "agentId" not in deprecated_entity_id + deprecated_entity_id["agentId"] = { + "anyOf": [{"type": "string"}, {"type": "null"}], + "default": None, + "title": "Agent ID", + "description": "Target agent, team, or workflow ID for deprecated dynamic-dispatch endpoints.", + } + + card_schema = AgentCard.model_json_schema(ref_template="#/components/schemas/A2ACard_{model}") + card_definitions = card_schema.pop("$defs") + for definition_name, definition_schema in card_definitions.items(): + component_name = f"A2ACard_{definition_name}" + assert component_name not in schemas + schemas[component_name] = definition_schema + assert "AgentCard" not in schemas + schemas["AgentCard"] = card_schema + + for request_model, params_definition, context_required in ( + (GetTaskRequest, "TaskQueryParams", True), + (CancelTaskRequest, "TaskIdParams", False), + ): + request_schema = request_model.model_json_schema( + ref_template="#/components/schemas/A2ARequest_{model}" + ) + request_definitions = request_schema.pop("$defs") + params_schema = request_definitions[params_definition] + assert "contextId" not in params_schema["properties"] + params_schema["properties"]["contextId"] = { + "type": "string", + "title": "Context ID", + "description": "Agno session ID containing the task.", + } + if context_required: + assert params_schema["required"] == ["id"] + params_schema["required"].append("contextId") + for definition_name, definition_schema in request_definitions.items(): + component_name = f"A2ARequest_{definition_name}" + assert component_name not in schemas + schemas[component_name] = definition_schema + assert request_model.__name__ not in schemas + schemas[request_model.__name__] = request_schema + + for response_model in (GetTaskSuccessResponse, CancelTaskSuccessResponse): + response_schema = response_model.model_json_schema( + ref_template="#/components/schemas/{model}" + ) + response_schema.pop("$defs") + assert "Task" in schemas + assert response_schema["properties"]["result"] == { + "$ref": "#/components/schemas/Task" + } + assert response_model.__name__ not in schemas + schemas[response_model.__name__] = response_schema + success_example = SendMessageSuccessResponse.model_validate( { "jsonrpc": "2.0", @@ -1104,6 +1243,117 @@ def sort_responses(operation: dict) -> None: }, } ).model_dump(mode="json", by_alias=True, exclude_none=True) + get_task_example = { + "id": "request-123", + "jsonrpc": "2.0", + "result": { + "contextId": "context-789", + "id": "task-456", + "kind": "task", + "status": {"state": "completed"}, + }, + } + cancel_task_example = deepcopy(get_task_example) + cancel_task_example["result"]["status"]["state"] = "canceled" + + for family, label in a2a_families: + card_operation = spec["paths"][f"/a2a/{family}/{{id}}/.well-known/agent-card.json"]["get"] + assert card_operation.get("security") is None + card_operation["security"] = [{"HTTPBearer": []}] + card_success = card_operation["responses"]["200"] + assert card_success == { + "description": "Successful Response", + "content": {"application/json": {"schema": {}}}, + } + card_operation["responses"]["200"] = response_ref( + f"{label} card retrieved successfully", + "AgentCard", + ) + add_response(card_operation, "404", f"{label} not found", "NotFoundResponse") + sort_responses(card_operation) + + for family, label in a2a_families[:2]: + for action, request_schema_name in ( + ("get", "GetTaskRequest"), + ("cancel", "CancelTaskRequest"), + ): + operation = spec["paths"][f"/a2a/{family}/{{id}}/v1/tasks:{action}"]["post"] + expected_description = ( + f"Get the status and result of {'an' if family == 'agents' else 'a'} {family[:-1]} task by ID." + if action == "get" + else f"Cancel a running {family[:-1]} task." + ) + assert operation["description"] == expected_description + if action == "get": + operation["description"] += " `params.contextId` identifies the session containing the task." + else: + operation["description"] += ( + " Scoped non-admin callers must identify the task's session with `params.contextId`." + ) + assert operation.get("security") is None + operation["security"] = [{"HTTPBearer": []}] + assert "requestBody" not in operation + operation["requestBody"] = { + "required": True, + "content": { + "application/json": { + "schema": {"$ref": f"#/components/schemas/{request_schema_name}"}, + "example": { + "jsonrpc": "2.0", + "id": "request-123", + "method": f"tasks/{action}", + "params": {"id": "task-456", "contextId": "context-789"}, + }, + } + }, + } + task_success = operation["responses"]["200"] + assert task_success == { + "description": "Successful Response", + "content": {"application/json": {"schema": {}}}, + } + response_schema_name = ( + "GetTaskSuccessResponse" if action == "get" else "CancelTaskSuccessResponse" + ) + operation["responses"]["200"] = response_ref( + f"{label} task {'retrieved' if action == 'get' else 'canceled'} successfully", + response_schema_name, + ) + operation["responses"]["200"]["content"]["application/json"]["example"] = deepcopy( + get_task_example if action == "get" else cancel_task_example + ) + if action == "get": + bad_request_description = ( + f"Missing task or context ID, or task polling requested for a remote {family[:-1]}" + ) + else: + bad_request_description = ( + f"Missing task or required context ID, or task cancellation requested for a remote {family[:-1]}" + ) + add_response( + operation, + "400", + bad_request_description, + "BadRequestResponse", + ) + add_response( + operation, + "404", + f"{label}, session, or task not found", + "NotFoundResponse", + ) + if family == "agents": + add_response( + operation, + "501", + ( + "Task polling is not supported for this agent type" + if action == "get" + else "Task cancellation is not supported for this agent type" + ), + "NotImplementedResponse", + ) + sort_responses(operation) for family, label in a2a_families: for action, request_schema_name in ( @@ -1185,6 +1435,63 @@ def sort_responses(operation: dict) -> None: ) sort_responses(operation) + for action, request_schema_name in ( + ("send", "SendMessageRequest"), + ("stream", "SendStreamingMessageRequest"), + ): + operation = spec["paths"][f"/a2a/message/{action}"]["post"] + assert operation.get("deprecated") is None + operation["deprecated"] = True + assert operation.get("security") is None + operation["security"] = [{"HTTPBearer": []}] + assert "parameters" not in operation + operation["parameters"] = [ + { + "name": "X-Agent-ID", + "in": "header", + "required": False, + "schema": {"type": "string"}, + "description": "Target agent, team, or workflow ID when `params.message.agentId` is omitted.", + }, + { + "name": "X-User-ID", + "in": "header", + "required": False, + "schema": {"type": "string"}, + "description": ( + "Optional user ID for anonymous attribution. Authenticated requests use the " + "identity from the credential." + ), + }, + ] + assert "requestBody" not in operation + operation["requestBody"] = { + "required": True, + "content": { + "application/json": { + "schema": {"$ref": f"#/components/schemas/{request_schema_name}"}, + } + }, + } + assert operation["responses"]["400"] == { + "description": "Invalid request or unsupported method" + } + operation["responses"]["400"] = response_ref( + "Invalid request or unsupported method", + "BadRequestResponse", + ) + assert operation["responses"]["404"] == { + "description": "Agent, Team, or Workflow not found" + } + operation["responses"]["404"] = response_ref( + "Agent, team, or workflow not found", + "NotFoundResponse", + ) + if action == "send": + success_json = operation["responses"]["200"]["content"]["application/json"] + assert "task" in success_json["example"]["result"] + success_json["example"] = deepcopy(success_example) + deprecated_stream = spec["paths"]["/a2a/message/stream"]["post"] deprecated_stream_content = deprecated_stream["responses"]["200"]["content"] assert deprecated_stream_content["application/json"]["schema"] == {} @@ -1197,6 +1504,14 @@ def sort_responses(operation: dict) -> None: "Returns real-time updates as newline-delimited JSON (NDJSON).", "Returns real-time updates as Server-Sent Events (SSE).", ) + add_response( + deprecated_stream, + "500", + "Run could not be started", + "InternalServerErrorResponse", + ) + sort_responses(spec["paths"]["/a2a/message/send"]["post"]) + sort_responses(deprecated_stream) resume_paths = ( "/agents/{agent_id}/runs/{run_id}/resume", From a9544a0750480503501c2826e78b00d3e3db5977 Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 07:46:16 +0100 Subject: [PATCH 24/47] docs: correct agent platform skill count --- agent-platform/run-local.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agent-platform/run-local.mdx b/agent-platform/run-local.mdx index f34560a1d..101d78908 100644 --- a/agent-platform/run-local.mdx +++ b/agent-platform/run-local.mdx @@ -88,7 +88,7 @@ We now have a locally running agent platform with: - Our agent runtime (AgentOS) running on port 8000 with request isolation, session management, scheduling, and 80+ endpoints. - A Postgres database for storing sessions, memory, knowledge, and traces. -- Five coding-agent skills in `.agents/skills/` covering the agent development lifecycle: create, improve, extend, eval, and review. +- Six coding-agent skills in `.agents/skills/` covering the agent development lifecycle: setup, create, improve, extend, eval, and review. Hot-reload is on. Edits to Python files in the source (`agents/`, `app/`, `db/`, `evals/`, `workflows/`) are live in ~2s. From ca5c55972a6aee7aa1cfb3a38bce822cf937b39d Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 07:50:35 +0100 Subject: [PATCH 25/47] docs: align Dash learning guarantees --- deploy/templates/dash/overview.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deploy/templates/dash/overview.mdx b/deploy/templates/dash/overview.mdx index caa178b40..b9fbcc851 100644 --- a/deploy/templates/dash/overview.mdx +++ b/deploy/templates/dash/overview.mdx @@ -6,7 +6,7 @@ description: "Data agent that grounds SQL analysis in five context layers and ca **Dash is a data agent that grounds SQL analysis in five context layers and can save fixes as learnings.** -Ask a question in English and get a correct, meaningful answer. That's the goal. But raw LLMs writing SQL hit a wall fast: schemas lack meaning, types are misleading, tribal knowledge is missing, there's no way to learn from mistakes, and results lack interpretation. The root cause is missing context and missing memory. Dash solves this with five layers of grounded context, a self-learning loop that captures every fix, and a focus on delivering insights you can act on. +Ask a question in English and get a correct, meaningful answer. That's the goal. But raw LLMs writing SQL hit a wall fast: schemas lack meaning, types are misleading, tribal knowledge is missing, there's no way to learn from mistakes, and results lack interpretation. The root cause is missing context and missing memory. Dash solves this with five layers of grounded context, a learning loop that can save fixes for later queries, and a focus on delivering insights you can act on. Chat with Dash in Slack, the terminal, or the [AgentOS UI](https://os.agno.com). The code is public at [agno-agi/dash](https://github.com/agno-agi/dash). @@ -39,7 +39,7 @@ The Analyst is instructed to retrieve knowledge and learnings before generating | System | Stores | How it evolves | |--------|--------|----------------| | **Knowledge** | Validated queries, table schemas, business rules | Curated by you and refined by Dash | -| **Learnings** | Error patterns and discovered fixes | Managed automatically by the Learning Machine | +| **Learnings** | Error patterns and discovered fixes | Added when Dash calls `save_learning` | When a churn query uses the wrong filter, Dash can save the corrected `ended_at IS NULL` pattern for later retrieval. When your team defines MRR as the sum of active subscriptions excluding trials, that rule can live in `knowledge/business/` for later queries. From 8ba10516245b031125da886a5f932d4c7696329e Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 07:56:47 +0100 Subject: [PATCH 26/47] docs: repair runnable client examples --- agent-os/client/a2a-client.mdx | 43 +++++++++++++++++++++-------- reasoning/usage/agents/team-cot.mdx | 8 +++--- 2 files changed, 36 insertions(+), 15 deletions(-) diff --git a/agent-os/client/a2a-client.mdx b/agent-os/client/a2a-client.mdx index 668f05936..32febb5f5 100644 --- a/agent-os/client/a2a-client.mdx +++ b/agent-os/client/a2a-client.mdx @@ -34,10 +34,18 @@ asyncio.run(main()) Google ADK uses JSON-RPC mode: ```python +import asyncio + from agno.client.a2a import A2AClient -client = A2AClient("http://localhost:8001/", protocol="json-rpc") -result = await client.send_message(message="Hello!") + +async def main(): + client = A2AClient("http://localhost:8001/", protocol="json-rpc") + result = await client.send_message(message="Hello!") + print(result.content) + + +asyncio.run(main()) ``` ## Streaming Responses @@ -45,13 +53,19 @@ result = await client.send_message(message="Hello!") Stream responses in real-time: ```python +import asyncio + from agno.client.a2a import A2AClient -client = A2AClient("http://localhost:7003/a2a/agents/my-agent") -async for event in client.stream_message(message="Tell me a story"): - if event.is_content and event.content: - print(event.content, end="", flush=True) +async def main(): + client = A2AClient("http://localhost:7003/a2a/agents/my-agent") + async for event in client.stream_message(message="Tell me a story"): + if event.is_content and event.content: + print(event.content, end="", flush=True) + + +asyncio.run(main()) ``` ## Authentication @@ -59,17 +73,24 @@ async for event in client.stream_message(message="Tell me a story"): AgentOS instances running with `authorization=True` require a JWT on every A2A request. Pass it via `headers`: ```python +import asyncio import os from agno.client.a2a import A2AClient -client = A2AClient("https://my-agent-os.com/a2a/agents/my-agent") -headers = {"Authorization": f"Bearer {os.environ['AGENT_OS_JWT']}"} -result = await client.send_message(message="Hello!", headers=headers) +async def main(): + client = A2AClient("https://my-agent-os.com/a2a/agents/my-agent") + headers = {"Authorization": f"Bearer {os.environ['AGENT_OS_JWT']}"} -async for event in client.stream_message(message="Hello!", headers=headers): - ... + result = await client.send_message(message="Hello!", headers=headers) + print(result.content) + + async for event in client.stream_message(message="Hello!", headers=headers): + ... + + +asyncio.run(main()) ``` `send_message`, `stream_message`, and `get_agent_card` all accept `headers`. The token needs the target's run scope (`agents:run`, or per-resource `agents:my-agent:run`) for `message:send` and `message:stream`. See [Scopes](/agent-os/security/authorization/scopes) for the full mapping. diff --git a/reasoning/usage/agents/team-cot.mdx b/reasoning/usage/agents/team-cot.mdx index b37f7ac1c..85bfb5f7c 100644 --- a/reasoning/usage/agents/team-cot.mdx +++ b/reasoning/usage/agents/team-cot.mdx @@ -17,13 +17,13 @@ Example showing how to enable reasoning on a `Team`, using the `reasoning=True` from agno.agent import Agent from agno.models.openai import OpenAIResponses from agno.team.team import Team - from agno.tools.hackernews import HackerNewsTools + from agno.tools.websearch import WebSearchTools web_agent = Agent( name="Web Search Agent", role="Handle web search requests", model=OpenAIResponses(id="gpt-5.2"), - tools=[HackerNewsTools()], + tools=[WebSearchTools()], instructions="Always include sources", add_datetime_to_context=True, ) @@ -32,7 +32,7 @@ Example showing how to enable reasoning on a `Team`, using the `reasoning=True` name="Finance Agent", role="Handle financial data requests", model=OpenAIResponses(id="gpt-5.2"), - tools=[HackerNewsTools()], + tools=[WebSearchTools(enable_news=False)], instructions=[ "You are a financial data specialist. Provide concise and accurate data.", "Use tables to display stock prices, fundamentals (P/E, Market Cap), and recommendations.", @@ -92,7 +92,7 @@ Example showing how to enable reasoning on a `Team`, using the `reasoning=True` ```bash - uv pip install -U openai agno + uv pip install -U agno ddgs openai ``` From bc78221b0a2726ff5425c9ad01cbd8575f447cbc Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 08:04:59 +0100 Subject: [PATCH 27/47] docs: complete local database setup --- agent-os/middleware/custom.mdx | 4 ++-- agent-os/middleware/overview.mdx | 4 ++-- evals/performance/overview.mdx | 1 + evals/performance/usage/performance-team-with-memory.mdx | 2 ++ evals/reliability/overview.mdx | 1 + history/agent/persistent-session-history.mdx | 8 ++------ knowledge/concepts/search-and-retrieval/hybrid-search.mdx | 2 ++ .../concepts/search-and-retrieval/keyword-search.mdx | 2 ++ memory/agent/agent-with-memory.mdx | 2 ++ memory/agent/agentic-memory.mdx | 2 ++ memory/agent/custom-memory-manager.mdx | 2 ++ memory/agent/multi-user-multi-session-chat-concurrent.mdx | 2 ++ memory/agent/multi-user-multi-session-chat.mdx | 2 ++ memory/team/team-with-agentic-memory.mdx | 6 +----- memory/team/team-with-memory-manager.mdx | 6 +----- .../working-with-memories/custom-memory-instructions.mdx | 3 ++- memory/working-with-memories/memory-creation.mdx | 3 ++- memory/working-with-memories/memory-search.mdx | 2 ++ models/providers/cloud/ibm-watsonx/usage/knowledge.mdx | 6 ++---- models/providers/cloud/ibm-watsonx/usage/storage.mdx | 6 ++---- .../gateways/cerebras-openai/usage/knowledge.mdx | 2 ++ models/providers/gateways/cerebras/usage/knowledge.mdx | 4 +--- models/providers/gateways/cerebras/usage/storage.mdx | 4 +--- models/providers/local/ollama/usage/knowledge.mdx | 2 ++ models/providers/local/ollama/usage/memory.mdx | 2 ++ models/providers/local/vllm/usage/memory.mdx | 8 ++------ models/providers/local/vllm/usage/storage.mdx | 6 +----- models/providers/native/meta/usage/memory.mdx | 4 +++- models/providers/native/mistral/usage/memory.mdx | 6 +----- use-cases/data-agents/serve-and-embed.mdx | 2 ++ workflows/conversational-workflows.mdx | 2 ++ 31 files changed, 55 insertions(+), 53 deletions(-) diff --git a/agent-os/middleware/custom.mdx b/agent-os/middleware/custom.mdx index 746669c5e..855a5a7af 100644 --- a/agent-os/middleware/custom.mdx +++ b/agent-os/middleware/custom.mdx @@ -180,10 +180,10 @@ Error responses must be returned as `JSONResponse` objects to ensure proper seri ```python custom_middleware.py from agno.os import AgentOS from agno.agent import Agent - from agno.db.postgres import PostgresDb + from agno.db.sqlite import SqliteDb from agno.models.openai import OpenAIResponses - db = PostgresDb(db_url="postgresql+psycopg://ai:ai@localhost:5532/ai") + db = SqliteDb(db_file="tmp/agent.db") agent = Agent( name="Basic Agent", diff --git a/agent-os/middleware/overview.mdx b/agent-os/middleware/overview.mdx index 646bb6e44..0b7251279 100644 --- a/agent-os/middleware/overview.mdx +++ b/agent-os/middleware/overview.mdx @@ -46,11 +46,11 @@ Add middleware to the FastAPI app returned by `get_app()`: ```python agent_os.py from agno.os import AgentOS from agno.os.middleware.jwt import AuthMiddleware -from agno.db.postgres import PostgresDb +from agno.db.sqlite import SqliteDb from agno.models.openai import OpenAIResponses from agno.agent import Agent -db = PostgresDb(db_url="postgresql+psycopg://ai:ai@localhost:5532/ai") +db = SqliteDb(db_file="tmp/agent.db") agent = Agent( name="Basic Agent", diff --git a/evals/performance/overview.mdx b/evals/performance/overview.mdx index cb6602e83..3f367e83a 100644 --- a/evals/performance/overview.mdx +++ b/evals/performance/overview.mdx @@ -443,6 +443,7 @@ For more details, see the [Evaluation API Reference](/reference-api/schema/evals uv pip install -U 'agno[os]' openai psycopg ``` + ```bash python evals_demo.py diff --git a/evals/performance/usage/performance-team-with-memory.mdx b/evals/performance/usage/performance-team-with-memory.mdx index 797ebcb92..6e122f321 100644 --- a/evals/performance/usage/performance-team-with-memory.mdx +++ b/evals/performance/usage/performance-team-with-memory.mdx @@ -102,6 +102,8 @@ description: Example showing how to evaluate team performance with memory tracki ``` + + diff --git a/evals/reliability/overview.mdx b/evals/reliability/overview.mdx index 596719428..2cb5376f2 100644 --- a/evals/reliability/overview.mdx +++ b/evals/reliability/overview.mdx @@ -238,6 +238,7 @@ For more details, see the [Evaluation API Reference](/reference-api/schema/evals uv pip install -U 'agno[os]' openai psycopg ``` + ```bash python evals_demo.py diff --git a/history/agent/persistent-session-history.mdx b/history/agent/persistent-session-history.mdx index 343ceaffc..62efe7d5e 100644 --- a/history/agent/persistent-session-history.mdx +++ b/history/agent/persistent-session-history.mdx @@ -50,11 +50,7 @@ agent.print_response("Tell me a new interesting fact about space") ``` - - ```bash - ./cookbook/scripts/run_pgvector.sh - ``` - + ```bash @@ -62,4 +58,4 @@ agent.print_response("Tell me a new interesting fact about space") ``` - \ No newline at end of file + diff --git a/knowledge/concepts/search-and-retrieval/hybrid-search.mdx b/knowledge/concepts/search-and-retrieval/hybrid-search.mdx index ecd671455..3fe8e8a5b 100644 --- a/knowledge/concepts/search-and-retrieval/hybrid-search.mdx +++ b/knowledge/concepts/search-and-retrieval/hybrid-search.mdx @@ -101,6 +101,8 @@ Install the dependencies used on this page and start a PostgreSQL instance with uv pip install -U agno chromadb cohere openai pgvector psycopg pypdf sqlalchemy ``` +Start [PgVector](/knowledge/vector-stores/pgvector/overview) on port 5532 before running the code. + ```python hybrid_search.py from agno.knowledge.knowledge import Knowledge from agno.vectordb.pgvector import PgVector, SearchType diff --git a/knowledge/concepts/search-and-retrieval/keyword-search.mdx b/knowledge/concepts/search-and-retrieval/keyword-search.mdx index 03b01ecdf..2163ab9ea 100644 --- a/knowledge/concepts/search-and-retrieval/keyword-search.mdx +++ b/knowledge/concepts/search-and-retrieval/keyword-search.mdx @@ -68,6 +68,8 @@ Install the dependencies and start a PostgreSQL instance with pgvector enabled: uv pip install -U agno openai pgvector psycopg pypdf sqlalchemy ``` +Start [PgVector](/knowledge/vector-stores/pgvector/overview) on port 5532 before running the code. + ```python keyword_search.py from agno.knowledge.knowledge import Knowledge from agno.vectordb.pgvector import PgVector, SearchType diff --git a/memory/agent/agent-with-memory.mdx b/memory/agent/agent-with-memory.mdx index c69eaac95..55a8e56d9 100644 --- a/memory/agent/agent-with-memory.mdx +++ b/memory/agent/agent-with-memory.mdx @@ -75,6 +75,8 @@ pprint(memories) ``` + + ```bash python agent_with_memory.py diff --git a/memory/agent/agentic-memory.mdx b/memory/agent/agentic-memory.mdx index 9e4df2a44..76a88ba33 100644 --- a/memory/agent/agentic-memory.mdx +++ b/memory/agent/agentic-memory.mdx @@ -86,6 +86,8 @@ pprint(memories) ``` + + ```bash python agentic_memory.py diff --git a/memory/agent/custom-memory-manager.mdx b/memory/agent/custom-memory-manager.mdx index e8dc33c08..f8e05e15f 100644 --- a/memory/agent/custom-memory-manager.mdx +++ b/memory/agent/custom-memory-manager.mdx @@ -66,6 +66,8 @@ pprint(memories) ``` + + ```bash python custom_memory_manager.py diff --git a/memory/agent/multi-user-multi-session-chat-concurrent.mdx b/memory/agent/multi-user-multi-session-chat-concurrent.mdx index 3632808c4..34d93d295 100644 --- a/memory/agent/multi-user-multi-session-chat-concurrent.mdx +++ b/memory/agent/multi-user-multi-session-chat-concurrent.mdx @@ -133,6 +133,8 @@ if __name__ == "__main__": ``` + + ```bash python multi_user_multi_session_chat_concurrent.py diff --git a/memory/agent/multi-user-multi-session-chat.mdx b/memory/agent/multi-user-multi-session-chat.mdx index 5d4d2ca86..35ba56783 100644 --- a/memory/agent/multi-user-multi-session-chat.mdx +++ b/memory/agent/multi-user-multi-session-chat.mdx @@ -122,6 +122,8 @@ if __name__ == "__main__": ``` + + ```bash python multi_user_multi_session_chat.py diff --git a/memory/team/team-with-agentic-memory.mdx b/memory/team/team-with-agentic-memory.mdx index 03bd2f53d..53cd4728b 100644 --- a/memory/team/team-with-agentic-memory.mdx +++ b/memory/team/team-with-agentic-memory.mdx @@ -50,11 +50,7 @@ team.print_response("What are my hobbies?", stream=True, user_id=john_doe_id) ``` - - ```bash - ./cookbook/scripts/run_pgvector.sh - ``` - + ```bash diff --git a/memory/team/team-with-memory-manager.mdx b/memory/team/team-with-memory-manager.mdx index 97f4cfbb7..d7a1c8300 100644 --- a/memory/team/team-with-memory-manager.mdx +++ b/memory/team/team-with-memory-manager.mdx @@ -65,11 +65,7 @@ pprint(memories) ``` - - ```bash - ./cookbook/scripts/run_pgvector.sh - ``` - + ```bash diff --git a/memory/working-with-memories/custom-memory-instructions.mdx b/memory/working-with-memories/custom-memory-instructions.mdx index c5ed159a7..ca582c81a 100644 --- a/memory/working-with-memories/custom-memory-instructions.mdx +++ b/memory/working-with-memories/custom-memory-instructions.mdx @@ -107,10 +107,11 @@ pprint(memories) ``` + + ```bash python custom-memory-instructions.py ``` - diff --git a/memory/working-with-memories/memory-creation.mdx b/memory/working-with-memories/memory-creation.mdx index 8adaed07c..4dd0ebf21 100644 --- a/memory/working-with-memories/memory-creation.mdx +++ b/memory/working-with-memories/memory-creation.mdx @@ -76,10 +76,11 @@ pprint(memories) ``` + + ```bash python memory-creation.py ``` - diff --git a/memory/working-with-memories/memory-search.mdx b/memory/working-with-memories/memory-search.mdx index d1a598d4d..200503cc9 100644 --- a/memory/working-with-memories/memory-search.mdx +++ b/memory/working-with-memories/memory-search.mdx @@ -79,6 +79,8 @@ pprint(memories) ``` + + ```bash python memory-search.py diff --git a/models/providers/cloud/ibm-watsonx/usage/knowledge.mdx b/models/providers/cloud/ibm-watsonx/usage/knowledge.mdx index 2ef595c0f..ccd745271 100644 --- a/models/providers/cloud/ibm-watsonx/usage/knowledge.mdx +++ b/models/providers/cloud/ibm-watsonx/usage/knowledge.mdx @@ -45,9 +45,7 @@ agent.print_response("How to make Thai curry?", markdown=True) ``` - - You need a PostgreSQL database with the pgvector extension installed. Adjust the `db_url` in the code to match your database configuration. - + Save the code above as `knowledge.py`, then run: @@ -61,4 +59,4 @@ agent.print_response("How to make Thai curry?", markdown=True) -The example loads a PDF from a URL, processes it into a vector database (PostgreSQL with pgvector), and creates an IBM WatsonX agent that can query this knowledge base. \ No newline at end of file +The example loads a PDF from a URL, processes it into a vector database (PostgreSQL with pgvector), and creates an IBM WatsonX agent that can query this knowledge base. diff --git a/models/providers/cloud/ibm-watsonx/usage/storage.mdx b/models/providers/cloud/ibm-watsonx/usage/storage.mdx index d8f720155..8b6937ca1 100644 --- a/models/providers/cloud/ibm-watsonx/usage/storage.mdx +++ b/models/providers/cloud/ibm-watsonx/usage/storage.mdx @@ -43,9 +43,7 @@ agent.print_response("What is their national anthem called?") ``` - - Make sure you have a PostgreSQL database running. You can adjust the `db_url` in the code to match your database configuration. - + Save the code above as `db.py`, then run: @@ -55,4 +53,4 @@ agent.print_response("What is their national anthem called?") -PostgreSQL storage maintains conversation state across multiple interactions. The example creates an IBM WatsonX agent with a PostgreSQL storage backend and sends multiple messages, preserving the conversation history between them. \ No newline at end of file +PostgreSQL storage maintains conversation state across multiple interactions. The example creates an IBM WatsonX agent with a PostgreSQL storage backend and sends multiple messages, preserving the conversation history between them. diff --git a/models/providers/gateways/cerebras-openai/usage/knowledge.mdx b/models/providers/gateways/cerebras-openai/usage/knowledge.mdx index aa2c462f1..83a909d2b 100644 --- a/models/providers/gateways/cerebras-openai/usage/knowledge.mdx +++ b/models/providers/gateways/cerebras-openai/usage/knowledge.mdx @@ -42,6 +42,8 @@ agent.print_response("How to make Thai curry?", markdown=True) ``` + + Save the code above as `knowledge.py`, then run: ```bash diff --git a/models/providers/gateways/cerebras/usage/knowledge.mdx b/models/providers/gateways/cerebras/usage/knowledge.mdx index 8df9a36cc..eaf8d054d 100644 --- a/models/providers/gateways/cerebras/usage/knowledge.mdx +++ b/models/providers/gateways/cerebras/usage/knowledge.mdx @@ -41,9 +41,7 @@ agent.print_response("How to make Thai curry?", markdown=True) ``` - - Ensure your Postgres server is running and accessible at the connection string used in `db_url`. - + The first run will load and index the PDF. This may take a while. diff --git a/models/providers/gateways/cerebras/usage/storage.mdx b/models/providers/gateways/cerebras/usage/storage.mdx index 61a59d197..9bc68d8d4 100644 --- a/models/providers/gateways/cerebras/usage/storage.mdx +++ b/models/providers/gateways/cerebras/usage/storage.mdx @@ -42,9 +42,7 @@ agent.print_response("What is their national anthem called?") ``` - - Ensure your Postgres server is running and accessible at the connection string used in `db_url`. - + Save the code above as `db.py`, then run: diff --git a/models/providers/local/ollama/usage/knowledge.mdx b/models/providers/local/ollama/usage/knowledge.mdx index 7169a698d..d6961f519 100644 --- a/models/providers/local/ollama/usage/knowledge.mdx +++ b/models/providers/local/ollama/usage/knowledge.mdx @@ -49,6 +49,8 @@ agent.print_response("How to make Thai curry?", markdown=True) ``` + + Save the code above as `knowledge.py`, then run: ```bash diff --git a/models/providers/local/ollama/usage/memory.mdx b/models/providers/local/ollama/usage/memory.mdx index 2d9002258..3d02ba482 100644 --- a/models/providers/local/ollama/usage/memory.mdx +++ b/models/providers/local/ollama/usage/memory.mdx @@ -58,6 +58,8 @@ agent.print_response( ``` + + Save the code above as `memory.py`, then run: ```bash diff --git a/models/providers/local/vllm/usage/memory.mdx b/models/providers/local/vllm/usage/memory.mdx index cba89b3f6..48f96c086 100644 --- a/models/providers/local/vllm/usage/memory.mdx +++ b/models/providers/local/vllm/usage/memory.mdx @@ -62,11 +62,7 @@ agent.print_response( - - ```bash - ./cookbook/scripts/run_pgvector.sh - ``` - + ```bash @@ -95,4 +91,4 @@ agent.print_response( python memory.py ``` - \ No newline at end of file + diff --git a/models/providers/local/vllm/usage/storage.mdx b/models/providers/local/vllm/usage/storage.mdx index b9d31c2dc..202ed4e13 100644 --- a/models/providers/local/vllm/usage/storage.mdx +++ b/models/providers/local/vllm/usage/storage.mdx @@ -41,11 +41,7 @@ agent.print_response("What is their national anthem called?") ``` - - ```bash - ./cookbook/scripts/run_pgvector.sh - ``` - + ```bash diff --git a/models/providers/native/meta/usage/memory.mdx b/models/providers/native/meta/usage/memory.mdx index 177294d92..c995c01d3 100644 --- a/models/providers/native/meta/usage/memory.mdx +++ b/models/providers/native/meta/usage/memory.mdx @@ -70,10 +70,12 @@ agent.print_response( ``` + + Save the code above as `memory.py`, then run: ```bash python memory.py ``` - \ No newline at end of file + diff --git a/models/providers/native/mistral/usage/memory.mdx b/models/providers/native/mistral/usage/memory.mdx index b9dad015a..c2d66c80a 100644 --- a/models/providers/native/mistral/usage/memory.mdx +++ b/models/providers/native/mistral/usage/memory.mdx @@ -57,11 +57,7 @@ agent.print_response( ``` - - ```bash - ./cookbook/scripts/run_pgvector.sh - ``` - + ```bash diff --git a/use-cases/data-agents/serve-and-embed.mdx b/use-cases/data-agents/serve-and-embed.mdx index abdd2b28e..1cf5ff2aa 100644 --- a/use-cases/data-agents/serve-and-embed.mdx +++ b/use-cases/data-agents/serve-and-embed.mdx @@ -5,6 +5,8 @@ description: "Put the data agent behind an API so a dashboard, a Slack channel, A data agent that only runs in a notebook helps one analyst. Behind an API, it answers questions from a Slack channel, a BI dashboard's natural-language box, or an "explain this metric" widget in your product. `AgentOS` turns the agent into that API. +Start [PgVector](/knowledge/vector-stores/pgvector/overview) on port 5532 before running this example. + ```python data_agent.py from agno.agent import Agent from agno.db.postgres import PostgresDb diff --git a/workflows/conversational-workflows.mdx b/workflows/conversational-workflows.mdx index 13461f5f5..598c66050 100644 --- a/workflows/conversational-workflows.mdx +++ b/workflows/conversational-workflows.mdx @@ -80,6 +80,8 @@ workflow_agent = WorkflowAgent( ## Usage Example +Start [PgVector](/knowledge/vector-stores/pgvector/overview) on port 5532 before running this example. + ```python from agno.agent import Agent from agno.db.postgres import PostgresDb From 3229713db60e8eb7b03ab106e52830831e7f2d8d Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 08:07:45 +0100 Subject: [PATCH 28/47] docs: harden generated runnable examples --- examples/models/aimlapi/image-agent-bytes.mdx | 4 ++ .../models/anthropic/image-input-bytes.mdx | 4 ++ .../anthropic/skills/agent-with-documents.mdx | 37 +++------------ .../models/aws/bedrock/image-agent-bytes.mdx | 4 ++ .../azure/ai-foundry/image-agent-bytes.mdx | 4 ++ examples/models/cohere/image-agent-bytes.mdx | 4 ++ .../models/cohere/image-agent-local-file.mdx | 4 ++ examples/models/cohere/retry.mdx | 4 +- .../models/dashscope/image-agent-bytes.mdx | 4 ++ .../google/gemini/storage-and-memory.mdx | 39 +++------------- examples/models/litellm/image-agent-bytes.mdx | 4 ++ .../meta/llama-openai/image-input-bytes.mdx | 4 ++ .../meta/llama-openai/image-input-file.mdx | 4 ++ .../models/meta/llama/image-input-bytes.mdx | 4 ++ .../models/meta/llama/image-input-file.mdx | 4 ++ .../models/openai/chat/image-agent-bytes.mdx | 4 ++ .../models/openai/chat/image-agent-file.mdx | 4 ++ .../openai/responses/image-agent-bytes.mdx | 4 ++ .../openai/responses/image-agent-file.mdx | 4 ++ .../vertexai/claude/image-input-bytes.mdx | 4 ++ examples/models/xai/image-agent-bytes.mdx | 4 ++ examples/teams/multimodal/image-to-text.mdx | 4 ++ scripts/examples_sync/generate.py | 45 +++++++++++++++++++ 23 files changed, 136 insertions(+), 65 deletions(-) diff --git a/examples/models/aimlapi/image-agent-bytes.mdx b/examples/models/aimlapi/image-agent-bytes.mdx index 424c6be35..95143b5be 100644 --- a/examples/models/aimlapi/image-agent-bytes.mdx +++ b/examples/models/aimlapi/image-agent-bytes.mdx @@ -71,6 +71,10 @@ if __name__ == "__main__": + + Place a JPEG named `sample.jpg` in the same directory as the saved Python file. + + Save the code above as `image_agent_bytes.py`, then run: ```bash diff --git a/examples/models/anthropic/image-input-bytes.mdx b/examples/models/anthropic/image-input-bytes.mdx index 23828e549..106e9fb2b 100644 --- a/examples/models/anthropic/image-input-bytes.mdx +++ b/examples/models/anthropic/image-input-bytes.mdx @@ -79,6 +79,10 @@ if __name__ == "__main__": + + Place a JPEG named `sample.jpg` in the same directory as the saved Python file. + + Save the code above as `image_input_bytes.py`, then run: ```bash diff --git a/examples/models/anthropic/skills/agent-with-documents.mdx b/examples/models/anthropic/skills/agent-with-documents.mdx index 56f3a5e83..7528cb9fb 100644 --- a/examples/models/anthropic/skills/agent-with-documents.mdx +++ b/examples/models/anthropic/skills/agent-with-documents.mdx @@ -4,6 +4,10 @@ description: "Use Claude's docx skill to create Word documents through Agno agen source: cookbook/90_models/anthropic/skills/agent_with_documents.py --- + + The pinned v2.7.4 source imports `file_download_helper`, but that module is absent from the released cookbook. The source cannot run as a single saved file. + + ```python agent_with_documents.py """ Agno Agent with Word Document Skills. @@ -124,35 +128,8 @@ if __name__ == "__main__": print("=" * 60) ``` -## Run the Example - - - - - - ```bash - uv pip install -U agno anthropic - ``` - - - - - ```bash Mac/Linux - export ANTHROPIC_API_KEY="your_anthropic_api_key_here" - ``` - - ```bash Windows - $Env:ANTHROPIC_API_KEY="your_anthropic_api_key_here" - ``` - - - - - Save the code above as `agent_with_documents.py`, then run: - ```bash - python agent_with_documents.py - ``` - - +## Missing Source Helper + +Add a local `file_download_helper.py` that provides `download_skill_files`, or wait for the cookbook to include the helper before running this source. Full source: [cookbook/90_models/anthropic/skills/agent_with_documents.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/skills/agent_with_documents.py) diff --git a/examples/models/aws/bedrock/image-agent-bytes.mdx b/examples/models/aws/bedrock/image-agent-bytes.mdx index bb117b1ca..4c92738ff 100644 --- a/examples/models/aws/bedrock/image-agent-bytes.mdx +++ b/examples/models/aws/bedrock/image-agent-bytes.mdx @@ -82,6 +82,10 @@ if __name__ == "__main__": + + Place a JPEG named `sample.jpg` in the same directory as the saved Python file. + + Save the code above as `image_agent_bytes.py`, then run: ```bash diff --git a/examples/models/azure/ai-foundry/image-agent-bytes.mdx b/examples/models/azure/ai-foundry/image-agent-bytes.mdx index 505ae3d5e..3723e5700 100644 --- a/examples/models/azure/ai-foundry/image-agent-bytes.mdx +++ b/examples/models/azure/ai-foundry/image-agent-bytes.mdx @@ -85,6 +85,10 @@ if __name__ == "__main__": + + Place a JPEG named `sample.jpg` in the same directory as the saved Python file. + + Deploy `Llama-4-Scout-17B-16E-Instruct`, update `AZURE_ENDPOINT`, and replace `Llama-3.2-11B-Vision-Instruct` in the saved file. diff --git a/examples/models/cohere/image-agent-bytes.mdx b/examples/models/cohere/image-agent-bytes.mdx index d8c6c7915..6e0b0e7ef 100644 --- a/examples/models/cohere/image-agent-bytes.mdx +++ b/examples/models/cohere/image-agent-bytes.mdx @@ -85,6 +85,10 @@ if __name__ == "__main__": Replace `c4ai-aya-vision-8b` with `command-a-vision-07-2025` in the saved Python file before running. + + Place a JPEG named `sample.jpg` in the same directory as the saved Python file. + + Save the code above as `image_agent_bytes.py`, then run: ```bash diff --git a/examples/models/cohere/image-agent-local-file.mdx b/examples/models/cohere/image-agent-local-file.mdx index 78c0ff6db..7caf9b406 100644 --- a/examples/models/cohere/image-agent-local-file.mdx +++ b/examples/models/cohere/image-agent-local-file.mdx @@ -82,6 +82,10 @@ if __name__ == "__main__": Replace `c4ai-aya-vision-8b` with `command-a-vision-07-2025` in the saved Python file before running. + + Place a JPEG named `sample.jpg` in the same directory as the saved Python file. + + Save the code above as `image_agent_local_file.py`, then run: ```bash diff --git a/examples/models/cohere/retry.mdx b/examples/models/cohere/retry.mdx index 7a894d99e..6be891082 100644 --- a/examples/models/cohere/retry.mdx +++ b/examples/models/cohere/retry.mdx @@ -5,7 +5,7 @@ source: cookbook/90_models/cohere/retry.py --- - This example assumes an invalid model ID triggers the configured retries. Invalid-model responses commonly use terminal 400 or 404 statuses, which Agno does not retry. Do not run this source as a retry test. + The pinned v2.7.4 source imports the removed `CohereChat` class and fails before testing retries. It also assumes an invalid model ID reaches the retry path, while invalid-model responses commonly use terminal 400 or 404 statuses. ```python retry.py @@ -42,6 +42,6 @@ if __name__ == "__main__": ## Current Alternative -Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. +Use the released `Cohere` class shown in [Cohere Knowledge](/examples/models/cohere/knowledge). Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests), then test with a controlled transient 429, connection failure, or 5xx response. Full source: [cookbook/90_models/cohere/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cohere/retry.py) diff --git a/examples/models/dashscope/image-agent-bytes.mdx b/examples/models/dashscope/image-agent-bytes.mdx index 3b1ead698..96134f060 100644 --- a/examples/models/dashscope/image-agent-bytes.mdx +++ b/examples/models/dashscope/image-agent-bytes.mdx @@ -79,6 +79,10 @@ if __name__ == "__main__": + + Place a JPEG named `sample.jpg` in the same directory as the saved Python file. + + Save the code above as `image_agent_bytes.py`, then run: ```bash diff --git a/examples/models/google/gemini/storage-and-memory.mdx b/examples/models/google/gemini/storage-and-memory.mdx index f67993fdc..68dae2b08 100644 --- a/examples/models/google/gemini/storage-and-memory.mdx +++ b/examples/models/google/gemini/storage-and-memory.mdx @@ -4,6 +4,10 @@ description: "Combine PgVector knowledge, Postgres memory, session summaries, an source: cookbook/90_models/google/gemini/storage_and_memory.py --- + + The pinned v2.7.4 source imports `PDFUrlKnowledgeBase`, which is not exported or defined in the release. The source fails at import time. + + ```python storage_and_memory.py """Run `pip install ddgs pgvector google.genai` to install dependencies.""" @@ -54,39 +58,8 @@ if __name__ == "__main__": pass ``` -## Run the Example - - - - - - ```bash - uv pip install -U agno "psycopg[binary]" ddgs google-genai openai pgvector pypdf sqlalchemy - ``` - - - - - ```bash Mac/Linux - export GOOGLE_API_KEY="your_google_api_key_here" - export OPENAI_API_KEY="your_openai_api_key_here" - ``` - - ```bash Windows - $Env:GOOGLE_API_KEY="your_google_api_key_here" - $Env:OPENAI_API_KEY="your_openai_api_key_here" - ``` - - - - +## Current Alternative - - Save the code above as `storage_and_memory.py`, then run: - ```bash - python storage_and_memory.py - ``` - - +Use [Gemini Knowledge](/examples/models/google/gemini/knowledge), which constructs `Knowledge` with `PgVector` and inserts the PDF URL through `knowledge.insert(...)`. Full source: [cookbook/90_models/google/gemini/storage_and_memory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/google/gemini/storage_and_memory.py) diff --git a/examples/models/litellm/image-agent-bytes.mdx b/examples/models/litellm/image-agent-bytes.mdx index a08c4528f..66f6bc08f 100644 --- a/examples/models/litellm/image-agent-bytes.mdx +++ b/examples/models/litellm/image-agent-bytes.mdx @@ -79,6 +79,10 @@ if __name__ == "__main__": + + Place a JPEG named `sample.jpg` in the same directory as the saved Python file. + + Save the code above as `image_agent_bytes.py`, then run: ```bash diff --git a/examples/models/meta/llama-openai/image-input-bytes.mdx b/examples/models/meta/llama-openai/image-input-bytes.mdx index c7c202423..5b9f85132 100644 --- a/examples/models/meta/llama-openai/image-input-bytes.mdx +++ b/examples/models/meta/llama-openai/image-input-bytes.mdx @@ -79,6 +79,10 @@ if __name__ == "__main__": + + Place a JPEG named `sample.jpg` in the same directory as the saved Python file. + + Save the code above as `image_input_bytes.py`, then run: ```bash diff --git a/examples/models/meta/llama-openai/image-input-file.mdx b/examples/models/meta/llama-openai/image-input-file.mdx index 56da61cad..72f5d5ae8 100644 --- a/examples/models/meta/llama-openai/image-input-file.mdx +++ b/examples/models/meta/llama-openai/image-input-file.mdx @@ -72,6 +72,10 @@ if __name__ == "__main__": + + Place a JPEG named `sample.jpg` in the same directory as the saved Python file. + + Save the code above as `image_input_file.py`, then run: ```bash diff --git a/examples/models/meta/llama/image-input-bytes.mdx b/examples/models/meta/llama/image-input-bytes.mdx index 2b342f258..2900e365e 100644 --- a/examples/models/meta/llama/image-input-bytes.mdx +++ b/examples/models/meta/llama/image-input-bytes.mdx @@ -79,6 +79,10 @@ if __name__ == "__main__": + + Place a JPEG named `sample.jpg` in the same directory as the saved Python file. + + Save the code above as `image_input_bytes.py`, then run: ```bash diff --git a/examples/models/meta/llama/image-input-file.mdx b/examples/models/meta/llama/image-input-file.mdx index ff48db580..d279b4357 100644 --- a/examples/models/meta/llama/image-input-file.mdx +++ b/examples/models/meta/llama/image-input-file.mdx @@ -72,6 +72,10 @@ if __name__ == "__main__": + + Place a JPEG named `sample.jpg` in the same directory as the saved Python file. + + Save the code above as `image_input_file.py`, then run: ```bash diff --git a/examples/models/openai/chat/image-agent-bytes.mdx b/examples/models/openai/chat/image-agent-bytes.mdx index 158e39ae5..25eee116f 100644 --- a/examples/models/openai/chat/image-agent-bytes.mdx +++ b/examples/models/openai/chat/image-agent-bytes.mdx @@ -79,6 +79,10 @@ if __name__ == "__main__": + + Place a JPEG named `sample.jpg` in the same directory as the saved Python file. + + Save the code above as `image_agent_bytes.py`, then run: ```bash diff --git a/examples/models/openai/chat/image-agent-file.mdx b/examples/models/openai/chat/image-agent-file.mdx index 2327c0c55..34b725be5 100644 --- a/examples/models/openai/chat/image-agent-file.mdx +++ b/examples/models/openai/chat/image-agent-file.mdx @@ -65,6 +65,10 @@ agent.print_response( + + Place a JPEG named `sample.jpg` in the same directory as the saved Python file. + + Save the code above as `image_agent_file.py`, then run: ```bash diff --git a/examples/models/openai/responses/image-agent-bytes.mdx b/examples/models/openai/responses/image-agent-bytes.mdx index 6cd52f69a..7884bd879 100644 --- a/examples/models/openai/responses/image-agent-bytes.mdx +++ b/examples/models/openai/responses/image-agent-bytes.mdx @@ -79,6 +79,10 @@ if __name__ == "__main__": + + Place a JPEG named `sample.jpg` in the same directory as the saved Python file. + + Save the code above as `image_agent_bytes.py`, then run: ```bash diff --git a/examples/models/openai/responses/image-agent-file.mdx b/examples/models/openai/responses/image-agent-file.mdx index ceb0aea6e..0e628f4ce 100644 --- a/examples/models/openai/responses/image-agent-file.mdx +++ b/examples/models/openai/responses/image-agent-file.mdx @@ -65,6 +65,10 @@ agent.print_response( + + Place a JPEG named `sample.jpg` in the same directory as the saved Python file. + + Save the code above as `image_agent_file.py`, then run: ```bash diff --git a/examples/models/vertexai/claude/image-input-bytes.mdx b/examples/models/vertexai/claude/image-input-bytes.mdx index 0eb6bd083..343308149 100644 --- a/examples/models/vertexai/claude/image-input-bytes.mdx +++ b/examples/models/vertexai/claude/image-input-bytes.mdx @@ -88,6 +88,10 @@ if __name__ == "__main__": ``` + + Place a JPEG named `sample.jpg` in the same directory as the saved Python file. + + Save the code above as `image_input_bytes.py`, then run: ```bash diff --git a/examples/models/xai/image-agent-bytes.mdx b/examples/models/xai/image-agent-bytes.mdx index ea17ef0a1..95667fd41 100644 --- a/examples/models/xai/image-agent-bytes.mdx +++ b/examples/models/xai/image-agent-bytes.mdx @@ -81,6 +81,10 @@ if __name__ == "__main__": + + Place a JPEG named `sample.jpg` in the same directory as the saved Python file. + + When saving the code, replace `grok-2-vision-latest` with `grok-4.5`. diff --git a/examples/teams/multimodal/image-to-text.mdx b/examples/teams/multimodal/image-to-text.mdx index bcee6b9a7..241b23389 100644 --- a/examples/teams/multimodal/image-to-text.mdx +++ b/examples/teams/multimodal/image-to-text.mdx @@ -92,6 +92,10 @@ if __name__ == "__main__": + + Place a JPEG named `sample.jpg` in the same directory as the saved Python file. + + Save the code above as `image_to_text.py`, then run: ```bash diff --git a/scripts/examples_sync/generate.py b/scripts/examples_sync/generate.py index c296e1773..0516d559f 100644 --- a/scripts/examples_sync/generate.py +++ b/scripts/examples_sync/generate.py @@ -1760,6 +1760,18 @@ "90_models/anthropic/image_input_file_upload.py": { "intro_override": "Upload a PNG through the Anthropic Files API and pass the returned file handle to Claude as an image input.", }, + "90_models/anthropic/skills/agent_with_documents.py": { + "pre_code_warning": "The pinned v2.7.4 source imports `file_download_helper`, but that module is absent from the released cookbook. The source cannot run as a single saved file.", + "replacement_only": True, + "replacement_heading": "Missing Source Helper", + "run_replacement": "Add a local `file_download_helper.py` that provides `download_skill_files`, or wait for the cookbook to include the helper before running this source.", + }, + "90_models/google/gemini/storage_and_memory.py": { + "pre_code_warning": "The pinned v2.7.4 source imports `PDFUrlKnowledgeBase`, which is not exported or defined in the release. The source fails at import time.", + "replacement_only": True, + "replacement_heading": "Current Alternative", + "run_replacement": "Use [Gemini Knowledge](/examples/models/google/gemini/knowledge), which constructs `Knowledge` with `PgVector` and inserts the PDF URL through `knowledge.insert(...)`.", + }, "90_models/openai/chat/custom_role_map.py": { "env_remove": {"OPENAI_API_KEY"}, "provider_remove": {"OpenAI"}, @@ -4597,6 +4609,26 @@ def apply_source_render_override( """Apply reviewed source-specific metadata and return rendering controls.""" rel = cookbook_rel.removeprefix("cookbook/") override = dict(SOURCE_RENDER_OVERRIDES.get(rel, {})) + sample_image_match = re.search( + r'\.joinpath\(["\'](sample\.jpe?g)["\']\)', + srcs[0], + re.IGNORECASE, + ) + if sample_image_match: + sample_image = sample_image_match.group(1) + pre_run_steps = list(override.get("pre_run_steps", [])) + if not any( + sample_image in " ".join(str(part) for part in step) + for step in pre_run_steps + ): + pre_run_steps.append( + ( + "Add the sample image", + f"Place a JPEG named `{sample_image}` in the same directory as the saved Python file.", + None, + ) + ) + override["pre_run_steps"] = pre_run_steps if rel.startswith("05_agent_os/interfaces/slack/"): pre_run_steps = list(override.get("pre_run_steps", [])) if not any(step[0] == "Configure Slack" for step in pre_run_steps): @@ -4734,6 +4766,19 @@ def apply_source_render_override( override["replacement_only"] = True override["replacement_heading"] = "Current Alternative" override["run_replacement"] = INVALID_MODEL_RETRY_REPLACEMENT + if rel == "90_models/cohere/retry.py": + override["pre_code_warning"] = ( + "The pinned v2.7.4 source imports the removed `CohereChat` class and fails before " + "testing retries. It also assumes an invalid model ID reaches the retry path, while " + "invalid-model responses commonly use terminal 400 or 404 statuses." + ) + override["run_replacement"] = ( + "Use the released `Cohere` class shown in " + "[Cohere Knowledge](/examples/models/cohere/knowledge). Configure `retries`, " + "`delay_between_retries`, and `exponential_backoff` as shown in " + "[Retry Model Requests](/models/overview#retry-model-requests), then test with a " + "controlled transient 429, connection failure, or 5xx response." + ) package_remove = { requirement_key(str(package)) for package in override.get("package_remove", set()) } From 33ac79530860236c027d99467e94dc6525f3871c Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 08:16:51 +0100 Subject: [PATCH 29/47] docs: correct released API edge cases --- reference-api/openapi.json | 2 +- reference-api/openapi.yaml | 111 ++++++++++---------- scripts/make_openapi.py | 206 ++++++++++++++++++++++++++++++++++++- 3 files changed, 256 insertions(+), 63 deletions(-) diff --git a/reference-api/openapi.json b/reference-api/openapi.json index 8a67cd270..37fad0da5 100644 --- a/reference-api/openapi.json +++ b/reference-api/openapi.json @@ -1 +1 @@ -{"openapi":"3.1.0","info":{"title":"Agno API Reference","description":"The all-in-one, private, secure agent platform that runs in your cloud.","version":"2.7.4"},"paths":{"/":{"get":{"tags":["Home"],"summary":"API Information","description":"Return the AgentOS instance name, ID, and version.","operationId":"get_api_info","responses":{"200":{"description":"API information retrieved successfully","content":{"application/json":{"schema":{"properties":{"name":{"type":"string","title":"Name"},"id":{"type":"string","title":"Id"},"version":{"type":"string","title":"Version"}},"type":"object","required":["name","id","version"],"title":"ApiInfoResponse"},"examples":{"home":{"summary":"Example home response","value":{"name":"AgentOS API","id":"demo-os","version":"1.0.0"}}}}}}}}},"/health":{"get":{"tags":["Health"],"summary":"Health Check","description":"Check the health status of the AgentOS API. Returns a simple status indicator.","operationId":"health_check","responses":{"200":{"description":"API is healthy and operational","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"},"example":{"status":"ok","instantiated_at":"2025-06-10T12:00:00Z"}}}}}}},"/info":{"get":{"tags":["Core"],"summary":"Get OS Info","description":"Return lightweight, unauthenticated metadata about this AgentOS instance.","operationId":"get_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoResponse"}}}}}}},"/config":{"get":{"tags":["Core"],"summary":"Get OS Configuration","description":"Retrieve the complete configuration of the AgentOS instance, including:\n\n- Available models and databases\n- Registered agents, teams, and workflows\n- Chat, session, memory, knowledge, and evaluation configurations\n- Available interfaces and their routes","operationId":"get_config","responses":{"200":{"description":"OS configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"},"example":{"description":"Example AgentOS configuration","available_models":[],"databases":["9c884dc4-9066-448c-9074-ef49ec7eb73c"],"session":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Sessions"}}]},"metrics":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Metrics"}}]},"memory":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Memory"}}]},"knowledge":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Knowledge"}}]},"evals":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Evals"}}]},"agents":[{"id":"main-agent","name":"Main Agent","db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c"}],"teams":[],"workflows":[],"interfaces":[],"os_id":"demo"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/models":{"get":{"tags":["Core"],"summary":"Get Available Models","description":"Retrieve a list of all unique models currently used by agents and teams in this OS instance. This includes the model ID and provider information for each model.","operationId":"get_models","responses":{"200":{"description":"List of models retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Response Get Models"},"example":[{"id":"gpt-4","provider":"openai"},{"id":"claude-3-sonnet","provider":"anthropic"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}/runs":{"post":{"tags":["Agents"],"summary":"Create Agent Run","description":"Execute an agent with a message and optional media files. Supports both streaming and non-streaming responses.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_agent_run"}}}},"responses":{"200":{"description":"Agent run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"examples":{"event_stream":{"summary":"Example event stream response","value":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Agents"],"summary":"List Agent Runs","description":"List runs for an agent within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_agent_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED","title":"Status"},"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RunSchema"},"type":"array","title":"Response List Agent Runs"}}}},"400":{"description":"Run listing is unavailable for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Agent resolution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/cancel":{"post":{"tags":["Agents"],"summary":"Cancel Agent Run","description":"Cancel a currently executing agent run. This will attempt to stop the agent's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run cancellation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/continue":{"post":{"tags":["Agents"],"summary":"Continue Agent Run","description":"Advance a persisted agent run from its current state. Dispatches on the body shape and the persisted run state (see ADR-003 in specs/agno/features/checkpointing/decisions.md).\n\n**Variants:**\n- PAUSED + tools provided \u2192 apply HITL tool results, resume\n- PAUSED + resolved admin approval (empty tools) \u2192 apply resolution, resume\n- RUNNING / ERROR (no unresolved HITL requirements) \u2192 resume from last persisted state\n- COMPLETED + new tools \u2192 continue with appended messages\n\n**Tools Parameter:**\nJSON string containing array of tool execution objects with results. Optional \u2014 only required when the persisted run has unresolved HITL requirements.","operationId":"continue_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_agent_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid tools or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Agent run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run continuation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"503":{"description":"Remote agent is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/agents/{agent_id}/sessions/{session_id}/fork":{"post":{"tags":["Agents"],"summary":"Fork Agent Session","description":"Deep-copy a session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_agent_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents":{"get":{"tags":["Agents"],"summary":"List All Agents","description":"Retrieve a comprehensive list of all agents configured in this OS instance.\n\n**Returns:**\n- Agent metadata (ID, name, description)\n- Model configuration and capabilities\n- Available tools and their configurations\n- Session, knowledge, memory, and reasoning settings\n- Only meaningful (non-default) configurations are included","operationId":"get_agents","responses":{"200":{"description":"List of agents retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentResponse"},"type":"array","title":"Response Get Agents"},"example":[{"id":"main-agent","name":"Main Agent","db_id":"c6bf0644-feb8-4930-a305-380dae5ad6aa","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Details","description":"Retrieve detailed configuration and capabilities of a specific agent.\n\n**Returns comprehensive agent information including:**\n- Model configuration and provider details\n- Complete tool inventory and configurations\n- Session management settings\n- Knowledge base and memory configurations\n- Reasoning capabilities and settings\n- System prompts and response formatting options","operationId":"get_agent","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Agent details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"},"example":{"id":"main-agent","name":"Main Agent","db_id":"9e064c70-6821-4840-a333-ce6230908a70","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Run","description":"Retrieve the status and output of an agent run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Agents"],"summary":"List Agent Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_agent_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Agents"],"summary":"Get Agent Run Checkpoint Snapshot","description":"Return a derived run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_agent_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/resume":{"post":{"tags":["Agents"],"summary":"Resume Agent Run Stream","description":"Resume an SSE stream for an agent run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_agent_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_agent_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Not supported for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs":{"post":{"tags":["Teams"],"summary":"Create Team Run","description":"Execute a team collaboration with multiple agents working together on a task.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_team_run"}}}},"responses":{"200":{"description":"Team run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Teams"],"summary":"List Team Runs","description":"List runs for a team within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_team_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/cancel":{"post":{"tags":["Teams"],"summary":"Cancel Team Run","description":"Cancel a currently executing team run. This will attempt to stop the team's execution gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.","operationId":"cancel_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel team run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/resume":{"post":{"tags":["Teams"],"summary":"Resume Team Run Stream","description":"Resume an SSE stream for a team run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_team_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_team_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory teams. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/continue":{"post":{"tags":["Teams"],"summary":"Continue Team Run","description":"Continue a paused or incomplete team run with updated requirements.\n\n**Use Cases:**\n- Resume execution after tool approval/rejection\n- Provide manual tool execution results\n- Resume after admin approval (requirements can be empty; resolution fetched from DB)\n\n**Requirements Parameter:**\nJSON string containing array of requirement objects with tool execution results.\nCan be empty when an admin-required approval has been resolved.","operationId":"continue_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_team_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid requirements or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Team run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Remote team is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/teams/{team_id}/sessions/{session_id}/fork":{"post":{"tags":["Teams"],"summary":"Fork Team Session","description":"Deep-copy a team session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_team_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams":{"get":{"tags":["Teams"],"summary":"List Accessible Teams","description":"Retrieve configured team metadata, models, members, knowledge, and memory settings. When authorization is enabled, in-memory team registrations are filtered by caller scopes. Database-loaded team components are also included.","operationId":"get_teams","responses":{"200":{"description":"List of teams retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamResponse"},"type":"array","title":"Response Get Teams"},"example":[{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"agno_memories","app_url":"/memory/1","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/teams/{team_id}":{"get":{"tags":["Teams"],"summary":"Get Team Details","description":"Retrieve detailed configuration and member information for a specific team.","operationId":"get_team","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"},"example":{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}":{"get":{"tags":["Teams"],"summary":"Get Team Run","description":"Retrieve the status and output of a team run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Teams"],"summary":"List Team Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored team run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_team_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Teams"],"summary":"Get Team Run Checkpoint Snapshot","description":"Return a derived team run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_team_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows":{"get":{"tags":["Workflows"],"summary":"List All Workflows","description":"Retrieve a comprehensive list of all workflows configured in this OS instance.\n\n**Return Information:**\n- Workflow metadata (ID, name, description)\n- Input schema requirements\n- Step sequence and execution flow\n- Associated agents and teams","operationId":"get_workflows","responses":{"200":{"description":"List of workflows retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Response Get Workflows"},"example":[{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/workflows/{workflow_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Details","description":"Retrieve detailed configuration and step information for a specific workflow.","operationId":"get_workflow","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Workflow version to retrieve","title":"Version"},"description":"Workflow version to retrieve"}],"responses":{"200":{"description":"Workflow details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"},"example":{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs":{"post":{"tags":["Workflows"],"summary":"Execute Workflow","description":"Execute a workflow with the provided input data. Workflows can run in streaming or batch mode.\n\n**Execution Modes:**\n- **Streaming (`stream=true`)**: Real-time step-by-step execution updates via SSE\n- **Non-Streaming (`stream=false`)**: Complete workflow execution with final result\n\n**Workflow Execution Process:**\n1. Input validation against workflow schema\n2. Sequential or parallel step execution based on workflow design\n3. Data flow between steps with transformation\n4. Error handling and automatic retries where configured\n5. Final result compilation and response\n\n**Session Management:**\nWorkflows support session continuity for stateful execution across multiple runs.","operationId":"create_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_run"}}}},"responses":{"200":{"description":"Workflow executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid input data or workflow configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Workflow execution error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"List Workflow Runs","description":"List runs for a workflow within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_workflow_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/continue":{"post":{"tags":["Workflows"],"summary":"Continue Workflow Run","description":"Continue a paused workflow run with resolved requirements.\n\n**Use Cases:**\n- Resume after step-level HITL (confirmation, user input, router selection)\n- Resume after executor-level HITL (agent/team tool confirmation within a step)\n\n**Requirements Parameter:**\nJSON string containing the resolved step requirements.","operationId":"continue_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_workflow_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: StepCompleted\ndata: {\"step_name\": \"step1\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid step requirements or factory input, missing required session ID, rejected input, or remote workflow continuation requested","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is not paused and cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/cancel":{"post":{"tags":["Workflows"],"summary":"Cancel Workflow Run","description":"Cancel a currently executing workflow run, stopping all active steps and cleanup.\n**Note:** Complex workflows with multiple parallel steps may take time to fully cancel.","operationId":"cancel_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID the run belongs to. Required for non-admin JWT users.","title":"Session Id"},"description":"Session ID the run belongs to. Required for non-admin JWT users."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found, or the requested run was not found in the caller's session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel workflow run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/resume":{"post":{"tags":["Workflows"],"summary":"Resume Workflow Run Stream","description":"Resume an SSE stream for a workflow run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_workflow_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_workflow_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory workflows. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Run","description":"Retrieve the status and output of a workflow run. Use this to poll for run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/slack/events":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Receives incoming Slack events (messages, mentions, thread starts).\n\n**URL Verification:** On first setup, Slack sends a `url_verification` challenge. The endpoint echoes back the challenge string.\n\n**Event Processing:** Normal events are acknowledged immediately with `{\"status\": \"ok\"}` and processed in the background. This prevents Slack's 3-second retry timeout.\n\n**Retry Handling:** Events with `X-Slack-Retry-Num` header are duplicates and return 200 without reprocessing.\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Event Subscriptions > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for creating a Slack App or use the [manifest](/agent-os/interfaces/slack/setup#2-create-the-slack-app) for quick setup.\n","operationId":"slack_events_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SlackChallengeResponse"},{"$ref":"#/components/schemas/SlackEventResponse"}],"title":"Response Slack Events Simple Agent"}}}},"400":{"description":"Missing Slack headers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured, or the event body is not valid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number (present on retried events)"}]}},"/slack/interactions":{"post":{"tags":["Slack"],"summary":"Slack Interactions","description":"Handles Slack interactive components for Human-in-the-Loop (HITL) workflows.\n\n**Supported Actions:**\n- `row_approve` - Approve a pending tool call\n- `row_reject` - Reject a pending tool call\n- `submit_pause` - Submit form data for a paused workflow\n- `check_status` - Check an admin approval and resume an approved run\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Interactivity & Shortcuts > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for step-by-step instructions or the [HITL guide](/agent-os/interfaces/slack/hitl) for approval workflows.\n","operationId":"slack_interactions_simple_agent","responses":{"200":{"description":"Interaction accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackEventResponse"}}}},"400":{"description":"Missing Slack headers or malformed interaction payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number. Retried interactions return 200 without reprocessing."}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"URL-encoded JSON interaction payload (Slack sends interactive component data as a single form field)"}}}}}}}},"/whatsapp/status":{"get":{"tags":["Whatsapp"],"summary":"Status","operationId":"whatsapp_status_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"WhatsAppStatusResponse","example":{"status":"available"}}}}}}}},"/whatsapp/webhook":{"get":{"tags":["Whatsapp"],"summary":"Whatsapp Verify","description":"Handle WhatsApp webhook verification","operationId":"whatsapp_verify_simple_agent","responses":{"200":{"description":"Webhook challenge accepted","content":{"text/plain":{"schema":{"type":"string"},"example":"challenge-token"}}},"400":{"description":"No challenge was provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid verify token or mode","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Webhook verification is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"hub.mode","in":"query","required":true,"schema":{"type":"string"},"description":"Webhook verification mode. Meta sends `subscribe`."},{"name":"hub.verify_token","in":"query","required":true,"schema":{"type":"string"},"description":"Verification token configured for the WhatsApp interface."},{"name":"hub.challenge","in":"query","required":true,"schema":{"type":"string"},"description":"Challenge returned as plain text after successful verification."}]},"post":{"tags":["Whatsapp"],"summary":"Whatsapp Webhook","description":"Process incoming WhatsApp messages","operationId":"whatsapp_webhook_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppWebhookResponse"}}}},"403":{"description":"Invalid webhook signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Signature validation is not configured, or the JSON body is malformed or is not an object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Hub-Signature-256","in":"header","required":true,"schema":{"type":"string"},"description":"SHA-256 HMAC signature for the raw request body, prefixed with `sha256=`"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}},"/telegram/status":{"get":{"tags":["Telegram"],"summary":"Telegram Status","operationId":"telegram_status_simple-agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramStatusResponse"}}}}}}},"/telegram/webhook":{"post":{"tags":["Telegram"],"summary":"Telegram Webhook","operationId":"telegram_webhook_simple-agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramWebhookResponse"}}}},"403":{"description":"Invalid webhook secret token"}}}},"/agui":{"post":{"tags":["AGUI"],"summary":"Run Agent","operationId":"run_agent_agui_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentInput"}}},"required":true},"responses":{"200":{"description":"Server-sent event stream","content":{"text/event-stream":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/status":{"get":{"tags":["AGUI"],"summary":"Get Status","operationId":"get_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/a2a/agents/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Agent Card","operationId":"get_agent_card_a2a_agents__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/a2a/agents/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Agent","description":"Send a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"A2A is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/agents/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Agent Task","description":"Get the status and result of an agent task by ID. `params.contextId` identifies the session containing the task.","operationId":"get_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent task retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Missing task or context ID, or task polling requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"Task polling is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/get","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/agents/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Agent Task","description":"Cancel a running agent task. Scoped non-admin callers must identify the task's session with `params.contextId`.","operationId":"cancel_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent task canceled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"canceled"}}}}}},"400":{"description":"Missing task or required context ID, or task cancellation requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"Task cancellation is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/cancel","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/agents/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Agent","description":"Stream a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/teams/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Team Card","operationId":"get_team_card_a2a_teams__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/a2a/teams/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Team","description":"Send a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/teams/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Team Task","description":"Get the status and result of a team task by ID. `params.contextId` identifies the session containing the task.","operationId":"get_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team task retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Missing task or context ID, or task polling requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/get","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/teams/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Team Task","description":"Cancel a running team task. Scoped non-admin callers must identify the task's session with `params.contextId`.","operationId":"cancel_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team task canceled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"canceled"}}}}}},"400":{"description":"Missing task or required context ID, or task cancellation requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/cancel","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/teams/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Team","description":"Stream a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/workflows/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Workflow Card","operationId":"get_workflow_card_a2a_workflows__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Workflow card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/a2a/workflows/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Workflow","description":"Send a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/workflows/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Workflow","description":"Stream a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/message/send":{"post":{"tags":["A2A"],"summary":"Send Message","description":"[DEPRECATED] Send a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"send_message","responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request or unsupported method","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, team, or workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"deprecated":true,"security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Agent-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Target agent, team, or workflow ID when `params.message.agentId` is omitted."},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/message/stream":{"post":{"tags":["A2A"],"summary":"Stream Message","description":"[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as Server-Sent Events (SSE).","operationId":"stream_message","responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request or unsupported method","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, team, or workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"deprecated":true,"security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Agent-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Target agent, team, or workflow ID when `params.message.agentId` is omitted."},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/sessions":{"get":{"tags":["Sessions"],"summary":"List Sessions","description":"Retrieve paginated list of sessions with filtering and sorting options. Supports filtering by session type (agent, team, workflow), component, user, and name. Sessions represent conversation histories and execution contexts.","operationId":"get_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types.","title":"Type"},"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types."},{"name":"component_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by component ID (agent/team/workflow ID)","title":"Component Id"},"description":"Filter sessions by component ID (agent/team/workflow ID)"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by user ID","title":"User Id"},"description":"Filter sessions by user ID"},{"name":"session_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by name (partial match)","title":"Session Name"},"description":"Filter sessions by name (partial match)"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of sessions to return per page","default":20,"title":"Limit"},"description":"Number of sessions to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort sessions by","default":"created_at","title":"Sort By"},"description":"Field to sort sessions by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query sessions from","title":"Db Id"},"description":"Database ID to query sessions from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Sessions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_SessionSchema_"},"example":{"session_example":{"summary":"Example session response","value":{"data":[{"session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_state":{},"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}]}}}}}},"400":{"description":"Invalid session type or filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in query parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Sessions"],"summary":"Create New Session","description":"Create a new empty session with optional configuration. Useful for pre-creating sessions with specific session_state, metadata, or other properties before running any agent/team/workflow interactions. The session can later be used by providing its session_id in run requests.","operationId":"create_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SessionType","description":"Type of session to create (agent, team, or workflow)","default":"agent"},"description":"Type of session to create (agent, team, or workflow)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to create session in","title":"Db Id"},"description":"Database ID to create session in"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest","description":"Session configuration data","default":{}}}}},"responses":{"201":{"description":"Session created successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Create Session"},"examples":{"agent_session_example":{"summary":"Example created agent session","value":{"user_id":"user-123","agent_session_id":"new-session-id","session_id":"new-session-id","session_name":"New Session","session_state":{"key":"value"},"metadata":{"key":"value"},"agent_id":"agent-1","created_at":"2025-10-21T12:00:00Z","updated_at":"2025-10-21T12:00:00Z"}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A session with the supplied session_id already exists"},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Multiple Sessions","description":"Delete multiple sessions by their IDs in a single operation. This action cannot be undone and will permanently remove all specified sessions and their runs.","operationId":"delete_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSessionRequest"}}}},"responses":{"204":{"description":"Sessions deleted successfully"},"400":{"description":"Invalid request - session IDs and types length mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["Sessions"],"summary":"Get Session by ID","description":"Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow).","operationId":"get_session_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to retrieve","title":"Session Id"},"description":"Session ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query session from","title":"User Id"},"description":"User ID to query session from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query session from","title":"Db Id"},"description":"Database ID to query session from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query session from","title":"Table"},"description":"Table to query session from"}],"responses":{"200":{"description":"Session details retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Get Session By Id"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Session","description":"Permanently delete a specific session and all its associated runs. This action cannot be undone and will remove all conversation history.","operationId":"delete_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to delete","title":"Session Id"},"description":"Session ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Sessions"],"summary":"Update Session","description":"Update session properties such as session_name, session_state, metadata, or summary. Use this endpoint to modify the session name, update state, add metadata, or update the session summary.","operationId":"update_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to update","title":"Session Id"},"description":"Session ID to update"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID","title":"User Id"},"description":"User ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update operation","title":"Db Id"},"description":"Database ID to use for update operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update operation","title":"Table"},"description":"Table to use for update operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest","description":"Session update data"}}}},"responses":{"200":{"description":"Session updated successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Update Session"},"examples":{"update_summary":{"summary":"Update session summary","value":{"summary":{"summary":"The user discussed project planning with the agent.","updated_at":"2025-10-21T14:30:00Z"}}},"update_metadata":{"summary":"Update session metadata","value":{"metadata":{"tags":["planning","project"],"priority":"high"}}},"update_session_name":{"summary":"Update session name","value":{"session_name":"Updated Session Name"}},"update_session_state":{"summary":"Update session state","value":{"session_state":{"step":"completed","context":"Project planning finished","progress":100}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs":{"get":{"tags":["Sessions"],"summary":"Get Session Runs","description":"Retrieve all runs (executions) for a specific session with optional timestamp filtering. Runs represent individual interactions or executions within a session. Response schema varies based on session type.","operationId":"get_session_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get runs from","title":"Session Id"},"description":"Session ID to get runs from"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query runs from","title":"User Id"},"description":"User ID to query runs from"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created after this Unix timestamp (epoch time in seconds)","title":"Created After"},"description":"Filter runs created after this Unix timestamp (epoch time in seconds)"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created before this Unix timestamp (epoch time in seconds)","title":"Created Before"},"description":"Filter runs created before this Unix timestamp (epoch time in seconds)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query runs from","title":"Db Id"},"description":"Database ID to query runs from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query runs from","title":"Table"},"description":"Table to query runs from"}],"responses":{"200":{"description":"Session runs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}]},"title":"Response Get Session Runs"},"examples":{"completed_run":{"summary":"Example completed run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"","run_input":"Which tools do you have access to?","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","run_response_format":"text","reasoning_content":"","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069},"messages":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-08 17:52:10.101003.\n\n\nYou have the capability to retain memories from previous interactions with the user, but have not had any interactions with the user yet.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757346730},{"content":"Which tools do you have access to?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757346730},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138},"created_at":1757346730}],"events":[{"created_at":1757346730,"event":"RunStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","model":"gpt-4o","model_provider":"OpenAI"},{"created_at":1757346733,"event":"MemoryUpdateStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"MemoryUpdateCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"RunCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","content_type":"str","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069}}],"created_at":"2025-09-08T15:52:10Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found or has no runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs/{run_id}":{"get":{"tags":["Sessions"],"summary":"Get Run by ID","description":"Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run).","operationId":"get_session_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get run from","title":"Session Id"},"description":"Session ID to get run from"},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","description":"Run ID to retrieve","title":"Run Id"},"description":"Run ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query run from","title":"User Id"},"description":"User ID to query run from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query run from","title":"Db Id"},"description":"Database ID to query run from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query run from","title":"Table"},"description":"Table to query run from"}],"responses":{"200":{"description":"Run retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}],"title":"Response Get Session Run"},"examples":{"agent_run":{"summary":"Example agent run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"user_123","run_input":"Which tools do you have access to?","content":"I don't have access to external tools.","created_at":1728499200}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/rename":{"post":{"tags":["Sessions"],"summary":"Rename Session","description":"Update the name of an existing session. Useful for organizing and categorizing sessions with meaningful names for better identification and management.","operationId":"rename_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to rename","title":"Session Id"},"description":"Session ID to rename"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope rename to","title":"User Id"},"description":"User ID to scope rename to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for rename operation","title":"Db Id"},"description":"Database ID to use for rename operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_rename_session"}}}},"responses":{"200":{"description":"Session renamed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Rename Session"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Invalid session name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type or validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories":{"post":{"tags":["Memory"],"summary":"Create Memory","description":"Create a new user memory with content and associated topics. Memories are used to store contextual information for users across conversations.","operationId":"create_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for memory storage","title":"Db Id"},"description":"Database ID to use for memory storage"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for memory storage","title":"Table"},"description":"Table to use for memory storage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"mem-123","memory":"User prefers technical explanations with code examples","topics":["preferences","communication_style","technical"],"user_id":"user-456","created_at":"2024-01-15T10:30:00Z","updated_at":"2024-01-15T10:30:00Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Memory"],"summary":"Delete Multiple Memories","description":"Delete multiple user memories by their IDs in a single operation. This action cannot be undone and all specified memories will be permanently removed.","operationId":"delete_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMemoriesRequest"}}}},"responses":{"204":{"description":"Memories deleted successfully"},"400":{"description":"Invalid request - empty memory_ids list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"List Memories","description":"Retrieve paginated list of user memories with filtering and search capabilities. Filter by user, agent, team, topics, or search within memory content.","operationId":"get_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by user ID","title":"User Id"},"description":"Filter memories by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by agent ID","title":"Agent Id"},"description":"Filter memories by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by team ID","title":"Team Id"},"description":"Filter memories by team ID"},{"name":"search_content","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fuzzy search within memory content","title":"Search Content"},"description":"Fuzzy search within memory content"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of memories to return per page","default":20,"title":"Limit"},"description":"Number of memories to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort memories by","default":"updated_at","title":"Sort By"},"description":"Field to sort memories by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memories from","title":"Db Id"},"description":"Database ID to query memories from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Comma-separated list of topics to filter by","examples":["preferences,technical,communication_style"],"title":"Topics"},"description":"Comma-separated list of topics to filter by"}],"responses":{"200":{"description":"Memories retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserMemorySchema_"},"example":{"data":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories/{memory_id}":{"delete":{"tags":["Memory"],"summary":"Delete Memory","description":"Permanently delete a specific user memory. This action cannot be undone.","operationId":"delete_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to delete","title":"Memory Id"},"description":"Memory ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to delete memory for","title":"User Id"},"description":"User ID to delete memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Memory deleted successfully"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"Get Memory by ID","description":"Retrieve detailed information about a specific user memory by its ID.","operationId":"get_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to retrieve","title":"Memory Id"},"description":"Memory ID to retrieve"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query memory for","title":"User Id"},"description":"User ID to query memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memory from","title":"Db Id"},"description":"Database ID to query memory from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query memory from","title":"Table"},"description":"Table to query memory from"}],"responses":{"200":{"description":"Memory retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Memory"],"summary":"Update Memory","description":"Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values.","operationId":"update_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to update","title":"Memory Id"},"description":"Memory ID to update"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update","title":"Db Id"},"description":"Database ID to use for update"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update","title":"Table"},"description":"Table to use for update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memory_topics":{"get":{"tags":["Memory"],"summary":"Get Memory Topics","description":"Retrieve all unique topics associated with memories in the system. Useful for filtering and categorizing memories by topic.","operationId":"get_memory_topics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter topics for","title":"User Id"},"description":"User ID to filter topics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query topics from","title":"Db Id"},"description":"Database ID to query topics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query topics from","title":"Table"},"description":"Table to query topics from"}],"responses":{"200":{"description":"Memory topics retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Get Memory Topics"},"example":["preferences","communication_style","technical","industry","compliance","code_examples","requirements","healthcare","finance"]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/user_memory_stats":{"get":{"tags":["Memory"],"summary":"Get User Memory Statistics","description":"Retrieve paginated statistics about memory usage by user. Provides insights into user engagement and memory distribution across users.","operationId":"get_user_memory_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of user statistics to return per page","default":20,"title":"Limit"},"description":"Number of user statistics to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number for pagination","default":1,"title":"Page"},"description":"Page number for pagination"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter statistics for","title":"User Id"},"description":"User ID to filter statistics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query statistics from","title":"Table"},"description":"Table to query statistics from"}],"responses":{"200":{"description":"User memory statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserStatsSchema_"},"example":{"data":[{"user_id":"123","total_memories":3,"last_memory_updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve user statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/optimize-memories":{"post":{"tags":["Memory"],"summary":"Optimize User Memories","description":"Optimize all memories for a user with the summarize strategy. The operation combines the user's memories into one summary. Set `apply=false` to preview the result without saving it. Specify a custom model as `provider:model_id`, for example `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, or `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`.","operationId":"optimize_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for optimization","title":"Db Id"},"description":"Database ID to use for optimization"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for optimization","title":"Table"},"description":"Table to use for optimization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesRequest"}}}},"responses":{"200":{"description":"Memories optimized successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesResponse"},"example":{"memories":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User has a 3-year-old golden retriever named Max who loves fetch and walks. Lives in San Francisco's Mission district, works as a product manager in tech. Enjoys hiking Bay Area trails, trying new restaurants (especially Japanese, Thai, Mexican), and learning piano for 1.5 years.","topics":["pets","location","work","hobbies","food_preferences"],"user_id":"user2","updated_at":"2025-11-18T10:30:00Z"}],"memories_before":4,"memories_after":1,"tokens_before":450,"tokens_after":180,"tokens_saved":270,"reduction_percentage":60.0}}}},"400":{"description":"Bad request - User ID is required or invalid model string format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No memories found for user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to optimize memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings":{"get":{"tags":["Learnings"],"summary":"List Learnings","description":"List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) \u2014 this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`).","operationId":"list_learnings","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by learning type","title":"Learning Type"},"description":"Filter by learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"namespace","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by namespace","title":"Namespace"},"description":"Filter by namespace"},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity ID","title":"Entity Id"},"description":"Filter by entity ID"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity type","title":"Entity Type"},"description":"Filter by entity type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":100,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used).","title":"Sort By"},"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used)."},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"post":{"tags":["Learnings"],"summary":"Create Learning","description":"Create a new learning record. For the identity-keyed learning types (`user_profile`, `user_memory`, `session_context`, `entity_memory`) the record id is derived deterministically from the identity fields so it reconciles with what the agent reads/writes \u2014 provide those fields (else 422), and if a record already exists the request is rejected with 409 (use PATCH to update it). Other types get a generated id. For a scoped (non-admin) caller, the body's `user_id` must be omitted/null or match the caller (mismatch \u2192 403); admins and unscoped callers may set any `user_id`.","operationId":"create_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"An identity-keyed learning already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/users":{"get":{"tags":["Learnings"],"summary":"List Learning Users","description":"List the users that own learning records, with a per-user count and last-updated timestamp. Intended as the entry point for a per-user view: list users here, then drill into a single user's learnings via `GET /learnings?user_id=...`. Records with no owner (`user_id IS NULL`) are excluded. Pass `learning_type` to restrict the grouping to a single store (e.g. `user_profile` or `user_memory`). For a scoped (non-admin) caller results are bound to that user; an explicit `user_id` that differs is rejected with 403. Admins and unscoped callers list all users. Sortable by `user_id` or `last_learning_updated_at` (the default).","operationId":"list_learning_users","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the grouping to a single learning type","title":"Learning Type"},"description":"Restrict the grouping to a single learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the result to a single user","title":"User Id"},"description":"Restrict the result to a single user"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by: user_id or last_learning_updated_at (the default)","title":"Sort By"},"description":"Field to sort by: user_id or last_learning_updated_at (the default)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningUserStats_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/users/{user_id}":{"delete":{"tags":["Learnings"],"summary":"Delete Learning User","description":"Delete the learning records owned by a user. By default removes every learning type backed by the agno_learnings table (user_profile, user_memory, and any user-scoped entity records); pass `learning_type` to restrict deletion to a single store. Records with no owner (`user_id IS NULL`) are not affected. For a scoped (non-admin) caller, only their own learnings may be deleted; a different `user_id` is rejected with 403. Admins and unscoped callers may delete any user's learnings. Returns 204 even if the user had no matching records.","operationId":"delete_learning_user","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The user whose learnings should be deleted","title":"User Id"},"description":"The user whose learnings should be deleted"},{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings","title":"Learning Type"},"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/{learning_id}":{"get":{"tags":["Learnings"],"summary":"Get Learning","description":"Retrieve a single learning record by its ID.","operationId":"get_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"patch":{"tags":["Learnings"],"summary":"Update Learning","description":"Update a learning record. Only `content` and `metadata` may be modified; identity fields (user_id, agent_id, team_id, etc.) are immutable. Provided fields fully replace the existing values. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) are readable by any caller but may only be modified by an admin.","operationId":"update_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"delete":{"tags":["Learnings"],"summary":"Delete Learning","description":"Permanently delete a learning record by its ID. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) may only be deleted by an admin.","operationId":"delete_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/eval-runs":{"get":{"tags":["Evals"],"summary":"List Evaluation Runs","description":"Retrieve paginated evaluation runs with filtering and sorting options. Filter by agent, team, workflow, model, or evaluation type.","operationId":"get_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Workflow ID","title":"Workflow Id"},"description":"Workflow ID"},{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model ID","title":"Model Id"},"description":"Model ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EvalFilterType"},{"type":"null"}],"description":"Filter type","title":"Type"},"description":"Filter type"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of eval runs to return","default":20,"title":"Limit"},"description":"Number of eval runs to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"eval_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)","examples":["accuracy,agent_as_judge,performance,reliability"],"title":"Eval Types"},"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)"}],"responses":{"200":{"description":"Evaluation runs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_EvalSchema_"},"example":{"data":[{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Evals"],"summary":"Delete Evaluation Runs","description":"Delete multiple evaluation runs by their IDs. This action cannot be undone.","operationId":"delete_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvalRunsRequest"}}}},"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Deletion failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Evals"],"summary":"Execute Evaluation","description":"Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both.","operationId":"run_eval","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for evaluation","title":"Db Id"},"description":"Database ID to use for evaluation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for evaluation","title":"Table"},"description":"Table to use for evaluation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRunInput"}}}},"responses":{"200":{"description":"Evaluation executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"f2b2d72f-e9e2-4f0e-8810-0a7e1ff58614","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Invalid request - provide either agent_id or team_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs/{eval_run_id}":{"get":{"tags":["Evals"],"summary":"Get Evaluation Run","description":"Retrieve detailed results and metrics for a specific evaluation run.","operationId":"get_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query eval run from","title":"Table"},"description":"Table to query eval run from"}],"responses":{"200":{"description":"Evaluation run details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Evals"],"summary":"Update Evaluation Run","description":"Update the name or other properties of an existing evaluation run.","operationId":"update_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvalRunRequest"}}}},"responses":{"200":{"description":"Evaluation run updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update evaluation run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics":{"get":{"tags":["Metrics"],"summary":"Get AgentOS Metrics","description":"Retrieve AgentOS metrics and analytics data for a specified date range. If no date range is specified, returns all available metrics.","operationId":"get_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"starting_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Starting date for metrics range (YYYY-MM-DD format)","title":"Starting Date"},"description":"Starting date for metrics range (YYYY-MM-DD format)"},{"name":"ending_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Ending date for metrics range (YYYY-MM-DD format)","title":"Ending Date"},"description":"Ending date for metrics range (YYYY-MM-DD format)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query metrics from","title":"Db Id"},"description":"Database ID to query metrics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Metrics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"},"example":{"metrics":[{"id":"7bf39658-a00a-484c-8a28-67fd8a9ddb2a","agent_runs_count":5,"agent_sessions_count":5,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":448,"output_tokens":148,"total_tokens":596,"audio_tokens":0,"input_audio_tokens":0,"output_audio_tokens":0,"cached_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":5}],"date":"2025-07-31T00:00:00Z","created_at":"2025-07-31T12:38:52Z","updated_at":"2025-07-31T12:49:01Z"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Metrics retrieval failed. In Agno 2.7.4, invalid or ambiguous database selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics/refresh":{"post":{"tags":["Metrics"],"summary":"Refresh Metrics","description":"Manually trigger recalculation of system metrics from raw data. This operation analyzes system activity logs and regenerates aggregated metrics. Useful for ensuring metrics are up-to-date or after system maintenance.","operationId":"refresh_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for metrics calculation","title":"Db Id"},"description":"Database ID to use for metrics calculation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for metrics calculation","title":"Table"},"description":"Table to use for metrics calculation"}],"responses":{"200":{"description":"Metrics refreshed successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"title":"Response Refresh Metrics"},"example":[{"id":"e77c9531-818b-47a5-99cd-59fed61e5403","agent_runs_count":2,"agent_sessions_count":2,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":256,"output_tokens":441,"total_tokens":697,"audio_total_tokens":0,"audio_input_tokens":0,"audio_output_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":2}],"date":"2025-08-12T00:00:00Z","created_at":"2025-08-12T08:01:47Z","updated_at":"2025-08-12T08:01:47Z"}]}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Refresh failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content":{"post":{"tags":["Knowledge"],"summary":"Upload Content","description":"Upload content to the knowledge base. Supports file uploads, text content, or URLs. Content is processed asynchronously in the background. Supports custom readers and chunking strategies.","operationId":"upload_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_content"}}}},"responses":{"202":{"description":"Content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-123","name":"example-document.pdf","description":"Sample document for processing","metadata":{"category":"documentation","priority":"high"},"status":"processing"}}}},"400":{"description":"Invalid request - malformed metadata or missing content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in form data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"List Content","description":"Retrieve paginated list of all content in the knowledge base with filtering and sorting options. Filter by status, content type, or metadata properties.","operationId":"get_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of content entries to return","default":20,"title":"Limit"},"description":"Number of content entries to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ContentResponseSchema_"},"example":{"data":[{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}],"meta":{"page":1,"limit":20,"total_pages":1,"total_count":2}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete All Content","description":"Permanently remove all content from the knowledge base. This is a destructive operation that cannot be undone. Use with extreme caution.","operationId":"delete_all_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete all content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/remote-content":{"post":{"tags":["Knowledge"],"summary":"Upload Remote Content","description":"Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.","operationId":"upload_remote_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_upload_remote_content"}}}},"responses":{"202":{"description":"Remote content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-456","name":"reports/q1-2024.pdf","description":"Q1 Report from S3","metadata":{"source":"s3-docs"},"status":"processing"}}}},"400":{"description":"Invalid request - unknown config or missing path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Remote content upload is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/knowledge/content/{content_id}":{"patch":{"tags":["Knowledge"],"summary":"Update Content","description":"Update content name, description, or metadata without re-uploading it. In Agno 2.7.4, this endpoint accepts `reader_id`. Local knowledge validates the value, but the content patch does not apply or persist the reader change.","operationId":"update_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","description":"Content ID","title":"Content Id"},"description":"Content ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_update_content"}}}},"responses":{"200":{"description":"Content updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Invalid request - malformed metadata or invalid reader_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"Get Content by ID","description":"Retrieve detailed information about a specific content item including processing status and metadata.","operationId":"get_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":1,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete Content by ID","description":"Permanently remove a specific content item from the knowledge base. This action cannot be undone.","operationId":"delete_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}/status":{"get":{"tags":["Knowledge"],"summary":"Get Content Status","description":"Retrieve the current processing status of a content item. Useful for monitoring asynchronous content processing progress and identifying any processing errors.","operationId":"get_content_status","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content status retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentStatusResponse"},"examples":{"completed":{"summary":"Example completed content status","value":{"status":"completed","status_message":""}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/search":{"post":{"tags":["Knowledge"],"summary":"Search Knowledge","description":"Search the knowledge base for relevant documents using query, filters and search type.","operationId":"search_knowledge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VectorSearchRequestSchema"}}},"required":true},"responses":{"200":{"description":"Search results retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_VectorSearchResult_"},"example":{"data":[{"id":"doc_123","content":"Jordan Mitchell - Software Engineer with skills in JavaScript, React, Python","name":"cv_1","meta_data":{"page":1,"chunk":1},"usage":{"total_tokens":14},"reranking_score":0.95,"content_id":"content_456"}],"meta":{"page":1,"limit":20,"total_pages":2,"total_count":35}}}}},"400":{"description":"Invalid search parameters"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No documents found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/knowledge/config":{"get":{"tags":["Knowledge"],"summary":"Get Config","description":"Retrieve available readers, chunkers, and configuration options for content processing. This endpoint provides metadata about supported file types, processing strategies, and filters.","operationId":"get_knowledge_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Knowledge configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponseSchema"},"example":{"readers":{"website":{"id":"website","name":"WebsiteReader","description":"Reads website files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"firecrawl":{"id":"firecrawl","name":"FirecrawlReader","description":"Reads firecrawl files","chunkers":["SemanticChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"youtube":{"id":"youtube","name":"YoutubeReader","description":"Reads youtube files","chunkers":["RecursiveChunker","AgenticChunker","DocumentChunker","SemanticChunker","FixedSizeChunker"]},"web_search":{"id":"web_search","name":"WebSearchReader","description":"Reads web_search files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"arxiv":{"id":"arxiv","name":"ArxivReader","description":"Reads arxiv files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"csv":{"id":"csv","name":"CsvReader","description":"Reads csv files","chunkers":["RowChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"docling":{"id":"docling","name":"DoclingReader","description":"Converts multiple document formats like PDF, DOCX, PPTX, images, HTML, etc. using IBM's Docling library","chunkers":["AgenticChunker","CodeChunker","DocumentChunker","FixedSizeChunker","RecursiveChunker","SemanticChunker"]},"docx":{"id":"docx","name":"DocxReader","description":"Reads docx files","chunkers":["DocumentChunker","FixedSizeChunker","SemanticChunker","AgenticChunker","RecursiveChunker"]},"gcs":{"id":"gcs","name":"GcsReader","description":"Reads gcs files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"json":{"id":"json","name":"JsonReader","description":"Reads json files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"markdown":{"id":"markdown","name":"MarkdownReader","description":"Reads markdown files","chunkers":["MarkdownChunker","DocumentChunker","AgenticChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"pdf":{"id":"pdf","name":"PdfReader","description":"Reads pdf files","chunkers":["DocumentChunker","FixedSizeChunker","AgenticChunker","SemanticChunker","RecursiveChunker"]},"text":{"id":"text","name":"TextReader","description":"Reads text files","chunkers":["CodeChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]}},"readersForType":{"url":["url","website","firecrawl","youtube","web_search","gcs"],"youtube":["youtube"],"text":["web_search"],"topic":["arxiv"],"file":["csv","gcs"],".csv":["csv","field_labeled_csv","docling"],".xlsx":["excel","docling"],".xls":["excel"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["excel"],"application/vnd.ms-excel":["excel"],".docx":["docx","docling"],".dotx":["docling"],".docm":["docling"],".dotm":["docling"],".pptx":["docling","pptx"],".potx":["docling"],".ppsx":["docling"],".pptm":["docling"],".ppsm":["docling"],".potm":["docling"],".doc":["docx"],".json":["json"],".md":["markdown","docling"],".pdf":["pdf","docling"],".txt":["text"],".html":["docling"],".htm":["docling"],".xhtml":["docling"],".xml":["docling"],".nxml":["docling"],".xbrl":["docling"],".adoc":["docling"],".asciidoc":["docling"],".asc":["docling"],".xlsm":["docling"],".tex":["docling"],".latex":["docling"],".tar.gz":["docling"],".vtt":["docling"],".png":["docling"],".jpeg":["docling"],".jpg":["docling"],".tiff":["docling"],".tif":["docling"],".bmp":["docling"],".webp":["docling"],".wav":["docling"],".mp3":["docling"],".m4a":["docling"],".aac":["docling"],".ogg":["docling"],".flac":["docling"],".mp4":["docling"],".avi":["docling"],".mov":["docling"]},"chunkers":{"AgenticChunker":{"key":"AgenticChunker","name":"AgenticChunker","description":"Chunking strategy that uses an LLM to determine natural breakpoints in the text","metadata":{"chunk_size":5000}},"CodeChunker":{"key":"CodeChunker","name":"CodeChunker","description":"The CodeChunker splits code into chunks based on its structure, leveraging Abstract Syntax Trees (ASTs) to create contextually relevant segments","metadata":{"chunk_size":2048}},"DocumentChunker":{"key":"DocumentChunker","name":"DocumentChunker","description":"A chunking strategy that splits text based on document structure like paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"FixedSizeChunker":{"key":"FixedSizeChunker","name":"FixedSizeChunker","description":"Chunking strategy that splits text into fixed-size chunks with optional overlap","metadata":{"chunk_size":5000,"chunk_overlap":0}},"MarkdownChunker":{"key":"MarkdownChunker","name":"MarkdownChunker","description":"A chunking strategy that splits markdown based on structure like headers, paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RecursiveChunker":{"key":"RecursiveChunker","name":"RecursiveChunker","description":"Chunking strategy that recursively splits text into chunks by finding natural break points","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RowChunker":{"key":"RowChunker","name":"RowChunker","description":"RowChunking chunking strategy","metadata":{}},"SemanticChunker":{"key":"SemanticChunker","name":"SemanticChunker","description":"Chunking strategy that splits text into semantic chunks using chonkie","metadata":{"chunk_size":5000}}},"vector_dbs":[{"id":"vector_db_1","name":"Vector DB 1","description":"Vector DB 1 description","search_types":["vector","keyword","hybrid"]}],"filters":["filter_tag_1","filter_tag2"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources":{"get":{"tags":["Knowledge"],"summary":"List Content Sources","description":"List all registered content sources (S3, GCS, SharePoint, GitHub) for the knowledge base.","operationId":"list_content_sources","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Content sources retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"title":"Response List Content Sources"},"example":[{"id":"company-s3","name":"Company Documents","type":"s3","prefix":"documents/"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Content source listing is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/knowledge/{knowledge_id}/sources/{source_id}/files":{"get":{"tags":["Knowledge"],"summary":"List Files in Source","description":"List available files and folders in a specific content source. Supports pagination and folder navigation.","operationId":"list_source_files","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the content source","title":"Source Id"},"description":"ID of the content source"},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Path prefix to filter files","title":"Prefix"},"description":"Path prefix to filter files"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of files per page","default":100,"title":"Limit"},"description":"Number of files per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"delimiter","in":"query","required":false,"schema":{"type":"string","description":"Folder delimiter (enables folder grouping)","default":"/","title":"Delimiter"},"description":"Folder delimiter (enables folder grouping)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Files listed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceFilesResponseSchema"},"example":{"source_id":"company-s3","source_name":"Company Documents","prefix":"reports/","folders":[{"prefix":"reports/2024/","name":"2024","is_empty":false}],"files":[{"key":"reports/annual-summary.pdf","name":"annual-summary.pdf","size":102400,"last_modified":"2024-01-15T10:30:00Z","content_type":"application/pdf"}],"meta":{"page":1,"limit":100,"total_pages":1,"total_count":1}}}}},"400":{"description":"Unsupported source type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base or content source not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Source file listing is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/traces":{"get":{"tags":["Traces","Traces"],"summary":"List Traces","description":"Retrieve a paginated list of execution traces with optional filtering.\n\n**Traces provide observability into:**\n- Agent execution flows\n- Model invocations and token usage\n- Tool calls and their results\n- Errors and performance bottlenecks\n\n**Filtering Options:**\n- By run, session, user, or agent ID\n- By status (OK, ERROR)\n- By time range\n\n**Pagination:**\n- Use `page` (1-indexed) and `limit` parameters\n- Response includes pagination metadata (total_pages, total_count, etc.)\n\n**Response Format:**\nReturns summary information for each trace. Use GET `/traces/{trace_id}` for detailed hierarchy.","operationId":"get_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run ID","title":"Run Id"},"description":"Filter by run ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status (OK, ERROR)","title":"Status"},"description":"Filter by status (OK, ERROR)"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of traces per page","default":20,"title":"Limit"},"description":"Number of traces per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"responses":{"200":{"description":"List of traces retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSummary_"},"example":{"data":[{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","total_spans":4,"error_count":0,"input":"What is the stock price of NVDA?","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"agent_stock","created_at":"2025-11-19T10:30:00+00:00"}],"meta":{"page":1,"limit":20,"total_pages":5,"total_count":95}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/filter-schema":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Filter Schema","description":"Returns the available filterable fields, their types, valid operators, and enum values.\n\nThe frontend uses this to dynamically build the filter bar UI:\n- Field dropdown populated from `fields[].key`\n- Operator dropdown changes per field type\n- Value input shows autocomplete for enum fields (e.g., status)\n- Logical operators (AND, OR) for combining clauses","operationId":"get_traces_filter_schema","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterSchemaResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/traces/{trace_id}":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace or Span Detail","description":"Retrieve detailed trace information with hierarchical span tree, or a specific span within the trace.\n\n**Without span_id parameter:**\nReturns the full trace with hierarchical span tree:\n- Trace metadata (ID, status, duration, context)\n- Hierarchical tree of all spans\n- Each span includes timing, status, and type-specific metadata\n\n**With span_id parameter:**\nReturns details for a specific span within the trace:\n- Span metadata (ID, name, type, timing)\n- Status and error information\n- Type-specific attributes (model, tokens, tool params, etc.)\n\n**Span Hierarchy (full trace):**\nThe `tree` field contains root spans, each with potential `children`.\nThis recursive structure represents the execution flow:\n```\nAgent.run (root)\n \u251c\u2500 LLM.invoke\n \u251c\u2500 Tool.execute\n \u2502 \u2514\u2500 LLM.invoke (nested)\n \u2514\u2500 LLM.invoke\n```\n\n**Span Types:**\n- `AGENT`: Agent execution with input/output\n- `LLM`: Model invocations with tokens and prompts\n- `TOOL`: Tool calls with parameters and results","operationId":"get_trace","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}},{"name":"span_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Span ID to retrieve specific span","title":"Span Id"},"description":"Optional: Span ID to retrieve specific span"},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Run ID to retrieve trace for","title":"Run Id"},"description":"Optional: Run ID to retrieve trace for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query trace from","title":"Db Id"},"description":"Database ID to query trace from"}],"responses":{"200":{"description":"Trace or span detail retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TraceDetail"},{"$ref":"#/components/schemas/TraceNode"}],"title":"Response Get Trace"},"examples":{"full_trace":{"summary":"Full trace with hierarchy (no span_id)","value":{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","end_time":"2025-11-19T10:30:01.200000+00:00","total_spans":4,"error_count":0,"input":"What is Tesla stock price?","output":"The current price of Tesla (TSLA) is $245.67.","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"stock_agent","created_at":"2025-11-19T10:30:00+00:00","tree":[{"id":"span1","name":"Stock_Price_Agent.run","type":"AGENT","duration":"1.2s","status":"OK","spans":[]}]}},"single_span":{"summary":"Single span detail (with span_id)","value":{"id":"span2","name":"gpt-4o-mini.invoke","type":"LLM","duration":"800ms","status":"OK","metadata":{"model":"gpt-4o-mini","input_tokens":120}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Trace or span not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/trace_session_stats":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Statistics by Session","description":"Retrieve aggregated trace statistics grouped by session ID with pagination.\n\n**Provides insights into:**\n- Total traces per session\n- First and last trace timestamps per session\n- Associated user and agent information\n\n**Filtering Options:**\n- By user ID\n- By agent ID\n\n**Use Cases:**\n- Monitor session-level activity\n- Track conversation flows\n- Identify high-activity sessions\n- Analyze user engagement patterns","operationId":"get_trace_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of sessions per page","default":20,"title":"Limit"},"description":"Number of sessions per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"}],"responses":{"200":{"description":"Trace statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"},"example":{"data":[{"session_id":"37029bc6-1794-4ba8-a629-1efedc53dcad","user_id":"kaustubh@agno.com","agent_id":"hackernews-agent","total_traces":5,"first_trace_at":"2025-11-19T10:15:16+00:00","last_trace_at":"2025-11-19T10:21:30+00:00"}],"meta":{"page":1,"limit":20,"total_pages":3,"total_count":45}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/search":{"post":{"tags":["Traces","Traces"],"summary":"Search Traces with Advanced Filters","description":"Search traces using the FilterExpr DSL for complex, composable queries.\n\n**Group By Mode:**\n- `run` (default): Returns `PaginatedResponse[TraceDetail]` with full span trees\n- `session`: Returns `PaginatedResponse[TraceSessionStats]` with aggregated session stats\n\n**Supported Operators:**\n- Comparison: `EQ`, `NEQ`, `GT`, `GTE`, `LT`, `LTE`\n- Inclusion: `IN`\n- String matching: `CONTAINS` (case-insensitive substring), `STARTSWITH` (prefix)\n- Logical: `AND`, `OR`, `NOT`\n\n**Filterable Fields:**\ntrace_id, name, status, start_time, end_time, duration_ms, run_id, session_id, user_id, agent_id, team_id, workflow_id, created_at\n\n**Example Request Body (runs):**\n```json\n{\n \"filter\": {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n}\n```\n\n**Example Request Body (sessions):**\n```json\n{\n \"filter\": {\"op\": \"CONTAINS\", \"key\": \"agent_id\", \"value\": \"stock\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n}\n```","operationId":"search_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PaginatedResponse_TraceDetail_"},{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"}],"title":"Response Search Traces"}}}},"400":{"description":"Invalid filter expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/all/migrate":{"post":{"tags":["Database"],"summary":"Migrate All Databases","description":"Migrate all database schemas to the given target version. If a target version is not provided, all databases will be migrated to the latest version.","operationId":"migrate_all_databases","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"All databases migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"All databases migrated successfully to version 3.0.0"}}}},"207":{"description":"Some database migrations failed","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"},"failed":{"type":"object","additionalProperties":{"type":"string"},"title":"Failed"}},"type":"object","required":["message","failed"],"title":"PartialMigrationResponse"},"example":{"message":"Migrated 2/3 databases to latest version","failed":{"archive-db":"Migration failed"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/{db_id}/migrate":{"post":{"tags":["Database"],"summary":"Migrate Database","description":"Migrate the given database schema to the given target version. If a target version is not provided, the database will be migrated to the latest version.","operationId":"migrate_database","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"Database migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"Database migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Database not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components":{"get":{"tags":["Components"],"summary":"List Components","description":"Retrieve a paginated list of components with optional filtering by type.","operationId":"list_components","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ComponentType"},{"type":"null"}],"description":"Filter by type: agent, team, workflow","title":"Component Type"},"description":"Filter by type: agent, team, workflow"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ComponentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Component","description":"Create a new component (agent, team, or workflow) with initial config.","operationId":"create_component","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}":{"get":{"tags":["Components"],"summary":"Get Component","description":"Retrieve a component by ID.","operationId":"get_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Components"],"summary":"Update Component","description":"Partially update a component by ID.","operationId":"update_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentUpdate","description":"Component fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Component","description":"Soft-delete a component by ID. Component configs and links remain stored.","operationId":"delete_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs":{"get":{"tags":["Components"],"summary":"List Configs","description":"List all configs for a component.","operationId":"list_configs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"include_config","in":"query","required":false,"schema":{"type":"boolean","description":"Include full config blob","default":true,"title":"Include Config"},"description":"Include full config blob"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComponentConfigResponse"},"title":"Response List Configs"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Config Version","description":"Create a new config version for a component.","operationId":"create_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigCreate","description":"Config data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}":{"patch":{"tags":["Components"],"summary":"Update Draft Config","description":"Update an existing draft config. Cannot update published configs.","operationId":"update_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigUpdate","description":"Config fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Components"],"summary":"Get Config Version","description":"Get a specific config version by number.","operationId":"get_config_version","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Config Version","description":"Delete a specific config version. Agno v2.7.4 rejects the current version. Synchronous SQLite and PostgreSQL storage allow deletion of a published non-current version.","operationId":"delete_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/current":{"get":{"tags":["Components"],"summary":"Get Current Config","description":"Get the current config version for a component.","operationId":"get_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}/set-current":{"post":{"tags":["Components"],"summary":"Set Current Config Version","description":"Set a published config version as current (for rollback).","operationId":"set_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/schedules":{"get":{"tags":["Schedules"],"summary":"List Schedules","operationId":"list_schedules_schedules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"post":{"tags":["Schedules"],"summary":"Create Schedule","operationId":"create_schedule_schedules_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule","operationId":"get_schedule_schedules__schedule_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"patch":{"tags":["Schedules"],"summary":"Update Schedule","operationId":"update_schedule_schedules__schedule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Schedules"],"summary":"Delete Schedule","operationId":"delete_schedule_schedules__schedule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/enable":{"post":{"tags":["Schedules"],"summary":"Enable Schedule","operationId":"enable_schedule_schedules__schedule_id__enable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/disable":{"post":{"tags":["Schedules"],"summary":"Disable Schedule","operationId":"disable_schedule_schedules__schedule_id__disable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/trigger":{"post":{"tags":["Schedules"],"summary":"Trigger Schedule","operationId":"trigger_schedule_schedules__schedule_id__trigger_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Schedule is disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler is not running or storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs":{"get":{"tags":["Schedules"],"summary":"List Schedule Runs","operationId":"list_schedule_runs_schedules__schedule_id__runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleRunResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs/{run_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule Run","operationId":"get_schedule_run_schedules__schedule_id__runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals":{"get":{"tags":["Approvals"],"summary":"List Approvals","operationId":"list_approvals_approvals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","approved","rejected","expired","cancelled"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"source_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"}},{"name":"approval_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["required","audit"],"type":"string"},{"type":"null"}],"title":"Approval Type"}},{"name":"pause_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"schedule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"}},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ApprovalResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approvals could not be listed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/count":{"get":{"tags":["Approvals"],"summary":"Get Approval Count","operationId":"get_approval_count_approvals_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalCountResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval count could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/status":{"get":{"tags":["Approvals"],"summary":"Get Approval Status","operationId":"get_approval_status_approvals__approval_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalStatusResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval status could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}":{"get":{"tags":["Approvals"],"summary":"Get Approval","operationId":"get_approval_approvals__approval_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Approvals"],"summary":"Delete Approval","operationId":"delete_approval_approvals__approval_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval is not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/resolve":{"post":{"tags":["Approvals"],"summary":"Resolve Approval","operationId":"resolve_approval_approvals__approval_id__resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResolve"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Approval has already been resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts":{"post":{"tags":["Service Accounts"],"summary":"Create Service Account","description":"Mint a service account token. The plaintext token is returned exactly once.","operationId":"create_service_account_service_accounts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreateResponse"}}}},"400":{"description":"Requested scopes are invalid, or privileged scopes were not explicitly allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"An active service account with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"get":{"tags":["Service Accounts"],"summary":"List Service Accounts","description":"List service accounts. Returns metadata and display prefixes only - never hashes or plaintext.","operationId":"list_service_accounts_service_accounts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Revoked"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ServiceAccountResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts/{service_account_id}":{"delete":{"tags":["Service Accounts"],"summary":"Revoke Service Account","description":"Revoke an existing service account.\n\nTakes effect immediately on this worker (the local verification cache entry is evicted) and within the cache TTL on other workers.","operationId":"revoke_service_account_service_accounts__service_account_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"service_account_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Service account not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/registry":{"get":{"tags":["Registry"],"summary":"List Registry","description":"List all resources in the registry with optional filtering.","operationId":"list_registry","security":[{"HTTPBearer":[]}],"parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RegistryResourceType"},{"type":"null"}],"description":"Filter by resource type","title":"Resource Type"},"description":"Filter by resource type"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (partial match)","title":"Name"},"description":"Filter by name (partial match)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_RegistryContentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}}},"components":{"schemas":{"A2ACard_APIKeySecurityScheme":{"description":"Defines a security scheme using an API key.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"in":{"$ref":"#/components/schemas/A2ACard_In"},"name":{"title":"Name","type":"string"},"type":{"const":"apiKey","default":"apiKey","title":"Type","type":"string"}},"required":["in","name"],"title":"APIKeySecurityScheme","type":"object"},"A2ACard_AgentCapabilities":{"description":"Defines optional capabilities supported by an agent.","properties":{"extensions":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentExtension"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"pushNotifications":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Pushnotifications"},"stateTransitionHistory":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Statetransitionhistory"},"streaming":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Streaming"}},"title":"AgentCapabilities","type":"object"},"A2ACard_AgentCardSignature":{"description":"AgentCardSignature represents a JWS signature of an AgentCard.\nThis follows the JSON format of an RFC 7515 JSON Web Signature (JWS).","properties":{"header":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Header"},"protected":{"title":"Protected","type":"string"},"signature":{"title":"Signature","type":"string"}},"required":["protected","signature"],"title":"AgentCardSignature","type":"object"},"A2ACard_AgentExtension":{"description":"A declaration of a protocol extension supported by an Agent.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"params":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Params"},"required":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Required"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"AgentExtension","type":"object"},"A2ACard_AgentInterface":{"description":"Declares a combination of a target URL and a transport protocol for interacting with the agent.\nThis allows agents to expose the same functionality over multiple transport mechanisms.","properties":{"transport":{"examples":["JSONRPC","GRPC","HTTP+JSON"],"title":"Transport","type":"string"},"url":{"examples":["https://api.example.com/a2a/v1","https://grpc.example.com/a2a","https://rest.example.com/v1"],"title":"Url","type":"string"}},"required":["transport","url"],"title":"AgentInterface","type":"object"},"A2ACard_AgentProvider":{"description":"Represents the service provider of an agent.","properties":{"organization":{"title":"Organization","type":"string"},"url":{"title":"Url","type":"string"}},"required":["organization","url"],"title":"AgentProvider","type":"object"},"A2ACard_AgentSkill":{"description":"Represents a distinct capability or function that an agent can perform.","properties":{"description":{"title":"Description","type":"string"},"examples":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"examples":[["I need a recipe for bread"]],"title":"Examples"},"id":{"title":"Id","type":"string"},"inputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Inputmodes"},"name":{"title":"Name","type":"string"},"outputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Outputmodes"},"security":{"anyOf":[{"items":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},"type":"array"},{"type":"null"}],"default":null,"examples":[[{"google":["oidc"]}]],"title":"Security"},"tags":{"examples":[["cooking","customer support","billing"]],"items":{"type":"string"},"title":"Tags","type":"array"}},"required":["description","id","name","tags"],"title":"AgentSkill","type":"object"},"A2ACard_AuthorizationCodeOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Authorization Code flow.","properties":{"authorizationUrl":{"title":"Authorizationurl","type":"string"},"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["authorizationUrl","scopes","tokenUrl"],"title":"AuthorizationCodeOAuthFlow","type":"object"},"A2ACard_ClientCredentialsOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Client Credentials flow.","properties":{"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["scopes","tokenUrl"],"title":"ClientCredentialsOAuthFlow","type":"object"},"A2ACard_HTTPAuthSecurityScheme":{"description":"Defines a security scheme using HTTP authentication.","properties":{"bearerFormat":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Bearerformat"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"scheme":{"title":"Scheme","type":"string"},"type":{"const":"http","default":"http","title":"Type","type":"string"}},"required":["scheme"],"title":"HTTPAuthSecurityScheme","type":"object"},"A2ACard_ImplicitOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Implicit flow.","properties":{"authorizationUrl":{"title":"Authorizationurl","type":"string"},"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"}},"required":["authorizationUrl","scopes"],"title":"ImplicitOAuthFlow","type":"object"},"A2ACard_In":{"description":"The location of the API key.","enum":["cookie","header","query"],"title":"In","type":"string"},"A2ACard_MutualTLSSecurityScheme":{"description":"Defines a security scheme using mTLS authentication.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"type":{"const":"mutualTLS","default":"mutualTLS","title":"Type","type":"string"}},"title":"MutualTLSSecurityScheme","type":"object"},"A2ACard_OAuth2SecurityScheme":{"description":"Defines a security scheme using OAuth 2.0.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"flows":{"$ref":"#/components/schemas/A2ACard_OAuthFlows"},"oauth2MetadataUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Oauth2Metadataurl"},"type":{"const":"oauth2","default":"oauth2","title":"Type","type":"string"}},"required":["flows"],"title":"OAuth2SecurityScheme","type":"object"},"A2ACard_OAuthFlows":{"description":"Defines the configuration for the supported OAuth 2.0 flows.","properties":{"authorizationCode":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_AuthorizationCodeOAuthFlow"},{"type":"null"}],"default":null},"clientCredentials":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_ClientCredentialsOAuthFlow"},{"type":"null"}],"default":null},"implicit":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_ImplicitOAuthFlow"},{"type":"null"}],"default":null},"password":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_PasswordOAuthFlow"},{"type":"null"}],"default":null}},"title":"OAuthFlows","type":"object"},"A2ACard_OpenIdConnectSecurityScheme":{"description":"Defines a security scheme using OpenID Connect.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"openIdConnectUrl":{"title":"Openidconnecturl","type":"string"},"type":{"const":"openIdConnect","default":"openIdConnect","title":"Type","type":"string"}},"required":["openIdConnectUrl"],"title":"OpenIdConnectSecurityScheme","type":"object"},"A2ACard_PasswordOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Resource Owner Password flow.","properties":{"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["scopes","tokenUrl"],"title":"PasswordOAuthFlow","type":"object"},"A2ACard_SecurityScheme":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_APIKeySecurityScheme"},{"$ref":"#/components/schemas/A2ACard_HTTPAuthSecurityScheme"},{"$ref":"#/components/schemas/A2ACard_OAuth2SecurityScheme"},{"$ref":"#/components/schemas/A2ACard_OpenIdConnectSecurityScheme"},{"$ref":"#/components/schemas/A2ACard_MutualTLSSecurityScheme"}],"title":"SecurityScheme"},"A2ARequest_DataPart":{"description":"Represents a structured data segment (e.g., JSON) within a message or artifact.","properties":{"data":{"additionalProperties":true,"title":"Data","type":"object"},"kind":{"const":"data","default":"data","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["data"],"title":"DataPart","type":"object"},"A2ARequest_FilePart":{"description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI.","properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_FileWithBytes"},{"$ref":"#/components/schemas/A2ARequest_FileWithUri"}],"title":"File"},"kind":{"const":"file","default":"file","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["file"],"title":"FilePart","type":"object"},"A2ARequest_FileWithBytes":{"description":"Represents a file with its content provided directly as a base64-encoded string.","properties":{"bytes":{"title":"Bytes","type":"string"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"}},"required":["bytes"],"title":"FileWithBytes","type":"object"},"A2ARequest_FileWithUri":{"description":"Represents a file with its content located at a specific URI.","properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"FileWithUri","type":"object"},"A2ARequest_Message":{"description":"Represents a single message in the conversation between a user and an agent.","properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"kind":{"const":"message","default":"message","title":"Kind","type":"string"},"messageId":{"title":"Messageid","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/A2ARequest_Part"},"title":"Parts","type":"array"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/A2ARequest_Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Taskid"},"agentId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Agent ID","description":"Target agent, team, or workflow ID for deprecated dynamic-dispatch endpoints."}},"required":["messageId","parts","role"],"title":"Message","type":"object"},"A2ARequest_MessageSendConfiguration":{"description":"Defines configuration options for a `message/send` or `message/stream` request.","properties":{"acceptedOutputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Acceptedoutputmodes"},"blocking":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Blocking"},"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"pushNotificationConfig":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationConfig"},{"type":"null"}],"default":null}},"title":"MessageSendConfiguration","type":"object"},"A2ARequest_MessageSendParams":{"description":"Defines the parameters for a request to send a message to an agent. This can be used\nto create a new task, continue an existing one, or restart a task.","properties":{"configuration":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_MessageSendConfiguration"},{"type":"null"}],"default":null},"message":{"$ref":"#/components/schemas/A2ARequest_Message"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["message"],"title":"MessageSendParams","type":"object"},"A2ARequest_Part":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_TextPart"},{"$ref":"#/components/schemas/A2ARequest_FilePart"},{"$ref":"#/components/schemas/A2ARequest_DataPart"}],"title":"Part"},"A2ARequest_PushNotificationAuthenticationInfo":{"description":"Defines authentication details for a push notification endpoint.","properties":{"credentials":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Credentials"},"schemes":{"items":{"type":"string"},"title":"Schemes","type":"array"}},"required":["schemes"],"title":"PushNotificationAuthenticationInfo","type":"object"},"A2ARequest_PushNotificationConfig":{"description":"Defines the configuration for setting up push notifications for task updates.","properties":{"authentication":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationAuthenticationInfo"},{"type":"null"}],"default":null},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Id"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Token"},"url":{"title":"Url","type":"string"}},"required":["url"],"title":"PushNotificationConfig","type":"object"},"A2ARequest_Role":{"description":"Identifies the sender of the message. `user` for the client, `agent` for the service.","enum":["agent","user"],"title":"Role","type":"string"},"A2ARequest_TaskIdParams":{"description":"Defines parameters containing a task ID, used for simple task operations.","properties":{"id":{"title":"Id","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"contextId":{"type":"string","title":"Context ID","description":"Agno session ID containing the task."}},"required":["id"],"title":"TaskIdParams","type":"object"},"A2ARequest_TaskQueryParams":{"description":"Defines parameters for querying a task, with an option to limit history length.","properties":{"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"id":{"title":"Id","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"contextId":{"type":"string","title":"Context ID","description":"Agno session ID containing the task."}},"required":["id","contextId"],"title":"TaskQueryParams","type":"object"},"A2ARequest_TextPart":{"description":"Represents a text segment within a message or artifact.","properties":{"kind":{"const":"text","default":"text","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"text":{"title":"Text","type":"string"}},"required":["text"],"title":"TextPart","type":"object"},"ActivityMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"activity","title":"Role","default":"activity"},"activityType":{"type":"string","title":"Activitytype"},"content":{"additionalProperties":true,"type":"object","title":"Content"}},"additionalProperties":true,"type":"object","required":["id","activityType","content"],"title":"ActivityMessage","description":"An activity progress message emitted between chat messages."},"AgentCard":{"description":"The AgentCard is a self-describing manifest for an agent. It provides essential\nmetadata including the agent's identity, capabilities, skills, supported\ncommunication methods, and security requirements.","properties":{"additionalInterfaces":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentInterface"},"type":"array"},{"type":"null"}],"default":null,"title":"Additionalinterfaces"},"capabilities":{"$ref":"#/components/schemas/A2ACard_AgentCapabilities"},"defaultInputModes":{"items":{"type":"string"},"title":"Defaultinputmodes","type":"array"},"defaultOutputModes":{"items":{"type":"string"},"title":"Defaultoutputmodes","type":"array"},"description":{"examples":["Agent that helps users with recipes and cooking."],"title":"Description","type":"string"},"documentationUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Documentationurl"},"iconUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Iconurl"},"name":{"examples":["Recipe Agent"],"title":"Name","type":"string"},"preferredTransport":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"JSONRPC","examples":["JSONRPC","GRPC","HTTP+JSON"],"title":"Preferredtransport"},"protocolVersion":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"0.3.0","title":"Protocolversion"},"provider":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_AgentProvider"},{"type":"null"}],"default":null},"security":{"anyOf":[{"items":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},"type":"array"},{"type":"null"}],"default":null,"examples":[[{"oauth":["read"]},{"api-key":[],"mtls":[]}]],"title":"Security"},"securitySchemes":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/A2ACard_SecurityScheme"},"type":"object"},{"type":"null"}],"default":null,"title":"Securityschemes"},"signatures":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentCardSignature"},"type":"array"},{"type":"null"}],"default":null,"title":"Signatures"},"skills":{"items":{"$ref":"#/components/schemas/A2ACard_AgentSkill"},"title":"Skills","type":"array"},"supportsAuthenticatedExtendedCard":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Supportsauthenticatedextendedcard"},"url":{"examples":["https://api.example.com/a2a/v1"],"title":"Url","type":"string"},"version":{"examples":["1.0.0"],"title":"Version","type":"string"}},"required":["capabilities","defaultInputModes","defaultOutputModes","description","name","skills","url","version"],"title":"AgentCard","type":"object"},"AgentResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"extra_messages":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Messages"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"AgentResponse"},"AgentSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_session_id":{"type":"string","title":"Agent Session Id","description":"Unique agent session identifier"},"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID used in this session"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"agent_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Data","description":"Agent-specific data"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["agent_session_id","session_id","session_name"],"title":"AgentSessionDetailSchema"},"AgentSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the agent"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the agent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the agent"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the agent"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","title":"AgentSummaryResponse"},"ApprovalCountResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"ApprovalCountResponse","description":"Response model for pending approval count."},"ApprovalResolve":{"properties":{"status":{"type":"string","pattern":"^(approved|rejected)$","title":"Status"},"resolved_by":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Resolved By"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"}},"type":"object","required":["status"],"title":"ApprovalResolve","description":"Request body for resolving (approve/reject) an approval."},"ApprovalResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"},"source_type":{"type":"string","title":"Source Type"},"approval_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Type"},"pause_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Args"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"},"schedule_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Run Id"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"},"run_status":{"anyOf":[{"$ref":"#/components/schemas/RunStatus"},{"type":"null"}]}},"type":"object","required":["id","run_id","session_id","status","source_type"],"title":"ApprovalResponse","description":"Response model for a single approval."},"ApprovalStatusResponse":{"properties":{"approval_id":{"type":"string","title":"Approval Id"},"status":{"type":"string","title":"Status"},"run_id":{"type":"string","title":"Run Id"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"}},"type":"object","required":["approval_id","status","run_id"],"title":"ApprovalStatusResponse","description":"Lightweight response model for polling approval status."},"Artifact":{"properties":{"artifactId":{"type":"string","title":"Artifactid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"}},"type":"object","required":["artifactId","parts"],"title":"Artifact","description":"Represents a file, data structure, or other resource generated by an agent during a task."},"AssistantMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"assistant","title":"Role","default":"assistant"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"},"toolCalls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},{"type":"null"}],"title":"Toolcalls"}},"additionalProperties":true,"type":"object","required":["id"],"title":"AssistantMessage","description":"An assistant message."},"AudioInputContent":{"properties":{"type":{"type":"string","const":"audio","title":"Type","default":"audio"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"AudioInputContent","description":"An audio input content fragment."},"BackgroundRunResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the background run."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the background run."},"status":{"type":"string","title":"Status","description":"Initial run status."}},"type":"object","required":["run_id","session_id","status"],"title":"BackgroundRunResponse"},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"BadRequestResponse","example":{"detail":"Bad request","error_code":"BAD_REQUEST"}},"BinaryInputContent":{"properties":{"type":{"type":"string","const":"binary","title":"Type","default":"binary"},"mimeType":{"type":"string","title":"Mimetype"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"additionalProperties":true,"type":"object","required":["mimeType"],"title":"BinaryInputContent","description":"A deprecated binary payload reference in a multimodal user message."},"Body_continue_agent_run":{"properties":{"tools":{"type":"string","title":"Tools","description":"JSON string of tool call results to continue the paused run","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Optional new user-message text to append to the run before resuming. Use for continuing a COMPLETED run with a follow-up, or adding context to a RUNNING/ERROR resume."},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","description":"When true, clone the run with a new ``run_id`` before resuming. The original is untouched; the clone becomes a sibling within the same session, with ``forked_from_run_id`` set.","default":false},"regenerate":{"type":"boolean","title":"Regenerate","description":"Sugar: regenerate the last response of this run. Auto-computes ``continue_from='last_user'`` to land just after the last user message. Pair with ``additional_instructions`` to steer the new output. By default the original response is hidden from history (replaced); pass ``replace_original=false`` to keep both the original and the regenerated response visible side by side.","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original","description":"Only valid with ``regenerate=true``. Controls history visibility of the original response; the original run is always retained in storage. Defaults to true: the original is marked REGENERATED and hidden from history so the new response replaces it. Pass false to keep both the original and regenerated responses visible."},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions","description":"Only valid with ``regenerate=true``: extra guidance appended as a user message before re-generation. Friendly alias for ``input``."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run continue in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false}},"type":"object","title":"Body_continue_agent_run"},"Body_continue_team_run":{"properties":{"requirements":{"type":"string","title":"Requirements","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input"},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","default":false},"regenerate":{"type":"boolean","title":"Regenerate","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original"},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"stream":{"type":"boolean","title":"Stream","default":true},"background":{"type":"boolean","title":"Background","default":false}},"type":"object","title":"Body_continue_team_run"},"Body_continue_workflow_run":{"properties":{"step_requirements":{"type":"string","title":"Step Requirements","description":"JSON string of step requirement objects with resolution status","default":""},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}},"type":"object","title":"Body_continue_workflow_run"},"Body_create_agent_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the agent"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Agent version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic agent construction"}},"type":"object","required":["message"],"title":"Body_create_agent_run"},"Body_create_team_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the team"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"monitor":{"type":"boolean","title":"Monitor","description":"Enable monitoring and logging for this run","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Team version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic team construction"}},"type":"object","required":["message"],"title":"Body_create_team_run"},"Body_create_workflow_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the workflow"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run workflow in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Workflow version to use for this run"},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow construction"}},"type":"object","required":["message"],"title":"Body_create_workflow_run"},"Body_rename_session":{"properties":{"session_name":{"type":"string","title":"Session Name","description":"New name for the session"}},"type":"object","required":["session_name"],"title":"Body_rename_session"},"Body_resume_agent_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_agent_run_stream"},"Body_resume_team_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_team_run_stream"},"Body_resume_workflow_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_workflow_run_stream"},"Body_update_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"Content metadata as JSON string"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"Reader ID. In Agno 2.7.4, local knowledge validates the value, but the content patch does not apply or persist the reader change."}},"type":"object","title":"Body_update_content"},"Body_upload_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated from file/URL if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description for context"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"URL to fetch content from (JSON array or single URL string)"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object for additional content properties"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File","description":"File to upload for processing"},"text_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Content","description":"Raw text content to process"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for content processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply during processing"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size to use for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap to use for processing"}},"type":"object","title":"Body_upload_content"},"Body_upload_remote_content":{"properties":{"config_id":{"type":"string","title":"Config Id","description":"ID of the configured remote content source (from /knowledge/config)"},"path":{"type":"string","title":"Path","description":"Path to file or folder in the remote source"},"source_params":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Params","description":"JSON object of per-request parameters forwarded to the source's factory. Used for provider-specific routing that shouldn't be baked into the config. Currently supported keys: GitHub accepts 'repo' ('owner/repo'), letting one configured GitHub source serve multiple repositories the credentials can access."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap for processing"}},"type":"object","required":["config_id","path"],"title":"Body_upload_remote_content"},"CancelTaskRequest":{"description":"Represents a JSON-RPC request for the `tasks/cancel` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"tasks/cancel","default":"tasks/cancel","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_TaskIdParams"}},"required":["id","params"],"title":"CancelTaskRequest","type":"object"},"CancelTaskSuccessResponse":{"description":"Represents a successful JSON-RPC response for the `tasks/cancel` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"default":null,"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"result":{"$ref":"#/components/schemas/Task"}},"required":["result"],"title":"CancelTaskSuccessResponse","type":"object"},"ChatConfig":{"properties":{"quick_prompts":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Quick Prompts"}},"type":"object","required":["quick_prompts"],"title":"ChatConfig","description":"Configuration for the Chat page of the AgentOS"},"ChunkerSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["key"],"title":"ChunkerSchema"},"ComponentConfigResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"version":{"type":"integer","title":"Version"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"type":"string","title":"Stage"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","version","stage","config","created_at"],"title":"ComponentConfigResponse"},"ComponentCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Display name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id","description":"Unique identifier for the entity. Auto-generated from name if not provided."},"component_type":{"$ref":"#/components/schemas/ComponentType","description":"Type of entity: agent, team, or workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config","description":"Optional configuration"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["name","component_type"],"title":"ComponentCreate"},"ComponentResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"component_type":{"$ref":"#/components/schemas/ComponentType"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","component_type","created_at"],"title":"ComponentResponse"},"ComponentType":{"type":"string","enum":["agent","team","workflow"],"title":"ComponentType"},"ComponentUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"component_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"}},"type":"object","title":"ComponentUpdate"},"ConfigCreate":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config","description":"The configuration data"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Optional version number"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links","description":"Optional links to child components"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["config"],"title":"ConfigCreate"},"ConfigResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the OS instance"},"available_models":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Models","description":"List of available models"},"os_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Database","description":"ID of the database used for the OS instance"},"databases":{"items":{"type":"string"},"type":"array","title":"Databases","description":"List of database IDs used by the components of the OS instance"},"chat":{"anyOf":[{"$ref":"#/components/schemas/ChatConfig"},{"type":"null"}],"description":"Chat configuration"},"manifest":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Manifest"},"type":"object"},{"type":"null"}],"title":"Manifest","description":"Per-entity UI metadata keyed by agent/team/workflow id"},"session":{"anyOf":[{"$ref":"#/components/schemas/SessionConfig"},{"type":"null"}],"description":"Session configuration"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/MetricsConfig"},{"type":"null"}],"description":"Metrics configuration"},"memory":{"anyOf":[{"$ref":"#/components/schemas/MemoryConfig"},{"type":"null"}],"description":"Memory configuration"},"learning":{"anyOf":[{"$ref":"#/components/schemas/LearningConfig"},{"type":"null"}],"description":"Learning configuration"},"knowledge":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeConfig"},{"type":"null"}],"description":"Knowledge configuration"},"evals":{"anyOf":[{"$ref":"#/components/schemas/EvalsConfig"},{"type":"null"}],"description":"Evaluations configuration"},"traces":{"anyOf":[{"$ref":"#/components/schemas/TracesConfig"},{"type":"null"}],"description":"Traces configuration"},"agents":{"items":{"$ref":"#/components/schemas/AgentSummaryResponse"},"type":"array","title":"Agents","description":"List of registered agents"},"teams":{"items":{"$ref":"#/components/schemas/TeamSummaryResponse"},"type":"array","title":"Teams","description":"List of registered teams"},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Workflows","description":"List of registered workflows"},"interfaces":{"items":{"$ref":"#/components/schemas/InterfaceResponse"},"type":"array","title":"Interfaces","description":"List of available interfaces"}},"type":"object","required":["os_id","databases","agents","teams","workflows","interfaces"],"title":"ConfigResponse","description":"Response schema for the general config endpoint"},"ConfigResponseSchema":{"properties":{"readers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ReaderSchema"},"type":"object"},{"type":"null"}],"title":"Readers","description":"Available content readers"},"readersForType":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Readersfortype","description":"Mapping of content types to reader IDs"},"chunkers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ChunkerSchema"},"type":"object"},{"type":"null"}],"title":"Chunkers","description":"Available chunking strategies"},"filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filters","description":"Available filter tags"},"vector_dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/VectorDbSchema"},"type":"array"},{"type":"null"}],"title":"Vector Dbs","description":"Configured vector databases"},"remote_content_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"type":"array"},{"type":"null"}],"title":"Remote Content Sources","description":"Configured remote content sources (S3, GCS, SharePoint, GitHub)"}},"type":"object","title":"ConfigResponseSchema"},"ConfigUpdate":{"properties":{"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","title":"ConfigUpdate"},"ConflictResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ConflictResponse","example":{"detail":"Resource conflict"}},"ContentResponseSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the content"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"MIME type of the content"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"},"linked_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linked To","description":"ID of related content if linked"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata as key-value pairs"},"access_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Access Count","description":"Number of times content has been accessed"},"status":{"anyOf":[{"$ref":"#/components/schemas/ContentStatus"},{"type":"null"}],"description":"Processing status of the content"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message","description":"Status message or error details"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when content was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when content was last updated"}},"type":"object","required":["id"],"title":"ContentResponseSchema"},"ContentStatus":{"type":"string","enum":["processing","completed","failed"],"title":"ContentStatus","description":"Enumeration of possible content processing statuses."},"ContentStatusResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Content ID"},"status":{"$ref":"#/components/schemas/ContentStatus","description":"Current processing status of the content"},"status_message":{"type":"string","title":"Status Message","description":"Status message or error details","default":""}},"type":"object","required":["status"],"title":"ContentStatusResponse","description":"Response model for content status endpoint."},"Context":{"properties":{"description":{"type":"string","title":"Description"},"value":{"type":"string","title":"Value"}},"additionalProperties":true,"type":"object","required":["description","value"],"title":"Context","description":"Additional context for the agent."},"CreateSessionRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session ID (generated if not provided)"},"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Initial session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"}},"type":"object","title":"CreateSessionRequest"},"DataPart":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data"},"kind":{"type":"string","const":"data","title":"Kind","default":"data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["data"],"title":"DataPart","description":"Represents a structured data segment (e.g., JSON) within a message or artifact."},"DatabaseConfig_EvalsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/EvalsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[EvalsDomainConfig]"},"DatabaseConfig_LearningDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/LearningDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[LearningDomainConfig]"},"DatabaseConfig_MemoryDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MemoryDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MemoryDomainConfig]"},"DatabaseConfig_MetricsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MetricsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MetricsDomainConfig]"},"DatabaseConfig_SessionDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/SessionDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[SessionDomainConfig]"},"DatabaseConfig_TracesDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/TracesDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[TracesDomainConfig]"},"DayAggregatedMetrics":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the metrics record"},"agent_runs_count":{"type":"integer","minimum":0.0,"title":"Agent Runs Count","description":"Total number of agent runs"},"agent_sessions_count":{"type":"integer","minimum":0.0,"title":"Agent Sessions Count","description":"Total number of agent sessions"},"team_runs_count":{"type":"integer","minimum":0.0,"title":"Team Runs Count","description":"Total number of team runs"},"team_sessions_count":{"type":"integer","minimum":0.0,"title":"Team Sessions Count","description":"Total number of team sessions"},"workflow_runs_count":{"type":"integer","minimum":0.0,"title":"Workflow Runs Count","description":"Total number of workflow runs"},"workflow_sessions_count":{"type":"integer","minimum":0.0,"title":"Workflow Sessions Count","description":"Total number of workflow sessions"},"users_count":{"type":"integer","minimum":0.0,"title":"Users Count","description":"Total number of unique users"},"token_metrics":{"additionalProperties":true,"type":"object","title":"Token Metrics","description":"Token usage metrics (input, output, cached, etc.)"},"model_metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Model Metrics","description":"Metrics grouped by model (model_id, provider, count)"},"date":{"type":"string","format":"date-time","title":"Date","description":"Date for which these metrics are aggregated"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when metrics were created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when metrics were last updated"}},"type":"object","required":["id","agent_runs_count","agent_sessions_count","team_runs_count","team_sessions_count","workflow_runs_count","workflow_sessions_count","users_count","token_metrics","model_metrics","date","created_at","updated_at"],"title":"DayAggregatedMetrics","description":"Aggregated metrics for a given day"},"DeleteEvalRunsRequest":{"properties":{"eval_run_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Eval Run Ids","description":"List of evaluation run IDs to delete"}},"type":"object","required":["eval_run_ids"],"title":"DeleteEvalRunsRequest"},"DeleteMemoriesRequest":{"properties":{"memory_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Memory Ids","description":"List of memory IDs to delete"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID to filter memories for deletion"}},"type":"object","required":["memory_ids"],"title":"DeleteMemoriesRequest"},"DeleteSessionRequest":{"properties":{"session_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Session Ids","description":"List of session IDs to delete"},"session_types":{"items":{"$ref":"#/components/schemas/SessionType"},"type":"array","minItems":1,"title":"Session Types","description":"Types of sessions to delete"}},"type":"object","required":["session_ids","session_types"],"title":"DeleteSessionRequest"},"DeveloperMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"developer","title":"Role","default":"developer"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"DeveloperMessage","description":"A developer message."},"DocumentInputContent":{"properties":{"type":{"type":"string","const":"document","title":"Type","default":"document"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"DocumentInputContent","description":"A document input content fragment."},"EvalFilterType":{"type":"string","enum":["agent","team","workflow"],"title":"EvalFilterType"},"EvalRunInput":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID to evaluate"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID to evaluate"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID to use for evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation to run (accuracy, performance, or reliability)"},"input":{"type":"string","minLength":1,"title":"Input","description":"Input text/query for the evaluation"},"additional_guidelines":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Guidelines","description":"Additional guidelines for the evaluation"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for the evaluation"},"num_iterations":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Num Iterations","description":"Number of times to run the evaluation","default":1},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for this evaluation run"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output","description":"Expected output for accuracy evaluation"},"criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criteria","description":"Evaluation criteria for agent-as-judge evaluation"},"scoring_strategy":{"anyOf":[{"type":"string","enum":["numeric","binary"]},{"type":"null"}],"title":"Scoring Strategy","description":"Scoring strategy: 'numeric' (1-10 with threshold) or 'binary' (PASS/FAIL)","default":"binary"},"threshold":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Threshold","description":"Score threshold for pass/fail (1-10), only used with numeric scoring","default":7},"warmup_runs":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Warmup Runs","description":"Number of warmup runs before measuring performance","default":0},"expected_tool_calls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expected Tool Calls","description":"Expected tool calls for reliability evaluation"},"allow_additional_tool_calls":{"type":"boolean","title":"Allow Additional Tool Calls","description":"When True, tool calls not in expected_tool_calls are allowed (subset matching)","default":false},"expected_tool_call_arguments":{"anyOf":[{"additionalProperties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Expected Tool Call Arguments","description":"Expected arguments for specific tool calls, e.g. {\"tool_name\": {\"arg_name\": \"expected_value\"}} or {\"tool_name\": [{\"arg_name\": \"val1\"}, {\"arg_name\": \"val2\"}]}"}},"type":"object","required":["eval_type","input"],"title":"EvalRunInput"},"EvalSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the evaluation run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that was evaluated"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID used in evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that was evaluated"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was evaluated"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the evaluation run"},"evaluated_component_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluated Component Name","description":"Name of the evaluated component"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation (accuracy, performance, or reliability)"},"eval_data":{"additionalProperties":true,"type":"object","title":"Eval Data","description":"Evaluation results and metrics"},"eval_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eval Input","description":"Input parameters used for the evaluation"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when evaluation was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when evaluation was last updated"}},"type":"object","required":["id","eval_type","eval_data"],"title":"EvalSchema"},"EvalType":{"type":"string","enum":["accuracy","agent_as_judge","performance","reliability"],"title":"EvalType"},"EvalsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_EvalsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"EvalsConfig","description":"Configuration for the Evals domain of the AgentOS"},"EvalsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"EvalsDomainConfig","description":"Configuration for the Evals domain of the AgentOS"},"FilePart":{"properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/FileWithBytes"},{"$ref":"#/components/schemas/FileWithUri"}],"title":"File"},"kind":{"type":"string","const":"file","title":"Kind","default":"file"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["file"],"title":"FilePart","description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI."},"FileWithBytes":{"properties":{"bytes":{"type":"string","title":"Bytes"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["bytes"],"title":"FileWithBytes","description":"Represents a file with its content provided directly as a base64-encoded string."},"FileWithUri":{"properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uri":{"type":"string","title":"Uri"}},"type":"object","required":["uri"],"title":"FileWithUri","description":"Represents a file with its content located at a specific URI."},"FilterFieldSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Column/field name used in filter expressions"},"label":{"type":"string","title":"Label","description":"Human-readable display label for the UI"},"type":{"type":"string","title":"Type","description":"Field data type: string, number, datetime, enum"},"operators":{"items":{"type":"string"},"type":"array","title":"Operators","description":"List of valid filter operators for this field"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values","description":"Allowed enum values (for autocomplete/dropdown)"}},"type":"object","required":["key","label","type","operators"],"title":"FilterFieldSchema","description":"Schema describing a single filterable field for the frontend filter bar."},"FilterSchemaResponse":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FilterFieldSchema"},"type":"array","title":"Fields","description":"Available filterable fields"},"logical_operators":{"items":{"type":"string"},"type":"array","title":"Logical Operators","description":"Logical operators for combining filter clauses","default":["AND","OR"]}},"type":"object","required":["fields"],"title":"FilterSchemaResponse","description":"Response for the filter schema endpoint. Tells the FE what fields, operators, and values are available."},"ForbiddenResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ForbiddenResponse","example":{"detail":"Insufficient permissions"}},"FunctionCall":{"properties":{"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"additionalProperties":true,"type":"object","required":["name","arguments"],"title":"FunctionCall","description":"Name and arguments of a function call."},"GetTaskRequest":{"description":"Represents a JSON-RPC request for the `tasks/get` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"tasks/get","default":"tasks/get","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_TaskQueryParams"}},"required":["id","params"],"title":"GetTaskRequest","type":"object"},"GetTaskSuccessResponse":{"description":"Represents a successful JSON-RPC response for the `tasks/get` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"default":null,"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"result":{"$ref":"#/components/schemas/Task"}},"required":["result"],"title":"GetTaskSuccessResponse","type":"object"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Health status of the service"},"instantiated_at":{"type":"string","format":"date-time","title":"Instantiated At","description":"Timestamp when service was instantiated"}},"type":"object","required":["status","instantiated_at"],"title":"HealthResponse","example":{"instantiated_at":"2025-06-10T12:00:00Z","status":"ok"}},"ImageInputContent":{"properties":{"type":{"type":"string","const":"image","title":"Type","default":"image"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"ImageInputContent","description":"An image input content fragment."},"InfoResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"agno_version":{"type":"string","title":"Agno Version","description":"Version of the agno framework"},"agent_count":{"type":"integer","title":"Agent Count","description":"Number of agents registered in the OS","default":0},"team_count":{"type":"integer","title":"Team Count","description":"Number of teams registered in the OS","default":0},"workflow_count":{"type":"integer","title":"Workflow Count","description":"Number of workflows registered in the OS","default":0},"mcp":{"$ref":"#/components/schemas/McpInfo","description":"MCP server availability for this OS instance"},"auth_mode":{"type":"string","enum":["none","security_key","jwt"],"title":"Auth Mode","description":"Authentication mode enforced on the REST/WS plane of this OS instance. MCP OAuth, when enabled, is described separately under `mcp.oauth`.","default":"none"}},"type":"object","required":["os_id","agno_version"],"title":"InfoResponse","description":"Response schema for the /info endpoint returning lightweight OS metadata."},"InputContentDataSource":{"properties":{"type":{"type":"string","const":"data","title":"Type","default":"data"},"value":{"type":"string","title":"Value"},"mimeType":{"type":"string","title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value","mimeType"],"title":"InputContentDataSource","description":"Inline base64-encoded source."},"InputContentUrlSource":{"properties":{"type":{"type":"string","const":"url","title":"Type","default":"url"},"value":{"type":"string","title":"Value"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value"],"title":"InputContentUrlSource","description":"URL-referenced source."},"InterfaceResponse":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the interface"},"version":{"type":"string","title":"Version","description":"Version of the interface"},"route":{"type":"string","title":"Route","description":"API route path"}},"type":"object","required":["type","version","route"],"title":"InterfaceResponse"},"InternalServerErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"InternalServerErrorResponse","example":{"detail":"Internal server error","error_code":"INTERNAL_SERVER_ERROR"}},"KnowledgeConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeDatabaseConfig"},"type":"array"},{"type":"null"}],"title":"Dbs"},"knowledge_instances":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeInstanceConfig"},"type":"array"},{"type":"null"}],"title":"Knowledge Instances"}},"type":"object","title":"KnowledgeConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeDatabaseConfig":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeDomainConfig"},{"type":"null"}]},"tables":{"items":{"type":"string"},"type":"array","title":"Tables","default":[]}},"type":"object","required":["db_id"],"title":"KnowledgeDatabaseConfig","description":"Configuration for a knowledge database with its tables"},"KnowledgeDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"KnowledgeDomainConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeInstanceConfig":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"db_id":{"type":"string","title":"Db Id"},"table":{"type":"string","title":"Table"}},"type":"object","required":["id","name","db_id","table"],"title":"KnowledgeInstanceConfig","description":"Configuration for a single knowledge instance"},"LearningConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_LearningDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"LearningConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningCreate":{"properties":{"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"content":{"additionalProperties":true,"type":"object","title":"Content","description":"The learning content payload"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID. When the request is authenticated, must match the JWT subject or be omitted/null (which creates a global / non-user-scoped record)."},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"}},"type":"object","required":["learning_type","content"],"title":"LearningCreate","description":"Request body for creating a learning record."},"LearningDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"LearningDomainConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningResponse":{"properties":{"learning_id":{"type":"string","title":"Learning Id","description":"Unique identifier for the learning record"},"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID (for entity-specific learnings)"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type (e.g. 'person', 'company')"},"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"The learning content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Creation timestamp (Unix epoch seconds)"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp (Unix epoch seconds)"}},"type":"object","required":["learning_id","learning_type"],"title":"LearningResponse","description":"A single learning record as returned by the API."},"LearningUpdate":{"properties":{"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Replacement content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Replacement metadata"}},"type":"object","title":"LearningUpdate","description":"Request body for updating a learning record. Identity fields are immutable."},"LearningUserStats":{"properties":{"user_id":{"type":"string","title":"User Id","description":"The user ID"},"last_learning_updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Learning Updated At","description":"Most recent learning update for this user (Unix epoch seconds)"}},"type":"object","required":["user_id"],"title":"LearningUserStats","description":"A user that owns learning records, with their most recent activity.\n\nUsed as a lightweight index for the per-user view: list users here, then drill into a\nsingle user's records via ``GET /learnings?user_id=...``. No per-user count is returned\n-- the user-scoped stores (``user_profile``, ``user_memory``) keep a single record per\nuser, so a record count would always be 1; the actual memory count lives in that\nrecord's ``content``."},"Manifest":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"},"quick_prompts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quick Prompts"}},"type":"object","title":"Manifest","description":"OS-level UI metadata for an agent/team/workflow.\n\nFields here are AgentOS UI metadata only. ``description`` is unrelated to\n``Agent.description`` / ``Team.description`` / ``Workflow.description``,\nwhich are sent to the model.\n\nRendering surfaces:\n- ``description``, ``labels``: home/landing card\n- ``quick_prompts``: chat page"},"McpInfo":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the MCP server is enabled on this OS instance","default":false},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Path where the MCP server is mounted, null when disabled"},"oauth":{"anyOf":[{"$ref":"#/components/schemas/McpOAuthInfo"},{"type":"null"}],"description":"OAuth discovery details when the MCP endpoint is OAuth-protected, null otherwise"}},"type":"object","title":"McpInfo","description":"MCP server availability for the /info endpoint."},"McpOAuthInfo":{"properties":{"authorization_servers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorization Servers","description":"Issuer URL(s) of the authorization server(s) protecting the MCP endpoint"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource","description":"RFC 9728 resource URL advertised for the MCP endpoint"}},"type":"object","title":"McpOAuthInfo","description":"OAuth discovery details for an MCP endpoint protected by ``AgentOS(mcp_auth=...)``."},"MemoryConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MemoryDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MemoryConfig","description":"Configuration for the Memory domain of the AgentOS"},"MemoryDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MemoryDomainConfig","description":"Configuration for the Memory domain of the AgentOS"},"Message":{"properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"kind":{"type":"string","const":"message","title":"Kind","default":"message"},"messageId":{"type":"string","title":"Messageid"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taskid"}},"type":"object","required":["messageId","parts","role"],"title":"Message","description":"Represents a single message in the conversation between a user and an agent."},"Meta":{"properties":{"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of results per page","default":20},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number","default":1}},"type":"object","title":"Meta","description":"Inline metadata schema for pagination."},"MetricsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MetricsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MetricsConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MetricsDomainConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsResponse":{"properties":{"metrics":{"items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"type":"array","title":"Metrics","description":"List of daily aggregated metrics"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp of the most recent metrics update"}},"type":"object","required":["metrics"],"title":"MetricsResponse"},"Model":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"Model"},"ModelResponse":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the model"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"ModelResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"NotFoundResponse","example":{"detail":"Not found","error_code":"NOT_FOUND"}},"NotImplementedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"NotImplementedResponse","example":{"detail":"Operation not supported for this resource type"}},"OptimizeMemoriesRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID to optimize memories for"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model in `provider:model_id` format. Current examples include `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, and `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`."},"apply":{"type":"boolean","title":"Apply","description":"If True, apply optimization changes to database. If False, return preview only without saving.","default":true}},"type":"object","required":["user_id"],"title":"OptimizeMemoriesRequest","description":"Schema for memory optimization request"},"OptimizeMemoriesResponse":{"properties":{"memories":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Memories","description":"List of optimized memory objects"},"memories_before":{"type":"integer","minimum":0.0,"title":"Memories Before","description":"Number of memories before optimization"},"memories_after":{"type":"integer","minimum":0.0,"title":"Memories After","description":"Number of memories after optimization"},"tokens_before":{"type":"integer","minimum":0.0,"title":"Tokens Before","description":"Token count before optimization"},"tokens_after":{"type":"integer","minimum":0.0,"title":"Tokens After","description":"Token count after optimization"},"tokens_saved":{"type":"integer","minimum":0.0,"title":"Tokens Saved","description":"Number of tokens saved through optimization"},"reduction_percentage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Reduction Percentage","description":"Percentage of token reduction achieved"}},"type":"object","required":["memories","memories_before","memories_after","tokens_before","tokens_after","tokens_saved","reduction_percentage"],"title":"OptimizeMemoriesResponse","description":"Schema for memory optimization response"},"PaginatedResponse_ApprovalResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ApprovalResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ApprovalResponse]"},"PaginatedResponse_ComponentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ComponentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ComponentResponse]"},"PaginatedResponse_ContentResponseSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentResponseSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ContentResponseSchema]"},"PaginatedResponse_EvalSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EvalSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[EvalSchema]"},"PaginatedResponse_LearningResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningResponse]"},"PaginatedResponse_LearningUserStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningUserStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningUserStats]"},"PaginatedResponse_RegistryContentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RegistryContentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[RegistryContentResponse]"},"PaginatedResponse_ScheduleResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleResponse]"},"PaginatedResponse_ScheduleRunResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleRunResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleRunResponse]"},"PaginatedResponse_ServiceAccountResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ServiceAccountResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ServiceAccountResponse]"},"PaginatedResponse_SessionSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SessionSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[SessionSchema]"},"PaginatedResponse_TraceDetail_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceDetail"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceDetail]"},"PaginatedResponse_TraceSessionStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSessionStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSessionStats]"},"PaginatedResponse_TraceSummary_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSummary"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSummary]"},"PaginatedResponse_UserMemorySchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserMemorySchema]"},"PaginatedResponse_UserStatsSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserStatsSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserStatsSchema]"},"PaginatedResponse_VectorSearchResult_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VectorSearchResult"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[VectorSearchResult]"},"PaginationInfo":{"properties":{"page":{"type":"integer","minimum":0.0,"title":"Page","description":"Current page number (0-indexed)","default":0},"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of items per page","default":20},"total_pages":{"type":"integer","minimum":0.0,"title":"Total Pages","description":"Total number of pages","default":0},"total_count":{"type":"integer","minimum":0.0,"title":"Total Count","description":"Total count of items","default":0},"search_time_ms":{"type":"number","minimum":0.0,"title":"Search Time Ms","description":"Search execution time in milliseconds","default":0}},"type":"object","title":"PaginationInfo"},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/DataPart"}],"title":"Part"},"ReaderSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the reader"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the reader"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the reader's capabilities"},"chunkers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chunkers","description":"List of supported chunking strategies"}},"type":"object","required":["id"],"title":"ReaderSchema"},"ReasoningMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"reasoning","title":"Role","default":"reasoning"},"content":{"type":"string","title":"Content"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"ReasoningMessage","description":"A reasoning message containing the agent's internal reasoning process."},"RegistryContentResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/RegistryResourceType"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name","type"],"title":"RegistryContentResponse"},"RegistryResourceType":{"type":"string","enum":["tool","model","db","vector_db","schema","function","agent","team","knowledge","memory_manager","session_summary_manager"],"title":"RegistryResourceType","description":"Types of resources that can be stored in a registry."},"RemoteContentSourceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content source"},"name":{"type":"string","title":"Name","description":"Display name for the content source"},"type":{"type":"string","title":"Type","description":"Type of content source (s3, gcs, sharepoint, github, azureblob)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Default path prefix for this source"}},"type":"object","required":["id","name","type"],"title":"RemoteContentSourceSchema","description":"Schema for remote content source configuration."},"ResumeEntry":{"properties":{"interruptId":{"type":"string","title":"Interruptid"},"status":{"type":"string","enum":["resolved","cancelled"],"title":"Status"},"payload":{"anyOf":[{},{"type":"null"}],"title":"Payload"}},"additionalProperties":true,"type":"object","required":["interruptId","status"],"title":"ResumeEntry","description":"A per-interrupt response in the resume array of a RunAgentInput."},"Role":{"type":"string","enum":["agent","user"],"title":"Role","description":"Identifies the sender of the message. `user` for the client, `agent` for the service."},"RunAgentInput":{"properties":{"threadId":{"type":"string","title":"Threadid"},"runId":{"type":"string","title":"Runid"},"parentRunId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentrunid"},"state":{"title":"State"},"messages":{"items":{"oneOf":[{"$ref":"#/components/schemas/DeveloperMessage"},{"$ref":"#/components/schemas/SystemMessage"},{"$ref":"#/components/schemas/AssistantMessage"},{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/ToolMessage"},{"$ref":"#/components/schemas/ActivityMessage"},{"$ref":"#/components/schemas/ReasoningMessage"}],"discriminator":{"propertyName":"role","mapping":{"activity":"#/components/schemas/ActivityMessage","assistant":"#/components/schemas/AssistantMessage","developer":"#/components/schemas/DeveloperMessage","reasoning":"#/components/schemas/ReasoningMessage","system":"#/components/schemas/SystemMessage","tool":"#/components/schemas/ToolMessage","user":"#/components/schemas/UserMessage"}}},"type":"array","title":"Messages"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","title":"Tools"},"context":{"items":{"$ref":"#/components/schemas/Context"},"type":"array","title":"Context"},"forwardedProps":{"title":"Forwardedprops"},"resume":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResumeEntry"},"type":"array"},{"type":"null"}],"title":"Resume"}},"additionalProperties":true,"type":"object","required":["threadId","runId","state","messages","tools","context","forwardedProps"],"title":"RunAgentInput","description":"Input for running an agent."},"RunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that executed this run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"RunSchema"},"RunStatus":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","PAUSED","CANCELLED","ERROR","REGENERATED"],"title":"RunStatus","description":"State of the main run response"},"ScheduleCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"cron_expr":{"type":"string","maxLength":128,"title":"Cron Expr"},"endpoint":{"type":"string","maxLength":512,"title":"Endpoint"},"method":{"type":"string","maxLength":10,"title":"Method","default":"POST"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"type":"string","maxLength":64,"title":"Timezone","default":"UTC"},"timeout_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Timeout Seconds","default":3600},"max_retries":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Max Retries","default":0},"retry_delay_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Retry Delay Seconds","default":60}},"type":"object","required":["name","cron_expr","endpoint"],"title":"ScheduleCreate"},"ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"cron_expr":{"type":"string","title":"Cron Expr"},"timezone":{"type":"string","title":"Timezone"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"max_retries":{"type":"integer","title":"Max Retries"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","method","endpoint","cron_expr","timezone","timeout_seconds","max_retries","retry_delay_seconds","enabled"],"title":"ScheduleResponse"},"ScheduleRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"schedule_id":{"type":"string","title":"Schedule Id"},"attempt":{"type":"integer","title":"Attempt"},"triggered_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triggered At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"status":{"type":"string","title":"Status"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","schedule_id","attempt","status"],"title":"ScheduleRunResponse"},"ScheduleStateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","enabled"],"title":"ScheduleStateResponse","description":"Trimmed response for state-changing operations (enable/disable)."},"ScheduleUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"cron_expr":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Cron Expr"},"endpoint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Endpoint"},"method":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Method"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Timezone"},"timeout_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":1.0},{"type":"null"}],"title":"Timeout Seconds"},"max_retries":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Max Retries"},"retry_delay_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":1.0},{"type":"null"}],"title":"Retry Delay Seconds"}},"type":"object","title":"ScheduleUpdate"},"ScopeItem":{"properties":{"scope":{"type":"string","title":"Scope","description":"Scope string, e.g. 'agents:*:run'"},"effect":{"type":"string","enum":["allow","deny"],"title":"Effect","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["scope"],"title":"ScopeItem","description":"Write shape for one scope grant \u2014 the canonical RBAC payload for every scope-bearing API.\n\nEndpoints that take scopes accept these objects only (a bare string is a validation\nerror). ``effect`` is constrained here so every consumer rejects typos at the model\nlayer; whether ``deny`` is *semantically* legal stays per-endpoint (roles support\ndeny rules, service-account tokens are pure grants and reject it)."},"ScopeSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Scope id (always null here; kept for shape parity with the cloud RBAC API, which addresses scopes individually)"},"raw":{"type":"string","title":"Raw","description":"Original scope string, e.g. 'agents:*:run'"},"namespace":{"type":"string","title":"Namespace","description":"Resource namespace, e.g. 'agents'"},"sub_namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Namespace","description":"Specific resource id or wildcard '*'"},"permission":{"type":"string","title":"Permission","description":"Action, e.g. 'read' / 'run' / 'write'"},"value":{"type":"string","title":"Value","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["raw","namespace","permission"],"title":"ScopeSchema","description":"Read shape for one scope \u2014 the parsed RBAC payload shared by every scope-bearing API.\n\nMirrors the cloud RBAC scope shape ({raw, namespace, sub_namespace, permission, value})\nso a frontend renders scopes from any AgentOS API with one integration."},"SendMessageRequest":{"description":"Represents a JSON-RPC request for the `message/send` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/send","default":"message/send","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendMessageRequest","type":"object"},"SendMessageSuccessResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id"},"jsonrpc":{"type":"string","const":"2.0","title":"Jsonrpc","default":"2.0"},"result":{"anyOf":[{"$ref":"#/components/schemas/Task"},{"$ref":"#/components/schemas/Message"}],"title":"Result"}},"type":"object","required":["result"],"title":"SendMessageSuccessResponse","description":"Represents a successful JSON-RPC response for the `message/send` method."},"SendStreamingMessageRequest":{"description":"Represents a JSON-RPC request for the `message/stream` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/stream","default":"message/stream","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendStreamingMessageRequest","type":"object"},"ServiceAccountCreate":{"properties":{"name":{"type":"string","maxLength":63,"title":"Name","description":"Machine identity name (lowercase slug), e.g. 'claude-code' or 'github-actions'"},"scopes":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScopeItem"},"type":"array"},{"type":"null"}],"title":"Scopes","description":"Scopes granted to the token, as {scope, effect} objects (the shared RBAC write shape; token scopes are grants, so only effect='allow' is accepted). Defaults to run and read scopes: agents:run, teams:run, workflows:run, sessions:read"},"expires_in_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Expires In Days","description":"Days until the token expires (default: 90)","default":90},"never_expires":{"type":"boolean","title":"Never Expires","description":"Mint a non-expiring token. Must be set explicitly; overrides expires_in_days.","default":false},"allow_privileged_scopes":{"type":"boolean","title":"Allow Privileged Scopes","description":"Required to grant privileged scopes: any write or delete action, the admin scope, or any service_accounts scope. Privileged tokens must be deliberate, never accidental.","default":false}},"type":"object","required":["name"],"title":"ServiceAccountCreate"},"ServiceAccountCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"token":{"type":"string","title":"Token","description":"The plaintext token. Shown exactly once - store it securely now."}},"type":"object","required":["id","name","principal","token_prefix","created_at","token"],"title":"ServiceAccountCreateResponse","description":"Returned once, at creation. The token is never retrievable again."},"ServiceAccountResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","name","principal","token_prefix","created_at"],"title":"ServiceAccountResponse","description":"Service account metadata. Never includes the token hash or plaintext."},"ServiceUnavailableResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ServiceUnavailableResponse","example":{"detail":"Feature not supported by the configured service"}},"SessionConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_SessionDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"SessionConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"SessionDomainConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier for the session"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state data of the session"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when session was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when session was last updated"},"session_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type","description":"Type of session: agent, team, or workflow"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["session_id","session_name"],"title":"SessionSchema"},"SessionType":{"type":"string","enum":["agent","team","workflow"],"title":"SessionType"},"SlackChallengeResponse":{"properties":{"challenge":{"type":"string","title":"Challenge","description":"Challenge string to echo back to Slack"}},"type":"object","required":["challenge"],"title":"SlackChallengeResponse"},"SlackEventResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"}},"type":"object","title":"SlackEventResponse"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"SourceFileSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Full path/key of the file"},"name":{"type":"string","title":"Name","description":"Display name (filename)"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"File size in bytes"},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified","description":"ISO 8601 timestamp of last modification"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"MIME type of the file"}},"type":"object","required":["key","name"],"title":"SourceFileSchema","description":"Schema for a file in a content source."},"SourceFilesResponseSchema":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"ID of the content source"},"source_name":{"type":"string","title":"Source Name","description":"Name of the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Prefix filter that was applied"},"folders":{"items":{"$ref":"#/components/schemas/SourceFolderSchema"},"type":"array","title":"Folders","description":"Subfolders at this level"},"files":{"items":{"$ref":"#/components/schemas/SourceFileSchema"},"type":"array","title":"Files","description":"List of files at this level"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["source_id","source_name","meta"],"title":"SourceFilesResponseSchema","description":"Response schema for listing files in a content source."},"SourceFolderSchema":{"properties":{"prefix":{"type":"string","title":"Prefix","description":"Full prefix to use for navigating into this folder"},"name":{"type":"string","title":"Name","description":"Display name of the folder"},"is_empty":{"type":"boolean","title":"Is Empty","description":"Whether the folder contains any files","default":false}},"type":"object","required":["prefix","name"],"title":"SourceFolderSchema","description":"Schema for a folder in a content source."},"SystemMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"system","title":"Role","default":"system"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"SystemMessage","description":"A system message."},"Task":{"properties":{"artifacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Artifact"},"type":"array"},{"type":"null"}],"title":"Artifacts"},"contextId":{"type":"string","title":"Contextid"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"History"},"id":{"type":"string","title":"Id"},"kind":{"type":"string","const":"task","title":"Kind","default":"task"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"status":{"$ref":"#/components/schemas/TaskStatus"}},"type":"object","required":["contextId","id","status"],"title":"Task","description":"Represents a single, stateful operation or conversation between a client and an agent."},"TaskState":{"type":"string","enum":["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"],"title":"TaskState","description":"Defines the lifecycle states of a Task."},"TaskStatus":{"properties":{"message":{"anyOf":[{"$ref":"#/components/schemas/Message"},{"type":"null"}]},"state":{"$ref":"#/components/schemas/TaskState"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp","examples":["2023-10-27T10:00:00Z"]}},"type":"object","required":["state"],"title":"TaskStatus","description":"Represents the status of a task at a specific point in time."},"TeamResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"members":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"$ref":"#/components/schemas/TeamResponse"}]},"type":"array"},{"type":"null"}],"title":"Members"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"TeamResponse"},"TeamRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the team run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that executed this run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the team run"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this team run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this team run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this team run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this team run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"TeamRunSchema"},"TeamSessionDetailSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID used in this session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of team interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"team_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Team Data","description":"Team-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"}},"type":"object","required":["session_id","session_name"],"title":"TeamSessionDetailSchema"},"TeamSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the team"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the team"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the team"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Team execution mode (coordinate, route, broadcast, tasks)"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the team leader"}},"type":"object","title":"TeamSummaryResponse"},"TelegramStatusResponse":{"properties":{"status":{"type":"string","title":"Status","default":"available"}},"type":"object","title":"TelegramStatusResponse"},"TelegramWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status"}},"type":"object","required":["status"],"title":"TelegramWebhookResponse"},"TextInputContent":{"properties":{"type":{"type":"string","const":"text","title":"Type","default":"text"},"text":{"type":"string","title":"Text"}},"additionalProperties":true,"type":"object","required":["text"],"title":"TextInputContent","description":"A text fragment in a multimodal user message."},"TextPart":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"TextPart","description":"Represents a text segment within a message or artifact."},"Tool":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{},{"type":"null"}],"title":"Parameters"}},"additionalProperties":true,"type":"object","required":["name","description"],"title":"Tool","description":"A tool definition."},"ToolCall":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/FunctionCall"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","function"],"title":"ToolCall","description":"A tool call, modelled after OpenAI tool calls."},"ToolMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"tool","title":"Role","default":"tool"},"content":{"type":"string","title":"Content"},"toolCallId":{"type":"string","title":"Toolcallid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content","toolCallId"],"title":"ToolMessage","description":"A tool result message."},"TraceDetail":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent/workflow"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the agent/workflow"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"},"tree":{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array","title":"Tree","description":"Hierarchical tree of spans (root nodes)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at","tree"],"title":"TraceDetail","description":"Detailed trace information with hierarchical span tree"},"TraceNode":{"properties":{"id":{"type":"string","title":"Id","description":"Span ID"},"name":{"type":"string","title":"Name","description":"Span name (e.g., 'agent.run', 'llm.invoke')"},"type":{"type":"string","title":"Type","description":"Span kind (AGENT, TEAM, WORKFLOW, LLM, TOOL)"},"duration":{"type":"string","title":"Duration","description":"Human-readable duration (e.g., '123ms', '1.5s')"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"End time (Pydantic auto-serializes to ISO 8601)"},"status":{"type":"string","title":"Status","description":"Status code (OK, ERROR)"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the span"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the span"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"spans":{"anyOf":[{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array"},{"type":"null"}],"title":"Spans","description":"Child spans in the trace hierarchy"},"step_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Type","description":"Workflow step type (Step, Condition, function, Agent, Team)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional span attributes and data"},"extra_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Data","description":"Flexible field for custom attributes and additional data"}},"type":"object","required":["id","name","type","duration","start_time","end_time","status"],"title":"TraceNode","description":"Recursive node structure for rendering trace hierarchy in the frontend"},"TraceSearchGroupBy":{"type":"string","enum":["run","session"],"title":"TraceSearchGroupBy","description":"Grouping options for trace search results."},"TraceSearchRequest":{"properties":{"filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter","description":"FilterExpr DSL as JSON dict. Supports operators: EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH, AND, OR, NOT."},"group_by":{"$ref":"#/components/schemas/TraceSearchGroupBy","description":"Grouping mode: 'run' returns individual TraceDetail, 'session' returns aggregated TraceSessionStats.","default":"run"},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number (1-indexed)","default":1},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"Number of traces per page (max 100)","default":20}},"type":"object","title":"TraceSearchRequest","description":"Request body for POST /traces/search with advanced filtering.\n\nThe filter field accepts a FilterExpr DSL dict supporting composable queries\nwith AND/OR/NOT logic and operators like EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH.\n\nExample for run grouping (default):\n {\n \"filter\": {\n \"op\": \"AND\",\n \"conditions\": [\n {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n {\"op\": \"CONTAINS\", \"key\": \"user_id\", \"value\": \"admin\"}\n ]\n },\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n }\n\nExample for session grouping:\n {\n \"filter\": {\"op\": \"EQ\", \"key\": \"agent_id\", \"value\": \"my-agent\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n }"},"TraceSessionStats":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID(s) used in the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID associated with the session"},"total_traces":{"type":"integer","title":"Total Traces","description":"Total number of traces in this session"},"first_trace_at":{"type":"string","format":"date-time","title":"First Trace At","description":"Time of first trace (Pydantic auto-serializes to ISO 8601)"},"last_trace_at":{"type":"string","format":"date-time","title":"Last Trace At","description":"Time of last trace (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["session_id","total_traces","first_trace_at","last_trace_at"],"title":"TraceSessionStats","description":"Aggregated trace statistics grouped by session"},"TraceSummary":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR, UNSET)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at"],"title":"TraceSummary","description":"Summary information for trace list view"},"TracesConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_TracesDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"TracesConfig","description":"Configuration for the Traces domain of the AgentOS"},"TracesDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"TracesDomainConfig","description":"Configuration for the Traces domain of the AgentOS"},"UnauthenticatedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"UnauthenticatedResponse","example":{"detail":"Unauthenticated access","error_code":"UNAUTHENTICATED"}},"UpdateEvalRunRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"New name for the evaluation run"}},"type":"object","required":["name"],"title":"UpdateEvalRunRequest"},"UpdateSessionRequest":{"properties":{"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Updated session name"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Updated session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Updated metadata"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary","description":"Session summary"}},"type":"object","title":"UpdateSessionRequest"},"UserMemoryCreateSchema":{"properties":{"memory":{"type":"string","maxLength":5000,"minLength":1,"title":"Memory","description":"Memory content text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags to categorize the memory"}},"type":"object","required":["memory"],"title":"UserMemoryCreateSchema","description":"Define the payload expected for creating a new user memory"},"UserMemorySchema":{"properties":{"memory_id":{"type":"string","title":"Memory Id","description":"Unique identifier for the memory"},"memory":{"type":"string","title":"Memory","description":"Memory content text"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags associated with the memory"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID associated with this memory"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with this memory"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when memory was last updated"}},"type":"object","required":["memory_id","memory"],"title":"UserMemorySchema"},"UserMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"user","title":"Role","default":"user"},"content":{"anyOf":[{"type":"string"},{"items":{"oneOf":[{"$ref":"#/components/schemas/TextInputContent"},{"$ref":"#/components/schemas/ImageInputContent"},{"$ref":"#/components/schemas/AudioInputContent"},{"$ref":"#/components/schemas/VideoInputContent"},{"$ref":"#/components/schemas/DocumentInputContent"},{"$ref":"#/components/schemas/BinaryInputContent"}],"discriminator":{"propertyName":"type","mapping":{"audio":"#/components/schemas/AudioInputContent","binary":"#/components/schemas/BinaryInputContent","document":"#/components/schemas/DocumentInputContent","image":"#/components/schemas/ImageInputContent","text":"#/components/schemas/TextInputContent","video":"#/components/schemas/VideoInputContent"}}},"type":"array"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"UserMessage","description":"A user message supporting text or multimodal content."},"UserStatsSchema":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"total_memories":{"type":"integer","minimum":0.0,"title":"Total Memories","description":"Total number of memories for this user"},"last_memory_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Memory Updated At","description":"Timestamp of the most recent memory update"}},"type":"object","required":["user_id","total_memories"],"title":"UserStatsSchema","description":"Schema for user memory statistics"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"ValidationErrorResponse","example":{"detail":"Validation error","error_code":"VALIDATION_ERROR"}},"VectorDbSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the vector database"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the vector database"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the vector database"},"search_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Search Types","description":"List of supported search types (vector, keyword, hybrid)"}},"type":"object","required":["id"],"title":"VectorDbSchema"},"VectorSearchRequestSchema":{"properties":{"query":{"type":"string","title":"Query","description":"The search query text"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database ID to search in"},"knowledge_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledge Id","description":"Knowledge base ID to search in"},"vector_db_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vector Db Ids","description":"List of vector database IDs to search in"},"search_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Type","description":"The type of search to perform (vector, keyword, hybrid)"},"max_results":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Max Results","description":"The maximum number of results to return"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Filters to apply to the search results"},"meta":{"anyOf":[{"$ref":"#/components/schemas/Meta"},{"type":"null"}],"description":"Pagination metadata. Limit and page number to return a subset of results."}},"type":"object","required":["query"],"title":"VectorSearchRequestSchema","description":"Schema for vector search request."},"VectorSearchResult":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the search result document"},"content":{"type":"string","title":"Content","description":"Content text of the document"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the document"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Metadata associated with the document"},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"Usage statistics (e.g., token counts)"},"reranking_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reranking Score","description":"Reranking score for relevance"},"content_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Id","description":"ID of the source content"},"content_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Origin","description":"Origin URL or source of the content"},"size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"}},"type":"object","required":["id","content"],"title":"VectorSearchResult","description":"Schema for search result documents."},"VideoInputContent":{"properties":{"type":{"type":"string","const":"video","title":"Type","default":"video"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"VideoInputContent","description":"A video input content fragment."},"WhatsAppWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status","default":"ok"}},"type":"object","title":"WhatsAppWebhookResponse"},"WorkflowResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema","description":"Input schema for the workflow"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps","description":"List of workflow steps"},"agent":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"type":"null"}],"description":"Agent configuration if used"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamResponse"},{"type":"null"}],"description":"Team configuration if used"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"workflow_agent":{"type":"boolean","title":"Workflow Agent","description":"Whether this workflow uses a WorkflowAgent","default":false},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowResponse"},"WorkflowRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the workflow run"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the workflow"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was executed"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the workflow"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"Type of content returned"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status of the workflow run"},"step_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Results","description":"Results from each workflow step"},"step_executor_runs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Executor Runs","description":"Executor runs for each step"},"step_requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Requirements","description":"HITL step requirements (resolved state for historical display)"},"pause_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Kind","description":"Kind of HITL pause: 'step' or 'executor'"},"paused_step_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Step Name","description":"Name of the step that caused the pause"},"paused_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Paused Step Index","description":"Index of the step that caused the pause"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the workflow"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the workflow"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the workflow"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the workflow"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the workflow"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"}},"type":"object","required":["run_id"],"title":"WorkflowRunSchema"},"WorkflowSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID used in this session"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name","description":"Name of the workflow"},"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Data","description":"Complete session data"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current workflow state"},"workflow_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Data","description":"Workflow-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["session_id","session_name"],"title":"WorkflowSessionDetailSchema"},"WorkflowSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowSummaryResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} +{"openapi":"3.1.0","info":{"title":"Agno API Reference","description":"The all-in-one, private, secure agent platform that runs in your cloud.","version":"2.7.4"},"paths":{"/":{"get":{"tags":["Home"],"summary":"API Information","description":"Return the AgentOS instance name, ID, and version.","operationId":"get_api_info","responses":{"200":{"description":"API information retrieved successfully","content":{"application/json":{"schema":{"properties":{"name":{"type":"string","title":"Name"},"id":{"type":"string","title":"Id"},"version":{"type":"string","title":"Version"}},"type":"object","required":["name","id","version"],"title":"ApiInfoResponse"},"examples":{"home":{"summary":"Example home response","value":{"name":"AgentOS API","id":"demo-os","version":"1.0.0"}}}}}}}}},"/health":{"get":{"tags":["Health"],"summary":"Health Check","description":"Check the health status of the AgentOS API. Returns a simple status indicator.","operationId":"health_check","responses":{"200":{"description":"API is healthy and operational","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"},"example":{"status":"ok","instantiated_at":"2025-06-10T12:00:00Z"}}}}}}},"/info":{"get":{"tags":["Core"],"summary":"Get OS Info","description":"Return lightweight, unauthenticated metadata about this AgentOS instance.","operationId":"get_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoResponse"}}}}}}},"/config":{"get":{"tags":["Core"],"summary":"Get OS Configuration","description":"Retrieve the complete configuration of the AgentOS instance, including:\n\n- Available models and databases\n- Registered agents, teams, and workflows\n- Chat, session, memory, knowledge, and evaluation configurations\n- Available interfaces and their routes","operationId":"get_config","responses":{"200":{"description":"OS configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"},"example":{"description":"Example AgentOS configuration","available_models":[],"databases":["9c884dc4-9066-448c-9074-ef49ec7eb73c"],"session":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Sessions"}}]},"metrics":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Metrics"}}]},"memory":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Memory"}}]},"knowledge":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Knowledge"}}]},"evals":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Evals"}}]},"agents":[{"id":"main-agent","name":"Main Agent","db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c"}],"teams":[],"workflows":[],"interfaces":[],"os_id":"demo"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/models":{"get":{"tags":["Core"],"summary":"Get Available Models","description":"Retrieve a list of all unique models currently used by agents and teams in this OS instance. This includes the model ID and provider information for each model.","operationId":"get_models","responses":{"200":{"description":"List of models retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Response Get Models"},"example":[{"id":"gpt-4","provider":"openai"},{"id":"claude-3-sonnet","provider":"anthropic"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}/runs":{"post":{"tags":["Agents"],"summary":"Create Agent Run","description":"Execute an agent with a message and optional media files. Supports both streaming and non-streaming responses.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_agent_run"}}}},"responses":{"200":{"description":"Agent run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"examples":{"event_stream":{"summary":"Example event stream response","value":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Agents"],"summary":"List Agent Runs","description":"List runs for an agent within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_agent_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED","title":"Status"},"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RunSchema"},"type":"array","title":"Response List Agent Runs"}}}},"400":{"description":"Run listing is unavailable for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Agent resolution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/cancel":{"post":{"tags":["Agents"],"summary":"Cancel Agent Run","description":"Request cancellation for `run_id`. After any required ownership check, local and factory agents store cancellation intent keyed by run ID. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote agent.","operationId":"cancel_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.","title":"Session Id"},"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it."}],"responses":{"200":{"description":"Cancellation request accepted. The empty response does not confirm run existence or remote delivery.","content":{"application/json":{"schema":{}}}},"400":{"description":"A user-scoped caller omitted session_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found, or the run could not be verified in the caller's session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run cancellation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/continue":{"post":{"tags":["Agents"],"summary":"Continue Agent Run","description":"Advance a persisted agent run from its current state. Dispatches on the body shape and the persisted run state (see ADR-003 in specs/agno/features/checkpointing/decisions.md).\n\n**Variants:**\n- PAUSED + tools provided \u2192 apply HITL tool results, resume\n- PAUSED + resolved admin approval (empty tools) \u2192 apply resolution, resume\n- RUNNING / ERROR (no unresolved HITL requirements) \u2192 resume from last persisted state\n- COMPLETED + new tools \u2192 continue with appended messages\n\n**Tools Parameter:**\nJSON string containing array of tool execution objects with results. Optional \u2014 only required when the persisted run has unresolved HITL requirements.","operationId":"continue_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_agent_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid tools or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Agent run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run continuation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"503":{"description":"Remote agent is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/agents/{agent_id}/sessions/{session_id}/fork":{"post":{"tags":["Agents"],"summary":"Fork Agent Session","description":"Deep-copy a session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_agent_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents":{"get":{"tags":["Agents"],"summary":"List All Agents","description":"Retrieve a comprehensive list of all agents configured in this OS instance.\n\n**Returns:**\n- Agent metadata (ID, name, description)\n- Model configuration and capabilities\n- Available tools and their configurations\n- Session, knowledge, memory, and reasoning settings\n- Only meaningful (non-default) configurations are included","operationId":"get_agents","responses":{"200":{"description":"List of agents retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentResponse"},"type":"array","title":"Response Get Agents"},"example":[{"id":"main-agent","name":"Main Agent","db_id":"c6bf0644-feb8-4930-a305-380dae5ad6aa","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Details","description":"Retrieve detailed configuration and capabilities of a specific agent.\n\n**Returns comprehensive agent information including:**\n- Model configuration and provider details\n- Complete tool inventory and configurations\n- Session management settings\n- Knowledge base and memory configurations\n- Reasoning capabilities and settings\n- System prompts and response formatting options","operationId":"get_agent","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Agent details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"},"example":{"id":"main-agent","name":"Main Agent","db_id":"9e064c70-6821-4840-a333-ce6230908a70","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Run","description":"Retrieve the status and output of an agent run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Agents"],"summary":"List Agent Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_agent_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Agents"],"summary":"Get Agent Run Checkpoint Snapshot","description":"Return a derived run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_agent_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/resume":{"post":{"tags":["Agents"],"summary":"Resume Agent Run Stream","description":"Resume an SSE stream for an agent run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_agent_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_agent_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Not supported for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs":{"post":{"tags":["Teams"],"summary":"Create Team Run","description":"Execute a team collaboration with multiple agents working together on a task.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_team_run"}}}},"responses":{"200":{"description":"Team run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Teams"],"summary":"List Team Runs","description":"List runs for a team within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_team_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/cancel":{"post":{"tags":["Teams"],"summary":"Cancel Team Run","description":"Request cancellation for `run_id`. After any required ownership check, local and factory teams store cancellation intent keyed by run ID and mark known member runs for cancellation. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote team.","operationId":"cancel_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.","title":"Session Id"},"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it."}],"responses":{"200":{"description":"Cancellation request accepted. The empty response does not confirm run existence or remote delivery.","content":{"application/json":{"schema":{}}}},"400":{"description":"A user-scoped caller omitted session_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found, or the run could not be verified in the caller's session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel team run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/resume":{"post":{"tags":["Teams"],"summary":"Resume Team Run Stream","description":"Resume an SSE stream for a team run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_team_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_team_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory teams. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/continue":{"post":{"tags":["Teams"],"summary":"Continue Team Run","description":"Continue a paused or incomplete team run with updated requirements.\n\n**Use Cases:**\n- Resume execution after tool approval/rejection\n- Provide manual tool execution results\n- Resume after admin approval (requirements can be empty; resolution fetched from DB)\n\n**Requirements Parameter:**\nJSON string containing array of requirement objects with tool execution results.\nCan be empty when an admin-required approval has been resolved.","operationId":"continue_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_team_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid requirements or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Team run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Remote team is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/teams/{team_id}/sessions/{session_id}/fork":{"post":{"tags":["Teams"],"summary":"Fork Team Session","description":"Deep-copy a team session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_team_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams":{"get":{"tags":["Teams"],"summary":"List Accessible Teams","description":"Retrieve configured team metadata, models, members, knowledge, and memory settings. When authorization is enabled, in-memory team registrations are filtered by caller scopes. Database-loaded team components are also included.","operationId":"get_teams","responses":{"200":{"description":"List of teams retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamResponse"},"type":"array","title":"Response Get Teams"},"example":[{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"agno_memories","app_url":"/memory/1","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/teams/{team_id}":{"get":{"tags":["Teams"],"summary":"Get Team Details","description":"Retrieve detailed configuration and member information for a specific team.","operationId":"get_team","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"},"example":{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}":{"get":{"tags":["Teams"],"summary":"Get Team Run","description":"Retrieve the status and output of a team run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Teams"],"summary":"List Team Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored team run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_team_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Teams"],"summary":"Get Team Run Checkpoint Snapshot","description":"Return a derived team run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_team_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows":{"get":{"tags":["Workflows"],"summary":"List Workflows","description":"Return workflow ID, name, description, database ID, factory metadata, and Builder version metadata. When authorization is enabled, caller scopes filter in-memory workflow registrations. Database-loaded Builder workflows are appended separately.","operationId":"get_workflows","responses":{"200":{"description":"List of workflows retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Response Get Workflows"},"example":[{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/workflows/{workflow_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Details","description":"Retrieve detailed configuration and step information for a specific workflow.","operationId":"get_workflow","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Workflow version to retrieve","title":"Version"},"description":"Workflow version to retrieve"}],"responses":{"200":{"description":"Workflow details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"},"example":{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs":{"post":{"tags":["Workflows"],"summary":"Execute Workflow","description":"Execute a workflow with the provided input data. Workflows can run in streaming or batch mode.\n\n**Execution Modes:**\n- **Streaming (`stream=true`)**: Real-time step-by-step execution updates via SSE\n- **Non-Streaming (`stream=false`)**: Complete workflow execution with final result\n\n**Workflow Execution Process:**\n1. Input validation against workflow schema\n2. Sequential or parallel step execution based on workflow design\n3. Data flow between steps with transformation\n4. Error handling and automatic retries where configured\n5. Final result compilation and response\n\n**Session Management:**\nWorkflows support session continuity for stateful execution across multiple runs.","operationId":"create_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_run"}}}},"responses":{"200":{"description":"Workflow executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid input data or workflow configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Workflow execution error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"List Workflow Runs","description":"List runs for a workflow within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_workflow_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/continue":{"post":{"tags":["Workflows"],"summary":"Continue Workflow Run","description":"Continue a paused workflow run with resolved requirements.\n\n**Use Cases:**\n- Resume after step-level HITL (confirmation, user input, router selection)\n- Resume after executor-level HITL (agent/team tool confirmation within a step)\n\n**Requirements Parameter:**\nJSON string containing the resolved step requirements.","operationId":"continue_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_workflow_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: StepCompleted\ndata: {\"step_name\": \"step1\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid step requirements or factory input, missing required session ID, rejected input, or remote workflow continuation requested","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is not paused and cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/cancel":{"post":{"tags":["Workflows"],"summary":"Cancel Workflow Run","description":"Request cancellation for `run_id`. After any required ownership check, local and factory workflows store cancellation intent keyed by run ID and mark known agent or team executor runs for cancellation. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote workflow.","operationId":"cancel_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.","title":"Session Id"},"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it."}],"responses":{"200":{"description":"Cancellation request accepted. The empty response does not confirm run existence or remote delivery.","content":{"application/json":{"schema":{}}}},"400":{"description":"A user-scoped caller omitted session_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found, or the run could not be verified in the caller's session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel workflow run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/resume":{"post":{"tags":["Workflows"],"summary":"Resume Workflow Run Stream","description":"Resume an SSE stream for a workflow run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_workflow_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_workflow_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory workflows. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Run","description":"Retrieve the status and output of a workflow run. Use this to poll for run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/slack/events":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Receives incoming Slack events (messages, mentions, thread starts).\n\n**URL Verification:** On first setup, Slack sends a `url_verification` challenge. The endpoint echoes back the challenge string.\n\n**Event Processing:** Normal events are acknowledged immediately with `{\"status\": \"ok\"}` and processed in the background. This prevents Slack's 3-second retry timeout.\n\n**Retry Handling:** Events with `X-Slack-Retry-Num` header are duplicates and return 200 without reprocessing.\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Event Subscriptions > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for creating a Slack App or use the [manifest](/agent-os/interfaces/slack/setup#2-create-the-slack-app) for quick setup.\n","operationId":"slack_events_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SlackChallengeResponse"},{"$ref":"#/components/schemas/SlackEventResponse"}],"title":"Response Slack Events Simple Agent"}}}},"400":{"description":"Missing Slack headers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured, or the event body is not valid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number (present on retried events)"}]}},"/slack/interactions":{"post":{"tags":["Slack"],"summary":"Slack Interactions","description":"Handles Slack interactive components for Human-in-the-Loop (HITL) workflows.\n\n**Supported Actions:**\n- `row_approve` - Approve a pending tool call\n- `row_reject` - Reject a pending tool call\n- `submit_pause` - Submit form data for a paused workflow\n- `check_status` - Check an admin approval and resume an approved run\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Interactivity & Shortcuts > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for step-by-step instructions or the [HITL guide](/agent-os/interfaces/slack/hitl) for approval workflows.\n","operationId":"slack_interactions_simple_agent","responses":{"200":{"description":"Interaction accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackEventResponse"}}}},"400":{"description":"Missing Slack headers or malformed interaction payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number. Retried interactions return 200 without reprocessing."}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"URL-encoded JSON interaction payload (Slack sends interactive component data as a single form field)"}}}}}}}},"/whatsapp/status":{"get":{"tags":["Whatsapp"],"summary":"Status","operationId":"whatsapp_status_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"WhatsAppStatusResponse","example":{"status":"available"}}}}}}}},"/whatsapp/webhook":{"get":{"tags":["Whatsapp"],"summary":"Whatsapp Verify","description":"Handle WhatsApp webhook verification","operationId":"whatsapp_verify_simple_agent","responses":{"200":{"description":"Webhook challenge accepted","content":{"text/plain":{"schema":{"type":"string"},"example":"challenge-token"}}},"400":{"description":"No challenge was provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid verify token or mode","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Webhook verification is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"hub.mode","in":"query","required":true,"schema":{"type":"string"},"description":"Webhook verification mode. Meta sends `subscribe`."},{"name":"hub.verify_token","in":"query","required":true,"schema":{"type":"string"},"description":"Verification token configured for the WhatsApp interface."},{"name":"hub.challenge","in":"query","required":true,"schema":{"type":"string"},"description":"Challenge returned as plain text after successful verification."}]},"post":{"tags":["Whatsapp"],"summary":"Whatsapp Webhook","description":"Process incoming WhatsApp messages","operationId":"whatsapp_webhook_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppWebhookResponse"}}}},"403":{"description":"Invalid webhook signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Signature validation is not configured, or the JSON body is malformed or is not an object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Hub-Signature-256","in":"header","required":true,"schema":{"type":"string"},"description":"SHA-256 HMAC signature for the raw request body, prefixed with `sha256=`"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}},"/telegram/status":{"get":{"tags":["Telegram"],"summary":"Telegram Status","operationId":"telegram_status_simple-agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramStatusResponse"}}}}}}},"/telegram/webhook":{"post":{"tags":["Telegram"],"summary":"Telegram Webhook","operationId":"telegram_webhook_simple-agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramWebhookResponse"}}}},"403":{"description":"Invalid webhook secret token"}}}},"/agui":{"post":{"tags":["AGUI"],"summary":"Run Agent","operationId":"run_agent_agui_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentInput"}}},"required":true},"responses":{"200":{"description":"Server-sent event stream","content":{"text/event-stream":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/status":{"get":{"tags":["AGUI"],"summary":"Get Status","operationId":"get_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/a2a/agents/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Agent Card","operationId":"get_agent_card_a2a_agents__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/a2a/agents/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Agent","description":"Send a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"A2A is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/agents/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Agent Task","description":"Get the status and result of an agent task by ID. `params.contextId` identifies the session containing the task.","operationId":"get_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent task retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Missing task or context ID, or task polling requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"Task polling is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/get","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/agents/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Agent Task","description":"Cancel a running agent task. Scoped non-admin callers must identify the task's session with `params.contextId`.","operationId":"cancel_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent task canceled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"canceled"}}}}}},"400":{"description":"Missing task or required context ID, or task cancellation requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"Task cancellation is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/cancel","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/agents/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Agent","description":"Stream a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/teams/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Team Card","operationId":"get_team_card_a2a_teams__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/a2a/teams/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Team","description":"Send a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/teams/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Team Task","description":"Get the status and result of a team task by ID. `params.contextId` identifies the session containing the task.","operationId":"get_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team task retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Missing task or context ID, or task polling requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/get","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/teams/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Team Task","description":"Cancel a running team task. Scoped non-admin callers must identify the task's session with `params.contextId`.","operationId":"cancel_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team task canceled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"canceled"}}}}}},"400":{"description":"Missing task or required context ID, or task cancellation requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/cancel","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/teams/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Team","description":"Stream a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/workflows/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Workflow Card","operationId":"get_workflow_card_a2a_workflows__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Workflow card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/a2a/workflows/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Workflow","description":"Send a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/workflows/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Workflow","description":"Stream a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/message/send":{"post":{"tags":["A2A"],"summary":"Send Message","description":"[DEPRECATED] Send a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"send_message","responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request or unsupported method","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, team, or workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"deprecated":true,"security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Agent-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Target agent, team, or workflow ID when `params.message.agentId` is omitted."},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/message/stream":{"post":{"tags":["A2A"],"summary":"Stream Message","description":"[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as Server-Sent Events (SSE).","operationId":"stream_message","responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request or unsupported method","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, team, or workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"deprecated":true,"security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Agent-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Target agent, team, or workflow ID when `params.message.agentId` is omitted."},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/sessions":{"get":{"tags":["Sessions"],"summary":"List Sessions","description":"Retrieve paginated list of sessions with filtering and sorting options. Supports filtering by session type (agent, team, workflow), component, user, and name. Sessions represent conversation histories and execution contexts.","operationId":"get_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types.","title":"Type"},"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types."},{"name":"component_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by component ID (agent/team/workflow ID)","title":"Component Id"},"description":"Filter sessions by component ID (agent/team/workflow ID)"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by user ID","title":"User Id"},"description":"Filter sessions by user ID"},{"name":"session_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by name (partial match)","title":"Session Name"},"description":"Filter sessions by name (partial match)"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of sessions to return per page","default":20,"title":"Limit"},"description":"Number of sessions to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort sessions by","default":"created_at","title":"Sort By"},"description":"Field to sort sessions by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query sessions from","title":"Db Id"},"description":"Database ID to query sessions from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Sessions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_SessionSchema_"},"example":{"session_example":{"summary":"Example session response","value":{"data":[{"session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_state":{},"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}]}}}}}},"400":{"description":"Invalid session type or filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in query parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Sessions"],"summary":"Create New Session","description":"Create a new empty session with optional configuration. Useful for pre-creating sessions with specific session_state, metadata, or other properties before running any agent/team/workflow interactions. The session can later be used by providing its session_id in run requests.","operationId":"create_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SessionType","description":"Type of session to create (agent, team, or workflow)","default":"agent"},"description":"Type of session to create (agent, team, or workflow)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to create session in","title":"Db Id"},"description":"Database ID to create session in"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest","description":"Session configuration data","default":{}}}}},"responses":{"201":{"description":"Session created successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Create Session"},"examples":{"agent_session_example":{"summary":"Example created agent session","value":{"user_id":"user-123","agent_session_id":"new-session-id","session_id":"new-session-id","session_name":"New Session","session_state":{"key":"value"},"metadata":{"key":"value"},"agent_id":"agent-1","created_at":"2025-10-21T12:00:00Z","updated_at":"2025-10-21T12:00:00Z"}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A session with the supplied session_id already exists"},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Multiple Sessions","description":"Delete multiple sessions by their IDs in a single operation. This action cannot be undone and will permanently remove all specified sessions and their runs.","operationId":"delete_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSessionRequest"}}}},"responses":{"204":{"description":"Sessions deleted successfully"},"400":{"description":"Invalid request - session IDs and types length mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["Sessions"],"summary":"Get Session by ID","description":"Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow).","operationId":"get_session_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to retrieve","title":"Session Id"},"description":"Session ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query session from","title":"User Id"},"description":"User ID to query session from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query session from","title":"Db Id"},"description":"Database ID to query session from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query session from","title":"Table"},"description":"Table to query session from"}],"responses":{"200":{"description":"Session details retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Get Session By Id"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Session","description":"Permanently delete a specific session and all its associated runs. This action cannot be undone and will remove all conversation history.","operationId":"delete_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to delete","title":"Session Id"},"description":"Session ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Sessions"],"summary":"Update Session","description":"Update session properties such as session_name, session_state, metadata, or summary. Use this endpoint to modify the session name, update state, add metadata, or update the session summary.","operationId":"update_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to update","title":"Session Id"},"description":"Session ID to update"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID","title":"User Id"},"description":"User ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update operation","title":"Db Id"},"description":"Database ID to use for update operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update operation","title":"Table"},"description":"Table to use for update operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest","description":"Session update data"}}}},"responses":{"200":{"description":"Session updated successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Update Session"},"examples":{"update_summary":{"summary":"Update session summary","value":{"summary":{"summary":"The user discussed project planning with the agent.","updated_at":"2025-10-21T14:30:00Z"}}},"update_metadata":{"summary":"Update session metadata","value":{"metadata":{"tags":["planning","project"],"priority":"high"}}},"update_session_name":{"summary":"Update session name","value":{"session_name":"Updated Session Name"}},"update_session_state":{"summary":"Update session state","value":{"session_state":{"step":"completed","context":"Project planning finished","progress":100}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs":{"get":{"tags":["Sessions"],"summary":"Get Session Runs","description":"Retrieve all runs (executions) for a specific session with optional timestamp filtering. Runs represent individual interactions or executions within a session. Response schema varies based on session type.","operationId":"get_session_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get runs from","title":"Session Id"},"description":"Session ID to get runs from"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query runs from","title":"User Id"},"description":"User ID to query runs from"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created after this Unix timestamp (epoch time in seconds)","title":"Created After"},"description":"Filter runs created after this Unix timestamp (epoch time in seconds)"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created before this Unix timestamp (epoch time in seconds)","title":"Created Before"},"description":"Filter runs created before this Unix timestamp (epoch time in seconds)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query runs from","title":"Db Id"},"description":"Database ID to query runs from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query runs from","title":"Table"},"description":"Table to query runs from"}],"responses":{"200":{"description":"Session runs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}]},"title":"Response Get Session Runs"},"examples":{"completed_run":{"summary":"Example completed run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"","run_input":"Which tools do you have access to?","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","run_response_format":"text","reasoning_content":"","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069},"messages":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-08 17:52:10.101003.\n\n\nYou have the capability to retain memories from previous interactions with the user, but have not had any interactions with the user yet.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757346730},{"content":"Which tools do you have access to?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757346730},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138},"created_at":1757346730}],"events":[{"created_at":1757346730,"event":"RunStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","model":"gpt-4o","model_provider":"OpenAI"},{"created_at":1757346733,"event":"MemoryUpdateStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"MemoryUpdateCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"RunCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","content_type":"str","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069}}],"created_at":"2025-09-08T15:52:10Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found or has no runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs/{run_id}":{"get":{"tags":["Sessions"],"summary":"Get Run by ID","description":"Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run).","operationId":"get_session_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get run from","title":"Session Id"},"description":"Session ID to get run from"},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","description":"Run ID to retrieve","title":"Run Id"},"description":"Run ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query run from","title":"User Id"},"description":"User ID to query run from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query run from","title":"Db Id"},"description":"Database ID to query run from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query run from","title":"Table"},"description":"Table to query run from"}],"responses":{"200":{"description":"Run retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}],"title":"Response Get Session Run"},"examples":{"agent_run":{"summary":"Example agent run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"user_123","run_input":"Which tools do you have access to?","content":"I don't have access to external tools.","created_at":1728499200}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/rename":{"post":{"tags":["Sessions"],"summary":"Rename Session","description":"Update the name of an existing session. Useful for organizing and categorizing sessions with meaningful names for better identification and management.","operationId":"rename_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to rename","title":"Session Id"},"description":"Session ID to rename"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope rename to","title":"User Id"},"description":"User ID to scope rename to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for rename operation","title":"Db Id"},"description":"Database ID to use for rename operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_rename_session"}}}},"responses":{"200":{"description":"Session renamed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Rename Session"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Invalid session name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type or validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories":{"post":{"tags":["Memory"],"summary":"Create Memory","description":"Create a new user memory with content and associated topics. Memories are used to store contextual information for users across conversations.","operationId":"create_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for memory storage","title":"Db Id"},"description":"Database ID to use for memory storage"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for memory storage","title":"Table"},"description":"Table to use for memory storage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"mem-123","memory":"User prefers technical explanations with code examples","topics":["preferences","communication_style","technical"],"user_id":"user-456","created_at":"2024-01-15T10:30:00Z","updated_at":"2024-01-15T10:30:00Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Memory"],"summary":"Delete Multiple Memories","description":"Delete multiple user memories by their IDs in a single operation. This action cannot be undone and all specified memories will be permanently removed.","operationId":"delete_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMemoriesRequest"}}}},"responses":{"204":{"description":"Memories deleted successfully"},"400":{"description":"Invalid request - empty memory_ids list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"List Memories","description":"Retrieve paginated list of user memories with filtering and search capabilities. Filter by user, agent, team, topics, or search within memory content.","operationId":"get_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by user ID","title":"User Id"},"description":"Filter memories by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by agent ID","title":"Agent Id"},"description":"Filter memories by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by team ID","title":"Team Id"},"description":"Filter memories by team ID"},{"name":"search_content","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fuzzy search within memory content","title":"Search Content"},"description":"Fuzzy search within memory content"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of memories to return per page","default":20,"title":"Limit"},"description":"Number of memories to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort memories by","default":"updated_at","title":"Sort By"},"description":"Field to sort memories by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memories from","title":"Db Id"},"description":"Database ID to query memories from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Comma-separated list of topics to filter by","examples":["preferences,technical,communication_style"],"title":"Topics"},"description":"Comma-separated list of topics to filter by"}],"responses":{"200":{"description":"Memories retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserMemorySchema_"},"example":{"data":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories/{memory_id}":{"delete":{"tags":["Memory"],"summary":"Delete Memory","description":"Permanently delete a specific user memory. This action cannot be undone.","operationId":"delete_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to delete","title":"Memory Id"},"description":"Memory ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to delete memory for","title":"User Id"},"description":"User ID to delete memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Memory deleted successfully"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"Get Memory by ID","description":"Retrieve detailed information about a specific user memory by its ID.","operationId":"get_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to retrieve","title":"Memory Id"},"description":"Memory ID to retrieve"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query memory for","title":"User Id"},"description":"User ID to query memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memory from","title":"Db Id"},"description":"Database ID to query memory from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query memory from","title":"Table"},"description":"Table to query memory from"}],"responses":{"200":{"description":"Memory retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Memory"],"summary":"Update Memory","description":"Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values.","operationId":"update_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to update","title":"Memory Id"},"description":"Memory ID to update"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update","title":"Db Id"},"description":"Database ID to use for update"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update","title":"Table"},"description":"Table to use for update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memory_topics":{"get":{"tags":["Memory"],"summary":"Get Memory Topics","description":"Retrieve all unique topics associated with memories in the system. Useful for filtering and categorizing memories by topic.","operationId":"get_memory_topics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter topics for","title":"User Id"},"description":"User ID to filter topics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query topics from","title":"Db Id"},"description":"Database ID to query topics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query topics from","title":"Table"},"description":"Table to query topics from"}],"responses":{"200":{"description":"Memory topics retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Get Memory Topics"},"example":["preferences","communication_style","technical","industry","compliance","code_examples","requirements","healthcare","finance"]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/user_memory_stats":{"get":{"tags":["Memory"],"summary":"Get User Memory Statistics","description":"Retrieve paginated statistics about memory usage by user. Provides insights into user engagement and memory distribution across users.","operationId":"get_user_memory_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of user statistics to return per page","default":20,"title":"Limit"},"description":"Number of user statistics to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter statistics for","title":"User Id"},"description":"User ID to filter statistics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query statistics from","title":"Table"},"description":"Table to query statistics from"}],"responses":{"200":{"description":"User memory statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserStatsSchema_"},"example":{"data":[{"user_id":"123","total_memories":3,"last_memory_updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve user statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/optimize-memories":{"post":{"tags":["Memory"],"summary":"Optimize User Memories","description":"Optimize all memories for a user with the summarize strategy. The operation combines the user's memories into one summary. Set `apply=false` to preview the result without saving it. Specify a custom model as `provider:model_id`, for example `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, or `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`.","operationId":"optimize_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for optimization","title":"Db Id"},"description":"Database ID to use for optimization"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for optimization","title":"Table"},"description":"Table to use for optimization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesRequest"}}}},"responses":{"200":{"description":"Memories optimized successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesResponse"},"example":{"memories":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User has a 3-year-old golden retriever named Max who loves fetch and walks. Lives in San Francisco's Mission district, works as a product manager in tech. Enjoys hiking Bay Area trails, trying new restaurants (especially Japanese, Thai, Mexican), and learning piano for 1.5 years.","topics":["pets","location","work","hobbies","food_preferences"],"user_id":"user2","updated_at":"2025-11-18T10:30:00Z"}],"memories_before":4,"memories_after":1,"tokens_before":450,"tokens_after":180,"tokens_saved":270,"reduction_percentage":60.0}}}},"400":{"description":"Bad request - User ID is required or invalid model string format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No memories found for user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to optimize memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings":{"get":{"tags":["Learnings"],"summary":"List Learnings","description":"List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) \u2014 this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`).","operationId":"list_learnings","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by learning type","title":"Learning Type"},"description":"Filter by learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"namespace","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by namespace","title":"Namespace"},"description":"Filter by namespace"},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity ID","title":"Entity Id"},"description":"Filter by entity ID"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity type","title":"Entity Type"},"description":"Filter by entity type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":100,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used).","title":"Sort By"},"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used)."},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"post":{"tags":["Learnings"],"summary":"Create Learning","description":"Create a new learning record. For the identity-keyed learning types (`user_profile`, `user_memory`, `session_context`, `entity_memory`) the record id is derived deterministically from the identity fields so it reconciles with what the agent reads/writes \u2014 provide those fields (else 422), and if a record already exists the request is rejected with 409 (use PATCH to update it). Other types get a generated id. For a scoped (non-admin) caller, the body's `user_id` must be omitted/null or match the caller (mismatch \u2192 403); admins and unscoped callers may set any `user_id`.","operationId":"create_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"An identity-keyed learning already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/users":{"get":{"tags":["Learnings"],"summary":"List Learning Users","description":"List the users that own learning records, with a per-user count and last-updated timestamp. Intended as the entry point for a per-user view: list users here, then drill into a single user's learnings via `GET /learnings?user_id=...`. Records with no owner (`user_id IS NULL`) are excluded. Pass `learning_type` to restrict the grouping to a single store (e.g. `user_profile` or `user_memory`). For a scoped (non-admin) caller results are bound to that user; an explicit `user_id` that differs is rejected with 403. Admins and unscoped callers list all users. Sortable by `user_id` or `last_learning_updated_at` (the default).","operationId":"list_learning_users","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the grouping to a single learning type","title":"Learning Type"},"description":"Restrict the grouping to a single learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the result to a single user","title":"User Id"},"description":"Restrict the result to a single user"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by: user_id or last_learning_updated_at (the default)","title":"Sort By"},"description":"Field to sort by: user_id or last_learning_updated_at (the default)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningUserStats_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/users/{user_id}":{"delete":{"tags":["Learnings"],"summary":"Delete Learning User","description":"Delete the learning records owned by a user. By default removes every learning type backed by the agno_learnings table (user_profile, user_memory, and any user-scoped entity records); pass `learning_type` to restrict deletion to a single store. Records with no owner (`user_id IS NULL`) are not affected. For a scoped (non-admin) caller, only their own learnings may be deleted; a different `user_id` is rejected with 403. Admins and unscoped callers may delete any user's learnings. Returns 204 even if the user had no matching records.","operationId":"delete_learning_user","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The user whose learnings should be deleted","title":"User Id"},"description":"The user whose learnings should be deleted"},{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings","title":"Learning Type"},"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/{learning_id}":{"get":{"tags":["Learnings"],"summary":"Get Learning","description":"Retrieve a single learning record by its ID.","operationId":"get_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"patch":{"tags":["Learnings"],"summary":"Update Learning","description":"Update a learning record. Only `content` and `metadata` may be modified; identity fields (user_id, agent_id, team_id, etc.) are immutable. Provided fields fully replace the existing values. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) are readable by any caller but may only be modified by an admin.","operationId":"update_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"delete":{"tags":["Learnings"],"summary":"Delete Learning","description":"Permanently delete a learning record by its ID. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) may only be deleted by an admin.","operationId":"delete_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/eval-runs":{"get":{"tags":["Evals"],"summary":"List Evaluation Runs","description":"Retrieve paginated evaluation runs with filtering and sorting options. Filter by agent, team, workflow, model, or evaluation type.","operationId":"get_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Workflow ID","title":"Workflow Id"},"description":"Workflow ID"},{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model ID","title":"Model Id"},"description":"Model ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EvalFilterType"},{"type":"null"}],"description":"Filter type","title":"Type"},"description":"Filter type"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of eval runs to return","default":20,"title":"Limit"},"description":"Number of eval runs to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"eval_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)","examples":["accuracy,agent_as_judge,performance,reliability"],"title":"Eval Types"},"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)"}],"responses":{"200":{"description":"Evaluation runs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_EvalSchema_"},"example":{"data":[{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Evals"],"summary":"Delete Evaluation Runs","description":"Delete multiple evaluation runs by their IDs. This action cannot be undone.","operationId":"delete_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvalRunsRequest"}}}},"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Deletion failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Evals"],"summary":"Execute Evaluation","description":"Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both.","operationId":"run_eval","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for evaluation","title":"Db Id"},"description":"Database ID to use for evaluation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for evaluation","title":"Table"},"description":"Table to use for evaluation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRunInput"}}}},"responses":{"200":{"description":"Evaluation executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"f2b2d72f-e9e2-4f0e-8810-0a7e1ff58614","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Invalid request - provide either agent_id or team_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs/{eval_run_id}":{"get":{"tags":["Evals"],"summary":"Get Evaluation Run","description":"Retrieve detailed results and metrics for a specific evaluation run.","operationId":"get_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query eval run from","title":"Table"},"description":"Table to query eval run from"}],"responses":{"200":{"description":"Evaluation run details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Evals"],"summary":"Update Evaluation Run","description":"Update the name or other properties of an existing evaluation run.","operationId":"update_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvalRunRequest"}}}},"responses":{"200":{"description":"Evaluation run updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update evaluation run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics":{"get":{"tags":["Metrics"],"summary":"Get AgentOS Metrics","description":"Retrieve AgentOS metrics and analytics data for a specified date range. If no date range is specified, returns all available metrics.","operationId":"get_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"starting_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Starting date for metrics range (YYYY-MM-DD format)","title":"Starting Date"},"description":"Starting date for metrics range (YYYY-MM-DD format)"},{"name":"ending_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Ending date for metrics range (YYYY-MM-DD format)","title":"Ending Date"},"description":"Ending date for metrics range (YYYY-MM-DD format)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query metrics from","title":"Db Id"},"description":"Database ID to query metrics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Metrics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"},"example":{"metrics":[{"id":"7bf39658-a00a-484c-8a28-67fd8a9ddb2a","agent_runs_count":5,"agent_sessions_count":5,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":448,"output_tokens":148,"total_tokens":596,"audio_tokens":0,"input_audio_tokens":0,"output_audio_tokens":0,"cached_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":5}],"date":"2025-07-31T00:00:00Z","created_at":"2025-07-31T12:38:52Z","updated_at":"2025-07-31T12:49:01Z"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Metrics retrieval failed. In Agno 2.7.4, invalid or ambiguous database selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics/refresh":{"post":{"tags":["Metrics"],"summary":"Refresh Metrics","description":"Manually trigger recalculation of system metrics from raw data. This operation analyzes system activity logs and regenerates aggregated metrics. Useful for ensuring metrics are up-to-date or after system maintenance.","operationId":"refresh_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for metrics calculation","title":"Db Id"},"description":"Database ID to use for metrics calculation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for metrics calculation","title":"Table"},"description":"Table to use for metrics calculation"}],"responses":{"200":{"description":"Metrics refreshed successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"title":"Response Refresh Metrics"},"example":[{"id":"e77c9531-818b-47a5-99cd-59fed61e5403","agent_runs_count":2,"agent_sessions_count":2,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":256,"output_tokens":441,"total_tokens":697,"audio_total_tokens":0,"audio_input_tokens":0,"audio_output_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":2}],"date":"2025-08-12T00:00:00Z","created_at":"2025-08-12T08:01:47Z","updated_at":"2025-08-12T08:01:47Z"}]}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Refresh failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content":{"post":{"tags":["Knowledge"],"summary":"Upload Content","description":"Upload content to the knowledge base. Supports file uploads, text content, or URLs. Content is processed asynchronously in the background. Supports custom readers and chunking strategies.","operationId":"upload_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_content"}}}},"responses":{"202":{"description":"Content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-123","name":"example-document.pdf","description":"Sample document for processing","metadata":{"category":"documentation","priority":"high"},"status":"processing"}}}},"400":{"description":"Invalid request - malformed metadata or missing content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in form data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"List Content","description":"Return a paginated, sorted list of content for the selected knowledge base. Use `limit`, `page`, `sort_by`, and `sort_order` to control the result. Agno 2.7.4 exposes no status, content type, or metadata filter parameters on this endpoint. Named local knowledge instances scope rows by the stored `linked_to` value.","operationId":"get_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of content entries to return","default":20,"title":"Limit"},"description":"Number of content entries to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ContentResponseSchema_"},"example":{"data":[{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":null,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z","linked_to":null}],"meta":{"page":1,"limit":20,"total_pages":1,"total_count":2}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete All Content","description":"Permanently remove all content from the knowledge base. This is a destructive operation that cannot be undone. Use with extreme caution.","operationId":"delete_all_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete all content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/remote-content":{"post":{"tags":["Knowledge"],"summary":"Upload Remote Content","description":"Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.","operationId":"upload_remote_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_upload_remote_content"}}}},"responses":{"202":{"description":"Remote content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-456","name":"reports/q1-2024.pdf","description":"Q1 Report from S3","metadata":{"source":"s3-docs"},"status":"processing"}}}},"400":{"description":"Invalid request - unknown config or missing path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Remote content upload is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/knowledge/content/{content_id}":{"patch":{"tags":["Knowledge"],"summary":"Update Content","description":"Update content name, description, or metadata without re-uploading it. In Agno 2.7.4, this endpoint accepts `reader_id`. Local knowledge validates the value, but the content patch does not apply or persist the reader change.","operationId":"update_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","description":"Content ID","title":"Content Id"},"description":"Content ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_update_content"}}}},"responses":{"200":{"description":"Content updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":null,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z","linked_to":null}}}},"400":{"description":"Invalid request - malformed metadata or invalid reader_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"Get Content by ID","description":"Retrieve detailed information about a specific content item including processing status and metadata.","operationId":"get_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":null,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z","linked_to":null}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete Content by ID","description":"Permanently remove a specific content item from the knowledge base. This action cannot be undone.","operationId":"delete_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}/status":{"get":{"tags":["Knowledge"],"summary":"Get Content Status","description":"Return the processing status for a content ID. For local knowledge in Agno 2.7.4, an unknown content ID returns HTTP 200 with `status=\"failed\"` and `status_message=\"Content not found\"`.","operationId":"get_content_status","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content status returned. An unknown local content ID is represented by status \"failed\".","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentStatusResponse"},"examples":{"completed":{"summary":"Completed content","value":{"id":"content-123","status":"completed","status_message":""}},"content_not_found":{"summary":"Unknown local content ID","value":{"id":"missing-content","status":"failed","status_message":"Content not found"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Selected knowledge base or database ID not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/search":{"post":{"tags":["Knowledge"],"summary":"Search Knowledge","description":"Search the knowledge base for relevant documents using query, filters and search type.","operationId":"search_knowledge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VectorSearchRequestSchema"}}},"required":true},"responses":{"200":{"description":"Search results retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_VectorSearchResult_"},"example":{"data":[{"id":"doc_123","content":"Jordan Mitchell - Software Engineer with skills in JavaScript, React, Python","name":"cv_1","meta_data":{"page":1,"chunk":1},"usage":{"total_tokens":14},"reranking_score":0.95,"content_id":"content_456"}],"meta":{"page":1,"limit":20,"total_pages":2,"total_count":35}}}}},"400":{"description":"Invalid search parameters"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No documents found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/knowledge/config":{"get":{"tags":["Knowledge"],"summary":"Get Config","description":"Retrieve available readers, chunkers, and configuration options for content processing. This endpoint provides metadata about supported file types, processing strategies, and filters.","operationId":"get_knowledge_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Knowledge configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponseSchema"},"example":{"readers":{"website":{"id":"website","name":"WebsiteReader","description":"Reads website files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"firecrawl":{"id":"firecrawl","name":"FirecrawlReader","description":"Reads firecrawl files","chunkers":["SemanticChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"youtube":{"id":"youtube","name":"YoutubeReader","description":"Reads youtube files","chunkers":["RecursiveChunker","AgenticChunker","DocumentChunker","SemanticChunker","FixedSizeChunker"]},"web_search":{"id":"web_search","name":"WebSearchReader","description":"Reads web_search files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"arxiv":{"id":"arxiv","name":"ArxivReader","description":"Reads arxiv files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"csv":{"id":"csv","name":"CsvReader","description":"Reads csv files","chunkers":["RowChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"docling":{"id":"docling","name":"DoclingReader","description":"Converts multiple document formats like PDF, DOCX, PPTX, images, HTML, etc. using IBM's Docling library","chunkers":["AgenticChunker","CodeChunker","DocumentChunker","FixedSizeChunker","RecursiveChunker","SemanticChunker"]},"docx":{"id":"docx","name":"DocxReader","description":"Reads docx files","chunkers":["DocumentChunker","FixedSizeChunker","SemanticChunker","AgenticChunker","RecursiveChunker"]},"gcs":{"id":"gcs","name":"GcsReader","description":"Reads gcs files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"json":{"id":"json","name":"JsonReader","description":"Reads json files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"markdown":{"id":"markdown","name":"MarkdownReader","description":"Reads markdown files","chunkers":["MarkdownChunker","DocumentChunker","AgenticChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"pdf":{"id":"pdf","name":"PdfReader","description":"Reads pdf files","chunkers":["DocumentChunker","FixedSizeChunker","AgenticChunker","SemanticChunker","RecursiveChunker"]},"text":{"id":"text","name":"TextReader","description":"Reads text files","chunkers":["CodeChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]}},"readersForType":{"url":["url","website","firecrawl","youtube","web_search","gcs"],"youtube":["youtube"],"text":["web_search"],"topic":["arxiv"],"file":["csv","gcs"],".csv":["csv","field_labeled_csv","docling"],".xlsx":["excel","docling"],".xls":["excel"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["excel"],"application/vnd.ms-excel":["excel"],".docx":["docx","docling"],".dotx":["docling"],".docm":["docling"],".dotm":["docling"],".pptx":["docling","pptx"],".potx":["docling"],".ppsx":["docling"],".pptm":["docling"],".ppsm":["docling"],".potm":["docling"],".doc":["docx"],".json":["json"],".md":["markdown","docling"],".pdf":["pdf","docling"],".txt":["text"],".html":["docling"],".htm":["docling"],".xhtml":["docling"],".xml":["docling"],".nxml":["docling"],".xbrl":["docling"],".adoc":["docling"],".asciidoc":["docling"],".asc":["docling"],".xlsm":["docling"],".tex":["docling"],".latex":["docling"],".tar.gz":["docling"],".vtt":["docling"],".png":["docling"],".jpeg":["docling"],".jpg":["docling"],".tiff":["docling"],".tif":["docling"],".bmp":["docling"],".webp":["docling"],".wav":["docling"],".mp3":["docling"],".m4a":["docling"],".aac":["docling"],".ogg":["docling"],".flac":["docling"],".mp4":["docling"],".avi":["docling"],".mov":["docling"]},"chunkers":{"AgenticChunker":{"key":"AgenticChunker","name":"AgenticChunker","description":"Chunking strategy that uses an LLM to determine natural breakpoints in the text","metadata":{"chunk_size":5000}},"CodeChunker":{"key":"CodeChunker","name":"CodeChunker","description":"The CodeChunker splits code into chunks based on its structure, leveraging Abstract Syntax Trees (ASTs) to create contextually relevant segments","metadata":{"chunk_size":2048}},"DocumentChunker":{"key":"DocumentChunker","name":"DocumentChunker","description":"A chunking strategy that splits text based on document structure like paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"FixedSizeChunker":{"key":"FixedSizeChunker","name":"FixedSizeChunker","description":"Chunking strategy that splits text into fixed-size chunks with optional overlap","metadata":{"chunk_size":5000,"chunk_overlap":0}},"MarkdownChunker":{"key":"MarkdownChunker","name":"MarkdownChunker","description":"A chunking strategy that splits markdown based on structure like headers, paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RecursiveChunker":{"key":"RecursiveChunker","name":"RecursiveChunker","description":"Chunking strategy that recursively splits text into chunks by finding natural break points","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RowChunker":{"key":"RowChunker","name":"RowChunker","description":"RowChunking chunking strategy","metadata":{}},"SemanticChunker":{"key":"SemanticChunker","name":"SemanticChunker","description":"Chunking strategy that splits text into semantic chunks using chonkie","metadata":{"chunk_size":5000}}},"vector_dbs":[{"id":"vector_db_1","name":"Vector DB 1","description":"Vector DB 1 description","search_types":["vector","keyword","hybrid"]}],"filters":["filter_tag_1","filter_tag2"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources":{"get":{"tags":["Knowledge"],"summary":"List Content Sources","description":"List all registered content sources (S3, GCS, SharePoint, GitHub) for the knowledge base.","operationId":"list_content_sources","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Content sources retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"title":"Response List Content Sources"},"example":[{"id":"company-s3","name":"Company Documents","type":"s3","prefix":"documents/"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Content source listing is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/knowledge/{knowledge_id}/sources/{source_id}/files":{"get":{"tags":["Knowledge"],"summary":"List Files in Source","description":"List available files and folders in a specific content source. Supports pagination and folder navigation.","operationId":"list_source_files","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the content source","title":"Source Id"},"description":"ID of the content source"},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Path prefix to filter files","title":"Prefix"},"description":"Path prefix to filter files"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of files per page","default":100,"title":"Limit"},"description":"Number of files per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"delimiter","in":"query","required":false,"schema":{"type":"string","description":"Folder delimiter (enables folder grouping)","default":"/","title":"Delimiter"},"description":"Folder delimiter (enables folder grouping)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Files listed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceFilesResponseSchema"},"example":{"source_id":"company-s3","source_name":"Company Documents","prefix":"reports/","folders":[{"prefix":"reports/2024/","name":"2024","is_empty":false}],"files":[{"key":"reports/annual-summary.pdf","name":"annual-summary.pdf","size":102400,"last_modified":"2024-01-15T10:30:00Z","content_type":"application/pdf"}],"meta":{"page":1,"limit":100,"total_pages":1,"total_count":1}}}}},"400":{"description":"Unsupported source type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base or content source not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Source file listing is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/traces":{"get":{"tags":["Traces","Traces"],"summary":"List Traces","description":"Retrieve a paginated list of execution traces with optional filtering.\n\n**Traces provide observability into:**\n- Agent execution flows\n- Model invocations and token usage\n- Tool calls and their results\n- Errors and performance bottlenecks\n\n**Filtering Options:**\n- By run, session, user, or agent ID\n- By status (OK, ERROR)\n- By time range\n\n**Pagination:**\n- Use `page` (1-indexed) and `limit` parameters\n- Response includes pagination metadata (total_pages, total_count, etc.)\n\n**Response Format:**\nReturns summary information for each trace. Use GET `/traces/{trace_id}` for detailed hierarchy.","operationId":"get_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run ID","title":"Run Id"},"description":"Filter by run ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status (OK, ERROR)","title":"Status"},"description":"Filter by status (OK, ERROR)"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of traces per page","default":20,"title":"Limit"},"description":"Number of traces per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"responses":{"200":{"description":"List of traces retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSummary_"},"example":{"data":[{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","total_spans":4,"error_count":0,"input":"What is the stock price of NVDA?","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"agent_stock","created_at":"2025-11-19T10:30:00+00:00"}],"meta":{"page":1,"limit":20,"total_pages":5,"total_count":95}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/filter-schema":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Filter Schema","description":"Returns the available filterable fields, their types, valid operators, and enum values.\n\nThe frontend uses this to dynamically build the filter bar UI:\n- Field dropdown populated from `fields[].key`\n- Operator dropdown changes per field type\n- Value input shows autocomplete for enum fields (e.g., status)\n- Logical operators (AND, OR) for combining clauses","operationId":"get_traces_filter_schema","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterSchemaResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/traces/{trace_id}":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace or Span Detail","description":"Retrieve detailed trace information with hierarchical span tree, or a specific span within the trace.\n\n**Without span_id parameter:**\nReturns the full trace with hierarchical span tree:\n- Trace metadata (ID, status, duration, context)\n- Hierarchical tree of all spans\n- Each span includes timing, status, and type-specific metadata\n\n**With span_id parameter:**\nReturns details for a specific span within the trace:\n- Span metadata (ID, name, type, timing)\n- Status and error information\n- Type-specific attributes (model, tokens, tool params, etc.)\n\n**Span Hierarchy (full trace):**\nThe `tree` field contains root spans, each with potential `children`.\nThis recursive structure represents the execution flow:\n```\nAgent.run (root)\n \u251c\u2500 LLM.invoke\n \u251c\u2500 Tool.execute\n \u2502 \u2514\u2500 LLM.invoke (nested)\n \u2514\u2500 LLM.invoke\n```\n\n**Span Types:**\n- `AGENT`: Agent execution with input/output\n- `LLM`: Model invocations with tokens and prompts\n- `TOOL`: Tool calls with parameters and results","operationId":"get_trace","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}},{"name":"span_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Span ID to retrieve specific span","title":"Span Id"},"description":"Optional: Span ID to retrieve specific span"},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Run ID to retrieve trace for","title":"Run Id"},"description":"Optional: Run ID to retrieve trace for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query trace from","title":"Db Id"},"description":"Database ID to query trace from"}],"responses":{"200":{"description":"Trace or span detail retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TraceDetail"},{"$ref":"#/components/schemas/TraceNode"}],"title":"Response Get Trace"},"examples":{"full_trace":{"summary":"Full trace with hierarchy (no span_id)","value":{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","end_time":"2025-11-19T10:30:01.200000+00:00","total_spans":4,"error_count":0,"input":"What is Tesla stock price?","output":"The current price of Tesla (TSLA) is $245.67.","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"stock_agent","created_at":"2025-11-19T10:30:00+00:00","tree":[{"id":"span1","name":"Stock_Price_Agent.run","type":"AGENT","duration":"1.2s","status":"OK","spans":[]}]}},"single_span":{"summary":"Single span detail (with span_id)","value":{"id":"span2","name":"gpt-4o-mini.invoke","type":"LLM","duration":"800ms","status":"OK","metadata":{"model":"gpt-4o-mini","input_tokens":120}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Trace or span not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/trace_session_stats":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Statistics by Session","description":"Retrieve aggregated trace statistics grouped by session ID with pagination.\n\n**Provides insights into:**\n- Total traces per session\n- First and last trace timestamps per session\n- Associated user and agent information\n\n**Filtering Options:**\n- By user ID\n- By agent ID\n\n**Use Cases:**\n- Monitor session-level activity\n- Track conversation flows\n- Identify high-activity sessions\n- Analyze user engagement patterns","operationId":"get_trace_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of sessions per page","default":20,"title":"Limit"},"description":"Number of sessions per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"}],"responses":{"200":{"description":"Trace statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"},"example":{"data":[{"session_id":"37029bc6-1794-4ba8-a629-1efedc53dcad","user_id":"kaustubh@agno.com","agent_id":"hackernews-agent","total_traces":5,"first_trace_at":"2025-11-19T10:15:16+00:00","last_trace_at":"2025-11-19T10:21:30+00:00"}],"meta":{"page":1,"limit":20,"total_pages":3,"total_count":45}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/search":{"post":{"tags":["Traces","Traces"],"summary":"Search Traces with Advanced Filters","description":"Search traces using the FilterExpr DSL for complex, composable queries.\n\n**Group By Mode:**\n- `run` (default): Returns `PaginatedResponse[TraceDetail]` with full span trees\n- `session`: Returns `PaginatedResponse[TraceSessionStats]` with aggregated session stats\n\n**Supported Operators:**\n- Comparison: `EQ`, `NEQ`, `GT`, `GTE`, `LT`, `LTE`\n- Inclusion: `IN`\n- String matching: `CONTAINS` (case-insensitive substring), `STARTSWITH` (prefix)\n- Logical: `AND`, `OR`, `NOT`\n\n**Filterable Fields:**\ntrace_id, name, status, start_time, end_time, duration_ms, run_id, session_id, user_id, agent_id, team_id, workflow_id, created_at\n\n**Example Request Body (runs):**\n```json\n{\n \"filter\": {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n}\n```\n\n**Example Request Body (sessions):**\n```json\n{\n \"filter\": {\"op\": \"CONTAINS\", \"key\": \"agent_id\", \"value\": \"stock\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n}\n```","operationId":"search_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PaginatedResponse_TraceDetail_"},{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"}],"title":"Response Search Traces"}}}},"400":{"description":"Invalid filter expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/all/migrate":{"post":{"tags":["Database"],"summary":"Migrate All Databases","description":"Migrate all database schemas to the given target version. If a target version is not provided, all databases will be migrated to the latest version.","operationId":"migrate_all_databases","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"All databases migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"All databases migrated successfully to version 3.0.0"}}}},"207":{"description":"Some database migrations failed","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"},"failed":{"type":"object","additionalProperties":{"type":"string"},"title":"Failed"}},"type":"object","required":["message","failed"],"title":"PartialMigrationResponse"},"example":{"message":"Migrated 2/3 databases to latest version","failed":{"archive-db":"Migration failed"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/{db_id}/migrate":{"post":{"tags":["Database"],"summary":"Migrate Database","description":"Migrate the given database schema to the given target version. If a target version is not provided, the database will be migrated to the latest version.","operationId":"migrate_database","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"Database migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"Database migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Database not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components":{"get":{"tags":["Components"],"summary":"List Components","description":"Retrieve a paginated list of components with optional filtering by type.","operationId":"list_components","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ComponentType"},{"type":"null"}],"description":"Filter by type: agent, team, workflow","title":"Component Type"},"description":"Filter by type: agent, team, workflow"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ComponentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Component","description":"Create a new component (agent, team, or workflow) with initial config.","operationId":"create_component","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}":{"get":{"tags":["Components"],"summary":"Get Component","description":"Retrieve a component by ID.","operationId":"get_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Components"],"summary":"Update Component","description":"Partially update a component by ID.","operationId":"update_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentUpdate","description":"Component fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Component","description":"Soft-delete a component by ID. Component configs and links remain stored.","operationId":"delete_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs":{"get":{"tags":["Components"],"summary":"List Configs","description":"List all configs for a component.","operationId":"list_configs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"include_config","in":"query","required":false,"schema":{"type":"boolean","description":"Include full config blob","default":true,"title":"Include Config"},"description":"Include full config blob"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComponentConfigResponse"},"title":"Response List Configs"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Config Version","description":"Create a new config version for a component.","operationId":"create_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigCreate","description":"Config data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}":{"patch":{"tags":["Components"],"summary":"Update Draft Config","description":"Update an existing draft config. Cannot update published configs.","operationId":"update_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigUpdate","description":"Config fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Components"],"summary":"Get Config Version","description":"Get a specific config version by number.","operationId":"get_config_version","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Config Version","description":"Delete a specific config version. Agno v2.7.4 rejects the current version. Synchronous SQLite and PostgreSQL storage allow deletion of a published non-current version.","operationId":"delete_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/current":{"get":{"tags":["Components"],"summary":"Get Current Config","description":"Get the current config version for a component.","operationId":"get_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}/set-current":{"post":{"tags":["Components"],"summary":"Set Current Config Version","description":"Set a published config version as current (for rollback).","operationId":"set_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/schedules":{"get":{"tags":["Schedules"],"summary":"List Schedules","operationId":"list_schedules_schedules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"post":{"tags":["Schedules"],"summary":"Create Schedule","operationId":"create_schedule_schedules_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule","operationId":"get_schedule_schedules__schedule_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"patch":{"tags":["Schedules"],"summary":"Update Schedule","operationId":"update_schedule_schedules__schedule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Schedules"],"summary":"Delete Schedule","operationId":"delete_schedule_schedules__schedule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/enable":{"post":{"tags":["Schedules"],"summary":"Enable Schedule","operationId":"enable_schedule_schedules__schedule_id__enable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/disable":{"post":{"tags":["Schedules"],"summary":"Disable Schedule","operationId":"disable_schedule_schedules__schedule_id__disable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/trigger":{"post":{"tags":["Schedules"],"summary":"Trigger Schedule","operationId":"trigger_schedule_schedules__schedule_id__trigger_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Schedule is disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler is not running or storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs":{"get":{"tags":["Schedules"],"summary":"List Schedule Runs","operationId":"list_schedule_runs_schedules__schedule_id__runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleRunResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs/{run_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule Run","operationId":"get_schedule_run_schedules__schedule_id__runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals":{"get":{"tags":["Approvals"],"summary":"List Approvals","operationId":"list_approvals_approvals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","approved","rejected","expired","cancelled"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"source_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"}},{"name":"approval_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["required","audit"],"type":"string"},{"type":"null"}],"title":"Approval Type"}},{"name":"pause_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"schedule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"}},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ApprovalResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approvals could not be listed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/count":{"get":{"tags":["Approvals"],"summary":"Get Approval Count","operationId":"get_approval_count_approvals_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalCountResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval count could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/status":{"get":{"tags":["Approvals"],"summary":"Get Approval Status","operationId":"get_approval_status_approvals__approval_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalStatusResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval status could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}":{"get":{"tags":["Approvals"],"summary":"Get Approval","operationId":"get_approval_approvals__approval_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Approvals"],"summary":"Delete Approval","operationId":"delete_approval_approvals__approval_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval is not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/resolve":{"post":{"tags":["Approvals"],"summary":"Resolve Approval","operationId":"resolve_approval_approvals__approval_id__resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResolve"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Approval has already been resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts":{"post":{"tags":["Service Accounts"],"summary":"Create Service Account","description":"Mint a service account token. The plaintext token is returned exactly once.","operationId":"create_service_account_service_accounts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreateResponse"}}}},"400":{"description":"Requested scopes are invalid, or privileged scopes were not explicitly allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"An active service account with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"get":{"tags":["Service Accounts"],"summary":"List Service Accounts","description":"List service accounts. Returns metadata and display prefixes only - never hashes or plaintext.","operationId":"list_service_accounts_service_accounts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Revoked"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ServiceAccountResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts/{service_account_id}":{"delete":{"tags":["Service Accounts"],"summary":"Revoke Service Account","description":"Revoke an existing service account.\n\nTakes effect immediately on this worker (the local verification cache entry is evicted) and within the cache TTL on other workers.","operationId":"revoke_service_account_service_accounts__service_account_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"service_account_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Service account not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/registry":{"get":{"tags":["Registry"],"summary":"List Registry","description":"List all resources in the registry with optional filtering.","operationId":"list_registry","security":[{"HTTPBearer":[]}],"parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RegistryResourceType"},{"type":"null"}],"description":"Filter by resource type","title":"Resource Type"},"description":"Filter by resource type"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (partial match)","title":"Name"},"description":"Filter by name (partial match)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_RegistryContentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}}},"components":{"schemas":{"A2ACard_APIKeySecurityScheme":{"description":"Defines a security scheme using an API key.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"in":{"$ref":"#/components/schemas/A2ACard_In"},"name":{"title":"Name","type":"string"},"type":{"const":"apiKey","default":"apiKey","title":"Type","type":"string"}},"required":["in","name"],"title":"APIKeySecurityScheme","type":"object"},"A2ACard_AgentCapabilities":{"description":"Defines optional capabilities supported by an agent.","properties":{"extensions":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentExtension"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"pushNotifications":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Pushnotifications"},"stateTransitionHistory":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Statetransitionhistory"},"streaming":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Streaming"}},"title":"AgentCapabilities","type":"object"},"A2ACard_AgentCardSignature":{"description":"AgentCardSignature represents a JWS signature of an AgentCard.\nThis follows the JSON format of an RFC 7515 JSON Web Signature (JWS).","properties":{"header":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Header"},"protected":{"title":"Protected","type":"string"},"signature":{"title":"Signature","type":"string"}},"required":["protected","signature"],"title":"AgentCardSignature","type":"object"},"A2ACard_AgentExtension":{"description":"A declaration of a protocol extension supported by an Agent.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"params":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Params"},"required":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Required"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"AgentExtension","type":"object"},"A2ACard_AgentInterface":{"description":"Declares a combination of a target URL and a transport protocol for interacting with the agent.\nThis allows agents to expose the same functionality over multiple transport mechanisms.","properties":{"transport":{"examples":["JSONRPC","GRPC","HTTP+JSON"],"title":"Transport","type":"string"},"url":{"examples":["https://api.example.com/a2a/v1","https://grpc.example.com/a2a","https://rest.example.com/v1"],"title":"Url","type":"string"}},"required":["transport","url"],"title":"AgentInterface","type":"object"},"A2ACard_AgentProvider":{"description":"Represents the service provider of an agent.","properties":{"organization":{"title":"Organization","type":"string"},"url":{"title":"Url","type":"string"}},"required":["organization","url"],"title":"AgentProvider","type":"object"},"A2ACard_AgentSkill":{"description":"Represents a distinct capability or function that an agent can perform.","properties":{"description":{"title":"Description","type":"string"},"examples":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"examples":[["I need a recipe for bread"]],"title":"Examples"},"id":{"title":"Id","type":"string"},"inputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Inputmodes"},"name":{"title":"Name","type":"string"},"outputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Outputmodes"},"security":{"anyOf":[{"items":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},"type":"array"},{"type":"null"}],"default":null,"examples":[[{"google":["oidc"]}]],"title":"Security"},"tags":{"examples":[["cooking","customer support","billing"]],"items":{"type":"string"},"title":"Tags","type":"array"}},"required":["description","id","name","tags"],"title":"AgentSkill","type":"object"},"A2ACard_AuthorizationCodeOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Authorization Code flow.","properties":{"authorizationUrl":{"title":"Authorizationurl","type":"string"},"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["authorizationUrl","scopes","tokenUrl"],"title":"AuthorizationCodeOAuthFlow","type":"object"},"A2ACard_ClientCredentialsOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Client Credentials flow.","properties":{"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["scopes","tokenUrl"],"title":"ClientCredentialsOAuthFlow","type":"object"},"A2ACard_HTTPAuthSecurityScheme":{"description":"Defines a security scheme using HTTP authentication.","properties":{"bearerFormat":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Bearerformat"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"scheme":{"title":"Scheme","type":"string"},"type":{"const":"http","default":"http","title":"Type","type":"string"}},"required":["scheme"],"title":"HTTPAuthSecurityScheme","type":"object"},"A2ACard_ImplicitOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Implicit flow.","properties":{"authorizationUrl":{"title":"Authorizationurl","type":"string"},"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"}},"required":["authorizationUrl","scopes"],"title":"ImplicitOAuthFlow","type":"object"},"A2ACard_In":{"description":"The location of the API key.","enum":["cookie","header","query"],"title":"In","type":"string"},"A2ACard_MutualTLSSecurityScheme":{"description":"Defines a security scheme using mTLS authentication.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"type":{"const":"mutualTLS","default":"mutualTLS","title":"Type","type":"string"}},"title":"MutualTLSSecurityScheme","type":"object"},"A2ACard_OAuth2SecurityScheme":{"description":"Defines a security scheme using OAuth 2.0.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"flows":{"$ref":"#/components/schemas/A2ACard_OAuthFlows"},"oauth2MetadataUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Oauth2Metadataurl"},"type":{"const":"oauth2","default":"oauth2","title":"Type","type":"string"}},"required":["flows"],"title":"OAuth2SecurityScheme","type":"object"},"A2ACard_OAuthFlows":{"description":"Defines the configuration for the supported OAuth 2.0 flows.","properties":{"authorizationCode":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_AuthorizationCodeOAuthFlow"},{"type":"null"}],"default":null},"clientCredentials":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_ClientCredentialsOAuthFlow"},{"type":"null"}],"default":null},"implicit":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_ImplicitOAuthFlow"},{"type":"null"}],"default":null},"password":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_PasswordOAuthFlow"},{"type":"null"}],"default":null}},"title":"OAuthFlows","type":"object"},"A2ACard_OpenIdConnectSecurityScheme":{"description":"Defines a security scheme using OpenID Connect.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"openIdConnectUrl":{"title":"Openidconnecturl","type":"string"},"type":{"const":"openIdConnect","default":"openIdConnect","title":"Type","type":"string"}},"required":["openIdConnectUrl"],"title":"OpenIdConnectSecurityScheme","type":"object"},"A2ACard_PasswordOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Resource Owner Password flow.","properties":{"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["scopes","tokenUrl"],"title":"PasswordOAuthFlow","type":"object"},"A2ACard_SecurityScheme":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_APIKeySecurityScheme"},{"$ref":"#/components/schemas/A2ACard_HTTPAuthSecurityScheme"},{"$ref":"#/components/schemas/A2ACard_OAuth2SecurityScheme"},{"$ref":"#/components/schemas/A2ACard_OpenIdConnectSecurityScheme"},{"$ref":"#/components/schemas/A2ACard_MutualTLSSecurityScheme"}],"title":"SecurityScheme"},"A2ARequest_DataPart":{"description":"Represents a structured data segment (e.g., JSON) within a message or artifact.","properties":{"data":{"additionalProperties":true,"title":"Data","type":"object"},"kind":{"const":"data","default":"data","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["data"],"title":"DataPart","type":"object"},"A2ARequest_FilePart":{"description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI.","properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_FileWithBytes"},{"$ref":"#/components/schemas/A2ARequest_FileWithUri"}],"title":"File"},"kind":{"const":"file","default":"file","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["file"],"title":"FilePart","type":"object"},"A2ARequest_FileWithBytes":{"description":"Represents a file with its content provided directly as a base64-encoded string.","properties":{"bytes":{"title":"Bytes","type":"string"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"}},"required":["bytes"],"title":"FileWithBytes","type":"object"},"A2ARequest_FileWithUri":{"description":"Represents a file with its content located at a specific URI.","properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"FileWithUri","type":"object"},"A2ARequest_Message":{"description":"Represents a single message in the conversation between a user and an agent.","properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"kind":{"const":"message","default":"message","title":"Kind","type":"string"},"messageId":{"title":"Messageid","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/A2ARequest_Part"},"title":"Parts","type":"array"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/A2ARequest_Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Taskid"},"agentId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Agent ID","description":"Target agent, team, or workflow ID for deprecated dynamic-dispatch endpoints."}},"required":["messageId","parts","role"],"title":"Message","type":"object"},"A2ARequest_MessageSendConfiguration":{"description":"Defines configuration options for a `message/send` or `message/stream` request.","properties":{"acceptedOutputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Acceptedoutputmodes"},"blocking":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Blocking"},"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"pushNotificationConfig":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationConfig"},{"type":"null"}],"default":null}},"title":"MessageSendConfiguration","type":"object"},"A2ARequest_MessageSendParams":{"description":"Defines the parameters for a request to send a message to an agent. This can be used\nto create a new task, continue an existing one, or restart a task.","properties":{"configuration":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_MessageSendConfiguration"},{"type":"null"}],"default":null},"message":{"$ref":"#/components/schemas/A2ARequest_Message"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["message"],"title":"MessageSendParams","type":"object"},"A2ARequest_Part":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_TextPart"},{"$ref":"#/components/schemas/A2ARequest_FilePart"},{"$ref":"#/components/schemas/A2ARequest_DataPart"}],"title":"Part"},"A2ARequest_PushNotificationAuthenticationInfo":{"description":"Defines authentication details for a push notification endpoint.","properties":{"credentials":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Credentials"},"schemes":{"items":{"type":"string"},"title":"Schemes","type":"array"}},"required":["schemes"],"title":"PushNotificationAuthenticationInfo","type":"object"},"A2ARequest_PushNotificationConfig":{"description":"Defines the configuration for setting up push notifications for task updates.","properties":{"authentication":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationAuthenticationInfo"},{"type":"null"}],"default":null},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Id"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Token"},"url":{"title":"Url","type":"string"}},"required":["url"],"title":"PushNotificationConfig","type":"object"},"A2ARequest_Role":{"description":"Identifies the sender of the message. `user` for the client, `agent` for the service.","enum":["agent","user"],"title":"Role","type":"string"},"A2ARequest_TaskIdParams":{"description":"Defines parameters containing a task ID, used for simple task operations.","properties":{"id":{"title":"Id","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"contextId":{"type":"string","title":"Context ID","description":"Agno session ID containing the task."}},"required":["id"],"title":"TaskIdParams","type":"object"},"A2ARequest_TaskQueryParams":{"description":"Defines parameters for querying a task, with an option to limit history length.","properties":{"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"id":{"title":"Id","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"contextId":{"type":"string","title":"Context ID","description":"Agno session ID containing the task."}},"required":["id","contextId"],"title":"TaskQueryParams","type":"object"},"A2ARequest_TextPart":{"description":"Represents a text segment within a message or artifact.","properties":{"kind":{"const":"text","default":"text","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"text":{"title":"Text","type":"string"}},"required":["text"],"title":"TextPart","type":"object"},"ActivityMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"activity","title":"Role","default":"activity"},"activityType":{"type":"string","title":"Activitytype"},"content":{"additionalProperties":true,"type":"object","title":"Content"}},"additionalProperties":true,"type":"object","required":["id","activityType","content"],"title":"ActivityMessage","description":"An activity progress message emitted between chat messages."},"AgentCard":{"description":"The AgentCard is a self-describing manifest for an agent. It provides essential\nmetadata including the agent's identity, capabilities, skills, supported\ncommunication methods, and security requirements.","properties":{"additionalInterfaces":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentInterface"},"type":"array"},{"type":"null"}],"default":null,"title":"Additionalinterfaces"},"capabilities":{"$ref":"#/components/schemas/A2ACard_AgentCapabilities"},"defaultInputModes":{"items":{"type":"string"},"title":"Defaultinputmodes","type":"array"},"defaultOutputModes":{"items":{"type":"string"},"title":"Defaultoutputmodes","type":"array"},"description":{"examples":["Agent that helps users with recipes and cooking."],"title":"Description","type":"string"},"documentationUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Documentationurl"},"iconUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Iconurl"},"name":{"examples":["Recipe Agent"],"title":"Name","type":"string"},"preferredTransport":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"JSONRPC","examples":["JSONRPC","GRPC","HTTP+JSON"],"title":"Preferredtransport"},"protocolVersion":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"0.3.0","title":"Protocolversion"},"provider":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_AgentProvider"},{"type":"null"}],"default":null},"security":{"anyOf":[{"items":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},"type":"array"},{"type":"null"}],"default":null,"examples":[[{"oauth":["read"]},{"api-key":[],"mtls":[]}]],"title":"Security"},"securitySchemes":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/A2ACard_SecurityScheme"},"type":"object"},{"type":"null"}],"default":null,"title":"Securityschemes"},"signatures":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentCardSignature"},"type":"array"},{"type":"null"}],"default":null,"title":"Signatures"},"skills":{"items":{"$ref":"#/components/schemas/A2ACard_AgentSkill"},"title":"Skills","type":"array"},"supportsAuthenticatedExtendedCard":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Supportsauthenticatedextendedcard"},"url":{"examples":["https://api.example.com/a2a/v1"],"title":"Url","type":"string"},"version":{"examples":["1.0.0"],"title":"Version","type":"string"}},"required":["capabilities","defaultInputModes","defaultOutputModes","description","name","skills","url","version"],"title":"AgentCard","type":"object"},"AgentResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"extra_messages":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Messages"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"AgentResponse"},"AgentSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_session_id":{"type":"string","title":"Agent Session Id","description":"Unique agent session identifier"},"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID used in this session"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"agent_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Data","description":"Agent-specific data"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["agent_session_id","session_id","session_name"],"title":"AgentSessionDetailSchema"},"AgentSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the agent"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the agent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the agent"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the agent"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","title":"AgentSummaryResponse"},"ApprovalCountResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"ApprovalCountResponse","description":"Response model for pending approval count."},"ApprovalResolve":{"properties":{"status":{"type":"string","pattern":"^(approved|rejected)$","title":"Status"},"resolved_by":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Resolved By"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"}},"type":"object","required":["status"],"title":"ApprovalResolve","description":"Request body for resolving (approve/reject) an approval."},"ApprovalResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"},"source_type":{"type":"string","title":"Source Type"},"approval_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Type"},"pause_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Args"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"},"schedule_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Run Id"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"},"run_status":{"anyOf":[{"$ref":"#/components/schemas/RunStatus"},{"type":"null"}]}},"type":"object","required":["id","run_id","session_id","status","source_type"],"title":"ApprovalResponse","description":"Response model for a single approval."},"ApprovalStatusResponse":{"properties":{"approval_id":{"type":"string","title":"Approval Id"},"status":{"type":"string","title":"Status"},"run_id":{"type":"string","title":"Run Id"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"}},"type":"object","required":["approval_id","status","run_id"],"title":"ApprovalStatusResponse","description":"Lightweight response model for polling approval status."},"Artifact":{"properties":{"artifactId":{"type":"string","title":"Artifactid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"}},"type":"object","required":["artifactId","parts"],"title":"Artifact","description":"Represents a file, data structure, or other resource generated by an agent during a task."},"AssistantMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"assistant","title":"Role","default":"assistant"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"},"toolCalls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},{"type":"null"}],"title":"Toolcalls"}},"additionalProperties":true,"type":"object","required":["id"],"title":"AssistantMessage","description":"An assistant message."},"AudioInputContent":{"properties":{"type":{"type":"string","const":"audio","title":"Type","default":"audio"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"AudioInputContent","description":"An audio input content fragment."},"BackgroundRunResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the background run."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the background run."},"status":{"type":"string","title":"Status","description":"Initial run status."}},"type":"object","required":["run_id","session_id","status"],"title":"BackgroundRunResponse"},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"BadRequestResponse","example":{"detail":"Bad request","error_code":"BAD_REQUEST"}},"BinaryInputContent":{"properties":{"type":{"type":"string","const":"binary","title":"Type","default":"binary"},"mimeType":{"type":"string","title":"Mimetype"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"additionalProperties":true,"type":"object","required":["mimeType"],"title":"BinaryInputContent","description":"A deprecated binary payload reference in a multimodal user message."},"Body_continue_agent_run":{"properties":{"tools":{"type":"string","title":"Tools","description":"JSON string of tool call results to continue the paused run","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Optional new user-message text to append to the run before resuming. Use for continuing a COMPLETED run with a follow-up, or adding context to a RUNNING/ERROR resume."},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","description":"When true, clone the run with a new ``run_id`` before resuming. The original is untouched; the clone becomes a sibling within the same session, with ``forked_from_run_id`` set.","default":false},"regenerate":{"type":"boolean","title":"Regenerate","description":"Sugar: regenerate the last response of this run. Auto-computes ``continue_from='last_user'`` to land just after the last user message. Pair with ``additional_instructions`` to steer the new output. By default the original response is hidden from history (replaced); pass ``replace_original=false`` to keep both the original and the regenerated response visible side by side.","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original","description":"Only valid with ``regenerate=true``. Controls history visibility of the original response; the original run is always retained in storage. Defaults to true: the original is marked REGENERATED and hidden from history so the new response replaces it. Pass false to keep both the original and regenerated responses visible."},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions","description":"Only valid with ``regenerate=true``: extra guidance appended as a user message before re-generation. Friendly alias for ``input``."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run continue in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false}},"type":"object","title":"Body_continue_agent_run"},"Body_continue_team_run":{"properties":{"requirements":{"type":"string","title":"Requirements","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input"},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","default":false},"regenerate":{"type":"boolean","title":"Regenerate","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original"},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"stream":{"type":"boolean","title":"Stream","default":true},"background":{"type":"boolean","title":"Background","default":false}},"type":"object","title":"Body_continue_team_run"},"Body_continue_workflow_run":{"properties":{"step_requirements":{"type":"string","title":"Step Requirements","description":"JSON string of step requirement objects with resolution status","default":""},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}},"type":"object","title":"Body_continue_workflow_run"},"Body_create_agent_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the agent"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Agent version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic agent construction"}},"type":"object","required":["message"],"title":"Body_create_agent_run"},"Body_create_team_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the team"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"monitor":{"type":"boolean","title":"Monitor","description":"Enable monitoring and logging for this run","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Team version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic team construction"}},"type":"object","required":["message"],"title":"Body_create_team_run"},"Body_create_workflow_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the workflow"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run workflow in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Workflow version to use for this run"},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow construction"}},"type":"object","required":["message"],"title":"Body_create_workflow_run"},"Body_rename_session":{"properties":{"session_name":{"type":"string","title":"Session Name","description":"New name for the session"}},"type":"object","required":["session_name"],"title":"Body_rename_session"},"Body_resume_agent_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_agent_run_stream"},"Body_resume_team_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_team_run_stream"},"Body_resume_workflow_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_workflow_run_stream"},"Body_update_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"Content metadata as JSON string"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"Reader ID. In Agno 2.7.4, local knowledge validates the value, but the content patch does not apply or persist the reader change."}},"type":"object","title":"Body_update_content"},"Body_upload_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated from file/URL if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description for context"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"URL to fetch content from (JSON array or single URL string)"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object for additional content properties"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File","description":"File to upload for processing"},"text_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Content","description":"Raw text content to process"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for content processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply during processing"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size to use for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap to use for processing"}},"type":"object","title":"Body_upload_content"},"Body_upload_remote_content":{"properties":{"config_id":{"type":"string","title":"Config Id","description":"ID of the configured remote content source (from /knowledge/config)"},"path":{"type":"string","title":"Path","description":"Path to file or folder in the remote source"},"source_params":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Params","description":"JSON object of per-request parameters forwarded to the source's factory. Used for provider-specific routing that shouldn't be baked into the config. Currently supported keys: GitHub accepts 'repo' ('owner/repo'), letting one configured GitHub source serve multiple repositories the credentials can access."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap for processing"}},"type":"object","required":["config_id","path"],"title":"Body_upload_remote_content"},"CancelTaskRequest":{"description":"Represents a JSON-RPC request for the `tasks/cancel` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"tasks/cancel","default":"tasks/cancel","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_TaskIdParams"}},"required":["id","params"],"title":"CancelTaskRequest","type":"object"},"CancelTaskSuccessResponse":{"description":"Represents a successful JSON-RPC response for the `tasks/cancel` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"default":null,"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"result":{"$ref":"#/components/schemas/Task"}},"required":["result"],"title":"CancelTaskSuccessResponse","type":"object"},"ChatConfig":{"properties":{"quick_prompts":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Quick Prompts"}},"type":"object","required":["quick_prompts"],"title":"ChatConfig","description":"Configuration for the Chat page of the AgentOS"},"ChunkerSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["key"],"title":"ChunkerSchema"},"ComponentConfigResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"version":{"type":"integer","title":"Version"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"type":"string","title":"Stage"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","version","stage","config","created_at"],"title":"ComponentConfigResponse"},"ComponentCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Display name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id","description":"Unique identifier for the entity. Auto-generated from name if not provided."},"component_type":{"$ref":"#/components/schemas/ComponentType","description":"Type of entity: agent, team, or workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config","description":"Optional configuration"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["name","component_type"],"title":"ComponentCreate"},"ComponentResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"component_type":{"$ref":"#/components/schemas/ComponentType"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","component_type","created_at"],"title":"ComponentResponse"},"ComponentType":{"type":"string","enum":["agent","team","workflow"],"title":"ComponentType"},"ComponentUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"component_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"}},"type":"object","title":"ComponentUpdate"},"ConfigCreate":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config","description":"The configuration data"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Optional version number"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links","description":"Optional links to child components"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["config"],"title":"ConfigCreate"},"ConfigResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the OS instance"},"available_models":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Models","description":"List of available models"},"os_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Database","description":"ID of the database used for the OS instance"},"databases":{"items":{"type":"string"},"type":"array","title":"Databases","description":"List of database IDs used by the components of the OS instance"},"chat":{"anyOf":[{"$ref":"#/components/schemas/ChatConfig"},{"type":"null"}],"description":"Chat configuration"},"manifest":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Manifest"},"type":"object"},{"type":"null"}],"title":"Manifest","description":"Per-entity UI metadata keyed by agent/team/workflow id"},"session":{"anyOf":[{"$ref":"#/components/schemas/SessionConfig"},{"type":"null"}],"description":"Session configuration"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/MetricsConfig"},{"type":"null"}],"description":"Metrics configuration"},"memory":{"anyOf":[{"$ref":"#/components/schemas/MemoryConfig"},{"type":"null"}],"description":"Memory configuration"},"learning":{"anyOf":[{"$ref":"#/components/schemas/LearningConfig"},{"type":"null"}],"description":"Learning configuration"},"knowledge":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeConfig"},{"type":"null"}],"description":"Knowledge configuration"},"evals":{"anyOf":[{"$ref":"#/components/schemas/EvalsConfig"},{"type":"null"}],"description":"Evaluations configuration"},"traces":{"anyOf":[{"$ref":"#/components/schemas/TracesConfig"},{"type":"null"}],"description":"Traces configuration"},"agents":{"items":{"$ref":"#/components/schemas/AgentSummaryResponse"},"type":"array","title":"Agents","description":"List of registered agents"},"teams":{"items":{"$ref":"#/components/schemas/TeamSummaryResponse"},"type":"array","title":"Teams","description":"List of registered teams"},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Workflows","description":"List of registered workflows"},"interfaces":{"items":{"$ref":"#/components/schemas/InterfaceResponse"},"type":"array","title":"Interfaces","description":"List of available interfaces"}},"type":"object","required":["os_id","databases","agents","teams","workflows","interfaces"],"title":"ConfigResponse","description":"Response schema for the general config endpoint"},"ConfigResponseSchema":{"properties":{"readers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ReaderSchema"},"type":"object"},{"type":"null"}],"title":"Readers","description":"Available content readers"},"readersForType":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Readersfortype","description":"Mapping of content types to reader IDs"},"chunkers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ChunkerSchema"},"type":"object"},{"type":"null"}],"title":"Chunkers","description":"Available chunking strategies"},"filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filters","description":"Available filter tags"},"vector_dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/VectorDbSchema"},"type":"array"},{"type":"null"}],"title":"Vector Dbs","description":"Configured vector databases"},"remote_content_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"type":"array"},{"type":"null"}],"title":"Remote Content Sources","description":"Configured remote content sources (S3, GCS, SharePoint, GitHub)"}},"type":"object","title":"ConfigResponseSchema"},"ConfigUpdate":{"properties":{"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","title":"ConfigUpdate"},"ConflictResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ConflictResponse","example":{"detail":"Resource conflict"}},"ContentResponseSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the content"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"MIME type of the content"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"},"linked_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linked To","description":"Knowledge instance name used for content isolation. Local Agno 2.7.4 responses return null because response conversion does not propagate the stored value."},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata as key-value pairs"},"access_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Access Count","description":"Stored access count. Local Agno 2.7.4 responses return null because response conversion does not propagate the stored value."},"status":{"anyOf":[{"$ref":"#/components/schemas/ContentStatus"},{"type":"null"}],"description":"Processing status of the content"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message","description":"Status message or error details"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when content was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when content was last updated"}},"type":"object","required":["id"],"title":"ContentResponseSchema"},"ContentStatus":{"type":"string","enum":["processing","completed","failed"],"title":"ContentStatus","description":"Enumeration of possible content processing statuses."},"ContentStatusResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Content ID"},"status":{"$ref":"#/components/schemas/ContentStatus","description":"Current processing status of the content"},"status_message":{"type":"string","title":"Status Message","description":"Status message or error details","default":""}},"type":"object","required":["status"],"title":"ContentStatusResponse","description":"Response model for content status endpoint."},"Context":{"properties":{"description":{"type":"string","title":"Description"},"value":{"type":"string","title":"Value"}},"additionalProperties":true,"type":"object","required":["description","value"],"title":"Context","description":"Additional context for the agent."},"CreateSessionRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session ID (generated if not provided)"},"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Initial session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"}},"type":"object","title":"CreateSessionRequest"},"DataPart":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data"},"kind":{"type":"string","const":"data","title":"Kind","default":"data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["data"],"title":"DataPart","description":"Represents a structured data segment (e.g., JSON) within a message or artifact."},"DatabaseConfig_EvalsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/EvalsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[EvalsDomainConfig]"},"DatabaseConfig_LearningDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/LearningDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[LearningDomainConfig]"},"DatabaseConfig_MemoryDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MemoryDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MemoryDomainConfig]"},"DatabaseConfig_MetricsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MetricsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MetricsDomainConfig]"},"DatabaseConfig_SessionDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/SessionDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[SessionDomainConfig]"},"DatabaseConfig_TracesDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/TracesDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[TracesDomainConfig]"},"DayAggregatedMetrics":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the metrics record"},"agent_runs_count":{"type":"integer","minimum":0.0,"title":"Agent Runs Count","description":"Total number of agent runs"},"agent_sessions_count":{"type":"integer","minimum":0.0,"title":"Agent Sessions Count","description":"Total number of agent sessions"},"team_runs_count":{"type":"integer","minimum":0.0,"title":"Team Runs Count","description":"Total number of team runs"},"team_sessions_count":{"type":"integer","minimum":0.0,"title":"Team Sessions Count","description":"Total number of team sessions"},"workflow_runs_count":{"type":"integer","minimum":0.0,"title":"Workflow Runs Count","description":"Total number of workflow runs"},"workflow_sessions_count":{"type":"integer","minimum":0.0,"title":"Workflow Sessions Count","description":"Total number of workflow sessions"},"users_count":{"type":"integer","minimum":0.0,"title":"Users Count","description":"Total number of unique users"},"token_metrics":{"additionalProperties":true,"type":"object","title":"Token Metrics","description":"Token usage metrics (input, output, cached, etc.)"},"model_metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Model Metrics","description":"Metrics grouped by model (model_id, provider, count)"},"date":{"type":"string","format":"date-time","title":"Date","description":"Date for which these metrics are aggregated"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when metrics were created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when metrics were last updated"}},"type":"object","required":["id","agent_runs_count","agent_sessions_count","team_runs_count","team_sessions_count","workflow_runs_count","workflow_sessions_count","users_count","token_metrics","model_metrics","date","created_at","updated_at"],"title":"DayAggregatedMetrics","description":"Aggregated metrics for a given day"},"DeleteEvalRunsRequest":{"properties":{"eval_run_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Eval Run Ids","description":"List of evaluation run IDs to delete"}},"type":"object","required":["eval_run_ids"],"title":"DeleteEvalRunsRequest"},"DeleteMemoriesRequest":{"properties":{"memory_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Memory Ids","description":"List of memory IDs to delete"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID to filter memories for deletion"}},"type":"object","required":["memory_ids"],"title":"DeleteMemoriesRequest"},"DeleteSessionRequest":{"properties":{"session_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Session Ids","description":"List of session IDs to delete"},"session_types":{"items":{"$ref":"#/components/schemas/SessionType"},"type":"array","minItems":1,"title":"Session Types","description":"Types of sessions to delete"}},"type":"object","required":["session_ids","session_types"],"title":"DeleteSessionRequest"},"DeveloperMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"developer","title":"Role","default":"developer"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"DeveloperMessage","description":"A developer message."},"DocumentInputContent":{"properties":{"type":{"type":"string","const":"document","title":"Type","default":"document"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"DocumentInputContent","description":"A document input content fragment."},"EvalFilterType":{"type":"string","enum":["agent","team","workflow"],"title":"EvalFilterType"},"EvalRunInput":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID to evaluate"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID to evaluate"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID to use for evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation to run (accuracy, performance, or reliability)"},"input":{"type":"string","minLength":1,"title":"Input","description":"Input text/query for the evaluation"},"additional_guidelines":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Guidelines","description":"Additional guidelines for the evaluation"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for the evaluation"},"num_iterations":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Num Iterations","description":"Number of times to run the evaluation","default":1},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for this evaluation run"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output","description":"Expected output for accuracy evaluation"},"criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criteria","description":"Evaluation criteria for agent-as-judge evaluation"},"scoring_strategy":{"anyOf":[{"type":"string","enum":["numeric","binary"]},{"type":"null"}],"title":"Scoring Strategy","description":"Scoring strategy: 'numeric' (1-10 with threshold) or 'binary' (PASS/FAIL)","default":"binary"},"threshold":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Threshold","description":"Score threshold for pass/fail (1-10), only used with numeric scoring","default":7},"warmup_runs":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Warmup Runs","description":"Number of warmup runs before measuring performance","default":0},"expected_tool_calls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expected Tool Calls","description":"Expected tool calls for reliability evaluation"},"allow_additional_tool_calls":{"type":"boolean","title":"Allow Additional Tool Calls","description":"When True, tool calls not in expected_tool_calls are allowed (subset matching)","default":false},"expected_tool_call_arguments":{"anyOf":[{"additionalProperties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Expected Tool Call Arguments","description":"Expected arguments for specific tool calls, e.g. {\"tool_name\": {\"arg_name\": \"expected_value\"}} or {\"tool_name\": [{\"arg_name\": \"val1\"}, {\"arg_name\": \"val2\"}]}"}},"type":"object","required":["eval_type","input"],"title":"EvalRunInput"},"EvalSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the evaluation run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that was evaluated"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID used in evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that was evaluated"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was evaluated"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the evaluation run"},"evaluated_component_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluated Component Name","description":"Name of the evaluated component"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation (accuracy, performance, or reliability)"},"eval_data":{"additionalProperties":true,"type":"object","title":"Eval Data","description":"Evaluation results and metrics"},"eval_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eval Input","description":"Input parameters used for the evaluation"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when evaluation was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when evaluation was last updated"}},"type":"object","required":["id","eval_type","eval_data"],"title":"EvalSchema"},"EvalType":{"type":"string","enum":["accuracy","agent_as_judge","performance","reliability"],"title":"EvalType"},"EvalsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_EvalsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"EvalsConfig","description":"Configuration for the Evals domain of the AgentOS"},"EvalsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"EvalsDomainConfig","description":"Configuration for the Evals domain of the AgentOS"},"FilePart":{"properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/FileWithBytes"},{"$ref":"#/components/schemas/FileWithUri"}],"title":"File"},"kind":{"type":"string","const":"file","title":"Kind","default":"file"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["file"],"title":"FilePart","description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI."},"FileWithBytes":{"properties":{"bytes":{"type":"string","title":"Bytes"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["bytes"],"title":"FileWithBytes","description":"Represents a file with its content provided directly as a base64-encoded string."},"FileWithUri":{"properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uri":{"type":"string","title":"Uri"}},"type":"object","required":["uri"],"title":"FileWithUri","description":"Represents a file with its content located at a specific URI."},"FilterFieldSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Column/field name used in filter expressions"},"label":{"type":"string","title":"Label","description":"Human-readable display label for the UI"},"type":{"type":"string","title":"Type","description":"Field data type: string, number, datetime, enum"},"operators":{"items":{"type":"string"},"type":"array","title":"Operators","description":"List of valid filter operators for this field"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values","description":"Allowed enum values (for autocomplete/dropdown)"}},"type":"object","required":["key","label","type","operators"],"title":"FilterFieldSchema","description":"Schema describing a single filterable field for the frontend filter bar."},"FilterSchemaResponse":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FilterFieldSchema"},"type":"array","title":"Fields","description":"Available filterable fields"},"logical_operators":{"items":{"type":"string"},"type":"array","title":"Logical Operators","description":"Logical operators for combining filter clauses","default":["AND","OR"]}},"type":"object","required":["fields"],"title":"FilterSchemaResponse","description":"Response for the filter schema endpoint. Tells the FE what fields, operators, and values are available."},"ForbiddenResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ForbiddenResponse","example":{"detail":"Insufficient permissions"}},"FunctionCall":{"properties":{"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"additionalProperties":true,"type":"object","required":["name","arguments"],"title":"FunctionCall","description":"Name and arguments of a function call."},"GetTaskRequest":{"description":"Represents a JSON-RPC request for the `tasks/get` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"tasks/get","default":"tasks/get","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_TaskQueryParams"}},"required":["id","params"],"title":"GetTaskRequest","type":"object"},"GetTaskSuccessResponse":{"description":"Represents a successful JSON-RPC response for the `tasks/get` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"default":null,"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"result":{"$ref":"#/components/schemas/Task"}},"required":["result"],"title":"GetTaskSuccessResponse","type":"object"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Health status of the service"},"instantiated_at":{"type":"string","format":"date-time","title":"Instantiated At","description":"Timestamp when service was instantiated"}},"type":"object","required":["status","instantiated_at"],"title":"HealthResponse","example":{"instantiated_at":"2025-06-10T12:00:00Z","status":"ok"}},"ImageInputContent":{"properties":{"type":{"type":"string","const":"image","title":"Type","default":"image"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"ImageInputContent","description":"An image input content fragment."},"InfoResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"agno_version":{"type":"string","title":"Agno Version","description":"Version of the agno framework"},"agent_count":{"type":"integer","title":"Agent Count","description":"Number of agents registered in the OS","default":0},"team_count":{"type":"integer","title":"Team Count","description":"Number of teams registered in the OS","default":0},"workflow_count":{"type":"integer","title":"Workflow Count","description":"Number of workflows registered in the OS","default":0},"mcp":{"$ref":"#/components/schemas/McpInfo","description":"MCP server availability for this OS instance"},"auth_mode":{"type":"string","enum":["none","security_key","jwt"],"title":"Auth Mode","description":"Authentication mode enforced on the REST/WS plane of this OS instance. MCP OAuth, when enabled, is described separately under `mcp.oauth`.","default":"none"}},"type":"object","required":["os_id","agno_version"],"title":"InfoResponse","description":"Response schema for the /info endpoint returning lightweight OS metadata."},"InputContentDataSource":{"properties":{"type":{"type":"string","const":"data","title":"Type","default":"data"},"value":{"type":"string","title":"Value"},"mimeType":{"type":"string","title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value","mimeType"],"title":"InputContentDataSource","description":"Inline base64-encoded source."},"InputContentUrlSource":{"properties":{"type":{"type":"string","const":"url","title":"Type","default":"url"},"value":{"type":"string","title":"Value"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value"],"title":"InputContentUrlSource","description":"URL-referenced source."},"InterfaceResponse":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the interface"},"version":{"type":"string","title":"Version","description":"Version of the interface"},"route":{"type":"string","title":"Route","description":"API route path"}},"type":"object","required":["type","version","route"],"title":"InterfaceResponse"},"InternalServerErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"InternalServerErrorResponse","example":{"detail":"Internal server error","error_code":"INTERNAL_SERVER_ERROR"}},"KnowledgeConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeDatabaseConfig"},"type":"array"},{"type":"null"}],"title":"Dbs"},"knowledge_instances":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeInstanceConfig"},"type":"array"},{"type":"null"}],"title":"Knowledge Instances"}},"type":"object","title":"KnowledgeConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeDatabaseConfig":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeDomainConfig"},{"type":"null"}]},"tables":{"items":{"type":"string"},"type":"array","title":"Tables","default":[]}},"type":"object","required":["db_id"],"title":"KnowledgeDatabaseConfig","description":"Configuration for a knowledge database with its tables"},"KnowledgeDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"KnowledgeDomainConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeInstanceConfig":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"db_id":{"type":"string","title":"Db Id"},"table":{"type":"string","title":"Table"}},"type":"object","required":["id","name","db_id","table"],"title":"KnowledgeInstanceConfig","description":"Configuration for a single knowledge instance"},"LearningConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_LearningDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"LearningConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningCreate":{"properties":{"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"content":{"additionalProperties":true,"type":"object","title":"Content","description":"The learning content payload"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID. When the request is authenticated, must match the JWT subject or be omitted/null (which creates a global / non-user-scoped record)."},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"}},"type":"object","required":["learning_type","content"],"title":"LearningCreate","description":"Request body for creating a learning record."},"LearningDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"LearningDomainConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningResponse":{"properties":{"learning_id":{"type":"string","title":"Learning Id","description":"Unique identifier for the learning record"},"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID (for entity-specific learnings)"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type (e.g. 'person', 'company')"},"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"The learning content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Creation timestamp (Unix epoch seconds)"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp (Unix epoch seconds)"}},"type":"object","required":["learning_id","learning_type"],"title":"LearningResponse","description":"A single learning record as returned by the API."},"LearningUpdate":{"properties":{"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Replacement content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Replacement metadata"}},"type":"object","title":"LearningUpdate","description":"Request body for updating a learning record. Identity fields are immutable."},"LearningUserStats":{"properties":{"user_id":{"type":"string","title":"User Id","description":"The user ID"},"last_learning_updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Learning Updated At","description":"Most recent learning update for this user (Unix epoch seconds)"}},"type":"object","required":["user_id"],"title":"LearningUserStats","description":"A user that owns learning records, with their most recent activity.\n\nUsed as a lightweight index for the per-user view: list users here, then drill into a\nsingle user's records via ``GET /learnings?user_id=...``. No per-user count is returned\n-- the user-scoped stores (``user_profile``, ``user_memory``) keep a single record per\nuser, so a record count would always be 1; the actual memory count lives in that\nrecord's ``content``."},"Manifest":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"},"quick_prompts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quick Prompts"}},"type":"object","title":"Manifest","description":"OS-level UI metadata for an agent/team/workflow.\n\nFields here are AgentOS UI metadata only. ``description`` is unrelated to\n``Agent.description`` / ``Team.description`` / ``Workflow.description``,\nwhich are sent to the model.\n\nRendering surfaces:\n- ``description``, ``labels``: home/landing card\n- ``quick_prompts``: chat page"},"McpInfo":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the MCP server is enabled on this OS instance","default":false},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Path where the MCP server is mounted, null when disabled"},"oauth":{"anyOf":[{"$ref":"#/components/schemas/McpOAuthInfo"},{"type":"null"}],"description":"OAuth discovery details when the MCP endpoint is OAuth-protected, null otherwise"}},"type":"object","title":"McpInfo","description":"MCP server availability for the /info endpoint."},"McpOAuthInfo":{"properties":{"authorization_servers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorization Servers","description":"Issuer URL(s) of the authorization server(s) protecting the MCP endpoint"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource","description":"RFC 9728 resource URL advertised for the MCP endpoint"}},"type":"object","title":"McpOAuthInfo","description":"OAuth discovery details for an MCP endpoint protected by ``AgentOS(mcp_auth=...)``."},"MemoryConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MemoryDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MemoryConfig","description":"Configuration for the Memory domain of the AgentOS"},"MemoryDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MemoryDomainConfig","description":"Configuration for the Memory domain of the AgentOS"},"Message":{"properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"kind":{"type":"string","const":"message","title":"Kind","default":"message"},"messageId":{"type":"string","title":"Messageid"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taskid"}},"type":"object","required":["messageId","parts","role"],"title":"Message","description":"Represents a single message in the conversation between a user and an agent."},"Meta":{"properties":{"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of results per page","default":20},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number","default":1}},"type":"object","title":"Meta","description":"Inline metadata schema for pagination."},"MetricsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MetricsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MetricsConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MetricsDomainConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsResponse":{"properties":{"metrics":{"items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"type":"array","title":"Metrics","description":"List of daily aggregated metrics"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp of the most recent metrics update"}},"type":"object","required":["metrics"],"title":"MetricsResponse"},"Model":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"Model"},"ModelResponse":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the model"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"ModelResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"NotFoundResponse","example":{"detail":"Not found","error_code":"NOT_FOUND"}},"NotImplementedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"NotImplementedResponse","example":{"detail":"Operation not supported for this resource type"}},"OptimizeMemoriesRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID to optimize memories for"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model in `provider:model_id` format. Current examples include `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, and `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`."},"apply":{"type":"boolean","title":"Apply","description":"If True, apply optimization changes to database. If False, return preview only without saving.","default":true}},"type":"object","required":["user_id"],"title":"OptimizeMemoriesRequest","description":"Schema for memory optimization request"},"OptimizeMemoriesResponse":{"properties":{"memories":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Memories","description":"List of optimized memory objects"},"memories_before":{"type":"integer","minimum":0.0,"title":"Memories Before","description":"Number of memories before optimization"},"memories_after":{"type":"integer","minimum":0.0,"title":"Memories After","description":"Number of memories after optimization"},"tokens_before":{"type":"integer","minimum":0.0,"title":"Tokens Before","description":"Token count before optimization"},"tokens_after":{"type":"integer","minimum":0.0,"title":"Tokens After","description":"Token count after optimization"},"tokens_saved":{"type":"integer","minimum":0.0,"title":"Tokens Saved","description":"Number of tokens saved through optimization"},"reduction_percentage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Reduction Percentage","description":"Percentage of token reduction achieved"}},"type":"object","required":["memories","memories_before","memories_after","tokens_before","tokens_after","tokens_saved","reduction_percentage"],"title":"OptimizeMemoriesResponse","description":"Schema for memory optimization response"},"PaginatedResponse_ApprovalResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ApprovalResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ApprovalResponse]"},"PaginatedResponse_ComponentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ComponentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ComponentResponse]"},"PaginatedResponse_ContentResponseSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentResponseSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ContentResponseSchema]"},"PaginatedResponse_EvalSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EvalSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[EvalSchema]"},"PaginatedResponse_LearningResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningResponse]"},"PaginatedResponse_LearningUserStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningUserStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningUserStats]"},"PaginatedResponse_RegistryContentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RegistryContentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[RegistryContentResponse]"},"PaginatedResponse_ScheduleResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleResponse]"},"PaginatedResponse_ScheduleRunResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleRunResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleRunResponse]"},"PaginatedResponse_ServiceAccountResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ServiceAccountResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ServiceAccountResponse]"},"PaginatedResponse_SessionSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SessionSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[SessionSchema]"},"PaginatedResponse_TraceDetail_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceDetail"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceDetail]"},"PaginatedResponse_TraceSessionStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSessionStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSessionStats]"},"PaginatedResponse_TraceSummary_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSummary"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSummary]"},"PaginatedResponse_UserMemorySchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserMemorySchema]"},"PaginatedResponse_UserStatsSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserStatsSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserStatsSchema]"},"PaginatedResponse_VectorSearchResult_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VectorSearchResult"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[VectorSearchResult]"},"PaginationInfo":{"properties":{"page":{"type":"integer","minimum":0.0,"title":"Page","description":"Page value returned by the endpoint. AgentOS paginated routes use 1-based page numbers. Some Agno 2.7.4 routes accept and echo 0 even though their pagination implementation is 1-based.","default":0},"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of items per page","default":20},"total_pages":{"type":"integer","minimum":0.0,"title":"Total Pages","description":"Total number of pages","default":0},"total_count":{"type":"integer","minimum":0.0,"title":"Total Count","description":"Total count of items","default":0},"search_time_ms":{"type":"number","minimum":0.0,"title":"Search Time Ms","description":"Search execution time in milliseconds","default":0}},"type":"object","title":"PaginationInfo"},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/DataPart"}],"title":"Part"},"ReaderSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the reader"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the reader"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the reader's capabilities"},"chunkers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chunkers","description":"List of supported chunking strategies"}},"type":"object","required":["id"],"title":"ReaderSchema"},"ReasoningMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"reasoning","title":"Role","default":"reasoning"},"content":{"type":"string","title":"Content"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"ReasoningMessage","description":"A reasoning message containing the agent's internal reasoning process."},"RegistryContentResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/RegistryResourceType"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name","type"],"title":"RegistryContentResponse"},"RegistryResourceType":{"type":"string","enum":["tool","model","db","vector_db","schema","function","agent","team","knowledge","memory_manager","session_summary_manager"],"title":"RegistryResourceType","description":"Types of resources that can be stored in a registry."},"RemoteContentSourceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content source"},"name":{"type":"string","title":"Name","description":"Display name for the content source"},"type":{"type":"string","title":"Type","description":"Type of content source (s3, gcs, sharepoint, github, azureblob)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Default path prefix for this source"}},"type":"object","required":["id","name","type"],"title":"RemoteContentSourceSchema","description":"Schema for remote content source configuration."},"ResumeEntry":{"properties":{"interruptId":{"type":"string","title":"Interruptid"},"status":{"type":"string","enum":["resolved","cancelled"],"title":"Status"},"payload":{"anyOf":[{},{"type":"null"}],"title":"Payload"}},"additionalProperties":true,"type":"object","required":["interruptId","status"],"title":"ResumeEntry","description":"A per-interrupt response in the resume array of a RunAgentInput."},"Role":{"type":"string","enum":["agent","user"],"title":"Role","description":"Identifies the sender of the message. `user` for the client, `agent` for the service."},"RunAgentInput":{"properties":{"threadId":{"type":"string","title":"Threadid"},"runId":{"type":"string","title":"Runid"},"parentRunId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentrunid"},"state":{"title":"State"},"messages":{"items":{"oneOf":[{"$ref":"#/components/schemas/DeveloperMessage"},{"$ref":"#/components/schemas/SystemMessage"},{"$ref":"#/components/schemas/AssistantMessage"},{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/ToolMessage"},{"$ref":"#/components/schemas/ActivityMessage"},{"$ref":"#/components/schemas/ReasoningMessage"}],"discriminator":{"propertyName":"role","mapping":{"activity":"#/components/schemas/ActivityMessage","assistant":"#/components/schemas/AssistantMessage","developer":"#/components/schemas/DeveloperMessage","reasoning":"#/components/schemas/ReasoningMessage","system":"#/components/schemas/SystemMessage","tool":"#/components/schemas/ToolMessage","user":"#/components/schemas/UserMessage"}}},"type":"array","title":"Messages"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","title":"Tools"},"context":{"items":{"$ref":"#/components/schemas/Context"},"type":"array","title":"Context"},"forwardedProps":{"title":"Forwardedprops"},"resume":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResumeEntry"},"type":"array"},{"type":"null"}],"title":"Resume"}},"additionalProperties":true,"type":"object","required":["threadId","runId","state","messages","tools","context","forwardedProps"],"title":"RunAgentInput","description":"Input for running an agent."},"RunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that executed this run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"RunSchema"},"RunStatus":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","PAUSED","CANCELLED","ERROR","REGENERATED"],"title":"RunStatus","description":"State of the main run response"},"ScheduleCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"cron_expr":{"type":"string","maxLength":128,"title":"Cron Expr"},"endpoint":{"type":"string","maxLength":512,"title":"Endpoint"},"method":{"type":"string","maxLength":10,"title":"Method","default":"POST"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"type":"string","maxLength":64,"title":"Timezone","default":"UTC"},"timeout_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Timeout Seconds","default":3600},"max_retries":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Max Retries","default":0},"retry_delay_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Retry Delay Seconds","default":60}},"type":"object","required":["name","cron_expr","endpoint"],"title":"ScheduleCreate"},"ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"cron_expr":{"type":"string","title":"Cron Expr"},"timezone":{"type":"string","title":"Timezone"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"max_retries":{"type":"integer","title":"Max Retries"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","method","endpoint","cron_expr","timezone","timeout_seconds","max_retries","retry_delay_seconds","enabled"],"title":"ScheduleResponse"},"ScheduleRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"schedule_id":{"type":"string","title":"Schedule Id"},"attempt":{"type":"integer","title":"Attempt"},"triggered_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triggered At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"status":{"type":"string","title":"Status"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","schedule_id","attempt","status"],"title":"ScheduleRunResponse"},"ScheduleStateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","enabled"],"title":"ScheduleStateResponse","description":"Trimmed response for state-changing operations (enable/disable)."},"ScheduleUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"cron_expr":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Cron Expr"},"endpoint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Endpoint"},"method":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Method"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Timezone"},"timeout_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":1.0},{"type":"null"}],"title":"Timeout Seconds"},"max_retries":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Max Retries"},"retry_delay_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":1.0},{"type":"null"}],"title":"Retry Delay Seconds"}},"type":"object","title":"ScheduleUpdate"},"ScopeItem":{"properties":{"scope":{"type":"string","title":"Scope","description":"Scope string, e.g. 'agents:*:run'"},"effect":{"type":"string","enum":["allow","deny"],"title":"Effect","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["scope"],"title":"ScopeItem","description":"Write shape for one scope grant \u2014 the canonical RBAC payload for every scope-bearing API.\n\nEndpoints that take scopes accept these objects only (a bare string is a validation\nerror). ``effect`` is constrained here so every consumer rejects typos at the model\nlayer; whether ``deny`` is *semantically* legal stays per-endpoint (roles support\ndeny rules, service-account tokens are pure grants and reject it)."},"ScopeSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Scope id (always null here; kept for shape parity with the cloud RBAC API, which addresses scopes individually)"},"raw":{"type":"string","title":"Raw","description":"Original scope string, e.g. 'agents:*:run'"},"namespace":{"type":"string","title":"Namespace","description":"Resource namespace, e.g. 'agents'"},"sub_namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Namespace","description":"Specific resource id or wildcard '*'"},"permission":{"type":"string","title":"Permission","description":"Action, e.g. 'read' / 'run' / 'write'"},"value":{"type":"string","title":"Value","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["raw","namespace","permission"],"title":"ScopeSchema","description":"Read shape for one scope \u2014 the parsed RBAC payload shared by every scope-bearing API.\n\nMirrors the cloud RBAC scope shape ({raw, namespace, sub_namespace, permission, value})\nso a frontend renders scopes from any AgentOS API with one integration."},"SendMessageRequest":{"description":"Represents a JSON-RPC request for the `message/send` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/send","default":"message/send","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendMessageRequest","type":"object"},"SendMessageSuccessResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id"},"jsonrpc":{"type":"string","const":"2.0","title":"Jsonrpc","default":"2.0"},"result":{"anyOf":[{"$ref":"#/components/schemas/Task"},{"$ref":"#/components/schemas/Message"}],"title":"Result"}},"type":"object","required":["result"],"title":"SendMessageSuccessResponse","description":"Represents a successful JSON-RPC response for the `message/send` method."},"SendStreamingMessageRequest":{"description":"Represents a JSON-RPC request for the `message/stream` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/stream","default":"message/stream","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendStreamingMessageRequest","type":"object"},"ServiceAccountCreate":{"properties":{"name":{"type":"string","maxLength":63,"title":"Name","description":"Machine identity name (lowercase slug), e.g. 'claude-code' or 'github-actions'"},"scopes":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScopeItem"},"type":"array"},{"type":"null"}],"title":"Scopes","description":"Scopes granted to the token, as {scope, effect} objects (the shared RBAC write shape; token scopes are grants, so only effect='allow' is accepted). Defaults to run and read scopes: agents:run, teams:run, workflows:run, sessions:read"},"expires_in_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Expires In Days","description":"Days until the token expires (default: 90)","default":90},"never_expires":{"type":"boolean","title":"Never Expires","description":"Mint a non-expiring token. Must be set explicitly; overrides expires_in_days.","default":false},"allow_privileged_scopes":{"type":"boolean","title":"Allow Privileged Scopes","description":"Required to grant privileged scopes: any write or delete action, the admin scope, or any service_accounts scope. Privileged tokens must be deliberate, never accidental.","default":false}},"type":"object","required":["name"],"title":"ServiceAccountCreate"},"ServiceAccountCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"token":{"type":"string","title":"Token","description":"The plaintext token. Shown exactly once - store it securely now."}},"type":"object","required":["id","name","principal","token_prefix","created_at","token"],"title":"ServiceAccountCreateResponse","description":"Returned once, at creation. The token is never retrievable again."},"ServiceAccountResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","name","principal","token_prefix","created_at"],"title":"ServiceAccountResponse","description":"Service account metadata. Never includes the token hash or plaintext."},"ServiceUnavailableResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ServiceUnavailableResponse","example":{"detail":"Feature not supported by the configured service"}},"SessionConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_SessionDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"SessionConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"SessionDomainConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier for the session"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state data of the session"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when session was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when session was last updated"},"session_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type","description":"Type of session: agent, team, or workflow"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["session_id","session_name"],"title":"SessionSchema"},"SessionType":{"type":"string","enum":["agent","team","workflow"],"title":"SessionType"},"SlackChallengeResponse":{"properties":{"challenge":{"type":"string","title":"Challenge","description":"Challenge string to echo back to Slack"}},"type":"object","required":["challenge"],"title":"SlackChallengeResponse"},"SlackEventResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"}},"type":"object","title":"SlackEventResponse"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"SourceFileSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Full path/key of the file"},"name":{"type":"string","title":"Name","description":"Display name (filename)"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"File size in bytes"},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified","description":"ISO 8601 timestamp of last modification"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"MIME type of the file"}},"type":"object","required":["key","name"],"title":"SourceFileSchema","description":"Schema for a file in a content source."},"SourceFilesResponseSchema":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"ID of the content source"},"source_name":{"type":"string","title":"Source Name","description":"Name of the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Prefix filter that was applied"},"folders":{"items":{"$ref":"#/components/schemas/SourceFolderSchema"},"type":"array","title":"Folders","description":"Subfolders at this level"},"files":{"items":{"$ref":"#/components/schemas/SourceFileSchema"},"type":"array","title":"Files","description":"List of files at this level"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["source_id","source_name","meta"],"title":"SourceFilesResponseSchema","description":"Response schema for listing files in a content source."},"SourceFolderSchema":{"properties":{"prefix":{"type":"string","title":"Prefix","description":"Full prefix to use for navigating into this folder"},"name":{"type":"string","title":"Name","description":"Display name of the folder"},"is_empty":{"type":"boolean","title":"Is Empty","description":"Whether the folder contains any files","default":false}},"type":"object","required":["prefix","name"],"title":"SourceFolderSchema","description":"Schema for a folder in a content source."},"SystemMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"system","title":"Role","default":"system"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"SystemMessage","description":"A system message."},"Task":{"properties":{"artifacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Artifact"},"type":"array"},{"type":"null"}],"title":"Artifacts"},"contextId":{"type":"string","title":"Contextid"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"History"},"id":{"type":"string","title":"Id"},"kind":{"type":"string","const":"task","title":"Kind","default":"task"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"status":{"$ref":"#/components/schemas/TaskStatus"}},"type":"object","required":["contextId","id","status"],"title":"Task","description":"Represents a single, stateful operation or conversation between a client and an agent."},"TaskState":{"type":"string","enum":["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"],"title":"TaskState","description":"Defines the lifecycle states of a Task."},"TaskStatus":{"properties":{"message":{"anyOf":[{"$ref":"#/components/schemas/Message"},{"type":"null"}]},"state":{"$ref":"#/components/schemas/TaskState"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp","examples":["2023-10-27T10:00:00Z"]}},"type":"object","required":["state"],"title":"TaskStatus","description":"Represents the status of a task at a specific point in time."},"TeamResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"members":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"$ref":"#/components/schemas/TeamResponse"}]},"type":"array"},{"type":"null"}],"title":"Members"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"TeamResponse"},"TeamRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the team run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that executed this run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the team run"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this team run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this team run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this team run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this team run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"TeamRunSchema"},"TeamSessionDetailSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID used in this session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of team interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"team_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Team Data","description":"Team-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"}},"type":"object","required":["session_id","session_name"],"title":"TeamSessionDetailSchema"},"TeamSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the team"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the team"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the team"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Team execution mode (coordinate, route, broadcast, tasks)"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the team leader"}},"type":"object","title":"TeamSummaryResponse"},"TelegramStatusResponse":{"properties":{"status":{"type":"string","title":"Status","default":"available"}},"type":"object","title":"TelegramStatusResponse"},"TelegramWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status"}},"type":"object","required":["status"],"title":"TelegramWebhookResponse"},"TextInputContent":{"properties":{"type":{"type":"string","const":"text","title":"Type","default":"text"},"text":{"type":"string","title":"Text"}},"additionalProperties":true,"type":"object","required":["text"],"title":"TextInputContent","description":"A text fragment in a multimodal user message."},"TextPart":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"TextPart","description":"Represents a text segment within a message or artifact."},"Tool":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{},{"type":"null"}],"title":"Parameters"}},"additionalProperties":true,"type":"object","required":["name","description"],"title":"Tool","description":"A tool definition."},"ToolCall":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/FunctionCall"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","function"],"title":"ToolCall","description":"A tool call, modelled after OpenAI tool calls."},"ToolMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"tool","title":"Role","default":"tool"},"content":{"type":"string","title":"Content"},"toolCallId":{"type":"string","title":"Toolcallid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content","toolCallId"],"title":"ToolMessage","description":"A tool result message."},"TraceDetail":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent/workflow"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the agent/workflow"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"},"tree":{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array","title":"Tree","description":"Hierarchical tree of spans (root nodes)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at","tree"],"title":"TraceDetail","description":"Detailed trace information with hierarchical span tree"},"TraceNode":{"properties":{"id":{"type":"string","title":"Id","description":"Span ID"},"name":{"type":"string","title":"Name","description":"Span name (e.g., 'agent.run', 'llm.invoke')"},"type":{"type":"string","title":"Type","description":"Span kind (AGENT, TEAM, WORKFLOW, LLM, TOOL)"},"duration":{"type":"string","title":"Duration","description":"Human-readable duration (e.g., '123ms', '1.5s')"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"End time (Pydantic auto-serializes to ISO 8601)"},"status":{"type":"string","title":"Status","description":"Status code (OK, ERROR)"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the span"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the span"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"spans":{"anyOf":[{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array"},{"type":"null"}],"title":"Spans","description":"Child spans in the trace hierarchy"},"step_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Type","description":"Workflow step type (Step, Condition, function, Agent, Team)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional span attributes and data"},"extra_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Data","description":"Flexible field for custom attributes and additional data"}},"type":"object","required":["id","name","type","duration","start_time","end_time","status"],"title":"TraceNode","description":"Recursive node structure for rendering trace hierarchy in the frontend"},"TraceSearchGroupBy":{"type":"string","enum":["run","session"],"title":"TraceSearchGroupBy","description":"Grouping options for trace search results."},"TraceSearchRequest":{"properties":{"filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter","description":"FilterExpr DSL as JSON dict. Supports operators: EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH, AND, OR, NOT."},"group_by":{"$ref":"#/components/schemas/TraceSearchGroupBy","description":"Grouping mode: 'run' returns individual TraceDetail, 'session' returns aggregated TraceSessionStats.","default":"run"},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number (1-indexed)","default":1},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"Number of traces per page (max 100)","default":20}},"type":"object","title":"TraceSearchRequest","description":"Request body for POST /traces/search with advanced filtering.\n\nThe filter field accepts a FilterExpr DSL dict supporting composable queries\nwith AND/OR/NOT logic and operators like EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH.\n\nExample for run grouping (default):\n {\n \"filter\": {\n \"op\": \"AND\",\n \"conditions\": [\n {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n {\"op\": \"CONTAINS\", \"key\": \"user_id\", \"value\": \"admin\"}\n ]\n },\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n }\n\nExample for session grouping:\n {\n \"filter\": {\"op\": \"EQ\", \"key\": \"agent_id\", \"value\": \"my-agent\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n }"},"TraceSessionStats":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID(s) used in the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID associated with the session"},"total_traces":{"type":"integer","title":"Total Traces","description":"Total number of traces in this session"},"first_trace_at":{"type":"string","format":"date-time","title":"First Trace At","description":"Time of first trace (Pydantic auto-serializes to ISO 8601)"},"last_trace_at":{"type":"string","format":"date-time","title":"Last Trace At","description":"Time of last trace (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["session_id","total_traces","first_trace_at","last_trace_at"],"title":"TraceSessionStats","description":"Aggregated trace statistics grouped by session"},"TraceSummary":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR, UNSET)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at"],"title":"TraceSummary","description":"Summary information for trace list view"},"TracesConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_TracesDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"TracesConfig","description":"Configuration for the Traces domain of the AgentOS"},"TracesDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"TracesDomainConfig","description":"Configuration for the Traces domain of the AgentOS"},"UnauthenticatedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"UnauthenticatedResponse","example":{"detail":"Unauthenticated access","error_code":"UNAUTHENTICATED"}},"UpdateEvalRunRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"New name for the evaluation run"}},"type":"object","required":["name"],"title":"UpdateEvalRunRequest"},"UpdateSessionRequest":{"properties":{"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Updated session name"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Updated session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Updated metadata"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary","description":"Session summary"}},"type":"object","title":"UpdateSessionRequest"},"UserMemoryCreateSchema":{"properties":{"memory":{"type":"string","maxLength":5000,"minLength":1,"title":"Memory","description":"Memory content text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags to categorize the memory"}},"type":"object","required":["memory"],"title":"UserMemoryCreateSchema","description":"Define the payload expected for creating a new user memory"},"UserMemorySchema":{"properties":{"memory_id":{"type":"string","title":"Memory Id","description":"Unique identifier for the memory"},"memory":{"type":"string","title":"Memory","description":"Memory content text"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags associated with the memory"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID associated with this memory"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with this memory"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when memory was last updated"}},"type":"object","required":["memory_id","memory"],"title":"UserMemorySchema"},"UserMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"user","title":"Role","default":"user"},"content":{"anyOf":[{"type":"string"},{"items":{"oneOf":[{"$ref":"#/components/schemas/TextInputContent"},{"$ref":"#/components/schemas/ImageInputContent"},{"$ref":"#/components/schemas/AudioInputContent"},{"$ref":"#/components/schemas/VideoInputContent"},{"$ref":"#/components/schemas/DocumentInputContent"},{"$ref":"#/components/schemas/BinaryInputContent"}],"discriminator":{"propertyName":"type","mapping":{"audio":"#/components/schemas/AudioInputContent","binary":"#/components/schemas/BinaryInputContent","document":"#/components/schemas/DocumentInputContent","image":"#/components/schemas/ImageInputContent","text":"#/components/schemas/TextInputContent","video":"#/components/schemas/VideoInputContent"}}},"type":"array"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"UserMessage","description":"A user message supporting text or multimodal content."},"UserStatsSchema":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"total_memories":{"type":"integer","minimum":0.0,"title":"Total Memories","description":"Total number of memories for this user"},"last_memory_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Memory Updated At","description":"Timestamp of the most recent memory update"}},"type":"object","required":["user_id","total_memories"],"title":"UserStatsSchema","description":"Schema for user memory statistics"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"ValidationErrorResponse","example":{"detail":"Validation error","error_code":"VALIDATION_ERROR"}},"VectorDbSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the vector database"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the vector database"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the vector database"},"search_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Search Types","description":"List of supported search types (vector, keyword, hybrid)"}},"type":"object","required":["id"],"title":"VectorDbSchema"},"VectorSearchRequestSchema":{"properties":{"query":{"type":"string","title":"Query","description":"The search query text"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database ID to search in"},"knowledge_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledge Id","description":"Knowledge base ID to search in"},"vector_db_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vector Db Ids","description":"List of vector database IDs to search in"},"search_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Type","description":"The type of search to perform (vector, keyword, hybrid)"},"max_results":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Max Results","description":"The maximum number of results to return"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Filters to apply to the search results"},"meta":{"anyOf":[{"$ref":"#/components/schemas/Meta"},{"type":"null"}],"description":"Pagination metadata. Limit and page number to return a subset of results."}},"type":"object","required":["query"],"title":"VectorSearchRequestSchema","description":"Schema for vector search request."},"VectorSearchResult":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the search result document"},"content":{"type":"string","title":"Content","description":"Content text of the document"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the document"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Metadata associated with the document"},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"Usage statistics (e.g., token counts)"},"reranking_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reranking Score","description":"Reranking score for relevance"},"content_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Id","description":"ID of the source content"},"content_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Origin","description":"Origin URL or source of the content"},"size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"}},"type":"object","required":["id","content"],"title":"VectorSearchResult","description":"Schema for search result documents."},"VideoInputContent":{"properties":{"type":{"type":"string","const":"video","title":"Type","default":"video"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"VideoInputContent","description":"A video input content fragment."},"WhatsAppWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status","default":"ok"}},"type":"object","title":"WhatsAppWebhookResponse"},"WorkflowResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema","description":"Input schema for the workflow"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps","description":"List of workflow steps"},"agent":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"type":"null"}],"description":"Agent configuration if used"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamResponse"},{"type":"null"}],"description":"Team configuration if used"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"workflow_agent":{"type":"boolean","title":"Workflow Agent","description":"Whether this workflow uses a WorkflowAgent","default":false},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowResponse"},"WorkflowRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the workflow run"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the workflow"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was executed"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the workflow"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"Type of content returned"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status of the workflow run"},"step_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Results","description":"Results from each workflow step"},"step_executor_runs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Executor Runs","description":"Executor runs for each step"},"step_requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Requirements","description":"HITL step requirements (resolved state for historical display)"},"pause_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Kind","description":"Kind of HITL pause: 'step' or 'executor'"},"paused_step_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Step Name","description":"Name of the step that caused the pause"},"paused_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Paused Step Index","description":"Index of the step that caused the pause"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the workflow"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the workflow"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the workflow"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the workflow"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the workflow"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"}},"type":"object","required":["run_id"],"title":"WorkflowRunSchema"},"WorkflowSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID used in this session"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name","description":"Name of the workflow"},"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Data","description":"Complete session data"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current workflow state"},"workflow_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Data","description":"Workflow-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["session_id","session_name"],"title":"WorkflowSessionDetailSchema"},"WorkflowSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowSummaryResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} diff --git a/reference-api/openapi.yaml b/reference-api/openapi.yaml index c4e670a8a..a68ad470d 100644 --- a/reference-api/openapi.yaml +++ b/reference-api/openapi.yaml @@ -410,10 +410,7 @@ paths: tags: - Agents summary: Cancel Agent Run - description: |- - Cancel a currently executing agent run. This will attempt to stop the agent's execution gracefully. - - **Note:** Cancellation may not be immediate for all operations. + description: Request cancellation for `run_id`. After any required ownership check, local and factory agents store cancellation intent keyed by run ID. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote agent. operationId: cancel_agent_run security: - HTTPBearer: [] @@ -437,17 +434,17 @@ paths: anyOf: - type: string - type: 'null' - description: Session ID the run belongs to. Required for non-admin JWT users. + description: 'Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.' title: Session Id - description: Session ID the run belongs to. Required for non-admin JWT users. + description: 'Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.' responses: '200': - description: Successful Response + description: Cancellation request accepted. The empty response does not confirm run existence or remote delivery. content: application/json: schema: {} '400': - description: Bad Request + description: A user-scoped caller omitted session_id content: application/json: schema: @@ -465,7 +462,7 @@ paths: schema: $ref: '#/components/schemas/ForbiddenResponse' '404': - description: Agent not found + description: Agent not found, or the run could not be verified in the caller's session. content: application/json: schema: @@ -1320,10 +1317,7 @@ paths: tags: - Teams summary: Cancel Team Run - description: |- - Cancel a currently executing team run. This will attempt to stop the team's execution gracefully. - - **Note:** Cancellation may not be immediate for all operations. + description: Request cancellation for `run_id`. After any required ownership check, local and factory teams store cancellation intent keyed by run ID and mark known member runs for cancellation. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote team. operationId: cancel_team_run security: - HTTPBearer: [] @@ -1347,17 +1341,17 @@ paths: anyOf: - type: string - type: 'null' - description: Session ID the run belongs to. Required for non-admin JWT users. + description: 'Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.' title: Session Id - description: Session ID the run belongs to. Required for non-admin JWT users. + description: 'Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.' responses: '200': - description: Successful Response + description: Cancellation request accepted. The empty response does not confirm run existence or remote delivery. content: application/json: schema: {} '400': - description: Bad Request + description: A user-scoped caller omitted session_id content: application/json: schema: @@ -1375,7 +1369,7 @@ paths: schema: $ref: '#/components/schemas/ForbiddenResponse' '404': - description: Team not found + description: Team not found, or the run could not be verified in the caller's session. content: application/json: schema: @@ -2114,15 +2108,8 @@ paths: get: tags: - Workflows - summary: List All Workflows - description: |- - Retrieve a comprehensive list of all workflows configured in this OS instance. - - **Return Information:** - - Workflow metadata (ID, name, description) - - Input schema requirements - - Step sequence and execution flow - - Associated agents and teams + summary: List Workflows + description: Return workflow ID, name, description, database ID, factory metadata, and Builder version metadata. When authorization is enabled, caller scopes filter in-memory workflow registrations. Database-loaded Builder workflows are appended separately. operationId: get_workflows responses: '200': @@ -2526,9 +2513,7 @@ paths: tags: - Workflows summary: Cancel Workflow Run - description: |- - Cancel a currently executing workflow run, stopping all active steps and cleanup. - **Note:** Complex workflows with multiple parallel steps may take time to fully cancel. + description: Request cancellation for `run_id`. After any required ownership check, local and factory workflows store cancellation intent keyed by run ID and mark known agent or team executor runs for cancellation. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote workflow. operationId: cancel_workflow_run security: - HTTPBearer: [] @@ -2552,17 +2537,17 @@ paths: anyOf: - type: string - type: 'null' - description: Session ID the run belongs to. Required for non-admin JWT users. + description: 'Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.' title: Session Id - description: Session ID the run belongs to. Required for non-admin JWT users. + description: 'Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.' responses: '200': - description: Successful Response + description: Cancellation request accepted. The empty response does not confirm run existence or remote delivery. content: application/json: schema: {} '400': - description: Bad Request + description: A user-scoped caller omitted session_id content: application/json: schema: @@ -2580,7 +2565,7 @@ paths: schema: $ref: '#/components/schemas/ForbiddenResponse' '404': - description: Workflow not found, or the requested run was not found in the caller's session + description: Workflow not found, or the run could not be verified in the caller's session. content: application/json: schema: @@ -4190,10 +4175,10 @@ paths: - type: integer minimum: 0 - type: 'null' - description: Page number for pagination + description: 1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater. default: 1 title: Page - description: Page number for pagination + description: 1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater. - name: sort_by in: query required: false @@ -5607,10 +5592,10 @@ paths: - type: integer minimum: 0 - type: 'null' - description: Page number for pagination + description: 1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater. default: 1 title: Page - description: Page number for pagination + description: 1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater. - name: sort_by in: query required: false @@ -6115,10 +6100,10 @@ paths: - type: integer minimum: 0 - type: 'null' - description: Page number for pagination + description: 1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater. default: 1 title: Page - description: Page number for pagination + description: 1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater. - name: user_id in: query required: false @@ -7160,10 +7145,10 @@ paths: - type: integer minimum: 0 - type: 'null' - description: Page number + description: 1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater. default: 1 title: Page - description: Page number + description: 1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater. - name: sort_by in: query required: false @@ -7919,7 +7904,7 @@ paths: tags: - Knowledge summary: List Content - description: Retrieve paginated list of all content in the knowledge base with filtering and sorting options. Filter by status, content type, or metadata properties. + description: Return a paginated, sorted list of content for the selected knowledge base. Use `limit`, `page`, `sort_by`, and `sort_order` to control the result. Agno 2.7.4 exposes no status, content type, or metadata filter parameters on this endpoint. Named local knowledge instances scope rows by the stored `linked_to` value. operationId: get_content security: - HTTPBearer: [] @@ -7944,10 +7929,10 @@ paths: - type: integer minimum: 0 - type: 'null' - description: Page number + description: 1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater. default: 1 title: Page - description: Page number + description: 1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater. - name: sort_by in: query required: false @@ -8005,11 +7990,12 @@ paths: type: application/pdf size: '251261' metadata: {} - access_count: 1 + access_count: null status: completed status_message: '' created_at: '2025-09-08T15:22:53Z' updated_at: '2025-09-08T15:22:54Z' + linked_to: null meta: page: 1 limit: 20 @@ -8271,11 +8257,12 @@ paths: type: application/pdf size: '251261' metadata: {} - access_count: 1 + access_count: null status: completed status_message: '' created_at: '2025-09-08T15:22:53Z' updated_at: '2025-09-08T15:22:54Z' + linked_to: null '400': description: Invalid request - malformed metadata or invalid reader_id content: @@ -8361,11 +8348,12 @@ paths: type: application/pdf size: '251261' metadata: {} - access_count: 1 + access_count: null status: completed status_message: '' created_at: '2025-09-08T15:22:53Z' updated_at: '2025-09-08T15:22:54Z' + linked_to: null '400': description: Bad Request content: @@ -8485,7 +8473,7 @@ paths: tags: - Knowledge summary: Get Content Status - description: Retrieve the current processing status of a content item. Useful for monitoring asynchronous content processing progress and identifying any processing errors. + description: Return the processing status for a content ID. For local knowledge in Agno 2.7.4, an unknown content ID returns HTTP 200 with `status="failed"` and `status_message="Content not found"`. operationId: get_content_status security: - HTTPBearer: [] @@ -8518,17 +8506,24 @@ paths: description: Knowledge base ID to use responses: '200': - description: Content status retrieved successfully + description: Content status returned. An unknown local content ID is represented by status "failed". content: application/json: schema: $ref: '#/components/schemas/ContentStatusResponse' examples: completed: - summary: Example completed content status + summary: Completed content value: + id: content-123 status: completed status_message: '' + content_not_found: + summary: Unknown local content ID + value: + id: missing-content + status: failed + status_message: Content not found '400': description: Bad Request content: @@ -8548,7 +8543,7 @@ paths: schema: $ref: '#/components/schemas/ForbiddenResponse' '404': - description: Content not found + description: Selected knowledge base or database ID not found content: application/json: schema: @@ -9382,10 +9377,10 @@ paths: schema: type: integer minimum: 0 - description: Page number (1-indexed) + description: 1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater. default: 1 title: Page - description: Page number (1-indexed) + description: 1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater. - name: limit in: query required: false @@ -14944,7 +14939,7 @@ components: - type: string - type: 'null' title: Linked To - description: ID of related content if linked + description: Knowledge instance name used for content isolation. Local Agno 2.7.4 responses return null because response conversion does not propagate the stored value. metadata: anyOf: - additionalProperties: true @@ -14958,7 +14953,7 @@ components: minimum: 0.0 - type: 'null' title: Access Count - description: Number of times content has been accessed + description: Stored access count. Local Agno 2.7.4 responses return null because response conversion does not propagate the stored value. status: anyOf: - $ref: '#/components/schemas/ContentStatus' @@ -16996,7 +16991,7 @@ components: type: integer minimum: 0.0 title: Page - description: Current page number (0-indexed) + description: Page value returned by the endpoint. AgentOS paginated routes use 1-based page numbers. Some Agno 2.7.4 routes accept and echo 0 even though their pagination implementation is 1-based. default: 0 limit: type: integer diff --git a/scripts/make_openapi.py b/scripts/make_openapi.py index 9b19d4532..957501ddd 100644 --- a/scripts/make_openapi.py +++ b/scripts/make_openapi.py @@ -219,6 +219,11 @@ def sort_responses(operation: dict) -> None: sorted(operation["responses"].items(), key=lambda item: int(item[0])) ) + def get_parameter(operation: dict, name: str) -> dict: + matches = [parameter for parameter in operation["parameters"] if parameter["name"] == name] + assert len(matches) == 1, (operation.get("operationId"), name, len(matches)) + return matches[0] + for schema_name, title, example in ( ("ForbiddenResponse", "ForbiddenResponse", {"detail": "Insufficient permissions"}), ("ConflictResponse", "ConflictResponse", {"detail": "Resource conflict"}), @@ -498,6 +503,136 @@ def sort_responses(operation: dict) -> None: "Database-loaded team components are also included." ) + list_workflows = spec["paths"]["/workflows"]["get"] + assert list_workflows["summary"] == "List All Workflows" + list_workflows["summary"] = "List Workflows" + assert list_workflows["description"] == ( + "Retrieve a comprehensive list of all workflows configured in this OS instance.\n\n" + "**Return Information:**\n" + "- Workflow metadata (ID, name, description)\n" + "- Input schema requirements\n" + "- Step sequence and execution flow\n" + "- Associated agents and teams" + ) + list_workflows["description"] = ( + "Return workflow ID, name, description, database ID, factory metadata, and Builder " + "version metadata. When authorization is enabled, caller scopes filter in-memory " + "workflow registrations. Database-loaded Builder workflows are appended separately." + ) + + content_status = spec["paths"]["/knowledge/content/{content_id}/status"]["get"] + assert content_status["description"] == ( + "Retrieve the current processing status of a content item. Useful for monitoring " + "asynchronous content processing progress and identifying any processing errors." + ) + content_status["description"] = ( + "Return the processing status for a content ID. For local knowledge in Agno 2.7.4, " + "an unknown content ID returns HTTP 200 with `status=\"failed\"` and " + "`status_message=\"Content not found\"`." + ) + content_status_responses = content_status["responses"] + assert content_status_responses["200"]["description"] == "Content status retrieved successfully" + content_status_responses["200"]["description"] = ( + 'Content status returned. An unknown local content ID is represented by status "failed".' + ) + status_examples = content_status_responses["200"]["content"]["application/json"]["examples"] + assert set(status_examples) == {"completed"} + status_examples.clear() + status_examples.update( + { + "completed": { + "summary": "Completed content", + "value": { + "id": "content-123", + "status": "completed", + "status_message": "", + }, + }, + "content_not_found": { + "summary": "Unknown local content ID", + "value": { + "id": "missing-content", + "status": "failed", + "status_message": "Content not found", + }, + }, + } + ) + assert content_status_responses["404"]["description"] == "Content not found" + content_status_responses["404"]["description"] = "Selected knowledge base or database ID not found" + + list_content = spec["paths"]["/knowledge/content"]["get"] + assert list_content["description"] == ( + "Retrieve paginated list of all content in the knowledge base with filtering and sorting options. " + "Filter by status, content type, or metadata properties." + ) + list_content["description"] = ( + "Return a paginated, sorted list of content for the selected knowledge base. Use `limit`, " + "`page`, `sort_by`, and `sort_order` to control the result. Agno 2.7.4 exposes no status, " + "content type, or metadata filter parameters on this endpoint. Named local knowledge " + "instances scope rows by the stored `linked_to` value." + ) + + one_based_page_description = ( + "1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the " + "pagination implementation is 1-based. Use 1 or greater." + ) + zero_accepting_page_parameters = ( + ("/sessions", "Page number for pagination"), + ("/memories", "Page number for pagination"), + ("/user_memory_stats", "Page number for pagination"), + ("/eval-runs", "Page number"), + ("/knowledge/content", "Page number"), + ("/traces", "Page number (1-indexed)"), + ) + for path, source_description in zero_accepting_page_parameters: + operation = spec["paths"][path]["get"] + page_parameter = get_parameter(operation, "page") + assert page_parameter["description"] == source_description + assert page_parameter["schema"]["description"] == source_description + assert page_parameter["schema"]["default"] == 1 + page_minimum = page_parameter["schema"].get("minimum") + if page_minimum is None: + page_minimum = page_parameter["schema"]["anyOf"][0]["minimum"] + assert page_minimum == 0 + page_parameter["description"] = one_based_page_description + page_parameter["schema"]["description"] = one_based_page_description + + pagination_page = schemas["PaginationInfo"]["properties"]["page"] + assert pagination_page["description"] == "Current page number (0-indexed)" + assert pagination_page["minimum"] == 0 and pagination_page["default"] == 0 + pagination_page["description"] = ( + "Page value returned by the endpoint. AgentOS paginated routes use 1-based page numbers. " + "Some Agno 2.7.4 routes accept and echo 0 even though their pagination implementation " + "is 1-based." + ) + + content_properties = schemas["ContentResponseSchema"]["properties"] + assert content_properties["linked_to"]["description"] == "ID of related content if linked" + content_properties["linked_to"]["description"] = ( + "Knowledge instance name used for content isolation. Local Agno 2.7.4 responses return " + "null because response conversion does not propagate the stored value." + ) + assert content_properties["access_count"]["description"] == ( + "Number of times content has been accessed" + ) + content_properties["access_count"]["description"] = ( + "Stored access count. Local Agno 2.7.4 responses return null because response conversion " + "does not propagate the stored value." + ) + + content_examples = ( + list_content["responses"]["200"]["content"]["application/json"]["example"]["data"][0], + spec["paths"]["/knowledge/content/{content_id}"]["patch"]["responses"]["200"]["content"] + ["application/json"]["example"], + spec["paths"]["/knowledge/content/{content_id}"]["get"]["responses"]["200"]["content"] + ["application/json"]["example"], + ) + for example in content_examples: + assert example["access_count"] == 1 and "linked_to" not in example + example["access_count"] = None + example["linked_to"] = None + for path, description in ( ("/knowledge/remote-content", "Remote content upload is unavailable for remote knowledge bases"), ( @@ -1534,11 +1669,74 @@ def sort_responses(operation: dict) -> None: assert resume_team["responses"]["404"]["description"] == "Team not found" resume_team["responses"]["404"]["description"] = "Team or run not found" - cancel_workflow = spec["paths"]["/workflows/{workflow_id}/runs/{run_id}/cancel"]["post"] - assert cancel_workflow["responses"]["404"]["description"] == "Workflow or run not found" - cancel_workflow["responses"]["404"]["description"] = ( - "Workflow not found, or the requested run was not found in the caller's session" + cancellation_session_description = ( + "Session ID used to verify run ownership. Required when the caller is user-scoped: " + "service accounts, and non-admin JWT users when user isolation is enabled. Admin and " + "otherwise unscoped callers can omit it." ) + cancellation_contracts = ( + ( + "/agents/{agent_id}/runs/{run_id}/cancel", + "Agent", + "Cancel a currently executing agent run. This will attempt to stop the agent's execution " + "gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.", + "Agent not found", + "Request cancellation for `run_id`. After any required ownership check, local and " + "factory agents store cancellation intent keyed by run ID. For admins and otherwise " + "unscoped callers, this also supports cancel-before-start for an unregistered ID. " + "Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that " + "an active run existed or that cancellation was delivered to a remote agent.", + ), + ( + "/teams/{team_id}/runs/{run_id}/cancel", + "Team", + "Cancel a currently executing team run. This will attempt to stop the team's execution " + "gracefully.\n\n**Note:** Cancellation may not be immediate for all operations.", + "Team not found", + "Request cancellation for `run_id`. After any required ownership check, local and " + "factory teams store cancellation intent keyed by run ID and mark known member runs for " + "cancellation. For admins and otherwise unscoped callers, this also supports " + "cancel-before-start for an unregistered ID. Cancellation is cooperative and may not " + "be immediate. HTTP 200 does not confirm that an active run existed or that " + "cancellation was delivered to a remote team.", + ), + ( + "/workflows/{workflow_id}/runs/{run_id}/cancel", + "Workflow", + "Cancel a currently executing workflow run, stopping all active steps and cleanup.\n" + "**Note:** Complex workflows with multiple parallel steps may take time to fully cancel.", + "Workflow or run not found", + "Request cancellation for `run_id`. After any required ownership check, local and " + "factory workflows store cancellation intent keyed by run ID and mark known agent or " + "team executor runs for cancellation. For admins and otherwise unscoped callers, this " + "also supports cancel-before-start for an unregistered ID. Cancellation is cooperative " + "and may not be immediate. HTTP 200 does not confirm that an active run existed or that " + "cancellation was delivered to a remote workflow.", + ), + ) + for path, component, source_description, source_not_found, description in cancellation_contracts: + operation = spec["paths"][path]["post"] + assert operation["description"] == source_description + operation["description"] = description + session_parameter = get_parameter(operation, "session_id") + assert session_parameter["description"] == ( + "Session ID the run belongs to. Required for non-admin JWT users." + ) + assert session_parameter["schema"]["description"] == session_parameter["description"] + session_parameter["description"] = cancellation_session_description + session_parameter["schema"]["description"] = cancellation_session_description + responses = operation["responses"] + assert responses["200"]["description"] == "Successful Response" + responses["200"]["description"] = ( + "Cancellation request accepted. The empty response does not confirm run existence or " + "remote delivery." + ) + assert responses["400"]["description"] == "Bad Request" + responses["400"]["description"] = "A user-scoped caller omitted session_id" + assert responses["404"]["description"] == source_not_found + responses["404"]["description"] = ( + f"{component} not found, or the run could not be verified in the caller's session." + ) delete_memory = spec["paths"]["/memories/{memory_id}"]["delete"] assert delete_memory["responses"]["404"]["description"] == "Memory not found" From 51917096545b58dda080fc1e25a67c5e4add08ea Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 08:21:00 +0100 Subject: [PATCH 30/47] docs: correct generated import prerequisites --- examples/agent-os/dbs/valkey-db.mdx | 6 ++ .../multimodal/media-input-for-tool.mdx | 2 +- .../advanced/per-user-isolation/valkey-db.mdx | 20 +++++- .../integrations/vector-dbs/scylladb.mdx | 9 ++- examples/models/cohere/retry.mdx | 4 +- examples/models/sambanova/retry.mdx | 4 +- examples/models/siliconflow/retry.mdx | 4 +- .../vertexai/claude/adaptive-thinking.mdx | 8 +++ examples/models/vertexai/retry.mdx | 4 +- examples/models/vllm/retry.mdx | 4 +- examples/storage/valkey/valkey-for-agent.mdx | 6 ++ examples/storage/valkey/valkey-for-team.mdx | 6 ++ .../storage/valkey/valkey-for-workflow.mdx | 6 ++ scripts/examples_sync/generate.py | 66 ++++++++++++++++--- 14 files changed, 128 insertions(+), 21 deletions(-) diff --git a/examples/agent-os/dbs/valkey-db.mdx b/examples/agent-os/dbs/valkey-db.mdx index a4b13fd59..5677fb93e 100644 --- a/examples/agent-os/dbs/valkey-db.mdx +++ b/examples/agent-os/dbs/valkey-db.mdx @@ -99,6 +99,12 @@ if __name__ == "__main__": + + ```bash + docker run -d --name my-valkey -p 6379:6379 valkey/valkey-bundle + ``` + + Save the code above as `valkey_db.py`, then run: ```bash diff --git a/examples/agents/multimodal/media-input-for-tool.mdx b/examples/agents/multimodal/media-input-for-tool.mdx index 739a951ad..ae3ae6ff6 100644 --- a/examples/agents/multimodal/media-input-for-tool.mdx +++ b/examples/agents/multimodal/media-input-for-tool.mdx @@ -136,7 +136,7 @@ if __name__ == "__main__": ```bash - uv pip install -U agno google-genai + uv pip install -U agno google-genai openai ``` diff --git a/examples/knowledge/advanced/per-user-isolation/valkey-db.mdx b/examples/knowledge/advanced/per-user-isolation/valkey-db.mdx index 06006f680..100858bce 100644 --- a/examples/knowledge/advanced/per-user-isolation/valkey-db.mdx +++ b/examples/knowledge/advanced/per-user-isolation/valkey-db.mdx @@ -119,7 +119,25 @@ if __name__ == "__main__": ```bash - uv pip install -U agno valkey-glide-sync + uv pip install -U agno openai valkey-glide-sync + ``` + + + + + ```bash Mac/Linux + export OPENAI_API_KEY="your_openai_api_key_here" + ``` + + ```bash Windows + $Env:OPENAI_API_KEY="your_openai_api_key_here" + ``` + + + + + ```bash + docker run -d --name my-valkey -p 6379:6379 valkey/valkey-bundle ``` diff --git a/examples/knowledge/integrations/vector-dbs/scylladb.mdx b/examples/knowledge/integrations/vector-dbs/scylladb.mdx index 5c7b04f4f..c641ad52d 100644 --- a/examples/knowledge/integrations/vector-dbs/scylladb.mdx +++ b/examples/knowledge/integrations/vector-dbs/scylladb.mdx @@ -120,7 +120,7 @@ if __name__ == "__main__": ```bash - uv pip install -U agno cassandra openai pypdf + uv pip install -U agno cassio openai pypdf scylla-driver ``` @@ -136,6 +136,13 @@ if __name__ == "__main__": + + Start a local ScyllaDB node with CassIO compatibility: + ```bash + docker run -d --name scylla -p 9042:9042 scylladb/scylla:latest --developer-mode=1 --enable-cassio-compatibility=1 + ``` + + Save the code above as `scylladb.py`, then run: ```bash diff --git a/examples/models/cohere/retry.mdx b/examples/models/cohere/retry.mdx index 6be891082..f799ad997 100644 --- a/examples/models/cohere/retry.mdx +++ b/examples/models/cohere/retry.mdx @@ -5,7 +5,7 @@ source: cookbook/90_models/cohere/retry.py --- - The pinned v2.7.4 source imports the removed `CohereChat` class and fails before testing retries. It also assumes an invalid model ID reaches the retry path, while invalid-model responses commonly use terminal 400 or 404 statuses. + The pinned v2.7.4 source uses the unavailable import `from agno.models.cohere import CohereChat` and fails before testing retries. It also assumes an invalid model ID reaches the retry path, while invalid-model responses commonly use terminal 400 or 404 statuses. ```python retry.py @@ -42,6 +42,6 @@ if __name__ == "__main__": ## Current Alternative -Use the released `Cohere` class shown in [Cohere Knowledge](/examples/models/cohere/knowledge). Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests), then test with a controlled transient 429, connection failure, or 5xx response. +Replace `from agno.models.cohere import CohereChat` with `from agno.models.cohere import Cohere` and update the constructor name when its capitalization changed. Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests), then test with a controlled transient 429, connection failure, or 5xx response. Full source: [cookbook/90_models/cohere/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/cohere/retry.py) diff --git a/examples/models/sambanova/retry.mdx b/examples/models/sambanova/retry.mdx index d1d32d06f..4d5fbfb14 100644 --- a/examples/models/sambanova/retry.mdx +++ b/examples/models/sambanova/retry.mdx @@ -5,7 +5,7 @@ source: cookbook/90_models/sambanova/retry.py --- - This example assumes an invalid model ID triggers the configured retries. Invalid-model responses commonly use terminal 400 or 404 statuses, which Agno does not retry. Do not run this source as a retry test. + The pinned v2.7.4 source uses the unavailable import `from agno.models.sambanova import SambaNova` and fails before testing retries. It also assumes an invalid model ID reaches the retry path, while invalid-model responses commonly use terminal 400 or 404 statuses. ```python retry.py @@ -42,6 +42,6 @@ if __name__ == "__main__": ## Current Alternative -Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. +Replace `from agno.models.sambanova import SambaNova` with `from agno.models.sambanova import Sambanova` and update the constructor name when its capitalization changed. Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests), then test with a controlled transient 429, connection failure, or 5xx response. Full source: [cookbook/90_models/sambanova/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/sambanova/retry.py) diff --git a/examples/models/siliconflow/retry.mdx b/examples/models/siliconflow/retry.mdx index 294ad13ee..8e8886562 100644 --- a/examples/models/siliconflow/retry.mdx +++ b/examples/models/siliconflow/retry.mdx @@ -5,7 +5,7 @@ source: cookbook/90_models/siliconflow/retry.py --- - This example assumes an invalid model ID triggers the configured retries. Invalid-model responses commonly use terminal 400 or 404 statuses, which Agno does not retry. Do not run this source as a retry test. + The pinned v2.7.4 source uses the unavailable import `from agno.models.siliconflow import SiliconFlow` and fails before testing retries. It also assumes an invalid model ID reaches the retry path, while invalid-model responses commonly use terminal 400 or 404 statuses. ```python retry.py @@ -42,6 +42,6 @@ if __name__ == "__main__": ## Current Alternative -Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. +Replace `from agno.models.siliconflow import SiliconFlow` with `from agno.models.siliconflow import Siliconflow` and update the constructor name when its capitalization changed. Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests), then test with a controlled transient 429, connection failure, or 5xx response. Full source: [cookbook/90_models/siliconflow/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/siliconflow/retry.py) diff --git a/examples/models/vertexai/claude/adaptive-thinking.mdx b/examples/models/vertexai/claude/adaptive-thinking.mdx index 5b5f924c1..5a1a43387 100644 --- a/examples/models/vertexai/claude/adaptive-thinking.mdx +++ b/examples/models/vertexai/claude/adaptive-thinking.mdx @@ -6,6 +6,10 @@ source: cookbook/90_models/vertexai/claude/adaptive_thinking.py Cookbook example demonstrating adaptive thinking with output_config on VertexAI. + + The pinned v2.7.4 source imports `Claude` from the empty `agno.models.vertexai` package root. Use the released module path before running. + + ```python adaptive_thinking.py """ VertexAI Claude Adaptive Thinking @@ -91,6 +95,10 @@ if __name__ == "__main__": ``` + + Replace `from agno.models.vertexai import Claude` with `from agno.models.vertexai.claude import Claude` in the saved file. + + Save the code above as `adaptive_thinking.py`, then run: ```bash diff --git a/examples/models/vertexai/retry.mdx b/examples/models/vertexai/retry.mdx index 0a65738c8..ba9c20fc9 100644 --- a/examples/models/vertexai/retry.mdx +++ b/examples/models/vertexai/retry.mdx @@ -5,7 +5,7 @@ source: cookbook/90_models/vertexai/retry.py --- - This example assumes an invalid model ID triggers the configured retries. Invalid-model responses commonly use terminal 400 or 404 statuses, which Agno does not retry. Do not run this source as a retry test. + The pinned v2.7.4 source uses the unavailable import `from agno.models.vertexai import Claude` and fails before testing retries. It also assumes an invalid model ID reaches the retry path, while invalid-model responses commonly use terminal 400 or 404 statuses. ```python retry.py @@ -42,6 +42,6 @@ if __name__ == "__main__": ## Current Alternative -Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. +Replace `from agno.models.vertexai import Claude` with `from agno.models.vertexai.claude import Claude` and update the constructor name when its capitalization changed. Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests), then test with a controlled transient 429, connection failure, or 5xx response. Full source: [cookbook/90_models/vertexai/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vertexai/retry.py) diff --git a/examples/models/vllm/retry.mdx b/examples/models/vllm/retry.mdx index a9b5a907d..4890a23e9 100644 --- a/examples/models/vllm/retry.mdx +++ b/examples/models/vllm/retry.mdx @@ -5,7 +5,7 @@ source: cookbook/90_models/vllm/retry.py --- - This example assumes an invalid model ID triggers the configured retries. Invalid-model responses commonly use terminal 400 or 404 statuses, which Agno does not retry. Do not run this source as a retry test. + The pinned v2.7.4 source uses the unavailable import `from agno.models.vllm import vLLM` and fails before testing retries. It also assumes an invalid model ID reaches the retry path, while invalid-model responses commonly use terminal 400 or 404 statuses. ```python retry.py @@ -42,6 +42,6 @@ if __name__ == "__main__": ## Current Alternative -Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests). Test the retry path with a controlled transient 429, connection failure, or 5xx response. +Replace `from agno.models.vllm import vLLM` with `from agno.models.vllm import VLLM` and update the constructor name when its capitalization changed. Configure `retries`, `delay_between_retries`, and `exponential_backoff` as shown in [Retry Model Requests](/models/overview#retry-model-requests), then test with a controlled transient 429, connection failure, or 5xx response. Full source: [cookbook/90_models/vllm/retry.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/vllm/retry.py) diff --git a/examples/storage/valkey/valkey-for-agent.mdx b/examples/storage/valkey/valkey-for-agent.mdx index b11d23734..2035e212b 100644 --- a/examples/storage/valkey/valkey-for-agent.mdx +++ b/examples/storage/valkey/valkey-for-agent.mdx @@ -76,6 +76,12 @@ if __name__ == "__main__": + + ```bash + docker run -d --name my-valkey -p 6379:6379 valkey/valkey-bundle + ``` + + Save the code above as `valkey_for_agent.py`, then run: ```bash diff --git a/examples/storage/valkey/valkey-for-team.mdx b/examples/storage/valkey/valkey-for-team.mdx index d5c6b5d7a..a49fe6164 100644 --- a/examples/storage/valkey/valkey-for-team.mdx +++ b/examples/storage/valkey/valkey-for-team.mdx @@ -107,6 +107,12 @@ if __name__ == "__main__": + + ```bash + docker run -d --name my-valkey -p 6379:6379 valkey/valkey-bundle + ``` + + Save the code above as `valkey_for_team.py`, then run: ```bash diff --git a/examples/storage/valkey/valkey-for-workflow.mdx b/examples/storage/valkey/valkey-for-workflow.mdx index 0ff511345..95ab6791f 100644 --- a/examples/storage/valkey/valkey-for-workflow.mdx +++ b/examples/storage/valkey/valkey-for-workflow.mdx @@ -105,6 +105,12 @@ if __name__ == "__main__": + + ```bash + docker run -d --name my-valkey -p 6379:6379 valkey/valkey-bundle + ``` + + Save the code above as `valkey_for_workflow.py`, then run: ```bash diff --git a/scripts/examples_sync/generate.py b/scripts/examples_sync/generate.py index 0516d559f..4b1e70162 100644 --- a/scripts/examples_sync/generate.py +++ b/scripts/examples_sync/generate.py @@ -464,6 +464,7 @@ "qdrant": ("agno.vectordb.qdrant", "qdrant_client"), "redis": ("agno.db.redis", "agno.vectordb.redis", "redis"), "surrealdb": ("agno.db.surrealdb", "agno.vectordb.surrealdb", "surrealdb"), + "valkey": ("agno.db.valkey", "agno.vectordb.valkey", "glide_sync"), } SERVICE_STEPS = { "mysql": ( @@ -478,6 +479,7 @@ "Run SurrealDB", "docker run -d --rm --name surrealdb --pull always -p 8000:8000 surrealdb/surrealdb:latest start --user root --pass root", ), + "valkey": ("Run Valkey", "docker run -d --name my-valkey -p 6379:6379 valkey/valkey-bundle"), } # Casing fixes for filename-derived titles. @@ -879,7 +881,6 @@ "suppress_intro": True, }, "02_agents/12_multimodal/media_input_for_tool.py": { - "package_remove": {"openai"}, "env_remove": {"OPENAI_API_KEY"}, "provider_remove": {"OpenAI"}, }, @@ -1772,6 +1773,31 @@ "replacement_heading": "Current Alternative", "run_replacement": "Use [Gemini Knowledge](/examples/models/google/gemini/knowledge), which constructs `Knowledge` with `PgVector` and inserts the PDF URL through `knowledge.insert(...)`.", }, + "90_models/vertexai/claude/adaptive_thinking.py": { + "pre_code_warning": "The pinned v2.7.4 source imports `Claude` from the empty `agno.models.vertexai` package root. Use the released module path before running.", + "pre_run_steps": [ + ( + "Fix the Claude import", + "Replace `from agno.models.vertexai import Claude` with `from agno.models.vertexai.claude import Claude` in the saved file.", + None, + ) + ], + }, + "07_knowledge/04_advanced/07_per_user_isolation/valkey_db.py": { + "package_add": {"openai"}, + "env_add": {"OPENAI_API_KEY"}, + }, + "07_knowledge/05_integrations/vector_dbs/05_scylladb.py": { + "package_remove": {"cassandra"}, + "package_add": {"cassio", "scylla-driver"}, + "pre_run_steps": [ + ( + "Run ScyllaDB", + "Start a local ScyllaDB node with CassIO compatibility:", + "docker run -d --name scylla -p 9042:9042 scylladb/scylla:latest --developer-mode=1 --enable-cassio-compatibility=1", + ) + ], + }, "90_models/openai/chat/custom_role_map.py": { "env_remove": {"OPENAI_API_KEY"}, "provider_remove": {"OpenAI"}, @@ -4766,16 +4792,40 @@ def apply_source_render_override( override["replacement_only"] = True override["replacement_heading"] = "Current Alternative" override["run_replacement"] = INVALID_MODEL_RETRY_REPLACEMENT - if rel == "90_models/cohere/retry.py": + retry_import_replacements = { + "90_models/cohere/retry.py": ( + "from agno.models.cohere import CohereChat", + "from agno.models.cohere import Cohere", + ), + "90_models/sambanova/retry.py": ( + "from agno.models.sambanova import SambaNova", + "from agno.models.sambanova import Sambanova", + ), + "90_models/siliconflow/retry.py": ( + "from agno.models.siliconflow import SiliconFlow", + "from agno.models.siliconflow import Siliconflow", + ), + "90_models/vertexai/retry.py": ( + "from agno.models.vertexai import Claude", + "from agno.models.vertexai.claude import Claude", + ), + "90_models/vllm/retry.py": ( + "from agno.models.vllm import vLLM", + "from agno.models.vllm import VLLM", + ), + } + retry_import_replacement = retry_import_replacements.get(rel) + if retry_import_replacement: + bad_import, current_import = retry_import_replacement override["pre_code_warning"] = ( - "The pinned v2.7.4 source imports the removed `CohereChat` class and fails before " - "testing retries. It also assumes an invalid model ID reaches the retry path, while " - "invalid-model responses commonly use terminal 400 or 404 statuses." + f"The pinned v2.7.4 source uses the unavailable import `{bad_import}` and fails " + "before testing retries. It also assumes an invalid model ID reaches the retry path, " + "while invalid-model responses commonly use terminal 400 or 404 statuses." ) override["run_replacement"] = ( - "Use the released `Cohere` class shown in " - "[Cohere Knowledge](/examples/models/cohere/knowledge). Configure `retries`, " - "`delay_between_retries`, and `exponential_backoff` as shown in " + f"Replace `{bad_import}` with `{current_import}` and update the constructor name " + "when its capitalization changed. Configure `retries`, `delay_between_retries`, and " + "`exponential_backoff` as shown in " "[Retry Model Requests](/models/overview#retry-model-requests), then test with a " "controlled transient 429, connection failure, or 5xx response." ) From daebe290c9ec47fa2c614d29615ce4de976cdad9 Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 09:04:01 +0100 Subject: [PATCH 31/47] docs: prepare repository assets for knowledge examples --- .../knowledge/building-blocks/agentic-filtering.mdx | 12 ++++++++++-- .../knowledge/getting-started/loading-content.mdx | 12 ++++++++++-- .../readers/docling/docling-input-types.mdx | 12 ++++++++++-- examples/knowledge/production/multi-source-rag.mdx | 12 ++++++++++-- scripts/examples_sync/generate.py | 4 ++++ 5 files changed, 44 insertions(+), 8 deletions(-) diff --git a/examples/knowledge/building-blocks/agentic-filtering.mdx b/examples/knowledge/building-blocks/agentic-filtering.mdx index 7d7a5255f..001f47267 100644 --- a/examples/knowledge/building-blocks/agentic-filtering.mdx +++ b/examples/knowledge/building-blocks/agentic-filtering.mdx @@ -125,10 +125,18 @@ if __name__ == "__main__": ``` + + Clone the repository and run the remaining commands from its root: + ```bash + git clone https://github.com/agno-agi/agno.git + cd agno + ``` + + - Save the code above as `agentic_filtering.py`, then run: + Run the example from the repository root: ```bash - python agentic_filtering.py + python cookbook/07_knowledge/02_building_blocks/05_agentic_filtering.py ``` diff --git a/examples/knowledge/getting-started/loading-content.mdx b/examples/knowledge/getting-started/loading-content.mdx index 7caac45ff..44dc11ac5 100644 --- a/examples/knowledge/getting-started/loading-content.mdx +++ b/examples/knowledge/getting-started/loading-content.mdx @@ -167,10 +167,18 @@ if __name__ == "__main__": ``` + + Clone the repository and run the remaining commands from its root: + ```bash + git clone https://github.com/agno-agi/agno.git + cd agno + ``` + + - Save the code above as `loading_content.py`, then run: + Run the example from the repository root: ```bash - python loading_content.py + python cookbook/07_knowledge/01_getting_started/03_loading_content.py ``` diff --git a/examples/knowledge/integrations/readers/docling/docling-input-types.mdx b/examples/knowledge/integrations/readers/docling/docling-input-types.mdx index 7ced71718..80ea3bd01 100644 --- a/examples/knowledge/integrations/readers/docling/docling-input-types.mdx +++ b/examples/knowledge/integrations/readers/docling/docling-input-types.mdx @@ -87,10 +87,18 @@ if __name__ == "__main__": ``` + + Clone the repository and run the remaining commands from its root: + ```bash + git clone https://github.com/agno-agi/agno.git + cd agno + ``` + + - Save the code above as `docling_input_types.py`, then run: + Run the example from the repository root: ```bash - python docling_input_types.py + python cookbook/07_knowledge/05_integrations/readers/docling/docling_input_types.py ``` diff --git a/examples/knowledge/production/multi-source-rag.mdx b/examples/knowledge/production/multi-source-rag.mdx index 053a213cf..32ecae063 100644 --- a/examples/knowledge/production/multi-source-rag.mdx +++ b/examples/knowledge/production/multi-source-rag.mdx @@ -121,10 +121,18 @@ if __name__ == "__main__": ``` + + Clone the repository and run the remaining commands from its root: + ```bash + git clone https://github.com/agno-agi/agno.git + cd agno + ``` + + - Save the code above as `multi_source_rag.py`, then run: + Run the example from the repository root: ```bash - python multi_source_rag.py + python cookbook/07_knowledge/03_production/01_multi_source_rag.py ``` diff --git a/scripts/examples_sync/generate.py b/scripts/examples_sync/generate.py index 4b1e70162..ed1ab139b 100644 --- a/scripts/examples_sync/generate.py +++ b/scripts/examples_sync/generate.py @@ -579,6 +579,10 @@ "examples/context/filesystem", "examples/context/multi-provider", "examples/context/workspace", + "examples/knowledge/building-blocks/agentic-filtering", + "examples/knowledge/getting-started/loading-content", + "examples/knowledge/integrations/readers/docling/docling-input-types", + "examples/knowledge/production/multi-source-rag", "examples/models/google/gemini/file-search-advanced", "examples/models/google/gemini/file-search-basic", "examples/models/google/gemini/file-search-rag-pipeline", From a3d29bb5e8b334b2912a7f36de8008ed9fea8c0b Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 09:04:12 +0100 Subject: [PATCH 32/47] docs: repair authorization and learning quickstarts --- .../security/authorization/quickstart.mdx | 21 +++++++++++++++++-- first-agent.mdx | 4 ++-- learning/quickstart.mdx | 6 ++++-- observability/mlflow.mdx | 2 +- 4 files changed, 26 insertions(+), 7 deletions(-) diff --git a/agent-os/security/authorization/quickstart.mdx b/agent-os/security/authorization/quickstart.mdx index 1cefb88e1..2277ca6b7 100644 --- a/agent-os/security/authorization/quickstart.mdx +++ b/agent-os/security/authorization/quickstart.mdx @@ -4,7 +4,9 @@ sidebarTitle: "Quickstart" description: "Enable authorization, set a verification key, and make your first authenticated request." --- -```python +Save this code as `authorization_quickstart.py`: + +```python authorization_quickstart.py from agno.agent import Agent from agno.models.openai import OpenAIResponses from agno.os import AgentOS @@ -22,6 +24,9 @@ agent_os = AgentOS( ) app = agent_os.get_app() + +if __name__ == "__main__": + agent_os.serve(app="authorization_quickstart:app", reload=True) ``` `authorization=True` enables JWT verification. AgentOS also needs a public key to verify tokens against. Generate one from the control plane and wire it in. @@ -48,6 +53,18 @@ app = agent_os.get_app() export JWT_JWKS_FILE="/path/to/jwks.json" ``` + + + ```bash + uv pip install -U "agno[os]" openai + ``` + + + + ```bash + python authorization_quickstart.py + ``` + Authorization is now active for your AgentOS. @@ -66,7 +83,7 @@ The control plane only issues **RS256** keys, which is also the default. See [au ## Sending Authenticated Requests -Authenticated requests carry a verified caller identity. AgentOS uses this to enforce per-endpoint permissions, scope data to the caller, and audit who did what. +Authenticated requests carry a verified caller identity and scopes. AgentOS uses the scopes to enforce per-endpoint permissions. Per-user data scoping is opt-in. Enable `user_isolation=True` as described in [Per-User Data Isolation](/agent-os/security/authorization/user-isolation). Send the JWT in the `Authorization: Bearer ` header: diff --git a/first-agent.mdx b/first-agent.mdx index a9970ffcc..f6393fea2 100644 --- a/first-agent.mdx +++ b/first-agent.mdx @@ -101,7 +101,7 @@ workbench = Agent( num_history_runs=3, # last 3 runs ) -# Serve via AgentOS, get streaming, session isolation, API endpoints +# Serve via AgentOS with streaming, session APIs, and API endpoints agent_os = AgentOS(agents=[workbench], tracing=True) app = agent_os.get_app() @@ -134,7 +134,7 @@ The service gives you: - A stateful agent served as a production API - Session storage and conversation history - Tracing on every run -- Per-session isolation, with JWT-based RBAC available for multi-user isolation +- Session-scoped conversation history. Add JWT authorization and opt-in user isolation for multi-user deployments. No separate database or infrastructure service is required. The example requires an OpenAI API key, and the next step uses the hosted AgentOS UI. diff --git a/learning/quickstart.mdx b/learning/quickstart.mdx index 18a738573..881269330 100644 --- a/learning/quickstart.mdx +++ b/learning/quickstart.mdx @@ -14,9 +14,11 @@ from agno.agent import Agent from agno.db.sqlite import SqliteDb from agno.models.openai import OpenAIResponses +db = SqliteDb(db_file="tmp/agents.db") + agent = Agent( model=OpenAIResponses(id="gpt-5.2"), - db=SqliteDb(db_file="tmp/agents.db"), + db=db, learning=True, ) ``` @@ -126,4 +128,4 @@ agent = Agent( > Control how and when agents learn - \ No newline at end of file + diff --git a/observability/mlflow.mdx b/observability/mlflow.mdx index 788d2f437..396321ec4 100644 --- a/observability/mlflow.mdx +++ b/observability/mlflow.mdx @@ -118,7 +118,7 @@ agno_assist = Agent( markdown=True, ) -# Serve via AgentOS → streaming, auth, session isolation, API endpoints +# Serve via AgentOS with streaming, session APIs, and API endpoints agent_os = AgentOS(agents=[agno_assist], tracing=True) app = agent_os.get_app() ``` From 07c4e81c09df0753e295052acd4c5892ddc1b386 Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 09:04:18 +0100 Subject: [PATCH 33/47] docs: clarify database access boundaries --- context-providers/overview.mdx | 14 +++++++------- demo-os/multi-agent-teams/text-to-sql.mdx | 12 ++++++------ demo-os/rag.mdx | 2 +- deploy/templates/dash/overview.mdx | 4 ++-- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/context-providers/overview.mdx b/context-providers/overview.mdx index fbe887e60..6bc09a47f 100644 --- a/context-providers/overview.mdx +++ b/context-providers/overview.mdx @@ -36,7 +36,7 @@ agent = Agent( ) ``` -The agent sees five tools: `query_slack`, `update_slack`, `query_gdrive`, `query_database`, `update_database`. Each provider exposes one read tool plus an optional write tool. +The agent sees five tools: `query_slack`, `update_slack`, `query_gdrive`, `query_database`, `update_database`. Each provider exposes one query tool plus an optional update tool. ## How it Works @@ -59,14 +59,14 @@ The sub-agent does the tool work; the calling agent does the reasoning. On most ### Read/Write Separation -Writable providers run two sub-agents with minimum privilege: +Writable providers run two sub-agents with separate connections or tool sets: | Provider | Read sub-agent | Write sub-agent | |----------|----------------|-----------------| | Database | Uses `readonly_engine` | Uses `sql_engine` | | Slack | History, thread, and lookup tools (search with a user token) | `send_message` + lookups | -These are infrastructure-level guarantees, not prompt instructions. The read sub-agent physically cannot call write tools. +Each sub-agent receives its own connection or tool set. For `DatabaseContextProvider`, enforce the read boundary with SELECT-only credentials on `readonly_engine`. The Slack read sub-agent does not receive `send_message`. ### Mode @@ -79,12 +79,12 @@ These are infrastructure-level guarantees, not prompt instructions. The read sub # Agent sees: query_slack, update_slack ``` - **When to use:** Most cases. You get clean read/write separation with privilege isolation. The read sub-agent cannot call write tools. + **When to use:** Most cases. You get separate read and write sub-agents. For databases, configure SELECT-only credentials on `readonly_engine`. **How it works:** Two sub-agents handle the underlying toolkit. Reads go through the read sub-agent (history, threads, lookups, plus search when a user token or Slack-interface token is configured). Writes go through the write sub-agent (send_message + lookups for channel resolution). - Single `query_` tool. Read-only access through one sub-agent. + Single `query_` tool. Query access through one sub-agent. ```python from agno.context.mode import ContextMode @@ -93,9 +93,9 @@ These are infrastructure-level guarantees, not prompt instructions. The read sub # Agent sees: query_slack only ``` - **When to use:** Read-only access, or when you want maximum abstraction. Your agent just asks questions; the sub-agent figures out which tools to call. + **When to use:** Read access, or when you want maximum abstraction. For databases, the connection credentials determine which statements are permitted. - **How it works:** All requests route through the read sub-agent. No write access. The sub-agent orchestrates reads internally. + **How it works:** All requests route through the read sub-agent. The sub-agent receives the provider's query-side tool set. `DatabaseContextProvider` supplies a general SQL query tool, so database permissions enforce the SQL boundary. Bypass sub-agents entirely. Your agent sees the raw toolkit methods. diff --git a/demo-os/multi-agent-teams/text-to-sql.mdx b/demo-os/multi-agent-teams/text-to-sql.mdx index 7c5947f02..4ce363305 100644 --- a/demo-os/multi-agent-teams/text-to-sql.mdx +++ b/demo-os/multi-agent-teams/text-to-sql.mdx @@ -29,7 +29,7 @@ responses. | Member | Intended work | Database connection | |--------|---------------|---------------------| -| **Analyst** | Read data, write and validate queries, interpret results | PostgreSQL connection with `default_transaction_read_only=on` | +| **Analyst** | Read data, write and validate queries, interpret results | Connection defaults transactions to read-only; use a SELECT-only role for enforcement | | **Engineer** | Create views, summary tables, and other assets in `dash` | Read-write connection with `search_path=dash,public` | | **Leader** | Select members and combine results | No SQL tool access; the team database persists sessions | @@ -37,11 +37,11 @@ Both specialists receive `search_knowledge_base`, schema introspection, SQL, and ## Access controls -The Analyst's connection sets PostgreSQL transactions to read-only. PostgreSQL rejects DML and DDL on that connection. +The Analyst connection sets `default_transaction_read_only=on`, so each transaction starts read-only. This setting is a session default, not a privilege boundary. A role with write privileges can switch a transaction to read-write. The bundled `ai` role is writable. Use a separate PostgreSQL role with SELECT-only grants before treating the Analyst connection as read-only. The Engineer uses a different control. A SQLAlchemy event listener searches statements for explicit writes to `public.*` and raises an error when it recognizes one. This regular-expression guard is best-effort. It can miss alternate SQL forms or unqualified targets, so it does not provide a database-enforced security boundary. -For a hard Engineer boundary, use PostgreSQL roles and grants that permit reads from `public` and writes only to `dash`. +For hard boundaries, use separate PostgreSQL roles and grants. Give the Analyst SELECT-only access. Give the Engineer read access to `public` and write access only to `dash`. ## Query flow @@ -49,7 +49,7 @@ For a direct data question, the expected flow is: 1. The leader delegates the question to the Analyst. 2. The Analyst searches knowledge for table metadata, query patterns, and business rules. -3. The Analyst executes SQL through the read-only connection. +3. The Analyst executes SQL through its database connection. 4. The leader turns the member response into the final answer. For work that needs a reusable view, the leader can involve both members: @@ -57,7 +57,7 @@ For work that needs a reusable view, the leader can involve both members: 1. The Analyst identifies the repeated query or missing data asset. 2. The Engineer inspects the schema and creates an asset under `dash`. 3. The Engineer records that asset in knowledge. -4. The Analyst queries the new asset through its read-only connection. +4. The Analyst queries the new asset through its database connection. `TeamMode.coordinate` allows the leader to call multiple members. It does not restrict a run to one specialist. @@ -79,7 +79,7 @@ Knowledge search and learning writes are model-driven tool calls. The instructio | [`agents/dash/team.py`](https://github.com/agno-agi/demo-os/blob/4bd50f71b9d29cdd24fd86c2c059c8057b9009c4/agents/dash/team.py) | Team and leader configuration | | [`agents/dash/agents/analyst.py`](https://github.com/agno-agi/demo-os/blob/4bd50f71b9d29cdd24fd86c2c059c8057b9009c4/agents/dash/agents/analyst.py) | Analyst configuration | | [`agents/dash/agents/engineer.py`](https://github.com/agno-agi/demo-os/blob/4bd50f71b9d29cdd24fd86c2c059c8057b9009c4/agents/dash/agents/engineer.py) | Engineer configuration | -| [`agents/dash/db_utils.py`](https://github.com/agno-agi/demo-os/blob/4bd50f71b9d29cdd24fd86c2c059c8057b9009c4/agents/dash/db_utils.py) | Read-only engine and Engineer statement guard | +| [`agents/dash/db_utils.py`](https://github.com/agno-agi/demo-os/blob/4bd50f71b9d29cdd24fd86c2c059c8057b9009c4/agents/dash/db_utils.py) | Analyst and Engineer engine configuration | | [`agents/dash/tools/build.py`](https://github.com/agno-agi/demo-os/blob/4bd50f71b9d29cdd24fd86c2c059c8057b9009c4/agents/dash/tools/build.py) | Member tool assembly | ## Try it diff --git a/demo-os/rag.mdx b/demo-os/rag.mdx index 75199d096..050e432fe 100644 --- a/demo-os/rag.mdx +++ b/demo-os/rag.mdx @@ -40,7 +40,7 @@ For a data question, the intended flow is: 1. The Dash leader delegates the question to the Analyst. 2. The Analyst calls `search_knowledge_base` for table metadata, query patterns, and business rules. 3. PgVector ranks documents with a weighted combination of vector similarity and PostgreSQL full-text relevance. -4. The Analyst writes and executes SQL through its read-only database connection. +4. The Analyst writes and executes SQL through its database connection, which should use a SELECT-only PostgreSQL role. 5. The Analyst interprets the results and returns them to the leader. Dash does not set `add_knowledge_to_context`. Retrieval is a model-selected tool call rather than an automatic search on every message. The prompt directs the search, but the runtime does not guarantee that the model will call the tool. diff --git a/deploy/templates/dash/overview.mdx b/deploy/templates/dash/overview.mdx index b9fbcc851..774c6a747 100644 --- a/deploy/templates/dash/overview.mdx +++ b/deploy/templates/dash/overview.mdx @@ -16,11 +16,11 @@ Dash runs as an Agno team in coordinate mode, with a leader that routes each req | Agent | Role | |-------|------| -| **Analyst** | Reads company data (read-only), generates SQL, interprets results | +| **Analyst** | Queries company data; use a SELECT-only role for enforced read-only access | | **Engineer** | Builds reusable views and summary tables in the `dash` schema | | **Leader** | Routes queries, coordinates the team, posts to Slack | -**Schema boundaries:** Company data lives in the `public` schema; agent-created views and summary tables live in the `dash` schema. The Analyst connects with `default_transaction_read_only=on`, so PostgreSQL rejects its writes. The Engineer uses the application's database role, and a regex-based SQLAlchemy listener blocks common writes to `public`. That listener is a best-effort guard, not a database privilege boundary. Use a role without `public` write privileges when the boundary must hold for every SQL form. +**Schema boundaries:** Company data lives in the `public` schema; agent-created views and summary tables live in the `dash` schema. The Analyst connection uses `default_transaction_read_only=on`, so each transaction starts read-only. A writable role can switch a transaction to read-write, and the bundled `ai` role is writable. Use a separate SELECT-only role to enforce the Analyst boundary. The Engineer uses the application's database role, and a regex-based SQLAlchemy listener blocks common writes to `public`. That listener is a best-effort guard, not a database privilege boundary. Use a role without `public` write privileges when the boundary must hold for every SQL form. ### Five layers of context From 6b8279f316beab35a7065fad909b980bb14dca82 Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 09:37:54 +0100 Subject: [PATCH 34/47] docs: correct MCP authentication boundaries --- agent-os/mcp/mcp.mdx | 11 +++++++---- agent-os/middleware/jwt.mdx | 8 +++++--- agent-os/security/overview.mdx | 12 ++++++------ 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/agent-os/mcp/mcp.mdx b/agent-os/mcp/mcp.mdx index 337840128..d80a8f6bd 100644 --- a/agent-os/mcp/mcp.mdx +++ b/agent-os/mcp/mcp.mdx @@ -154,23 +154,26 @@ Combine `tools=[...]` with `enable_builtin_tools=False` to expose a single purpo ## Authentication -Authentication is enforced on `/mcp` in every mode. One auth layer covers the REST routes and the MCP server: any credential that works against the API works against `/mcp`, passed as a Bearer token. +When `mcp_auth` is unset, `/mcp` follows the parent AgentOS authentication mode. JWT and security-key modes require bearer credentials. The `none` mode permits anonymous MCP requests. When `mcp_auth` is set, the configured FastMCP provider protects the mounted app and the parent middleware exempts its OAuth paths. | Mode | Server setup | Client credential | |------|--------------|-------------------| | Security key | `export OS_SECURITY_KEY="your-key"` | `Authorization: Bearer ` | -| Service account token | Issue via `POST /service-accounts` (requires a database) | `Authorization: Bearer agno_pat_...` | | JWT | `AgentOS(authorization=True, ...)` | `Authorization: Bearer ` | +| MCP OAuth | `AgentOS(mcp_auth=...)` | Credential accepted by the configured FastMCP provider | +| Open | No JWT source, security key, or `mcp_auth` | No credential required | + +When the parent authentication layer is active and database-backed verification is available, it also accepts valid service account tokens and enforces their scopes. A database alone does not activate authentication on an otherwise open `none` deployment. On that open `/mcp` endpoint, bearer values are ignored and the request remains anonymous. With `authorization=True`, each tool call is checked against the scopes of its equivalent REST route: `run_agent` requires the same scopes as `POST /agents/{id}/runs`, `get_sessions` the same as `GET /sessions`. See [Security & Auth](/agent-os/security/overview). -The `authorize` gate on `MCPServerConfig` layers on top of authentication: it receives the verified `user_id` and can reject callers per request. Without `authorization=True` no JWT layer resolves the caller, so the gate is called with `user_id=None`. Make sure your gate handles `None`, and return `False` if you want to reject unauthenticated callers. +The `authorize` gate on `MCPServerConfig` runs after the configured authentication path. It receives the caller's `user_id` when parent authentication, MCP OAuth, or a valid service account token establishes one. On an open endpoint, anonymous calls pass `user_id=None`. Make sure your gate handles `None`, and return `False` to reject unauthenticated callers. ## Transport Security fastmcp's built-in Host/Origin guard is disabled on `/mcp`, so `MCPServerConfig.allowed_hosts` acts as the transport guard instead: -- Left unset, the default depends on your auth mode. A server with authentication (a security key or JWT) skips host validation, because every request already has to prove itself. An open server gets localhost-only validation, since that is exactly the setup DNS rebinding attacks target. +- Left unset, the default depends on your auth mode. A server with authentication (a security key, JWT, or MCP OAuth) skips host validation, because every request already has to prove itself. An open server gets localhost-only validation, since that is exactly the setup DNS rebinding attacks target. - When set, the request `Host` (and `Origin`, when present) must match your list or the localhost defaults (`localhost`, `127.0.0.1`, `[::1]`). Anything else is rejected with 400 before it reaches the MCP machinery. `*.example.com` wildcard patterns are supported. This is DNS-rebinding protection: it stops a malicious web page from driving an always-on local MCP server through a rebound DNS name. List only your deploy or tunnel host; localhost works out of the box. diff --git a/agent-os/middleware/jwt.mdx b/agent-os/middleware/jwt.mdx index 9f4a42bd6..1b17ed1fd 100644 --- a/agent-os/middleware/jwt.mdx +++ b/agent-os/middleware/jwt.mdx @@ -1,7 +1,7 @@ --- title: Auth Middleware sidebarTitle: JWT -description: Configure AuthMiddleware for JWT validation, claim injection, and RBAC across REST, MCP, and WebSocket connections. +description: Configure AuthMiddleware for JWT validation, claim injection, and RBAC on AgentOS routes. keywords: [jwt middleware, auth middleware, jwt authentication, token validation, parameter injection, authorization, bearer token, jwt claims, http only cookies, token verification, jwt secret, user authentication, session management, jwt tokens, pyjwt, token security, rbac, scopes, role-based access control, service accounts] --- @@ -39,14 +39,16 @@ app.add_middleware( ## Coverage Across Surfaces -AgentOS installs a single `AuthMiddleware` instance on the parent app in every authenticated deployment mode. A token accepted on one surface is accepted with identical constraints on the others. +AgentOS installs `AuthMiddleware` on the parent app when the parent authentication mode uses JWTs or a security key. When a database verifier is available, that same layer also accepts service account tokens. Credentials share identical constraints only across surfaces handled by the middleware. | Surface | How it is covered | |---------|-------------------| | REST routes | Requests pass through the middleware directly | -| Mounted `/mcp` app | Parent-app middleware runs before the mount dispatches, so the MCP server carries no auth code of its own | +| Mounted `/mcp` app | Parent middleware covers the mount when `mcp_auth` is unset. With `AgentOS(mcp_auth=...)`, the parent exempts the MCP OAuth paths and the FastMCP provider authenticates inside the mounted app. | | WebSockets | The middleware publishes its validator, audience, admin scope, and user-isolation settings to `app.state`; WebSocket handshakes validate against the same configuration | +Self-authenticating webhook interfaces verify their own inbound requests and are excluded from the parent layer. + ### Credential Dispatch The middleware resolves each bearer credential in order: diff --git a/agent-os/security/overview.mdx b/agent-os/security/overview.mdx index 2ccbde76c..4cbaa3583 100644 --- a/agent-os/security/overview.mdx +++ b/agent-os/security/overview.mdx @@ -1,18 +1,18 @@ --- title: "Security & Auth" sidebarTitle: "Security & Auth" -description: "Authentication modes, service account tokens, and the single auth layer covering every AgentOS surface." +description: "Authentication modes, service account tokens, and how AgentOS protects each surface." --- -AgentOS installs one auth layer that covers the REST API, the MCP server at `/mcp`, interfaces (A2A, AG-UI), and WebSockets. The layer runs in one of three authentication modes: +AgentOS applies the parent authentication mode to REST, WebSockets, non-self-authenticating interfaces, and `/mcp` when MCP OAuth is not configured. Self-authenticating webhook interfaces verify their own requests. With `mcp_auth`, the mounted `/mcp` app uses its own OAuth provider. The parent surfaces have three modes: | Mode | Active when | Behavior | |------|-------------|----------| -| `jwt` | `authorization=True`, JWT env vars (`JWT_VERIFICATION_KEY` / `JWT_JWKS_FILE`), or a manually installed `JWTMiddleware` | JWTs prove identity and scopes control permissions per endpoint. Recommended for production. | +| `jwt` | `authorization=True`, JWT env vars (`JWT_VERIFICATION_KEY` / `JWT_JWKS_FILE`), or a manually installed `JWTMiddleware` | JWTs prove identity. With authorization enabled, scopes control permissions per endpoint. Recommended for production. | | `security_key` | `OS_SECURITY_KEY` is set and no JWT source is configured | A shared key proves identity. No per-endpoint permissions. | -| `none` | Neither is configured | All requests pass. Development only. | +| `none` | Neither is configured | Anonymous requests pass. `/mcp` is also open unless `mcp_auth` is configured. Development only. | -JWT configuration takes precedence over the security key. Service account tokens authenticate in all three modes. +JWT configuration takes precedence over the security key. A database-backed verifier lets protected surfaces accept service account tokens and enforce their scopes. A database alone does not enable the parent authentication layer or close `none` mode. ## Authorization (JWT) @@ -42,7 +42,7 @@ curl -X POST http://localhost:7777/agents/my-agent/runs \ -d "message=hello" -d "stream=false" ``` -Service account scopes are ACL data stored in your database, so they are enforced in every authentication mode, including `security_key` and `none`. +Service account scopes are ACL data stored in your database. REST routes enforce them in every parent authentication mode, including `security_key` and `none`. See [Service Accounts](/agent-os/security/authorization/service-accounts) for minting, scoping, and revocation. From 420ad30c69d5cd82115691cea298a50de824b83e Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 10:21:27 +0100 Subject: [PATCH 35/47] docs: resolve final v2.7.4 audit findings --- agent-os/learnings/manage-learnings.mdx | 2 +- cli/tokens.mdx | 4 +- demo-os/human-in-the-loop.mdx | 7 +- deploy/templates/aws/reference.mdx | 4 +- deploy/templates/azure/reference.mdx | 2 +- deploy/templates/coda/overview.mdx | 6 +- deploy/templates/docker/reference.mdx | 2 +- deploy/templates/fly/reference.mdx | 2 +- deploy/templates/gcp/reference.mdx | 2 +- deploy/templates/helm/reference.mdx | 2 +- deploy/templates/modal/reference.mdx | 2 +- deploy/templates/railway/reference.mdx | 2 +- .../a2a/multi-agent-a2a/weather-agent.mdx | 4 + .../rbac/symmetric/advanced-scopes.mdx | 4 + .../rbac/symmetric/user-isolation.mdx | 4 + .../production/ssrf-allowed-hosts.mdx | 4 + .../models/openai/chat/image-agent-bytes.mdx | 4 +- history/agent/persistent-session-history.mdx | 11 +- reference-api/openapi.json | 2 +- reference-api/openapi.yaml | 148 ++++++++++++++++- reference/agent-os/jwt-middleware.mdx | 13 +- reference/clients/a2a-client.mdx | 2 +- reference/clients/agentos-client.mdx | 12 +- scripts/examples_sync/apply_oneoffs.py | 64 ++++++++ scripts/make_openapi.py | 153 +++++++++++++++++- tracing/overview.mdx | 2 +- 26 files changed, 425 insertions(+), 39 deletions(-) diff --git a/agent-os/learnings/manage-learnings.mdx b/agent-os/learnings/manage-learnings.mdx index 231040422..abf7da96e 100644 --- a/agent-os/learnings/manage-learnings.mdx +++ b/agent-os/learnings/manage-learnings.mdx @@ -8,7 +8,7 @@ AgentOS exposes `/learnings` REST endpoints for CRUD over the `agno_learnings` t ## Prerequisites -- A supported database: PostgreSQL, SQLite, or MongoDB. Other databases return `501`. +- A database backend that implements learning CRUD. Backends without those methods, including `RemoteDb`, return `501`. - An agent with learning enabled (see the [Learning quickstart](/learning/quickstart)). ## Example diff --git a/cli/tokens.mdx b/cli/tokens.mdx index d667460e7..19e1f475d 100644 --- a/cli/tokens.mdx +++ b/cli/tokens.mdx @@ -46,10 +46,10 @@ The output shows each account's name, token prefix, scopes, expiry, last use, an agno tokens revoke ci-runner --yes ``` -Revocation is irreversible and takes effect on the account's next request. Interactive runs confirm first; `--yes`, `--json`, and non-TTY runs proceed without prompting. +Revocation is irreversible. The worker that processes the revoke rejects the token immediately. Other workers can accept a previously cached successful verification until their cache entry expires, which takes at most 30 seconds with the default configuration. Set `SERVICE_ACCOUNT_CACHE_TTL_SECONDS=0` to disable the verification cache when every worker must observe revocation immediately. Interactive runs confirm first; `--yes`, `--json`, and non-TTY runs proceed without prompting. -A client with a live connection keeps using its revoked token until it reconnects, so restart any long-running clients after you revoke. +An already-authorized live request or stream is not interrupted by revocation. Restart long-running clients after you revoke their token. ## Developer Resources diff --git a/demo-os/human-in-the-loop.mdx b/demo-os/human-in-the-loop.mdx index f772cc2d3..9fdf7051d 100644 --- a/demo-os/human-in-the-loop.mdx +++ b/demo-os/human-in-the-loop.mdx @@ -3,7 +3,7 @@ title: Human Approval description: "Confirmation, user input, external execution, and output review across four Demo OS components." --- -Voyager places three tool calls behind distinct pause requirements: +Voyager places four custom tool calls behind three pause patterns: ```python from agno.tools import tool @@ -19,6 +19,11 @@ def set_passenger_name(passenger_name: str = "") -> str: ... +@tool(requires_user_input=True, user_input_fields=["recipient_email"]) +def set_recipient_email(recipient_email: str = "") -> str: + ... + + @tool(requires_confirmation=True) def book_flight( flight_id: str, diff --git a/deploy/templates/aws/reference.mdx b/deploy/templates/aws/reference.mdx index 05cb6e01e..a231f8ae6 100644 --- a/deploy/templates/aws/reference.mdx +++ b/deploy/templates/aws/reference.mdx @@ -26,14 +26,12 @@ Token-Based Authorization is on by default. Production startup requires `JWT_VER Token-Based Auth gives you three things: -1. **No public access.** The server rejects requests without a valid token. +1. **Protected application routes.** AgentOS routes require a valid token. The operational and documentation routes `/`, `/health`, `/info`, `/docs`, `/redoc`, `/openapi.json`, and `/docs/oauth2-redirect` remain public. 2. **Per-request identity.** Middleware validates the token and exposes its `user_id`, optional `session_id`, scopes, and claims to the request. 3. **Scope-based permissions.** Token scopes control access to AgentOS routes and resources. The templates do not enable per-user data isolation. To scope non-admin session, memory, trace, and run access to the JWT subject, pass `authorization_config=AuthorizationConfig(user_isolation=True)` to `AgentOS`. See [User Isolation](/agent-os/security/authorization/user-isolation). -`/health` stays open. AgentOS serves it unauthenticated even in production, so the ALB health checks pass. - To opt out (not recommended), set `authorization=False` in `app/main.py` and redeploy. Use this only inside a private VPC behind another auth layer. Without it, anyone who guesses your service URL can access your platform. ## Customize diff --git a/deploy/templates/azure/reference.mdx b/deploy/templates/azure/reference.mdx index ac1f35e70..1d7fb5f6c 100644 --- a/deploy/templates/azure/reference.mdx +++ b/deploy/templates/azure/reference.mdx @@ -29,7 +29,7 @@ Token-Based Authorization is on by default. Production startup requires `JWT_VER Token-Based Auth gives you three things: -1. **No public access.** The server rejects requests without a valid token. +1. **Protected application routes.** AgentOS routes require a valid token. The operational and documentation routes `/`, `/health`, `/info`, `/docs`, `/redoc`, `/openapi.json`, and `/docs/oauth2-redirect` remain public. 2. **Per-request identity.** Middleware validates the token and exposes its `user_id`, optional `session_id`, scopes, and claims to the request. 3. **Scope-based permissions.** Token scopes control access to AgentOS routes and resources. diff --git a/deploy/templates/coda/overview.mdx b/deploy/templates/coda/overview.mdx index f70dc85c8..9bb69c796 100644 --- a/deploy/templates/coda/overview.mdx +++ b/deploy/templates/coda/overview.mdx @@ -111,11 +111,11 @@ You'll need the [Railway CLI](https://docs.railway.app/guides/cli) installed and ./scripts/railway_redeploy.sh ``` -`railway_up.sh` provisions a pgvector database, creates the `coda` service with the variables from your `.env`, deploys, and creates a public domain. The domain can take about 5 minutes; check progress with `railway logs --service coda`. See `railway.json` to adjust CPU, memory, and replica settings. +`railway_up.sh` provisions a pgvector database, creates the `coda` service with the variables from your `.env`, deploys, and creates a public domain. If `.env` has no `JWT_VERIFICATION_KEY`, the initial process exits after the domain is created. Copy that domain, generate the key below, sync it, and redeploy. The domain can take about 5 minutes; inspect startup with `railway logs --service coda`. See `railway.json` to adjust CPU, memory, and replica settings. -Production runs with RBAC on (`RUNTIME_ENV=prd` is the default) and rejects every request until you give it a verification key: +Production runs with RBAC on (`RUNTIME_ENV=prd` is the default). Without `JWT_VERIFICATION_KEY`, the process exits during startup. After the key is configured, protected AgentOS routes require a valid token. The operational and documentation routes `/`, `/health`, `/info`, `/docs`, `/redoc`, `/openapi.json`, and `/docs/oauth2-redirect` remain public. -1. Open [os.agno.com](https://os.agno.com), click **Connect OS** → **Live**, and enter your Railway domain. +1. Open [os.agno.com](https://os.agno.com), click **Connect OS** → **Live**, and enter the Railway domain created by `railway_up.sh`. 2. Go to **Settings** and generate a key pair. 3. Add the public key to `.env` as `JWT_VERIFICATION_KEY` (paste the full PEM block). 4. Push it and redeploy: diff --git a/deploy/templates/docker/reference.mdx b/deploy/templates/docker/reference.mdx index f09812f76..1c3deaec2 100644 --- a/deploy/templates/docker/reference.mdx +++ b/deploy/templates/docker/reference.mdx @@ -22,7 +22,7 @@ Token-Based Authorization is on by default. Production startup requires `JWT_VER Token-Based Auth gives you three things: -1. **No public access.** The server rejects requests without a valid token. +1. **Protected application routes.** AgentOS routes require a valid token. The operational and documentation routes `/`, `/health`, `/info`, `/docs`, `/redoc`, `/openapi.json`, and `/docs/oauth2-redirect` remain public. 2. **Per-request identity.** Middleware validates the token and exposes its `user_id`, optional `session_id`, scopes, and claims to the request. 3. **Scope-based permissions.** Token scopes control access to AgentOS routes and resources. diff --git a/deploy/templates/fly/reference.mdx b/deploy/templates/fly/reference.mdx index d6996cf65..1800290fe 100644 --- a/deploy/templates/fly/reference.mdx +++ b/deploy/templates/fly/reference.mdx @@ -24,7 +24,7 @@ Token-Based Authorization is on by default. Production startup requires `JWT_VER Token-Based Auth gives you three things: -1. **No public access.** The server rejects requests without a valid token. +1. **Protected application routes.** AgentOS routes require a valid token. The operational and documentation routes `/`, `/health`, `/info`, `/docs`, `/redoc`, `/openapi.json`, and `/docs/oauth2-redirect` remain public. 2. **Per-request identity.** Middleware validates the token and exposes its `user_id`, optional `session_id`, scopes, and claims to the request. 3. **Scope-based permissions.** Token scopes control access to AgentOS routes and resources. diff --git a/deploy/templates/gcp/reference.mdx b/deploy/templates/gcp/reference.mdx index b5f76fb51..060b82c0f 100644 --- a/deploy/templates/gcp/reference.mdx +++ b/deploy/templates/gcp/reference.mdx @@ -26,7 +26,7 @@ Token-Based Authorization is on by default. Production startup requires `JWT_VER Token-Based Auth gives you three things: -1. **No public access.** The server rejects requests without a valid token. +1. **Protected application routes.** AgentOS routes require a valid token. The operational and documentation routes `/`, `/health`, `/info`, `/docs`, `/redoc`, `/openapi.json`, and `/docs/oauth2-redirect` remain public. 2. **Per-request identity.** Middleware validates the token and exposes its `user_id`, optional `session_id`, scopes, and claims to the request. 3. **Scope-based permissions.** Token scopes control access to AgentOS routes and resources. diff --git a/deploy/templates/helm/reference.mdx b/deploy/templates/helm/reference.mdx index 8b306d691..a4d16e050 100644 --- a/deploy/templates/helm/reference.mdx +++ b/deploy/templates/helm/reference.mdx @@ -28,7 +28,7 @@ Token-Based Authorization is on by default. Production startup requires `JWT_VER Token-Based Auth gives you three things: -1. **No public access.** The server rejects requests without a valid token. +1. **Protected application routes.** AgentOS routes require a valid token. The operational and documentation routes `/`, `/health`, `/info`, `/docs`, `/redoc`, `/openapi.json`, and `/docs/oauth2-redirect` remain public. 2. **Per-request identity.** Middleware validates the token and exposes its `user_id`, optional `session_id`, scopes, and claims to the request. 3. **Scope-based permissions.** Token scopes control access to AgentOS routes and resources. diff --git a/deploy/templates/modal/reference.mdx b/deploy/templates/modal/reference.mdx index f39205126..656066220 100644 --- a/deploy/templates/modal/reference.mdx +++ b/deploy/templates/modal/reference.mdx @@ -34,7 +34,7 @@ Token-Based Authorization is on by default. Production startup requires `JWT_VER Token-Based Auth gives you three things: -1. **No public access.** The server rejects requests without a valid token. +1. **Protected application routes.** AgentOS routes require a valid token. The operational and documentation routes `/`, `/health`, `/info`, `/docs`, `/redoc`, `/openapi.json`, and `/docs/oauth2-redirect` remain public. 2. **Per-request identity.** Middleware validates the token and exposes its `user_id`, optional `session_id`, scopes, and claims to the request. 3. **Scope-based permissions.** Token scopes control access to AgentOS routes and resources. diff --git a/deploy/templates/railway/reference.mdx b/deploy/templates/railway/reference.mdx index 4ddb713fb..66bd3f00e 100644 --- a/deploy/templates/railway/reference.mdx +++ b/deploy/templates/railway/reference.mdx @@ -30,7 +30,7 @@ Token-Based Authorization is on by default. Production startup requires `JWT_VER Token-Based Auth gives you three things: -1. **No public access.** The server rejects requests without a valid token. +1. **Protected application routes.** AgentOS routes require a valid token. The operational and documentation routes `/`, `/health`, `/info`, `/docs`, `/redoc`, `/openapi.json`, and `/docs/oauth2-redirect` remain public. 2. **Per-request identity.** Middleware validates the token and exposes its `user_id`, optional `session_id`, scopes, and claims to the request. 3. **Scope-based permissions.** Token scopes control access to AgentOS routes and resources. diff --git a/examples/agent-os/interfaces/a2a/multi-agent-a2a/weather-agent.mdx b/examples/agent-os/interfaces/a2a/multi-agent-a2a/weather-agent.mdx index df7dd3b28..7169a791a 100644 --- a/examples/agent-os/interfaces/a2a/multi-agent-a2a/weather-agent.mdx +++ b/examples/agent-os/interfaces/a2a/multi-agent-a2a/weather-agent.mdx @@ -4,6 +4,10 @@ description: "Serve a weather reporter agent with OpenWeatherTools over the A2A source: cookbook/05_agent_os/interfaces/a2a/multi_agent_a2a/weather_agent.py --- + + The URLs in this v2.7.4 source docstring omit the default `/a2a` prefix. Use `/a2a/agents/{id}/v1/message:send`, `/a2a/agents/{id}/v1/message:stream`, and `/a2a/agents/{id}/.well-known/agent-card.json`. + + ```python weather_agent.py """ Weather Agent diff --git a/examples/agent-os/rbac/symmetric/advanced-scopes.mdx b/examples/agent-os/rbac/symmetric/advanced-scopes.mdx index dbd5deca1..fc7011b3c 100644 --- a/examples/agent-os/rbac/symmetric/advanced-scopes.mdx +++ b/examples/agent-os/rbac/symmetric/advanced-scopes.mdx @@ -4,6 +4,10 @@ description: "Issue HS256 tokens across five privilege tiers to show global, per source: cookbook/05_agent_os/rbac/symmetric/advanced_scopes.py --- + + This v2.7.4 source says it verifies token audiences, but `verify_audience` remains disabled and the issued tokens have no `aud` claim. To reject tokens created for another AgentOS, set `verify_audience=True` in `AuthorizationConfig` and add `"aud": "my-agent-os"` to the token payload. Until then, another instance using the same HMAC secret can accept these tokens. + + Issue HS256 tokens for five privilege tiers and use global, per-agent, and wildcard scopes to filter agents and gate runs. ```python advanced_scopes.py diff --git a/examples/agent-os/rbac/symmetric/user-isolation.mdx b/examples/agent-os/rbac/symmetric/user-isolation.mdx index 7736dffaa..8c2a6eab2 100644 --- a/examples/agent-os/rbac/symmetric/user-isolation.mdx +++ b/examples/agent-os/rbac/symmetric/user-isolation.mdx @@ -4,6 +4,10 @@ description: "Scope non-admin JWT callers to their own sessions, memories, and t source: cookbook/05_agent_os/rbac/symmetric/user_isolation.py --- + + The isolation matrix in this v2.7.4 source example has one incorrect row. Because JWT authorization is configured, a request without a token returns `401`. It does not bypass isolation or gain access to stored data. + + Build on [Symmetric RBAC Basic](/examples/agent-os/rbac/symmetric/basic) by adding user-scoped database session isolation. ```python user_isolation.py diff --git a/examples/knowledge/production/ssrf-allowed-hosts.mdx b/examples/knowledge/production/ssrf-allowed-hosts.mdx index b049c241e..e19ce908d 100644 --- a/examples/knowledge/production/ssrf-allowed-hosts.mdx +++ b/examples/knowledge/production/ssrf-allowed-hosts.mdx @@ -4,6 +4,10 @@ description: "Knowledge readers that fetch arbitrary URLs (WebsiteReader, Firecr source: cookbook/07_knowledge/03_production/05_ssrf_allowed_hosts.py --- + + In v2.7.4, `WebsiteReader`, `LLMsTxtReader`, and `WebSearchReader` validate redirect targets through their HTTP request hooks. `FirecrawlReader` and `DoclingReader` validate the submitted URL, then delegate the fetch. Their `allowed_hosts` checks do not validate every downstream redirect. + + ```python ssrf_allowed_hosts.py """ SSRF Hardening: allowed_hosts on URL-fetching Readers diff --git a/examples/models/openai/chat/image-agent-bytes.mdx b/examples/models/openai/chat/image-agent-bytes.mdx index 25eee116f..8bf4eb1be 100644 --- a/examples/models/openai/chat/image-agent-bytes.mdx +++ b/examples/models/openai/chat/image-agent-bytes.mdx @@ -79,8 +79,8 @@ if __name__ == "__main__": - - Place a JPEG named `sample.jpg` in the same directory as the saved Python file. + + The script downloads `sample.jpg` beside the saved Python file. No input image is required. An existing file with that name is overwritten. diff --git a/history/agent/persistent-session-history.mdx b/history/agent/persistent-session-history.mdx index 62efe7d5e..bfb92799b 100644 --- a/history/agent/persistent-session-history.mdx +++ b/history/agent/persistent-session-history.mdx @@ -29,7 +29,16 @@ agent = Agent( num_history_runs=2, ) -agent.print_response("Tell me a new interesting fact about space") +session_id = "space-facts" + +agent.print_response( + "Tell me a new interesting fact about space", + session_id=session_id, +) +agent.print_response( + "What fact did you just tell me?", + session_id=session_id, +) ``` ## Usage diff --git a/reference-api/openapi.json b/reference-api/openapi.json index 37fad0da5..29733af1c 100644 --- a/reference-api/openapi.json +++ b/reference-api/openapi.json @@ -1 +1 @@ -{"openapi":"3.1.0","info":{"title":"Agno API Reference","description":"The all-in-one, private, secure agent platform that runs in your cloud.","version":"2.7.4"},"paths":{"/":{"get":{"tags":["Home"],"summary":"API Information","description":"Return the AgentOS instance name, ID, and version.","operationId":"get_api_info","responses":{"200":{"description":"API information retrieved successfully","content":{"application/json":{"schema":{"properties":{"name":{"type":"string","title":"Name"},"id":{"type":"string","title":"Id"},"version":{"type":"string","title":"Version"}},"type":"object","required":["name","id","version"],"title":"ApiInfoResponse"},"examples":{"home":{"summary":"Example home response","value":{"name":"AgentOS API","id":"demo-os","version":"1.0.0"}}}}}}}}},"/health":{"get":{"tags":["Health"],"summary":"Health Check","description":"Check the health status of the AgentOS API. Returns a simple status indicator.","operationId":"health_check","responses":{"200":{"description":"API is healthy and operational","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"},"example":{"status":"ok","instantiated_at":"2025-06-10T12:00:00Z"}}}}}}},"/info":{"get":{"tags":["Core"],"summary":"Get OS Info","description":"Return lightweight, unauthenticated metadata about this AgentOS instance.","operationId":"get_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoResponse"}}}}}}},"/config":{"get":{"tags":["Core"],"summary":"Get OS Configuration","description":"Retrieve the complete configuration of the AgentOS instance, including:\n\n- Available models and databases\n- Registered agents, teams, and workflows\n- Chat, session, memory, knowledge, and evaluation configurations\n- Available interfaces and their routes","operationId":"get_config","responses":{"200":{"description":"OS configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"},"example":{"description":"Example AgentOS configuration","available_models":[],"databases":["9c884dc4-9066-448c-9074-ef49ec7eb73c"],"session":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Sessions"}}]},"metrics":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Metrics"}}]},"memory":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Memory"}}]},"knowledge":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Knowledge"}}]},"evals":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Evals"}}]},"agents":[{"id":"main-agent","name":"Main Agent","db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c"}],"teams":[],"workflows":[],"interfaces":[],"os_id":"demo"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/models":{"get":{"tags":["Core"],"summary":"Get Available Models","description":"Retrieve a list of all unique models currently used by agents and teams in this OS instance. This includes the model ID and provider information for each model.","operationId":"get_models","responses":{"200":{"description":"List of models retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Response Get Models"},"example":[{"id":"gpt-4","provider":"openai"},{"id":"claude-3-sonnet","provider":"anthropic"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}/runs":{"post":{"tags":["Agents"],"summary":"Create Agent Run","description":"Execute an agent with a message and optional media files. Supports both streaming and non-streaming responses.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_agent_run"}}}},"responses":{"200":{"description":"Agent run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"examples":{"event_stream":{"summary":"Example event stream response","value":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Agents"],"summary":"List Agent Runs","description":"List runs for an agent within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_agent_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED","title":"Status"},"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RunSchema"},"type":"array","title":"Response List Agent Runs"}}}},"400":{"description":"Run listing is unavailable for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Agent resolution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/cancel":{"post":{"tags":["Agents"],"summary":"Cancel Agent Run","description":"Request cancellation for `run_id`. After any required ownership check, local and factory agents store cancellation intent keyed by run ID. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote agent.","operationId":"cancel_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.","title":"Session Id"},"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it."}],"responses":{"200":{"description":"Cancellation request accepted. The empty response does not confirm run existence or remote delivery.","content":{"application/json":{"schema":{}}}},"400":{"description":"A user-scoped caller omitted session_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found, or the run could not be verified in the caller's session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run cancellation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/continue":{"post":{"tags":["Agents"],"summary":"Continue Agent Run","description":"Advance a persisted agent run from its current state. Dispatches on the body shape and the persisted run state (see ADR-003 in specs/agno/features/checkpointing/decisions.md).\n\n**Variants:**\n- PAUSED + tools provided \u2192 apply HITL tool results, resume\n- PAUSED + resolved admin approval (empty tools) \u2192 apply resolution, resume\n- RUNNING / ERROR (no unresolved HITL requirements) \u2192 resume from last persisted state\n- COMPLETED + new tools \u2192 continue with appended messages\n\n**Tools Parameter:**\nJSON string containing array of tool execution objects with results. Optional \u2014 only required when the persisted run has unresolved HITL requirements.","operationId":"continue_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_agent_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid tools or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Agent run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run continuation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"503":{"description":"Remote agent is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/agents/{agent_id}/sessions/{session_id}/fork":{"post":{"tags":["Agents"],"summary":"Fork Agent Session","description":"Deep-copy a session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_agent_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents":{"get":{"tags":["Agents"],"summary":"List All Agents","description":"Retrieve a comprehensive list of all agents configured in this OS instance.\n\n**Returns:**\n- Agent metadata (ID, name, description)\n- Model configuration and capabilities\n- Available tools and their configurations\n- Session, knowledge, memory, and reasoning settings\n- Only meaningful (non-default) configurations are included","operationId":"get_agents","responses":{"200":{"description":"List of agents retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentResponse"},"type":"array","title":"Response Get Agents"},"example":[{"id":"main-agent","name":"Main Agent","db_id":"c6bf0644-feb8-4930-a305-380dae5ad6aa","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Details","description":"Retrieve detailed configuration and capabilities of a specific agent.\n\n**Returns comprehensive agent information including:**\n- Model configuration and provider details\n- Complete tool inventory and configurations\n- Session management settings\n- Knowledge base and memory configurations\n- Reasoning capabilities and settings\n- System prompts and response formatting options","operationId":"get_agent","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Agent details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"},"example":{"id":"main-agent","name":"Main Agent","db_id":"9e064c70-6821-4840-a333-ce6230908a70","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Run","description":"Retrieve the status and output of an agent run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Agents"],"summary":"List Agent Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_agent_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Agents"],"summary":"Get Agent Run Checkpoint Snapshot","description":"Return a derived run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_agent_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/resume":{"post":{"tags":["Agents"],"summary":"Resume Agent Run Stream","description":"Resume an SSE stream for an agent run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_agent_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_agent_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Not supported for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs":{"post":{"tags":["Teams"],"summary":"Create Team Run","description":"Execute a team collaboration with multiple agents working together on a task.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_team_run"}}}},"responses":{"200":{"description":"Team run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Teams"],"summary":"List Team Runs","description":"List runs for a team within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_team_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/cancel":{"post":{"tags":["Teams"],"summary":"Cancel Team Run","description":"Request cancellation for `run_id`. After any required ownership check, local and factory teams store cancellation intent keyed by run ID and mark known member runs for cancellation. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote team.","operationId":"cancel_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.","title":"Session Id"},"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it."}],"responses":{"200":{"description":"Cancellation request accepted. The empty response does not confirm run existence or remote delivery.","content":{"application/json":{"schema":{}}}},"400":{"description":"A user-scoped caller omitted session_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found, or the run could not be verified in the caller's session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel team run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/resume":{"post":{"tags":["Teams"],"summary":"Resume Team Run Stream","description":"Resume an SSE stream for a team run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_team_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_team_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory teams. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/continue":{"post":{"tags":["Teams"],"summary":"Continue Team Run","description":"Continue a paused or incomplete team run with updated requirements.\n\n**Use Cases:**\n- Resume execution after tool approval/rejection\n- Provide manual tool execution results\n- Resume after admin approval (requirements can be empty; resolution fetched from DB)\n\n**Requirements Parameter:**\nJSON string containing array of requirement objects with tool execution results.\nCan be empty when an admin-required approval has been resolved.","operationId":"continue_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_team_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid requirements or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Team run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Remote team is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/teams/{team_id}/sessions/{session_id}/fork":{"post":{"tags":["Teams"],"summary":"Fork Team Session","description":"Deep-copy a team session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_team_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams":{"get":{"tags":["Teams"],"summary":"List Accessible Teams","description":"Retrieve configured team metadata, models, members, knowledge, and memory settings. When authorization is enabled, in-memory team registrations are filtered by caller scopes. Database-loaded team components are also included.","operationId":"get_teams","responses":{"200":{"description":"List of teams retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamResponse"},"type":"array","title":"Response Get Teams"},"example":[{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"agno_memories","app_url":"/memory/1","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/teams/{team_id}":{"get":{"tags":["Teams"],"summary":"Get Team Details","description":"Retrieve detailed configuration and member information for a specific team.","operationId":"get_team","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"},"example":{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}":{"get":{"tags":["Teams"],"summary":"Get Team Run","description":"Retrieve the status and output of a team run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Teams"],"summary":"List Team Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored team run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_team_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Teams"],"summary":"Get Team Run Checkpoint Snapshot","description":"Return a derived team run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_team_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows":{"get":{"tags":["Workflows"],"summary":"List Workflows","description":"Return workflow ID, name, description, database ID, factory metadata, and Builder version metadata. When authorization is enabled, caller scopes filter in-memory workflow registrations. Database-loaded Builder workflows are appended separately.","operationId":"get_workflows","responses":{"200":{"description":"List of workflows retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Response Get Workflows"},"example":[{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/workflows/{workflow_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Details","description":"Retrieve detailed configuration and step information for a specific workflow.","operationId":"get_workflow","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Workflow version to retrieve","title":"Version"},"description":"Workflow version to retrieve"}],"responses":{"200":{"description":"Workflow details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"},"example":{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs":{"post":{"tags":["Workflows"],"summary":"Execute Workflow","description":"Execute a workflow with the provided input data. Workflows can run in streaming or batch mode.\n\n**Execution Modes:**\n- **Streaming (`stream=true`)**: Real-time step-by-step execution updates via SSE\n- **Non-Streaming (`stream=false`)**: Complete workflow execution with final result\n\n**Workflow Execution Process:**\n1. Input validation against workflow schema\n2. Sequential or parallel step execution based on workflow design\n3. Data flow between steps with transformation\n4. Error handling and automatic retries where configured\n5. Final result compilation and response\n\n**Session Management:**\nWorkflows support session continuity for stateful execution across multiple runs.","operationId":"create_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_run"}}}},"responses":{"200":{"description":"Workflow executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid input data or workflow configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Workflow execution error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"List Workflow Runs","description":"List runs for a workflow within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_workflow_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/continue":{"post":{"tags":["Workflows"],"summary":"Continue Workflow Run","description":"Continue a paused workflow run with resolved requirements.\n\n**Use Cases:**\n- Resume after step-level HITL (confirmation, user input, router selection)\n- Resume after executor-level HITL (agent/team tool confirmation within a step)\n\n**Requirements Parameter:**\nJSON string containing the resolved step requirements.","operationId":"continue_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_workflow_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: StepCompleted\ndata: {\"step_name\": \"step1\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid step requirements or factory input, missing required session ID, rejected input, or remote workflow continuation requested","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is not paused and cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/cancel":{"post":{"tags":["Workflows"],"summary":"Cancel Workflow Run","description":"Request cancellation for `run_id`. After any required ownership check, local and factory workflows store cancellation intent keyed by run ID and mark known agent or team executor runs for cancellation. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote workflow.","operationId":"cancel_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.","title":"Session Id"},"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it."}],"responses":{"200":{"description":"Cancellation request accepted. The empty response does not confirm run existence or remote delivery.","content":{"application/json":{"schema":{}}}},"400":{"description":"A user-scoped caller omitted session_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found, or the run could not be verified in the caller's session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel workflow run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/resume":{"post":{"tags":["Workflows"],"summary":"Resume Workflow Run Stream","description":"Resume an SSE stream for a workflow run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_workflow_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_workflow_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory workflows. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Run","description":"Retrieve the status and output of a workflow run. Use this to poll for run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/slack/events":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Receives incoming Slack events (messages, mentions, thread starts).\n\n**URL Verification:** On first setup, Slack sends a `url_verification` challenge. The endpoint echoes back the challenge string.\n\n**Event Processing:** Normal events are acknowledged immediately with `{\"status\": \"ok\"}` and processed in the background. This prevents Slack's 3-second retry timeout.\n\n**Retry Handling:** Events with `X-Slack-Retry-Num` header are duplicates and return 200 without reprocessing.\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Event Subscriptions > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for creating a Slack App or use the [manifest](/agent-os/interfaces/slack/setup#2-create-the-slack-app) for quick setup.\n","operationId":"slack_events_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SlackChallengeResponse"},{"$ref":"#/components/schemas/SlackEventResponse"}],"title":"Response Slack Events Simple Agent"}}}},"400":{"description":"Missing Slack headers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured, or the event body is not valid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number (present on retried events)"}]}},"/slack/interactions":{"post":{"tags":["Slack"],"summary":"Slack Interactions","description":"Handles Slack interactive components for Human-in-the-Loop (HITL) workflows.\n\n**Supported Actions:**\n- `row_approve` - Approve a pending tool call\n- `row_reject` - Reject a pending tool call\n- `submit_pause` - Submit form data for a paused workflow\n- `check_status` - Check an admin approval and resume an approved run\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Interactivity & Shortcuts > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for step-by-step instructions or the [HITL guide](/agent-os/interfaces/slack/hitl) for approval workflows.\n","operationId":"slack_interactions_simple_agent","responses":{"200":{"description":"Interaction accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackEventResponse"}}}},"400":{"description":"Missing Slack headers or malformed interaction payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number. Retried interactions return 200 without reprocessing."}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"URL-encoded JSON interaction payload (Slack sends interactive component data as a single form field)"}}}}}}}},"/whatsapp/status":{"get":{"tags":["Whatsapp"],"summary":"Status","operationId":"whatsapp_status_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"WhatsAppStatusResponse","example":{"status":"available"}}}}}}}},"/whatsapp/webhook":{"get":{"tags":["Whatsapp"],"summary":"Whatsapp Verify","description":"Handle WhatsApp webhook verification","operationId":"whatsapp_verify_simple_agent","responses":{"200":{"description":"Webhook challenge accepted","content":{"text/plain":{"schema":{"type":"string"},"example":"challenge-token"}}},"400":{"description":"No challenge was provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid verify token or mode","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Webhook verification is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"hub.mode","in":"query","required":true,"schema":{"type":"string"},"description":"Webhook verification mode. Meta sends `subscribe`."},{"name":"hub.verify_token","in":"query","required":true,"schema":{"type":"string"},"description":"Verification token configured for the WhatsApp interface."},{"name":"hub.challenge","in":"query","required":true,"schema":{"type":"string"},"description":"Challenge returned as plain text after successful verification."}]},"post":{"tags":["Whatsapp"],"summary":"Whatsapp Webhook","description":"Process incoming WhatsApp messages","operationId":"whatsapp_webhook_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppWebhookResponse"}}}},"403":{"description":"Invalid webhook signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Signature validation is not configured, or the JSON body is malformed or is not an object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Hub-Signature-256","in":"header","required":true,"schema":{"type":"string"},"description":"SHA-256 HMAC signature for the raw request body, prefixed with `sha256=`"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}},"/telegram/status":{"get":{"tags":["Telegram"],"summary":"Telegram Status","operationId":"telegram_status_simple-agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramStatusResponse"}}}}}}},"/telegram/webhook":{"post":{"tags":["Telegram"],"summary":"Telegram Webhook","operationId":"telegram_webhook_simple-agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramWebhookResponse"}}}},"403":{"description":"Invalid webhook secret token"}}}},"/agui":{"post":{"tags":["AGUI"],"summary":"Run Agent","operationId":"run_agent_agui_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentInput"}}},"required":true},"responses":{"200":{"description":"Server-sent event stream","content":{"text/event-stream":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/status":{"get":{"tags":["AGUI"],"summary":"Get Status","operationId":"get_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/a2a/agents/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Agent Card","operationId":"get_agent_card_a2a_agents__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/a2a/agents/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Agent","description":"Send a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"A2A is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/agents/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Agent Task","description":"Get the status and result of an agent task by ID. `params.contextId` identifies the session containing the task.","operationId":"get_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent task retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Missing task or context ID, or task polling requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"Task polling is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/get","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/agents/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Agent Task","description":"Cancel a running agent task. Scoped non-admin callers must identify the task's session with `params.contextId`.","operationId":"cancel_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent task canceled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"canceled"}}}}}},"400":{"description":"Missing task or required context ID, or task cancellation requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"Task cancellation is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/cancel","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/agents/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Agent","description":"Stream a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/teams/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Team Card","operationId":"get_team_card_a2a_teams__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/a2a/teams/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Team","description":"Send a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/teams/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Team Task","description":"Get the status and result of a team task by ID. `params.contextId` identifies the session containing the task.","operationId":"get_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team task retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Missing task or context ID, or task polling requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/get","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/teams/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Team Task","description":"Cancel a running team task. Scoped non-admin callers must identify the task's session with `params.contextId`.","operationId":"cancel_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team task canceled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"canceled"}}}}}},"400":{"description":"Missing task or required context ID, or task cancellation requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/cancel","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/teams/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Team","description":"Stream a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/workflows/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Workflow Card","operationId":"get_workflow_card_a2a_workflows__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Workflow card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/a2a/workflows/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Workflow","description":"Send a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/workflows/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Workflow","description":"Stream a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/message/send":{"post":{"tags":["A2A"],"summary":"Send Message","description":"[DEPRECATED] Send a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"send_message","responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request or unsupported method","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, team, or workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"deprecated":true,"security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Agent-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Target agent, team, or workflow ID when `params.message.agentId` is omitted."},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/message/stream":{"post":{"tags":["A2A"],"summary":"Stream Message","description":"[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as Server-Sent Events (SSE).","operationId":"stream_message","responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request or unsupported method","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, team, or workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"deprecated":true,"security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Agent-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Target agent, team, or workflow ID when `params.message.agentId` is omitted."},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/sessions":{"get":{"tags":["Sessions"],"summary":"List Sessions","description":"Retrieve paginated list of sessions with filtering and sorting options. Supports filtering by session type (agent, team, workflow), component, user, and name. Sessions represent conversation histories and execution contexts.","operationId":"get_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types.","title":"Type"},"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types."},{"name":"component_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by component ID (agent/team/workflow ID)","title":"Component Id"},"description":"Filter sessions by component ID (agent/team/workflow ID)"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by user ID","title":"User Id"},"description":"Filter sessions by user ID"},{"name":"session_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by name (partial match)","title":"Session Name"},"description":"Filter sessions by name (partial match)"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of sessions to return per page","default":20,"title":"Limit"},"description":"Number of sessions to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort sessions by","default":"created_at","title":"Sort By"},"description":"Field to sort sessions by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query sessions from","title":"Db Id"},"description":"Database ID to query sessions from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Sessions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_SessionSchema_"},"example":{"session_example":{"summary":"Example session response","value":{"data":[{"session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_state":{},"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}]}}}}}},"400":{"description":"Invalid session type or filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in query parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Sessions"],"summary":"Create New Session","description":"Create a new empty session with optional configuration. Useful for pre-creating sessions with specific session_state, metadata, or other properties before running any agent/team/workflow interactions. The session can later be used by providing its session_id in run requests.","operationId":"create_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SessionType","description":"Type of session to create (agent, team, or workflow)","default":"agent"},"description":"Type of session to create (agent, team, or workflow)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to create session in","title":"Db Id"},"description":"Database ID to create session in"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest","description":"Session configuration data","default":{}}}}},"responses":{"201":{"description":"Session created successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Create Session"},"examples":{"agent_session_example":{"summary":"Example created agent session","value":{"user_id":"user-123","agent_session_id":"new-session-id","session_id":"new-session-id","session_name":"New Session","session_state":{"key":"value"},"metadata":{"key":"value"},"agent_id":"agent-1","created_at":"2025-10-21T12:00:00Z","updated_at":"2025-10-21T12:00:00Z"}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A session with the supplied session_id already exists"},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Multiple Sessions","description":"Delete multiple sessions by their IDs in a single operation. This action cannot be undone and will permanently remove all specified sessions and their runs.","operationId":"delete_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSessionRequest"}}}},"responses":{"204":{"description":"Sessions deleted successfully"},"400":{"description":"Invalid request - session IDs and types length mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["Sessions"],"summary":"Get Session by ID","description":"Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow).","operationId":"get_session_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to retrieve","title":"Session Id"},"description":"Session ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query session from","title":"User Id"},"description":"User ID to query session from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query session from","title":"Db Id"},"description":"Database ID to query session from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query session from","title":"Table"},"description":"Table to query session from"}],"responses":{"200":{"description":"Session details retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Get Session By Id"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Session","description":"Permanently delete a specific session and all its associated runs. This action cannot be undone and will remove all conversation history.","operationId":"delete_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to delete","title":"Session Id"},"description":"Session ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Sessions"],"summary":"Update Session","description":"Update session properties such as session_name, session_state, metadata, or summary. Use this endpoint to modify the session name, update state, add metadata, or update the session summary.","operationId":"update_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to update","title":"Session Id"},"description":"Session ID to update"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID","title":"User Id"},"description":"User ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update operation","title":"Db Id"},"description":"Database ID to use for update operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update operation","title":"Table"},"description":"Table to use for update operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest","description":"Session update data"}}}},"responses":{"200":{"description":"Session updated successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Update Session"},"examples":{"update_summary":{"summary":"Update session summary","value":{"summary":{"summary":"The user discussed project planning with the agent.","updated_at":"2025-10-21T14:30:00Z"}}},"update_metadata":{"summary":"Update session metadata","value":{"metadata":{"tags":["planning","project"],"priority":"high"}}},"update_session_name":{"summary":"Update session name","value":{"session_name":"Updated Session Name"}},"update_session_state":{"summary":"Update session state","value":{"session_state":{"step":"completed","context":"Project planning finished","progress":100}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs":{"get":{"tags":["Sessions"],"summary":"Get Session Runs","description":"Retrieve all runs (executions) for a specific session with optional timestamp filtering. Runs represent individual interactions or executions within a session. Response schema varies based on session type.","operationId":"get_session_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get runs from","title":"Session Id"},"description":"Session ID to get runs from"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query runs from","title":"User Id"},"description":"User ID to query runs from"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created after this Unix timestamp (epoch time in seconds)","title":"Created After"},"description":"Filter runs created after this Unix timestamp (epoch time in seconds)"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created before this Unix timestamp (epoch time in seconds)","title":"Created Before"},"description":"Filter runs created before this Unix timestamp (epoch time in seconds)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query runs from","title":"Db Id"},"description":"Database ID to query runs from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query runs from","title":"Table"},"description":"Table to query runs from"}],"responses":{"200":{"description":"Session runs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}]},"title":"Response Get Session Runs"},"examples":{"completed_run":{"summary":"Example completed run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"","run_input":"Which tools do you have access to?","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","run_response_format":"text","reasoning_content":"","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069},"messages":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-08 17:52:10.101003.\n\n\nYou have the capability to retain memories from previous interactions with the user, but have not had any interactions with the user yet.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757346730},{"content":"Which tools do you have access to?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757346730},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138},"created_at":1757346730}],"events":[{"created_at":1757346730,"event":"RunStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","model":"gpt-4o","model_provider":"OpenAI"},{"created_at":1757346733,"event":"MemoryUpdateStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"MemoryUpdateCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"RunCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","content_type":"str","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069}}],"created_at":"2025-09-08T15:52:10Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found or has no runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs/{run_id}":{"get":{"tags":["Sessions"],"summary":"Get Run by ID","description":"Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run).","operationId":"get_session_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get run from","title":"Session Id"},"description":"Session ID to get run from"},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","description":"Run ID to retrieve","title":"Run Id"},"description":"Run ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query run from","title":"User Id"},"description":"User ID to query run from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query run from","title":"Db Id"},"description":"Database ID to query run from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query run from","title":"Table"},"description":"Table to query run from"}],"responses":{"200":{"description":"Run retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}],"title":"Response Get Session Run"},"examples":{"agent_run":{"summary":"Example agent run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"user_123","run_input":"Which tools do you have access to?","content":"I don't have access to external tools.","created_at":1728499200}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/rename":{"post":{"tags":["Sessions"],"summary":"Rename Session","description":"Update the name of an existing session. Useful for organizing and categorizing sessions with meaningful names for better identification and management.","operationId":"rename_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to rename","title":"Session Id"},"description":"Session ID to rename"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope rename to","title":"User Id"},"description":"User ID to scope rename to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for rename operation","title":"Db Id"},"description":"Database ID to use for rename operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_rename_session"}}}},"responses":{"200":{"description":"Session renamed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Rename Session"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Invalid session name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type or validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories":{"post":{"tags":["Memory"],"summary":"Create Memory","description":"Create a new user memory with content and associated topics. Memories are used to store contextual information for users across conversations.","operationId":"create_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for memory storage","title":"Db Id"},"description":"Database ID to use for memory storage"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for memory storage","title":"Table"},"description":"Table to use for memory storage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"mem-123","memory":"User prefers technical explanations with code examples","topics":["preferences","communication_style","technical"],"user_id":"user-456","created_at":"2024-01-15T10:30:00Z","updated_at":"2024-01-15T10:30:00Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Memory"],"summary":"Delete Multiple Memories","description":"Delete multiple user memories by their IDs in a single operation. This action cannot be undone and all specified memories will be permanently removed.","operationId":"delete_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMemoriesRequest"}}}},"responses":{"204":{"description":"Memories deleted successfully"},"400":{"description":"Invalid request - empty memory_ids list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"List Memories","description":"Retrieve paginated list of user memories with filtering and search capabilities. Filter by user, agent, team, topics, or search within memory content.","operationId":"get_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by user ID","title":"User Id"},"description":"Filter memories by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by agent ID","title":"Agent Id"},"description":"Filter memories by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by team ID","title":"Team Id"},"description":"Filter memories by team ID"},{"name":"search_content","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fuzzy search within memory content","title":"Search Content"},"description":"Fuzzy search within memory content"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of memories to return per page","default":20,"title":"Limit"},"description":"Number of memories to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort memories by","default":"updated_at","title":"Sort By"},"description":"Field to sort memories by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memories from","title":"Db Id"},"description":"Database ID to query memories from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Comma-separated list of topics to filter by","examples":["preferences,technical,communication_style"],"title":"Topics"},"description":"Comma-separated list of topics to filter by"}],"responses":{"200":{"description":"Memories retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserMemorySchema_"},"example":{"data":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories/{memory_id}":{"delete":{"tags":["Memory"],"summary":"Delete Memory","description":"Permanently delete a specific user memory. This action cannot be undone.","operationId":"delete_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to delete","title":"Memory Id"},"description":"Memory ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to delete memory for","title":"User Id"},"description":"User ID to delete memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Memory deleted successfully"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"Get Memory by ID","description":"Retrieve detailed information about a specific user memory by its ID.","operationId":"get_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to retrieve","title":"Memory Id"},"description":"Memory ID to retrieve"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query memory for","title":"User Id"},"description":"User ID to query memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memory from","title":"Db Id"},"description":"Database ID to query memory from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query memory from","title":"Table"},"description":"Table to query memory from"}],"responses":{"200":{"description":"Memory retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Memory"],"summary":"Update Memory","description":"Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values.","operationId":"update_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to update","title":"Memory Id"},"description":"Memory ID to update"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update","title":"Db Id"},"description":"Database ID to use for update"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update","title":"Table"},"description":"Table to use for update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memory_topics":{"get":{"tags":["Memory"],"summary":"Get Memory Topics","description":"Retrieve all unique topics associated with memories in the system. Useful for filtering and categorizing memories by topic.","operationId":"get_memory_topics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter topics for","title":"User Id"},"description":"User ID to filter topics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query topics from","title":"Db Id"},"description":"Database ID to query topics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query topics from","title":"Table"},"description":"Table to query topics from"}],"responses":{"200":{"description":"Memory topics retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Get Memory Topics"},"example":["preferences","communication_style","technical","industry","compliance","code_examples","requirements","healthcare","finance"]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/user_memory_stats":{"get":{"tags":["Memory"],"summary":"Get User Memory Statistics","description":"Retrieve paginated statistics about memory usage by user. Provides insights into user engagement and memory distribution across users.","operationId":"get_user_memory_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of user statistics to return per page","default":20,"title":"Limit"},"description":"Number of user statistics to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter statistics for","title":"User Id"},"description":"User ID to filter statistics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query statistics from","title":"Table"},"description":"Table to query statistics from"}],"responses":{"200":{"description":"User memory statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserStatsSchema_"},"example":{"data":[{"user_id":"123","total_memories":3,"last_memory_updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve user statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/optimize-memories":{"post":{"tags":["Memory"],"summary":"Optimize User Memories","description":"Optimize all memories for a user with the summarize strategy. The operation combines the user's memories into one summary. Set `apply=false` to preview the result without saving it. Specify a custom model as `provider:model_id`, for example `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, or `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`.","operationId":"optimize_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for optimization","title":"Db Id"},"description":"Database ID to use for optimization"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for optimization","title":"Table"},"description":"Table to use for optimization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesRequest"}}}},"responses":{"200":{"description":"Memories optimized successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesResponse"},"example":{"memories":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User has a 3-year-old golden retriever named Max who loves fetch and walks. Lives in San Francisco's Mission district, works as a product manager in tech. Enjoys hiking Bay Area trails, trying new restaurants (especially Japanese, Thai, Mexican), and learning piano for 1.5 years.","topics":["pets","location","work","hobbies","food_preferences"],"user_id":"user2","updated_at":"2025-11-18T10:30:00Z"}],"memories_before":4,"memories_after":1,"tokens_before":450,"tokens_after":180,"tokens_saved":270,"reduction_percentage":60.0}}}},"400":{"description":"Bad request - User ID is required or invalid model string format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No memories found for user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to optimize memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings":{"get":{"tags":["Learnings"],"summary":"List Learnings","description":"List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) \u2014 this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`).","operationId":"list_learnings","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by learning type","title":"Learning Type"},"description":"Filter by learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"namespace","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by namespace","title":"Namespace"},"description":"Filter by namespace"},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity ID","title":"Entity Id"},"description":"Filter by entity ID"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity type","title":"Entity Type"},"description":"Filter by entity type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":100,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used).","title":"Sort By"},"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used)."},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"post":{"tags":["Learnings"],"summary":"Create Learning","description":"Create a new learning record. For the identity-keyed learning types (`user_profile`, `user_memory`, `session_context`, `entity_memory`) the record id is derived deterministically from the identity fields so it reconciles with what the agent reads/writes \u2014 provide those fields (else 422), and if a record already exists the request is rejected with 409 (use PATCH to update it). Other types get a generated id. For a scoped (non-admin) caller, the body's `user_id` must be omitted/null or match the caller (mismatch \u2192 403); admins and unscoped callers may set any `user_id`.","operationId":"create_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"An identity-keyed learning already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/users":{"get":{"tags":["Learnings"],"summary":"List Learning Users","description":"List the users that own learning records, with a per-user count and last-updated timestamp. Intended as the entry point for a per-user view: list users here, then drill into a single user's learnings via `GET /learnings?user_id=...`. Records with no owner (`user_id IS NULL`) are excluded. Pass `learning_type` to restrict the grouping to a single store (e.g. `user_profile` or `user_memory`). For a scoped (non-admin) caller results are bound to that user; an explicit `user_id` that differs is rejected with 403. Admins and unscoped callers list all users. Sortable by `user_id` or `last_learning_updated_at` (the default).","operationId":"list_learning_users","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the grouping to a single learning type","title":"Learning Type"},"description":"Restrict the grouping to a single learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the result to a single user","title":"User Id"},"description":"Restrict the result to a single user"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by: user_id or last_learning_updated_at (the default)","title":"Sort By"},"description":"Field to sort by: user_id or last_learning_updated_at (the default)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningUserStats_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/users/{user_id}":{"delete":{"tags":["Learnings"],"summary":"Delete Learning User","description":"Delete the learning records owned by a user. By default removes every learning type backed by the agno_learnings table (user_profile, user_memory, and any user-scoped entity records); pass `learning_type` to restrict deletion to a single store. Records with no owner (`user_id IS NULL`) are not affected. For a scoped (non-admin) caller, only their own learnings may be deleted; a different `user_id` is rejected with 403. Admins and unscoped callers may delete any user's learnings. Returns 204 even if the user had no matching records.","operationId":"delete_learning_user","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The user whose learnings should be deleted","title":"User Id"},"description":"The user whose learnings should be deleted"},{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings","title":"Learning Type"},"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/{learning_id}":{"get":{"tags":["Learnings"],"summary":"Get Learning","description":"Retrieve a single learning record by its ID.","operationId":"get_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"patch":{"tags":["Learnings"],"summary":"Update Learning","description":"Update a learning record. Only `content` and `metadata` may be modified; identity fields (user_id, agent_id, team_id, etc.) are immutable. Provided fields fully replace the existing values. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) are readable by any caller but may only be modified by an admin.","operationId":"update_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"delete":{"tags":["Learnings"],"summary":"Delete Learning","description":"Permanently delete a learning record by its ID. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) may only be deleted by an admin.","operationId":"delete_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/eval-runs":{"get":{"tags":["Evals"],"summary":"List Evaluation Runs","description":"Retrieve paginated evaluation runs with filtering and sorting options. Filter by agent, team, workflow, model, or evaluation type.","operationId":"get_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Workflow ID","title":"Workflow Id"},"description":"Workflow ID"},{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model ID","title":"Model Id"},"description":"Model ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EvalFilterType"},{"type":"null"}],"description":"Filter type","title":"Type"},"description":"Filter type"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of eval runs to return","default":20,"title":"Limit"},"description":"Number of eval runs to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"eval_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)","examples":["accuracy,agent_as_judge,performance,reliability"],"title":"Eval Types"},"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)"}],"responses":{"200":{"description":"Evaluation runs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_EvalSchema_"},"example":{"data":[{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Evals"],"summary":"Delete Evaluation Runs","description":"Delete multiple evaluation runs by their IDs. This action cannot be undone.","operationId":"delete_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvalRunsRequest"}}}},"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Deletion failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Evals"],"summary":"Execute Evaluation","description":"Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both.","operationId":"run_eval","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for evaluation","title":"Db Id"},"description":"Database ID to use for evaluation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for evaluation","title":"Table"},"description":"Table to use for evaluation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRunInput"}}}},"responses":{"200":{"description":"Evaluation executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"f2b2d72f-e9e2-4f0e-8810-0a7e1ff58614","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Invalid request - provide either agent_id or team_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs/{eval_run_id}":{"get":{"tags":["Evals"],"summary":"Get Evaluation Run","description":"Retrieve detailed results and metrics for a specific evaluation run.","operationId":"get_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query eval run from","title":"Table"},"description":"Table to query eval run from"}],"responses":{"200":{"description":"Evaluation run details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Evals"],"summary":"Update Evaluation Run","description":"Update the name or other properties of an existing evaluation run.","operationId":"update_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvalRunRequest"}}}},"responses":{"200":{"description":"Evaluation run updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update evaluation run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics":{"get":{"tags":["Metrics"],"summary":"Get AgentOS Metrics","description":"Retrieve AgentOS metrics and analytics data for a specified date range. If no date range is specified, returns all available metrics.","operationId":"get_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"starting_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Starting date for metrics range (YYYY-MM-DD format)","title":"Starting Date"},"description":"Starting date for metrics range (YYYY-MM-DD format)"},{"name":"ending_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Ending date for metrics range (YYYY-MM-DD format)","title":"Ending Date"},"description":"Ending date for metrics range (YYYY-MM-DD format)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query metrics from","title":"Db Id"},"description":"Database ID to query metrics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Metrics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"},"example":{"metrics":[{"id":"7bf39658-a00a-484c-8a28-67fd8a9ddb2a","agent_runs_count":5,"agent_sessions_count":5,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":448,"output_tokens":148,"total_tokens":596,"audio_tokens":0,"input_audio_tokens":0,"output_audio_tokens":0,"cached_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":5}],"date":"2025-07-31T00:00:00Z","created_at":"2025-07-31T12:38:52Z","updated_at":"2025-07-31T12:49:01Z"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Metrics retrieval failed. In Agno 2.7.4, invalid or ambiguous database selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics/refresh":{"post":{"tags":["Metrics"],"summary":"Refresh Metrics","description":"Manually trigger recalculation of system metrics from raw data. This operation analyzes system activity logs and regenerates aggregated metrics. Useful for ensuring metrics are up-to-date or after system maintenance.","operationId":"refresh_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for metrics calculation","title":"Db Id"},"description":"Database ID to use for metrics calculation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for metrics calculation","title":"Table"},"description":"Table to use for metrics calculation"}],"responses":{"200":{"description":"Metrics refreshed successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"title":"Response Refresh Metrics"},"example":[{"id":"e77c9531-818b-47a5-99cd-59fed61e5403","agent_runs_count":2,"agent_sessions_count":2,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":256,"output_tokens":441,"total_tokens":697,"audio_total_tokens":0,"audio_input_tokens":0,"audio_output_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":2}],"date":"2025-08-12T00:00:00Z","created_at":"2025-08-12T08:01:47Z","updated_at":"2025-08-12T08:01:47Z"}]}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Refresh failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content":{"post":{"tags":["Knowledge"],"summary":"Upload Content","description":"Upload content to the knowledge base. Supports file uploads, text content, or URLs. Content is processed asynchronously in the background. Supports custom readers and chunking strategies.","operationId":"upload_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_content"}}}},"responses":{"202":{"description":"Content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-123","name":"example-document.pdf","description":"Sample document for processing","metadata":{"category":"documentation","priority":"high"},"status":"processing"}}}},"400":{"description":"Invalid request - malformed metadata or missing content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in form data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"List Content","description":"Return a paginated, sorted list of content for the selected knowledge base. Use `limit`, `page`, `sort_by`, and `sort_order` to control the result. Agno 2.7.4 exposes no status, content type, or metadata filter parameters on this endpoint. Named local knowledge instances scope rows by the stored `linked_to` value.","operationId":"get_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of content entries to return","default":20,"title":"Limit"},"description":"Number of content entries to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ContentResponseSchema_"},"example":{"data":[{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":null,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z","linked_to":null}],"meta":{"page":1,"limit":20,"total_pages":1,"total_count":2}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete All Content","description":"Permanently remove all content from the knowledge base. This is a destructive operation that cannot be undone. Use with extreme caution.","operationId":"delete_all_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete all content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/remote-content":{"post":{"tags":["Knowledge"],"summary":"Upload Remote Content","description":"Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.","operationId":"upload_remote_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_upload_remote_content"}}}},"responses":{"202":{"description":"Remote content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-456","name":"reports/q1-2024.pdf","description":"Q1 Report from S3","metadata":{"source":"s3-docs"},"status":"processing"}}}},"400":{"description":"Invalid request - unknown config or missing path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Remote content upload is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/knowledge/content/{content_id}":{"patch":{"tags":["Knowledge"],"summary":"Update Content","description":"Update content name, description, or metadata without re-uploading it. In Agno 2.7.4, this endpoint accepts `reader_id`. Local knowledge validates the value, but the content patch does not apply or persist the reader change.","operationId":"update_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","description":"Content ID","title":"Content Id"},"description":"Content ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_update_content"}}}},"responses":{"200":{"description":"Content updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":null,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z","linked_to":null}}}},"400":{"description":"Invalid request - malformed metadata or invalid reader_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"Get Content by ID","description":"Retrieve detailed information about a specific content item including processing status and metadata.","operationId":"get_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":null,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z","linked_to":null}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete Content by ID","description":"Permanently remove a specific content item from the knowledge base. This action cannot be undone.","operationId":"delete_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}/status":{"get":{"tags":["Knowledge"],"summary":"Get Content Status","description":"Return the processing status for a content ID. For local knowledge in Agno 2.7.4, an unknown content ID returns HTTP 200 with `status=\"failed\"` and `status_message=\"Content not found\"`.","operationId":"get_content_status","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content status returned. An unknown local content ID is represented by status \"failed\".","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentStatusResponse"},"examples":{"completed":{"summary":"Completed content","value":{"id":"content-123","status":"completed","status_message":""}},"content_not_found":{"summary":"Unknown local content ID","value":{"id":"missing-content","status":"failed","status_message":"Content not found"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Selected knowledge base or database ID not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/search":{"post":{"tags":["Knowledge"],"summary":"Search Knowledge","description":"Search the knowledge base for relevant documents using query, filters and search type.","operationId":"search_knowledge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VectorSearchRequestSchema"}}},"required":true},"responses":{"200":{"description":"Search results retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_VectorSearchResult_"},"example":{"data":[{"id":"doc_123","content":"Jordan Mitchell - Software Engineer with skills in JavaScript, React, Python","name":"cv_1","meta_data":{"page":1,"chunk":1},"usage":{"total_tokens":14},"reranking_score":0.95,"content_id":"content_456"}],"meta":{"page":1,"limit":20,"total_pages":2,"total_count":35}}}}},"400":{"description":"Invalid search parameters"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No documents found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/knowledge/config":{"get":{"tags":["Knowledge"],"summary":"Get Config","description":"Retrieve available readers, chunkers, and configuration options for content processing. This endpoint provides metadata about supported file types, processing strategies, and filters.","operationId":"get_knowledge_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Knowledge configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponseSchema"},"example":{"readers":{"website":{"id":"website","name":"WebsiteReader","description":"Reads website files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"firecrawl":{"id":"firecrawl","name":"FirecrawlReader","description":"Reads firecrawl files","chunkers":["SemanticChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"youtube":{"id":"youtube","name":"YoutubeReader","description":"Reads youtube files","chunkers":["RecursiveChunker","AgenticChunker","DocumentChunker","SemanticChunker","FixedSizeChunker"]},"web_search":{"id":"web_search","name":"WebSearchReader","description":"Reads web_search files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"arxiv":{"id":"arxiv","name":"ArxivReader","description":"Reads arxiv files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"csv":{"id":"csv","name":"CsvReader","description":"Reads csv files","chunkers":["RowChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"docling":{"id":"docling","name":"DoclingReader","description":"Converts multiple document formats like PDF, DOCX, PPTX, images, HTML, etc. using IBM's Docling library","chunkers":["AgenticChunker","CodeChunker","DocumentChunker","FixedSizeChunker","RecursiveChunker","SemanticChunker"]},"docx":{"id":"docx","name":"DocxReader","description":"Reads docx files","chunkers":["DocumentChunker","FixedSizeChunker","SemanticChunker","AgenticChunker","RecursiveChunker"]},"gcs":{"id":"gcs","name":"GcsReader","description":"Reads gcs files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"json":{"id":"json","name":"JsonReader","description":"Reads json files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"markdown":{"id":"markdown","name":"MarkdownReader","description":"Reads markdown files","chunkers":["MarkdownChunker","DocumentChunker","AgenticChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"pdf":{"id":"pdf","name":"PdfReader","description":"Reads pdf files","chunkers":["DocumentChunker","FixedSizeChunker","AgenticChunker","SemanticChunker","RecursiveChunker"]},"text":{"id":"text","name":"TextReader","description":"Reads text files","chunkers":["CodeChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]}},"readersForType":{"url":["url","website","firecrawl","youtube","web_search","gcs"],"youtube":["youtube"],"text":["web_search"],"topic":["arxiv"],"file":["csv","gcs"],".csv":["csv","field_labeled_csv","docling"],".xlsx":["excel","docling"],".xls":["excel"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["excel"],"application/vnd.ms-excel":["excel"],".docx":["docx","docling"],".dotx":["docling"],".docm":["docling"],".dotm":["docling"],".pptx":["docling","pptx"],".potx":["docling"],".ppsx":["docling"],".pptm":["docling"],".ppsm":["docling"],".potm":["docling"],".doc":["docx"],".json":["json"],".md":["markdown","docling"],".pdf":["pdf","docling"],".txt":["text"],".html":["docling"],".htm":["docling"],".xhtml":["docling"],".xml":["docling"],".nxml":["docling"],".xbrl":["docling"],".adoc":["docling"],".asciidoc":["docling"],".asc":["docling"],".xlsm":["docling"],".tex":["docling"],".latex":["docling"],".tar.gz":["docling"],".vtt":["docling"],".png":["docling"],".jpeg":["docling"],".jpg":["docling"],".tiff":["docling"],".tif":["docling"],".bmp":["docling"],".webp":["docling"],".wav":["docling"],".mp3":["docling"],".m4a":["docling"],".aac":["docling"],".ogg":["docling"],".flac":["docling"],".mp4":["docling"],".avi":["docling"],".mov":["docling"]},"chunkers":{"AgenticChunker":{"key":"AgenticChunker","name":"AgenticChunker","description":"Chunking strategy that uses an LLM to determine natural breakpoints in the text","metadata":{"chunk_size":5000}},"CodeChunker":{"key":"CodeChunker","name":"CodeChunker","description":"The CodeChunker splits code into chunks based on its structure, leveraging Abstract Syntax Trees (ASTs) to create contextually relevant segments","metadata":{"chunk_size":2048}},"DocumentChunker":{"key":"DocumentChunker","name":"DocumentChunker","description":"A chunking strategy that splits text based on document structure like paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"FixedSizeChunker":{"key":"FixedSizeChunker","name":"FixedSizeChunker","description":"Chunking strategy that splits text into fixed-size chunks with optional overlap","metadata":{"chunk_size":5000,"chunk_overlap":0}},"MarkdownChunker":{"key":"MarkdownChunker","name":"MarkdownChunker","description":"A chunking strategy that splits markdown based on structure like headers, paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RecursiveChunker":{"key":"RecursiveChunker","name":"RecursiveChunker","description":"Chunking strategy that recursively splits text into chunks by finding natural break points","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RowChunker":{"key":"RowChunker","name":"RowChunker","description":"RowChunking chunking strategy","metadata":{}},"SemanticChunker":{"key":"SemanticChunker","name":"SemanticChunker","description":"Chunking strategy that splits text into semantic chunks using chonkie","metadata":{"chunk_size":5000}}},"vector_dbs":[{"id":"vector_db_1","name":"Vector DB 1","description":"Vector DB 1 description","search_types":["vector","keyword","hybrid"]}],"filters":["filter_tag_1","filter_tag2"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources":{"get":{"tags":["Knowledge"],"summary":"List Content Sources","description":"List all registered content sources (S3, GCS, SharePoint, GitHub) for the knowledge base.","operationId":"list_content_sources","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Content sources retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"title":"Response List Content Sources"},"example":[{"id":"company-s3","name":"Company Documents","type":"s3","prefix":"documents/"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Content source listing is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/knowledge/{knowledge_id}/sources/{source_id}/files":{"get":{"tags":["Knowledge"],"summary":"List Files in Source","description":"List available files and folders in a specific content source. Supports pagination and folder navigation.","operationId":"list_source_files","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the content source","title":"Source Id"},"description":"ID of the content source"},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Path prefix to filter files","title":"Prefix"},"description":"Path prefix to filter files"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of files per page","default":100,"title":"Limit"},"description":"Number of files per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"delimiter","in":"query","required":false,"schema":{"type":"string","description":"Folder delimiter (enables folder grouping)","default":"/","title":"Delimiter"},"description":"Folder delimiter (enables folder grouping)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Files listed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceFilesResponseSchema"},"example":{"source_id":"company-s3","source_name":"Company Documents","prefix":"reports/","folders":[{"prefix":"reports/2024/","name":"2024","is_empty":false}],"files":[{"key":"reports/annual-summary.pdf","name":"annual-summary.pdf","size":102400,"last_modified":"2024-01-15T10:30:00Z","content_type":"application/pdf"}],"meta":{"page":1,"limit":100,"total_pages":1,"total_count":1}}}}},"400":{"description":"Unsupported source type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base or content source not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Source file listing is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/traces":{"get":{"tags":["Traces","Traces"],"summary":"List Traces","description":"Retrieve a paginated list of execution traces with optional filtering.\n\n**Traces provide observability into:**\n- Agent execution flows\n- Model invocations and token usage\n- Tool calls and their results\n- Errors and performance bottlenecks\n\n**Filtering Options:**\n- By run, session, user, or agent ID\n- By status (OK, ERROR)\n- By time range\n\n**Pagination:**\n- Use `page` (1-indexed) and `limit` parameters\n- Response includes pagination metadata (total_pages, total_count, etc.)\n\n**Response Format:**\nReturns summary information for each trace. Use GET `/traces/{trace_id}` for detailed hierarchy.","operationId":"get_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run ID","title":"Run Id"},"description":"Filter by run ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status (OK, ERROR)","title":"Status"},"description":"Filter by status (OK, ERROR)"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of traces per page","default":20,"title":"Limit"},"description":"Number of traces per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"responses":{"200":{"description":"List of traces retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSummary_"},"example":{"data":[{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","total_spans":4,"error_count":0,"input":"What is the stock price of NVDA?","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"agent_stock","created_at":"2025-11-19T10:30:00+00:00"}],"meta":{"page":1,"limit":20,"total_pages":5,"total_count":95}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/filter-schema":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Filter Schema","description":"Returns the available filterable fields, their types, valid operators, and enum values.\n\nThe frontend uses this to dynamically build the filter bar UI:\n- Field dropdown populated from `fields[].key`\n- Operator dropdown changes per field type\n- Value input shows autocomplete for enum fields (e.g., status)\n- Logical operators (AND, OR) for combining clauses","operationId":"get_traces_filter_schema","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterSchemaResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/traces/{trace_id}":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace or Span Detail","description":"Retrieve detailed trace information with hierarchical span tree, or a specific span within the trace.\n\n**Without span_id parameter:**\nReturns the full trace with hierarchical span tree:\n- Trace metadata (ID, status, duration, context)\n- Hierarchical tree of all spans\n- Each span includes timing, status, and type-specific metadata\n\n**With span_id parameter:**\nReturns details for a specific span within the trace:\n- Span metadata (ID, name, type, timing)\n- Status and error information\n- Type-specific attributes (model, tokens, tool params, etc.)\n\n**Span Hierarchy (full trace):**\nThe `tree` field contains root spans, each with potential `children`.\nThis recursive structure represents the execution flow:\n```\nAgent.run (root)\n \u251c\u2500 LLM.invoke\n \u251c\u2500 Tool.execute\n \u2502 \u2514\u2500 LLM.invoke (nested)\n \u2514\u2500 LLM.invoke\n```\n\n**Span Types:**\n- `AGENT`: Agent execution with input/output\n- `LLM`: Model invocations with tokens and prompts\n- `TOOL`: Tool calls with parameters and results","operationId":"get_trace","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}},{"name":"span_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Span ID to retrieve specific span","title":"Span Id"},"description":"Optional: Span ID to retrieve specific span"},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Run ID to retrieve trace for","title":"Run Id"},"description":"Optional: Run ID to retrieve trace for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query trace from","title":"Db Id"},"description":"Database ID to query trace from"}],"responses":{"200":{"description":"Trace or span detail retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TraceDetail"},{"$ref":"#/components/schemas/TraceNode"}],"title":"Response Get Trace"},"examples":{"full_trace":{"summary":"Full trace with hierarchy (no span_id)","value":{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","end_time":"2025-11-19T10:30:01.200000+00:00","total_spans":4,"error_count":0,"input":"What is Tesla stock price?","output":"The current price of Tesla (TSLA) is $245.67.","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"stock_agent","created_at":"2025-11-19T10:30:00+00:00","tree":[{"id":"span1","name":"Stock_Price_Agent.run","type":"AGENT","duration":"1.2s","status":"OK","spans":[]}]}},"single_span":{"summary":"Single span detail (with span_id)","value":{"id":"span2","name":"gpt-4o-mini.invoke","type":"LLM","duration":"800ms","status":"OK","metadata":{"model":"gpt-4o-mini","input_tokens":120}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Trace or span not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/trace_session_stats":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Statistics by Session","description":"Retrieve aggregated trace statistics grouped by session ID with pagination.\n\n**Provides insights into:**\n- Total traces per session\n- First and last trace timestamps per session\n- Associated user and agent information\n\n**Filtering Options:**\n- By user ID\n- By agent ID\n\n**Use Cases:**\n- Monitor session-level activity\n- Track conversation flows\n- Identify high-activity sessions\n- Analyze user engagement patterns","operationId":"get_trace_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of sessions per page","default":20,"title":"Limit"},"description":"Number of sessions per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"}],"responses":{"200":{"description":"Trace statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"},"example":{"data":[{"session_id":"37029bc6-1794-4ba8-a629-1efedc53dcad","user_id":"kaustubh@agno.com","agent_id":"hackernews-agent","total_traces":5,"first_trace_at":"2025-11-19T10:15:16+00:00","last_trace_at":"2025-11-19T10:21:30+00:00"}],"meta":{"page":1,"limit":20,"total_pages":3,"total_count":45}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/search":{"post":{"tags":["Traces","Traces"],"summary":"Search Traces with Advanced Filters","description":"Search traces using the FilterExpr DSL for complex, composable queries.\n\n**Group By Mode:**\n- `run` (default): Returns `PaginatedResponse[TraceDetail]` with full span trees\n- `session`: Returns `PaginatedResponse[TraceSessionStats]` with aggregated session stats\n\n**Supported Operators:**\n- Comparison: `EQ`, `NEQ`, `GT`, `GTE`, `LT`, `LTE`\n- Inclusion: `IN`\n- String matching: `CONTAINS` (case-insensitive substring), `STARTSWITH` (prefix)\n- Logical: `AND`, `OR`, `NOT`\n\n**Filterable Fields:**\ntrace_id, name, status, start_time, end_time, duration_ms, run_id, session_id, user_id, agent_id, team_id, workflow_id, created_at\n\n**Example Request Body (runs):**\n```json\n{\n \"filter\": {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n}\n```\n\n**Example Request Body (sessions):**\n```json\n{\n \"filter\": {\"op\": \"CONTAINS\", \"key\": \"agent_id\", \"value\": \"stock\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n}\n```","operationId":"search_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PaginatedResponse_TraceDetail_"},{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"}],"title":"Response Search Traces"}}}},"400":{"description":"Invalid filter expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/all/migrate":{"post":{"tags":["Database"],"summary":"Migrate All Databases","description":"Migrate all database schemas to the given target version. If a target version is not provided, all databases will be migrated to the latest version.","operationId":"migrate_all_databases","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"All databases migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"All databases migrated successfully to version 3.0.0"}}}},"207":{"description":"Some database migrations failed","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"},"failed":{"type":"object","additionalProperties":{"type":"string"},"title":"Failed"}},"type":"object","required":["message","failed"],"title":"PartialMigrationResponse"},"example":{"message":"Migrated 2/3 databases to latest version","failed":{"archive-db":"Migration failed"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/{db_id}/migrate":{"post":{"tags":["Database"],"summary":"Migrate Database","description":"Migrate the given database schema to the given target version. If a target version is not provided, the database will be migrated to the latest version.","operationId":"migrate_database","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"Database migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"Database migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Database not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components":{"get":{"tags":["Components"],"summary":"List Components","description":"Retrieve a paginated list of components with optional filtering by type.","operationId":"list_components","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ComponentType"},{"type":"null"}],"description":"Filter by type: agent, team, workflow","title":"Component Type"},"description":"Filter by type: agent, team, workflow"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ComponentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Component","description":"Create a new component (agent, team, or workflow) with initial config.","operationId":"create_component","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}":{"get":{"tags":["Components"],"summary":"Get Component","description":"Retrieve a component by ID.","operationId":"get_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Components"],"summary":"Update Component","description":"Partially update a component by ID.","operationId":"update_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentUpdate","description":"Component fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Component","description":"Soft-delete a component by ID. Component configs and links remain stored.","operationId":"delete_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs":{"get":{"tags":["Components"],"summary":"List Configs","description":"List all configs for a component.","operationId":"list_configs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"include_config","in":"query","required":false,"schema":{"type":"boolean","description":"Include full config blob","default":true,"title":"Include Config"},"description":"Include full config blob"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComponentConfigResponse"},"title":"Response List Configs"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Config Version","description":"Create a new config version for a component.","operationId":"create_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigCreate","description":"Config data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}":{"patch":{"tags":["Components"],"summary":"Update Draft Config","description":"Update an existing draft config. Cannot update published configs.","operationId":"update_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigUpdate","description":"Config fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Components"],"summary":"Get Config Version","description":"Get a specific config version by number.","operationId":"get_config_version","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Config Version","description":"Delete a specific config version. Agno v2.7.4 rejects the current version. Synchronous SQLite and PostgreSQL storage allow deletion of a published non-current version.","operationId":"delete_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/current":{"get":{"tags":["Components"],"summary":"Get Current Config","description":"Get the current config version for a component.","operationId":"get_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}/set-current":{"post":{"tags":["Components"],"summary":"Set Current Config Version","description":"Set a published config version as current (for rollback).","operationId":"set_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/schedules":{"get":{"tags":["Schedules"],"summary":"List Schedules","operationId":"list_schedules_schedules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"post":{"tags":["Schedules"],"summary":"Create Schedule","operationId":"create_schedule_schedules_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule","operationId":"get_schedule_schedules__schedule_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"patch":{"tags":["Schedules"],"summary":"Update Schedule","operationId":"update_schedule_schedules__schedule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Schedules"],"summary":"Delete Schedule","operationId":"delete_schedule_schedules__schedule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/enable":{"post":{"tags":["Schedules"],"summary":"Enable Schedule","operationId":"enable_schedule_schedules__schedule_id__enable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/disable":{"post":{"tags":["Schedules"],"summary":"Disable Schedule","operationId":"disable_schedule_schedules__schedule_id__disable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/trigger":{"post":{"tags":["Schedules"],"summary":"Trigger Schedule","operationId":"trigger_schedule_schedules__schedule_id__trigger_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Schedule is disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler is not running or storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs":{"get":{"tags":["Schedules"],"summary":"List Schedule Runs","operationId":"list_schedule_runs_schedules__schedule_id__runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleRunResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs/{run_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule Run","operationId":"get_schedule_run_schedules__schedule_id__runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals":{"get":{"tags":["Approvals"],"summary":"List Approvals","operationId":"list_approvals_approvals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","approved","rejected","expired","cancelled"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"source_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"}},{"name":"approval_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["required","audit"],"type":"string"},{"type":"null"}],"title":"Approval Type"}},{"name":"pause_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"schedule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"}},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ApprovalResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approvals could not be listed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/count":{"get":{"tags":["Approvals"],"summary":"Get Approval Count","operationId":"get_approval_count_approvals_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalCountResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval count could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/status":{"get":{"tags":["Approvals"],"summary":"Get Approval Status","operationId":"get_approval_status_approvals__approval_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalStatusResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval status could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}":{"get":{"tags":["Approvals"],"summary":"Get Approval","operationId":"get_approval_approvals__approval_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Approvals"],"summary":"Delete Approval","operationId":"delete_approval_approvals__approval_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval is not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/resolve":{"post":{"tags":["Approvals"],"summary":"Resolve Approval","operationId":"resolve_approval_approvals__approval_id__resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResolve"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Approval has already been resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts":{"post":{"tags":["Service Accounts"],"summary":"Create Service Account","description":"Mint a service account token. The plaintext token is returned exactly once.","operationId":"create_service_account_service_accounts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreateResponse"}}}},"400":{"description":"Requested scopes are invalid, or privileged scopes were not explicitly allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"An active service account with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"get":{"tags":["Service Accounts"],"summary":"List Service Accounts","description":"List service accounts. Returns metadata and display prefixes only - never hashes or plaintext.","operationId":"list_service_accounts_service_accounts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Revoked"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ServiceAccountResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts/{service_account_id}":{"delete":{"tags":["Service Accounts"],"summary":"Revoke Service Account","description":"Revoke an existing service account.\n\nTakes effect immediately on this worker (the local verification cache entry is evicted) and within the cache TTL on other workers.","operationId":"revoke_service_account_service_accounts__service_account_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"service_account_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Service account not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/registry":{"get":{"tags":["Registry"],"summary":"List Registry","description":"List all resources in the registry with optional filtering.","operationId":"list_registry","security":[{"HTTPBearer":[]}],"parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RegistryResourceType"},{"type":"null"}],"description":"Filter by resource type","title":"Resource Type"},"description":"Filter by resource type"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (partial match)","title":"Name"},"description":"Filter by name (partial match)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_RegistryContentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}}},"components":{"schemas":{"A2ACard_APIKeySecurityScheme":{"description":"Defines a security scheme using an API key.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"in":{"$ref":"#/components/schemas/A2ACard_In"},"name":{"title":"Name","type":"string"},"type":{"const":"apiKey","default":"apiKey","title":"Type","type":"string"}},"required":["in","name"],"title":"APIKeySecurityScheme","type":"object"},"A2ACard_AgentCapabilities":{"description":"Defines optional capabilities supported by an agent.","properties":{"extensions":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentExtension"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"pushNotifications":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Pushnotifications"},"stateTransitionHistory":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Statetransitionhistory"},"streaming":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Streaming"}},"title":"AgentCapabilities","type":"object"},"A2ACard_AgentCardSignature":{"description":"AgentCardSignature represents a JWS signature of an AgentCard.\nThis follows the JSON format of an RFC 7515 JSON Web Signature (JWS).","properties":{"header":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Header"},"protected":{"title":"Protected","type":"string"},"signature":{"title":"Signature","type":"string"}},"required":["protected","signature"],"title":"AgentCardSignature","type":"object"},"A2ACard_AgentExtension":{"description":"A declaration of a protocol extension supported by an Agent.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"params":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Params"},"required":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Required"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"AgentExtension","type":"object"},"A2ACard_AgentInterface":{"description":"Declares a combination of a target URL and a transport protocol for interacting with the agent.\nThis allows agents to expose the same functionality over multiple transport mechanisms.","properties":{"transport":{"examples":["JSONRPC","GRPC","HTTP+JSON"],"title":"Transport","type":"string"},"url":{"examples":["https://api.example.com/a2a/v1","https://grpc.example.com/a2a","https://rest.example.com/v1"],"title":"Url","type":"string"}},"required":["transport","url"],"title":"AgentInterface","type":"object"},"A2ACard_AgentProvider":{"description":"Represents the service provider of an agent.","properties":{"organization":{"title":"Organization","type":"string"},"url":{"title":"Url","type":"string"}},"required":["organization","url"],"title":"AgentProvider","type":"object"},"A2ACard_AgentSkill":{"description":"Represents a distinct capability or function that an agent can perform.","properties":{"description":{"title":"Description","type":"string"},"examples":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"examples":[["I need a recipe for bread"]],"title":"Examples"},"id":{"title":"Id","type":"string"},"inputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Inputmodes"},"name":{"title":"Name","type":"string"},"outputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Outputmodes"},"security":{"anyOf":[{"items":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},"type":"array"},{"type":"null"}],"default":null,"examples":[[{"google":["oidc"]}]],"title":"Security"},"tags":{"examples":[["cooking","customer support","billing"]],"items":{"type":"string"},"title":"Tags","type":"array"}},"required":["description","id","name","tags"],"title":"AgentSkill","type":"object"},"A2ACard_AuthorizationCodeOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Authorization Code flow.","properties":{"authorizationUrl":{"title":"Authorizationurl","type":"string"},"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["authorizationUrl","scopes","tokenUrl"],"title":"AuthorizationCodeOAuthFlow","type":"object"},"A2ACard_ClientCredentialsOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Client Credentials flow.","properties":{"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["scopes","tokenUrl"],"title":"ClientCredentialsOAuthFlow","type":"object"},"A2ACard_HTTPAuthSecurityScheme":{"description":"Defines a security scheme using HTTP authentication.","properties":{"bearerFormat":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Bearerformat"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"scheme":{"title":"Scheme","type":"string"},"type":{"const":"http","default":"http","title":"Type","type":"string"}},"required":["scheme"],"title":"HTTPAuthSecurityScheme","type":"object"},"A2ACard_ImplicitOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Implicit flow.","properties":{"authorizationUrl":{"title":"Authorizationurl","type":"string"},"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"}},"required":["authorizationUrl","scopes"],"title":"ImplicitOAuthFlow","type":"object"},"A2ACard_In":{"description":"The location of the API key.","enum":["cookie","header","query"],"title":"In","type":"string"},"A2ACard_MutualTLSSecurityScheme":{"description":"Defines a security scheme using mTLS authentication.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"type":{"const":"mutualTLS","default":"mutualTLS","title":"Type","type":"string"}},"title":"MutualTLSSecurityScheme","type":"object"},"A2ACard_OAuth2SecurityScheme":{"description":"Defines a security scheme using OAuth 2.0.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"flows":{"$ref":"#/components/schemas/A2ACard_OAuthFlows"},"oauth2MetadataUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Oauth2Metadataurl"},"type":{"const":"oauth2","default":"oauth2","title":"Type","type":"string"}},"required":["flows"],"title":"OAuth2SecurityScheme","type":"object"},"A2ACard_OAuthFlows":{"description":"Defines the configuration for the supported OAuth 2.0 flows.","properties":{"authorizationCode":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_AuthorizationCodeOAuthFlow"},{"type":"null"}],"default":null},"clientCredentials":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_ClientCredentialsOAuthFlow"},{"type":"null"}],"default":null},"implicit":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_ImplicitOAuthFlow"},{"type":"null"}],"default":null},"password":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_PasswordOAuthFlow"},{"type":"null"}],"default":null}},"title":"OAuthFlows","type":"object"},"A2ACard_OpenIdConnectSecurityScheme":{"description":"Defines a security scheme using OpenID Connect.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"openIdConnectUrl":{"title":"Openidconnecturl","type":"string"},"type":{"const":"openIdConnect","default":"openIdConnect","title":"Type","type":"string"}},"required":["openIdConnectUrl"],"title":"OpenIdConnectSecurityScheme","type":"object"},"A2ACard_PasswordOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Resource Owner Password flow.","properties":{"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["scopes","tokenUrl"],"title":"PasswordOAuthFlow","type":"object"},"A2ACard_SecurityScheme":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_APIKeySecurityScheme"},{"$ref":"#/components/schemas/A2ACard_HTTPAuthSecurityScheme"},{"$ref":"#/components/schemas/A2ACard_OAuth2SecurityScheme"},{"$ref":"#/components/schemas/A2ACard_OpenIdConnectSecurityScheme"},{"$ref":"#/components/schemas/A2ACard_MutualTLSSecurityScheme"}],"title":"SecurityScheme"},"A2ARequest_DataPart":{"description":"Represents a structured data segment (e.g., JSON) within a message or artifact.","properties":{"data":{"additionalProperties":true,"title":"Data","type":"object"},"kind":{"const":"data","default":"data","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["data"],"title":"DataPart","type":"object"},"A2ARequest_FilePart":{"description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI.","properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_FileWithBytes"},{"$ref":"#/components/schemas/A2ARequest_FileWithUri"}],"title":"File"},"kind":{"const":"file","default":"file","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["file"],"title":"FilePart","type":"object"},"A2ARequest_FileWithBytes":{"description":"Represents a file with its content provided directly as a base64-encoded string.","properties":{"bytes":{"title":"Bytes","type":"string"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"}},"required":["bytes"],"title":"FileWithBytes","type":"object"},"A2ARequest_FileWithUri":{"description":"Represents a file with its content located at a specific URI.","properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"FileWithUri","type":"object"},"A2ARequest_Message":{"description":"Represents a single message in the conversation between a user and an agent.","properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"kind":{"const":"message","default":"message","title":"Kind","type":"string"},"messageId":{"title":"Messageid","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/A2ARequest_Part"},"title":"Parts","type":"array"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/A2ARequest_Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Taskid"},"agentId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Agent ID","description":"Target agent, team, or workflow ID for deprecated dynamic-dispatch endpoints."}},"required":["messageId","parts","role"],"title":"Message","type":"object"},"A2ARequest_MessageSendConfiguration":{"description":"Defines configuration options for a `message/send` or `message/stream` request.","properties":{"acceptedOutputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Acceptedoutputmodes"},"blocking":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Blocking"},"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"pushNotificationConfig":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationConfig"},{"type":"null"}],"default":null}},"title":"MessageSendConfiguration","type":"object"},"A2ARequest_MessageSendParams":{"description":"Defines the parameters for a request to send a message to an agent. This can be used\nto create a new task, continue an existing one, or restart a task.","properties":{"configuration":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_MessageSendConfiguration"},{"type":"null"}],"default":null},"message":{"$ref":"#/components/schemas/A2ARequest_Message"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["message"],"title":"MessageSendParams","type":"object"},"A2ARequest_Part":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_TextPart"},{"$ref":"#/components/schemas/A2ARequest_FilePart"},{"$ref":"#/components/schemas/A2ARequest_DataPart"}],"title":"Part"},"A2ARequest_PushNotificationAuthenticationInfo":{"description":"Defines authentication details for a push notification endpoint.","properties":{"credentials":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Credentials"},"schemes":{"items":{"type":"string"},"title":"Schemes","type":"array"}},"required":["schemes"],"title":"PushNotificationAuthenticationInfo","type":"object"},"A2ARequest_PushNotificationConfig":{"description":"Defines the configuration for setting up push notifications for task updates.","properties":{"authentication":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationAuthenticationInfo"},{"type":"null"}],"default":null},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Id"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Token"},"url":{"title":"Url","type":"string"}},"required":["url"],"title":"PushNotificationConfig","type":"object"},"A2ARequest_Role":{"description":"Identifies the sender of the message. `user` for the client, `agent` for the service.","enum":["agent","user"],"title":"Role","type":"string"},"A2ARequest_TaskIdParams":{"description":"Defines parameters containing a task ID, used for simple task operations.","properties":{"id":{"title":"Id","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"contextId":{"type":"string","title":"Context ID","description":"Agno session ID containing the task."}},"required":["id"],"title":"TaskIdParams","type":"object"},"A2ARequest_TaskQueryParams":{"description":"Defines parameters for querying a task, with an option to limit history length.","properties":{"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"id":{"title":"Id","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"contextId":{"type":"string","title":"Context ID","description":"Agno session ID containing the task."}},"required":["id","contextId"],"title":"TaskQueryParams","type":"object"},"A2ARequest_TextPart":{"description":"Represents a text segment within a message or artifact.","properties":{"kind":{"const":"text","default":"text","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"text":{"title":"Text","type":"string"}},"required":["text"],"title":"TextPart","type":"object"},"ActivityMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"activity","title":"Role","default":"activity"},"activityType":{"type":"string","title":"Activitytype"},"content":{"additionalProperties":true,"type":"object","title":"Content"}},"additionalProperties":true,"type":"object","required":["id","activityType","content"],"title":"ActivityMessage","description":"An activity progress message emitted between chat messages."},"AgentCard":{"description":"The AgentCard is a self-describing manifest for an agent. It provides essential\nmetadata including the agent's identity, capabilities, skills, supported\ncommunication methods, and security requirements.","properties":{"additionalInterfaces":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentInterface"},"type":"array"},{"type":"null"}],"default":null,"title":"Additionalinterfaces"},"capabilities":{"$ref":"#/components/schemas/A2ACard_AgentCapabilities"},"defaultInputModes":{"items":{"type":"string"},"title":"Defaultinputmodes","type":"array"},"defaultOutputModes":{"items":{"type":"string"},"title":"Defaultoutputmodes","type":"array"},"description":{"examples":["Agent that helps users with recipes and cooking."],"title":"Description","type":"string"},"documentationUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Documentationurl"},"iconUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Iconurl"},"name":{"examples":["Recipe Agent"],"title":"Name","type":"string"},"preferredTransport":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"JSONRPC","examples":["JSONRPC","GRPC","HTTP+JSON"],"title":"Preferredtransport"},"protocolVersion":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"0.3.0","title":"Protocolversion"},"provider":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_AgentProvider"},{"type":"null"}],"default":null},"security":{"anyOf":[{"items":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},"type":"array"},{"type":"null"}],"default":null,"examples":[[{"oauth":["read"]},{"api-key":[],"mtls":[]}]],"title":"Security"},"securitySchemes":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/A2ACard_SecurityScheme"},"type":"object"},{"type":"null"}],"default":null,"title":"Securityschemes"},"signatures":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentCardSignature"},"type":"array"},{"type":"null"}],"default":null,"title":"Signatures"},"skills":{"items":{"$ref":"#/components/schemas/A2ACard_AgentSkill"},"title":"Skills","type":"array"},"supportsAuthenticatedExtendedCard":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Supportsauthenticatedextendedcard"},"url":{"examples":["https://api.example.com/a2a/v1"],"title":"Url","type":"string"},"version":{"examples":["1.0.0"],"title":"Version","type":"string"}},"required":["capabilities","defaultInputModes","defaultOutputModes","description","name","skills","url","version"],"title":"AgentCard","type":"object"},"AgentResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"extra_messages":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Messages"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"AgentResponse"},"AgentSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_session_id":{"type":"string","title":"Agent Session Id","description":"Unique agent session identifier"},"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID used in this session"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"agent_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Data","description":"Agent-specific data"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["agent_session_id","session_id","session_name"],"title":"AgentSessionDetailSchema"},"AgentSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the agent"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the agent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the agent"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the agent"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","title":"AgentSummaryResponse"},"ApprovalCountResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"ApprovalCountResponse","description":"Response model for pending approval count."},"ApprovalResolve":{"properties":{"status":{"type":"string","pattern":"^(approved|rejected)$","title":"Status"},"resolved_by":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Resolved By"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"}},"type":"object","required":["status"],"title":"ApprovalResolve","description":"Request body for resolving (approve/reject) an approval."},"ApprovalResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"},"source_type":{"type":"string","title":"Source Type"},"approval_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Type"},"pause_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Args"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"},"schedule_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Run Id"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"},"run_status":{"anyOf":[{"$ref":"#/components/schemas/RunStatus"},{"type":"null"}]}},"type":"object","required":["id","run_id","session_id","status","source_type"],"title":"ApprovalResponse","description":"Response model for a single approval."},"ApprovalStatusResponse":{"properties":{"approval_id":{"type":"string","title":"Approval Id"},"status":{"type":"string","title":"Status"},"run_id":{"type":"string","title":"Run Id"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"}},"type":"object","required":["approval_id","status","run_id"],"title":"ApprovalStatusResponse","description":"Lightweight response model for polling approval status."},"Artifact":{"properties":{"artifactId":{"type":"string","title":"Artifactid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"}},"type":"object","required":["artifactId","parts"],"title":"Artifact","description":"Represents a file, data structure, or other resource generated by an agent during a task."},"AssistantMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"assistant","title":"Role","default":"assistant"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"},"toolCalls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},{"type":"null"}],"title":"Toolcalls"}},"additionalProperties":true,"type":"object","required":["id"],"title":"AssistantMessage","description":"An assistant message."},"AudioInputContent":{"properties":{"type":{"type":"string","const":"audio","title":"Type","default":"audio"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"AudioInputContent","description":"An audio input content fragment."},"BackgroundRunResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the background run."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the background run."},"status":{"type":"string","title":"Status","description":"Initial run status."}},"type":"object","required":["run_id","session_id","status"],"title":"BackgroundRunResponse"},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"BadRequestResponse","example":{"detail":"Bad request","error_code":"BAD_REQUEST"}},"BinaryInputContent":{"properties":{"type":{"type":"string","const":"binary","title":"Type","default":"binary"},"mimeType":{"type":"string","title":"Mimetype"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"additionalProperties":true,"type":"object","required":["mimeType"],"title":"BinaryInputContent","description":"A deprecated binary payload reference in a multimodal user message."},"Body_continue_agent_run":{"properties":{"tools":{"type":"string","title":"Tools","description":"JSON string of tool call results to continue the paused run","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Optional new user-message text to append to the run before resuming. Use for continuing a COMPLETED run with a follow-up, or adding context to a RUNNING/ERROR resume."},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","description":"When true, clone the run with a new ``run_id`` before resuming. The original is untouched; the clone becomes a sibling within the same session, with ``forked_from_run_id`` set.","default":false},"regenerate":{"type":"boolean","title":"Regenerate","description":"Sugar: regenerate the last response of this run. Auto-computes ``continue_from='last_user'`` to land just after the last user message. Pair with ``additional_instructions`` to steer the new output. By default the original response is hidden from history (replaced); pass ``replace_original=false`` to keep both the original and the regenerated response visible side by side.","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original","description":"Only valid with ``regenerate=true``. Controls history visibility of the original response; the original run is always retained in storage. Defaults to true: the original is marked REGENERATED and hidden from history so the new response replaces it. Pass false to keep both the original and regenerated responses visible."},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions","description":"Only valid with ``regenerate=true``: extra guidance appended as a user message before re-generation. Friendly alias for ``input``."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run continue in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false}},"type":"object","title":"Body_continue_agent_run"},"Body_continue_team_run":{"properties":{"requirements":{"type":"string","title":"Requirements","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input"},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","default":false},"regenerate":{"type":"boolean","title":"Regenerate","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original"},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"stream":{"type":"boolean","title":"Stream","default":true},"background":{"type":"boolean","title":"Background","default":false}},"type":"object","title":"Body_continue_team_run"},"Body_continue_workflow_run":{"properties":{"step_requirements":{"type":"string","title":"Step Requirements","description":"JSON string of step requirement objects with resolution status","default":""},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}},"type":"object","title":"Body_continue_workflow_run"},"Body_create_agent_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the agent"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Agent version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic agent construction"}},"type":"object","required":["message"],"title":"Body_create_agent_run"},"Body_create_team_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the team"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"monitor":{"type":"boolean","title":"Monitor","description":"Enable monitoring and logging for this run","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Team version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic team construction"}},"type":"object","required":["message"],"title":"Body_create_team_run"},"Body_create_workflow_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the workflow"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run workflow in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Workflow version to use for this run"},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow construction"}},"type":"object","required":["message"],"title":"Body_create_workflow_run"},"Body_rename_session":{"properties":{"session_name":{"type":"string","title":"Session Name","description":"New name for the session"}},"type":"object","required":["session_name"],"title":"Body_rename_session"},"Body_resume_agent_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_agent_run_stream"},"Body_resume_team_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_team_run_stream"},"Body_resume_workflow_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_workflow_run_stream"},"Body_update_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"Content metadata as JSON string"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"Reader ID. In Agno 2.7.4, local knowledge validates the value, but the content patch does not apply or persist the reader change."}},"type":"object","title":"Body_update_content"},"Body_upload_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated from file/URL if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description for context"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"URL to fetch content from (JSON array or single URL string)"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object for additional content properties"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File","description":"File to upload for processing"},"text_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Content","description":"Raw text content to process"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for content processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply during processing"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size to use for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap to use for processing"}},"type":"object","title":"Body_upload_content"},"Body_upload_remote_content":{"properties":{"config_id":{"type":"string","title":"Config Id","description":"ID of the configured remote content source (from /knowledge/config)"},"path":{"type":"string","title":"Path","description":"Path to file or folder in the remote source"},"source_params":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Params","description":"JSON object of per-request parameters forwarded to the source's factory. Used for provider-specific routing that shouldn't be baked into the config. Currently supported keys: GitHub accepts 'repo' ('owner/repo'), letting one configured GitHub source serve multiple repositories the credentials can access."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap for processing"}},"type":"object","required":["config_id","path"],"title":"Body_upload_remote_content"},"CancelTaskRequest":{"description":"Represents a JSON-RPC request for the `tasks/cancel` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"tasks/cancel","default":"tasks/cancel","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_TaskIdParams"}},"required":["id","params"],"title":"CancelTaskRequest","type":"object"},"CancelTaskSuccessResponse":{"description":"Represents a successful JSON-RPC response for the `tasks/cancel` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"default":null,"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"result":{"$ref":"#/components/schemas/Task"}},"required":["result"],"title":"CancelTaskSuccessResponse","type":"object"},"ChatConfig":{"properties":{"quick_prompts":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Quick Prompts"}},"type":"object","required":["quick_prompts"],"title":"ChatConfig","description":"Configuration for the Chat page of the AgentOS"},"ChunkerSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["key"],"title":"ChunkerSchema"},"ComponentConfigResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"version":{"type":"integer","title":"Version"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"type":"string","title":"Stage"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","version","stage","config","created_at"],"title":"ComponentConfigResponse"},"ComponentCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Display name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id","description":"Unique identifier for the entity. Auto-generated from name if not provided."},"component_type":{"$ref":"#/components/schemas/ComponentType","description":"Type of entity: agent, team, or workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config","description":"Optional configuration"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["name","component_type"],"title":"ComponentCreate"},"ComponentResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"component_type":{"$ref":"#/components/schemas/ComponentType"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","component_type","created_at"],"title":"ComponentResponse"},"ComponentType":{"type":"string","enum":["agent","team","workflow"],"title":"ComponentType"},"ComponentUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"component_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"}},"type":"object","title":"ComponentUpdate"},"ConfigCreate":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config","description":"The configuration data"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Optional version number"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links","description":"Optional links to child components"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["config"],"title":"ConfigCreate"},"ConfigResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the OS instance"},"available_models":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Models","description":"List of available models"},"os_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Database","description":"ID of the database used for the OS instance"},"databases":{"items":{"type":"string"},"type":"array","title":"Databases","description":"List of database IDs used by the components of the OS instance"},"chat":{"anyOf":[{"$ref":"#/components/schemas/ChatConfig"},{"type":"null"}],"description":"Chat configuration"},"manifest":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Manifest"},"type":"object"},{"type":"null"}],"title":"Manifest","description":"Per-entity UI metadata keyed by agent/team/workflow id"},"session":{"anyOf":[{"$ref":"#/components/schemas/SessionConfig"},{"type":"null"}],"description":"Session configuration"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/MetricsConfig"},{"type":"null"}],"description":"Metrics configuration"},"memory":{"anyOf":[{"$ref":"#/components/schemas/MemoryConfig"},{"type":"null"}],"description":"Memory configuration"},"learning":{"anyOf":[{"$ref":"#/components/schemas/LearningConfig"},{"type":"null"}],"description":"Learning configuration"},"knowledge":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeConfig"},{"type":"null"}],"description":"Knowledge configuration"},"evals":{"anyOf":[{"$ref":"#/components/schemas/EvalsConfig"},{"type":"null"}],"description":"Evaluations configuration"},"traces":{"anyOf":[{"$ref":"#/components/schemas/TracesConfig"},{"type":"null"}],"description":"Traces configuration"},"agents":{"items":{"$ref":"#/components/schemas/AgentSummaryResponse"},"type":"array","title":"Agents","description":"List of registered agents"},"teams":{"items":{"$ref":"#/components/schemas/TeamSummaryResponse"},"type":"array","title":"Teams","description":"List of registered teams"},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Workflows","description":"List of registered workflows"},"interfaces":{"items":{"$ref":"#/components/schemas/InterfaceResponse"},"type":"array","title":"Interfaces","description":"List of available interfaces"}},"type":"object","required":["os_id","databases","agents","teams","workflows","interfaces"],"title":"ConfigResponse","description":"Response schema for the general config endpoint"},"ConfigResponseSchema":{"properties":{"readers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ReaderSchema"},"type":"object"},{"type":"null"}],"title":"Readers","description":"Available content readers"},"readersForType":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Readersfortype","description":"Mapping of content types to reader IDs"},"chunkers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ChunkerSchema"},"type":"object"},{"type":"null"}],"title":"Chunkers","description":"Available chunking strategies"},"filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filters","description":"Available filter tags"},"vector_dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/VectorDbSchema"},"type":"array"},{"type":"null"}],"title":"Vector Dbs","description":"Configured vector databases"},"remote_content_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"type":"array"},{"type":"null"}],"title":"Remote Content Sources","description":"Configured remote content sources (S3, GCS, SharePoint, GitHub)"}},"type":"object","title":"ConfigResponseSchema"},"ConfigUpdate":{"properties":{"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","title":"ConfigUpdate"},"ConflictResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ConflictResponse","example":{"detail":"Resource conflict"}},"ContentResponseSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the content"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"MIME type of the content"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"},"linked_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linked To","description":"Knowledge instance name used for content isolation. Local Agno 2.7.4 responses return null because response conversion does not propagate the stored value."},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata as key-value pairs"},"access_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Access Count","description":"Stored access count. Local Agno 2.7.4 responses return null because response conversion does not propagate the stored value."},"status":{"anyOf":[{"$ref":"#/components/schemas/ContentStatus"},{"type":"null"}],"description":"Processing status of the content"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message","description":"Status message or error details"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when content was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when content was last updated"}},"type":"object","required":["id"],"title":"ContentResponseSchema"},"ContentStatus":{"type":"string","enum":["processing","completed","failed"],"title":"ContentStatus","description":"Enumeration of possible content processing statuses."},"ContentStatusResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Content ID"},"status":{"$ref":"#/components/schemas/ContentStatus","description":"Current processing status of the content"},"status_message":{"type":"string","title":"Status Message","description":"Status message or error details","default":""}},"type":"object","required":["status"],"title":"ContentStatusResponse","description":"Response model for content status endpoint."},"Context":{"properties":{"description":{"type":"string","title":"Description"},"value":{"type":"string","title":"Value"}},"additionalProperties":true,"type":"object","required":["description","value"],"title":"Context","description":"Additional context for the agent."},"CreateSessionRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session ID (generated if not provided)"},"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Initial session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"}},"type":"object","title":"CreateSessionRequest"},"DataPart":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data"},"kind":{"type":"string","const":"data","title":"Kind","default":"data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["data"],"title":"DataPart","description":"Represents a structured data segment (e.g., JSON) within a message or artifact."},"DatabaseConfig_EvalsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/EvalsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[EvalsDomainConfig]"},"DatabaseConfig_LearningDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/LearningDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[LearningDomainConfig]"},"DatabaseConfig_MemoryDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MemoryDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MemoryDomainConfig]"},"DatabaseConfig_MetricsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MetricsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MetricsDomainConfig]"},"DatabaseConfig_SessionDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/SessionDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[SessionDomainConfig]"},"DatabaseConfig_TracesDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/TracesDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[TracesDomainConfig]"},"DayAggregatedMetrics":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the metrics record"},"agent_runs_count":{"type":"integer","minimum":0.0,"title":"Agent Runs Count","description":"Total number of agent runs"},"agent_sessions_count":{"type":"integer","minimum":0.0,"title":"Agent Sessions Count","description":"Total number of agent sessions"},"team_runs_count":{"type":"integer","minimum":0.0,"title":"Team Runs Count","description":"Total number of team runs"},"team_sessions_count":{"type":"integer","minimum":0.0,"title":"Team Sessions Count","description":"Total number of team sessions"},"workflow_runs_count":{"type":"integer","minimum":0.0,"title":"Workflow Runs Count","description":"Total number of workflow runs"},"workflow_sessions_count":{"type":"integer","minimum":0.0,"title":"Workflow Sessions Count","description":"Total number of workflow sessions"},"users_count":{"type":"integer","minimum":0.0,"title":"Users Count","description":"Total number of unique users"},"token_metrics":{"additionalProperties":true,"type":"object","title":"Token Metrics","description":"Token usage metrics (input, output, cached, etc.)"},"model_metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Model Metrics","description":"Metrics grouped by model (model_id, provider, count)"},"date":{"type":"string","format":"date-time","title":"Date","description":"Date for which these metrics are aggregated"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when metrics were created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when metrics were last updated"}},"type":"object","required":["id","agent_runs_count","agent_sessions_count","team_runs_count","team_sessions_count","workflow_runs_count","workflow_sessions_count","users_count","token_metrics","model_metrics","date","created_at","updated_at"],"title":"DayAggregatedMetrics","description":"Aggregated metrics for a given day"},"DeleteEvalRunsRequest":{"properties":{"eval_run_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Eval Run Ids","description":"List of evaluation run IDs to delete"}},"type":"object","required":["eval_run_ids"],"title":"DeleteEvalRunsRequest"},"DeleteMemoriesRequest":{"properties":{"memory_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Memory Ids","description":"List of memory IDs to delete"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID to filter memories for deletion"}},"type":"object","required":["memory_ids"],"title":"DeleteMemoriesRequest"},"DeleteSessionRequest":{"properties":{"session_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Session Ids","description":"List of session IDs to delete"},"session_types":{"items":{"$ref":"#/components/schemas/SessionType"},"type":"array","minItems":1,"title":"Session Types","description":"Types of sessions to delete"}},"type":"object","required":["session_ids","session_types"],"title":"DeleteSessionRequest"},"DeveloperMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"developer","title":"Role","default":"developer"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"DeveloperMessage","description":"A developer message."},"DocumentInputContent":{"properties":{"type":{"type":"string","const":"document","title":"Type","default":"document"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"DocumentInputContent","description":"A document input content fragment."},"EvalFilterType":{"type":"string","enum":["agent","team","workflow"],"title":"EvalFilterType"},"EvalRunInput":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID to evaluate"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID to evaluate"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID to use for evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation to run (accuracy, performance, or reliability)"},"input":{"type":"string","minLength":1,"title":"Input","description":"Input text/query for the evaluation"},"additional_guidelines":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Guidelines","description":"Additional guidelines for the evaluation"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for the evaluation"},"num_iterations":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Num Iterations","description":"Number of times to run the evaluation","default":1},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for this evaluation run"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output","description":"Expected output for accuracy evaluation"},"criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criteria","description":"Evaluation criteria for agent-as-judge evaluation"},"scoring_strategy":{"anyOf":[{"type":"string","enum":["numeric","binary"]},{"type":"null"}],"title":"Scoring Strategy","description":"Scoring strategy: 'numeric' (1-10 with threshold) or 'binary' (PASS/FAIL)","default":"binary"},"threshold":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Threshold","description":"Score threshold for pass/fail (1-10), only used with numeric scoring","default":7},"warmup_runs":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Warmup Runs","description":"Number of warmup runs before measuring performance","default":0},"expected_tool_calls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expected Tool Calls","description":"Expected tool calls for reliability evaluation"},"allow_additional_tool_calls":{"type":"boolean","title":"Allow Additional Tool Calls","description":"When True, tool calls not in expected_tool_calls are allowed (subset matching)","default":false},"expected_tool_call_arguments":{"anyOf":[{"additionalProperties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Expected Tool Call Arguments","description":"Expected arguments for specific tool calls, e.g. {\"tool_name\": {\"arg_name\": \"expected_value\"}} or {\"tool_name\": [{\"arg_name\": \"val1\"}, {\"arg_name\": \"val2\"}]}"}},"type":"object","required":["eval_type","input"],"title":"EvalRunInput"},"EvalSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the evaluation run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that was evaluated"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID used in evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that was evaluated"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was evaluated"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the evaluation run"},"evaluated_component_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluated Component Name","description":"Name of the evaluated component"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation (accuracy, performance, or reliability)"},"eval_data":{"additionalProperties":true,"type":"object","title":"Eval Data","description":"Evaluation results and metrics"},"eval_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eval Input","description":"Input parameters used for the evaluation"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when evaluation was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when evaluation was last updated"}},"type":"object","required":["id","eval_type","eval_data"],"title":"EvalSchema"},"EvalType":{"type":"string","enum":["accuracy","agent_as_judge","performance","reliability"],"title":"EvalType"},"EvalsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_EvalsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"EvalsConfig","description":"Configuration for the Evals domain of the AgentOS"},"EvalsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"EvalsDomainConfig","description":"Configuration for the Evals domain of the AgentOS"},"FilePart":{"properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/FileWithBytes"},{"$ref":"#/components/schemas/FileWithUri"}],"title":"File"},"kind":{"type":"string","const":"file","title":"Kind","default":"file"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["file"],"title":"FilePart","description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI."},"FileWithBytes":{"properties":{"bytes":{"type":"string","title":"Bytes"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["bytes"],"title":"FileWithBytes","description":"Represents a file with its content provided directly as a base64-encoded string."},"FileWithUri":{"properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uri":{"type":"string","title":"Uri"}},"type":"object","required":["uri"],"title":"FileWithUri","description":"Represents a file with its content located at a specific URI."},"FilterFieldSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Column/field name used in filter expressions"},"label":{"type":"string","title":"Label","description":"Human-readable display label for the UI"},"type":{"type":"string","title":"Type","description":"Field data type: string, number, datetime, enum"},"operators":{"items":{"type":"string"},"type":"array","title":"Operators","description":"List of valid filter operators for this field"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values","description":"Allowed enum values (for autocomplete/dropdown)"}},"type":"object","required":["key","label","type","operators"],"title":"FilterFieldSchema","description":"Schema describing a single filterable field for the frontend filter bar."},"FilterSchemaResponse":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FilterFieldSchema"},"type":"array","title":"Fields","description":"Available filterable fields"},"logical_operators":{"items":{"type":"string"},"type":"array","title":"Logical Operators","description":"Logical operators for combining filter clauses","default":["AND","OR"]}},"type":"object","required":["fields"],"title":"FilterSchemaResponse","description":"Response for the filter schema endpoint. Tells the FE what fields, operators, and values are available."},"ForbiddenResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ForbiddenResponse","example":{"detail":"Insufficient permissions"}},"FunctionCall":{"properties":{"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"additionalProperties":true,"type":"object","required":["name","arguments"],"title":"FunctionCall","description":"Name and arguments of a function call."},"GetTaskRequest":{"description":"Represents a JSON-RPC request for the `tasks/get` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"tasks/get","default":"tasks/get","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_TaskQueryParams"}},"required":["id","params"],"title":"GetTaskRequest","type":"object"},"GetTaskSuccessResponse":{"description":"Represents a successful JSON-RPC response for the `tasks/get` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"default":null,"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"result":{"$ref":"#/components/schemas/Task"}},"required":["result"],"title":"GetTaskSuccessResponse","type":"object"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Health status of the service"},"instantiated_at":{"type":"string","format":"date-time","title":"Instantiated At","description":"Timestamp when service was instantiated"}},"type":"object","required":["status","instantiated_at"],"title":"HealthResponse","example":{"instantiated_at":"2025-06-10T12:00:00Z","status":"ok"}},"ImageInputContent":{"properties":{"type":{"type":"string","const":"image","title":"Type","default":"image"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"ImageInputContent","description":"An image input content fragment."},"InfoResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"agno_version":{"type":"string","title":"Agno Version","description":"Version of the agno framework"},"agent_count":{"type":"integer","title":"Agent Count","description":"Number of agents registered in the OS","default":0},"team_count":{"type":"integer","title":"Team Count","description":"Number of teams registered in the OS","default":0},"workflow_count":{"type":"integer","title":"Workflow Count","description":"Number of workflows registered in the OS","default":0},"mcp":{"$ref":"#/components/schemas/McpInfo","description":"MCP server availability for this OS instance"},"auth_mode":{"type":"string","enum":["none","security_key","jwt"],"title":"Auth Mode","description":"Authentication mode enforced on the REST/WS plane of this OS instance. MCP OAuth, when enabled, is described separately under `mcp.oauth`.","default":"none"}},"type":"object","required":["os_id","agno_version"],"title":"InfoResponse","description":"Response schema for the /info endpoint returning lightweight OS metadata."},"InputContentDataSource":{"properties":{"type":{"type":"string","const":"data","title":"Type","default":"data"},"value":{"type":"string","title":"Value"},"mimeType":{"type":"string","title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value","mimeType"],"title":"InputContentDataSource","description":"Inline base64-encoded source."},"InputContentUrlSource":{"properties":{"type":{"type":"string","const":"url","title":"Type","default":"url"},"value":{"type":"string","title":"Value"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value"],"title":"InputContentUrlSource","description":"URL-referenced source."},"InterfaceResponse":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the interface"},"version":{"type":"string","title":"Version","description":"Version of the interface"},"route":{"type":"string","title":"Route","description":"API route path"}},"type":"object","required":["type","version","route"],"title":"InterfaceResponse"},"InternalServerErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"InternalServerErrorResponse","example":{"detail":"Internal server error","error_code":"INTERNAL_SERVER_ERROR"}},"KnowledgeConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeDatabaseConfig"},"type":"array"},{"type":"null"}],"title":"Dbs"},"knowledge_instances":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeInstanceConfig"},"type":"array"},{"type":"null"}],"title":"Knowledge Instances"}},"type":"object","title":"KnowledgeConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeDatabaseConfig":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeDomainConfig"},{"type":"null"}]},"tables":{"items":{"type":"string"},"type":"array","title":"Tables","default":[]}},"type":"object","required":["db_id"],"title":"KnowledgeDatabaseConfig","description":"Configuration for a knowledge database with its tables"},"KnowledgeDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"KnowledgeDomainConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeInstanceConfig":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"db_id":{"type":"string","title":"Db Id"},"table":{"type":"string","title":"Table"}},"type":"object","required":["id","name","db_id","table"],"title":"KnowledgeInstanceConfig","description":"Configuration for a single knowledge instance"},"LearningConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_LearningDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"LearningConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningCreate":{"properties":{"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"content":{"additionalProperties":true,"type":"object","title":"Content","description":"The learning content payload"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID. When the request is authenticated, must match the JWT subject or be omitted/null (which creates a global / non-user-scoped record)."},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"}},"type":"object","required":["learning_type","content"],"title":"LearningCreate","description":"Request body for creating a learning record."},"LearningDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"LearningDomainConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningResponse":{"properties":{"learning_id":{"type":"string","title":"Learning Id","description":"Unique identifier for the learning record"},"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID (for entity-specific learnings)"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type (e.g. 'person', 'company')"},"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"The learning content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Creation timestamp (Unix epoch seconds)"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp (Unix epoch seconds)"}},"type":"object","required":["learning_id","learning_type"],"title":"LearningResponse","description":"A single learning record as returned by the API."},"LearningUpdate":{"properties":{"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Replacement content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Replacement metadata"}},"type":"object","title":"LearningUpdate","description":"Request body for updating a learning record. Identity fields are immutable."},"LearningUserStats":{"properties":{"user_id":{"type":"string","title":"User Id","description":"The user ID"},"last_learning_updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Learning Updated At","description":"Most recent learning update for this user (Unix epoch seconds)"}},"type":"object","required":["user_id"],"title":"LearningUserStats","description":"A user that owns learning records, with their most recent activity.\n\nUsed as a lightweight index for the per-user view: list users here, then drill into a\nsingle user's records via ``GET /learnings?user_id=...``. No per-user count is returned\n-- the user-scoped stores (``user_profile``, ``user_memory``) keep a single record per\nuser, so a record count would always be 1; the actual memory count lives in that\nrecord's ``content``."},"Manifest":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"},"quick_prompts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quick Prompts"}},"type":"object","title":"Manifest","description":"OS-level UI metadata for an agent/team/workflow.\n\nFields here are AgentOS UI metadata only. ``description`` is unrelated to\n``Agent.description`` / ``Team.description`` / ``Workflow.description``,\nwhich are sent to the model.\n\nRendering surfaces:\n- ``description``, ``labels``: home/landing card\n- ``quick_prompts``: chat page"},"McpInfo":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the MCP server is enabled on this OS instance","default":false},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Path where the MCP server is mounted, null when disabled"},"oauth":{"anyOf":[{"$ref":"#/components/schemas/McpOAuthInfo"},{"type":"null"}],"description":"OAuth discovery details when the MCP endpoint is OAuth-protected, null otherwise"}},"type":"object","title":"McpInfo","description":"MCP server availability for the /info endpoint."},"McpOAuthInfo":{"properties":{"authorization_servers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorization Servers","description":"Issuer URL(s) of the authorization server(s) protecting the MCP endpoint"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource","description":"RFC 9728 resource URL advertised for the MCP endpoint"}},"type":"object","title":"McpOAuthInfo","description":"OAuth discovery details for an MCP endpoint protected by ``AgentOS(mcp_auth=...)``."},"MemoryConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MemoryDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MemoryConfig","description":"Configuration for the Memory domain of the AgentOS"},"MemoryDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MemoryDomainConfig","description":"Configuration for the Memory domain of the AgentOS"},"Message":{"properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"kind":{"type":"string","const":"message","title":"Kind","default":"message"},"messageId":{"type":"string","title":"Messageid"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taskid"}},"type":"object","required":["messageId","parts","role"],"title":"Message","description":"Represents a single message in the conversation between a user and an agent."},"Meta":{"properties":{"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of results per page","default":20},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number","default":1}},"type":"object","title":"Meta","description":"Inline metadata schema for pagination."},"MetricsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MetricsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MetricsConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MetricsDomainConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsResponse":{"properties":{"metrics":{"items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"type":"array","title":"Metrics","description":"List of daily aggregated metrics"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp of the most recent metrics update"}},"type":"object","required":["metrics"],"title":"MetricsResponse"},"Model":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"Model"},"ModelResponse":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the model"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"ModelResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"NotFoundResponse","example":{"detail":"Not found","error_code":"NOT_FOUND"}},"NotImplementedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"NotImplementedResponse","example":{"detail":"Operation not supported for this resource type"}},"OptimizeMemoriesRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID to optimize memories for"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model in `provider:model_id` format. Current examples include `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, and `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`."},"apply":{"type":"boolean","title":"Apply","description":"If True, apply optimization changes to database. If False, return preview only without saving.","default":true}},"type":"object","required":["user_id"],"title":"OptimizeMemoriesRequest","description":"Schema for memory optimization request"},"OptimizeMemoriesResponse":{"properties":{"memories":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Memories","description":"List of optimized memory objects"},"memories_before":{"type":"integer","minimum":0.0,"title":"Memories Before","description":"Number of memories before optimization"},"memories_after":{"type":"integer","minimum":0.0,"title":"Memories After","description":"Number of memories after optimization"},"tokens_before":{"type":"integer","minimum":0.0,"title":"Tokens Before","description":"Token count before optimization"},"tokens_after":{"type":"integer","minimum":0.0,"title":"Tokens After","description":"Token count after optimization"},"tokens_saved":{"type":"integer","minimum":0.0,"title":"Tokens Saved","description":"Number of tokens saved through optimization"},"reduction_percentage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Reduction Percentage","description":"Percentage of token reduction achieved"}},"type":"object","required":["memories","memories_before","memories_after","tokens_before","tokens_after","tokens_saved","reduction_percentage"],"title":"OptimizeMemoriesResponse","description":"Schema for memory optimization response"},"PaginatedResponse_ApprovalResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ApprovalResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ApprovalResponse]"},"PaginatedResponse_ComponentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ComponentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ComponentResponse]"},"PaginatedResponse_ContentResponseSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentResponseSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ContentResponseSchema]"},"PaginatedResponse_EvalSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EvalSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[EvalSchema]"},"PaginatedResponse_LearningResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningResponse]"},"PaginatedResponse_LearningUserStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningUserStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningUserStats]"},"PaginatedResponse_RegistryContentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RegistryContentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[RegistryContentResponse]"},"PaginatedResponse_ScheduleResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleResponse]"},"PaginatedResponse_ScheduleRunResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleRunResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleRunResponse]"},"PaginatedResponse_ServiceAccountResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ServiceAccountResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ServiceAccountResponse]"},"PaginatedResponse_SessionSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SessionSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[SessionSchema]"},"PaginatedResponse_TraceDetail_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceDetail"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceDetail]"},"PaginatedResponse_TraceSessionStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSessionStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSessionStats]"},"PaginatedResponse_TraceSummary_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSummary"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSummary]"},"PaginatedResponse_UserMemorySchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserMemorySchema]"},"PaginatedResponse_UserStatsSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserStatsSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserStatsSchema]"},"PaginatedResponse_VectorSearchResult_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VectorSearchResult"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[VectorSearchResult]"},"PaginationInfo":{"properties":{"page":{"type":"integer","minimum":0.0,"title":"Page","description":"Page value returned by the endpoint. AgentOS paginated routes use 1-based page numbers. Some Agno 2.7.4 routes accept and echo 0 even though their pagination implementation is 1-based.","default":0},"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of items per page","default":20},"total_pages":{"type":"integer","minimum":0.0,"title":"Total Pages","description":"Total number of pages","default":0},"total_count":{"type":"integer","minimum":0.0,"title":"Total Count","description":"Total count of items","default":0},"search_time_ms":{"type":"number","minimum":0.0,"title":"Search Time Ms","description":"Search execution time in milliseconds","default":0}},"type":"object","title":"PaginationInfo"},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/DataPart"}],"title":"Part"},"ReaderSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the reader"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the reader"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the reader's capabilities"},"chunkers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chunkers","description":"List of supported chunking strategies"}},"type":"object","required":["id"],"title":"ReaderSchema"},"ReasoningMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"reasoning","title":"Role","default":"reasoning"},"content":{"type":"string","title":"Content"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"ReasoningMessage","description":"A reasoning message containing the agent's internal reasoning process."},"RegistryContentResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/RegistryResourceType"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name","type"],"title":"RegistryContentResponse"},"RegistryResourceType":{"type":"string","enum":["tool","model","db","vector_db","schema","function","agent","team","knowledge","memory_manager","session_summary_manager"],"title":"RegistryResourceType","description":"Types of resources that can be stored in a registry."},"RemoteContentSourceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content source"},"name":{"type":"string","title":"Name","description":"Display name for the content source"},"type":{"type":"string","title":"Type","description":"Type of content source (s3, gcs, sharepoint, github, azureblob)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Default path prefix for this source"}},"type":"object","required":["id","name","type"],"title":"RemoteContentSourceSchema","description":"Schema for remote content source configuration."},"ResumeEntry":{"properties":{"interruptId":{"type":"string","title":"Interruptid"},"status":{"type":"string","enum":["resolved","cancelled"],"title":"Status"},"payload":{"anyOf":[{},{"type":"null"}],"title":"Payload"}},"additionalProperties":true,"type":"object","required":["interruptId","status"],"title":"ResumeEntry","description":"A per-interrupt response in the resume array of a RunAgentInput."},"Role":{"type":"string","enum":["agent","user"],"title":"Role","description":"Identifies the sender of the message. `user` for the client, `agent` for the service."},"RunAgentInput":{"properties":{"threadId":{"type":"string","title":"Threadid"},"runId":{"type":"string","title":"Runid"},"parentRunId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentrunid"},"state":{"title":"State"},"messages":{"items":{"oneOf":[{"$ref":"#/components/schemas/DeveloperMessage"},{"$ref":"#/components/schemas/SystemMessage"},{"$ref":"#/components/schemas/AssistantMessage"},{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/ToolMessage"},{"$ref":"#/components/schemas/ActivityMessage"},{"$ref":"#/components/schemas/ReasoningMessage"}],"discriminator":{"propertyName":"role","mapping":{"activity":"#/components/schemas/ActivityMessage","assistant":"#/components/schemas/AssistantMessage","developer":"#/components/schemas/DeveloperMessage","reasoning":"#/components/schemas/ReasoningMessage","system":"#/components/schemas/SystemMessage","tool":"#/components/schemas/ToolMessage","user":"#/components/schemas/UserMessage"}}},"type":"array","title":"Messages"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","title":"Tools"},"context":{"items":{"$ref":"#/components/schemas/Context"},"type":"array","title":"Context"},"forwardedProps":{"title":"Forwardedprops"},"resume":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResumeEntry"},"type":"array"},{"type":"null"}],"title":"Resume"}},"additionalProperties":true,"type":"object","required":["threadId","runId","state","messages","tools","context","forwardedProps"],"title":"RunAgentInput","description":"Input for running an agent."},"RunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that executed this run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"RunSchema"},"RunStatus":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","PAUSED","CANCELLED","ERROR","REGENERATED"],"title":"RunStatus","description":"State of the main run response"},"ScheduleCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"cron_expr":{"type":"string","maxLength":128,"title":"Cron Expr"},"endpoint":{"type":"string","maxLength":512,"title":"Endpoint"},"method":{"type":"string","maxLength":10,"title":"Method","default":"POST"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"type":"string","maxLength":64,"title":"Timezone","default":"UTC"},"timeout_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Timeout Seconds","default":3600},"max_retries":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Max Retries","default":0},"retry_delay_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Retry Delay Seconds","default":60}},"type":"object","required":["name","cron_expr","endpoint"],"title":"ScheduleCreate"},"ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"cron_expr":{"type":"string","title":"Cron Expr"},"timezone":{"type":"string","title":"Timezone"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"max_retries":{"type":"integer","title":"Max Retries"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","method","endpoint","cron_expr","timezone","timeout_seconds","max_retries","retry_delay_seconds","enabled"],"title":"ScheduleResponse"},"ScheduleRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"schedule_id":{"type":"string","title":"Schedule Id"},"attempt":{"type":"integer","title":"Attempt"},"triggered_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triggered At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"status":{"type":"string","title":"Status"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","schedule_id","attempt","status"],"title":"ScheduleRunResponse"},"ScheduleStateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","enabled"],"title":"ScheduleStateResponse","description":"Trimmed response for state-changing operations (enable/disable)."},"ScheduleUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"cron_expr":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Cron Expr"},"endpoint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Endpoint"},"method":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Method"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Timezone"},"timeout_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":1.0},{"type":"null"}],"title":"Timeout Seconds"},"max_retries":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Max Retries"},"retry_delay_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":1.0},{"type":"null"}],"title":"Retry Delay Seconds"}},"type":"object","title":"ScheduleUpdate"},"ScopeItem":{"properties":{"scope":{"type":"string","title":"Scope","description":"Scope string, e.g. 'agents:*:run'"},"effect":{"type":"string","enum":["allow","deny"],"title":"Effect","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["scope"],"title":"ScopeItem","description":"Write shape for one scope grant \u2014 the canonical RBAC payload for every scope-bearing API.\n\nEndpoints that take scopes accept these objects only (a bare string is a validation\nerror). ``effect`` is constrained here so every consumer rejects typos at the model\nlayer; whether ``deny`` is *semantically* legal stays per-endpoint (roles support\ndeny rules, service-account tokens are pure grants and reject it)."},"ScopeSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Scope id (always null here; kept for shape parity with the cloud RBAC API, which addresses scopes individually)"},"raw":{"type":"string","title":"Raw","description":"Original scope string, e.g. 'agents:*:run'"},"namespace":{"type":"string","title":"Namespace","description":"Resource namespace, e.g. 'agents'"},"sub_namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Namespace","description":"Specific resource id or wildcard '*'"},"permission":{"type":"string","title":"Permission","description":"Action, e.g. 'read' / 'run' / 'write'"},"value":{"type":"string","title":"Value","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["raw","namespace","permission"],"title":"ScopeSchema","description":"Read shape for one scope \u2014 the parsed RBAC payload shared by every scope-bearing API.\n\nMirrors the cloud RBAC scope shape ({raw, namespace, sub_namespace, permission, value})\nso a frontend renders scopes from any AgentOS API with one integration."},"SendMessageRequest":{"description":"Represents a JSON-RPC request for the `message/send` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/send","default":"message/send","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendMessageRequest","type":"object"},"SendMessageSuccessResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id"},"jsonrpc":{"type":"string","const":"2.0","title":"Jsonrpc","default":"2.0"},"result":{"anyOf":[{"$ref":"#/components/schemas/Task"},{"$ref":"#/components/schemas/Message"}],"title":"Result"}},"type":"object","required":["result"],"title":"SendMessageSuccessResponse","description":"Represents a successful JSON-RPC response for the `message/send` method."},"SendStreamingMessageRequest":{"description":"Represents a JSON-RPC request for the `message/stream` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/stream","default":"message/stream","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendStreamingMessageRequest","type":"object"},"ServiceAccountCreate":{"properties":{"name":{"type":"string","maxLength":63,"title":"Name","description":"Machine identity name (lowercase slug), e.g. 'claude-code' or 'github-actions'"},"scopes":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScopeItem"},"type":"array"},{"type":"null"}],"title":"Scopes","description":"Scopes granted to the token, as {scope, effect} objects (the shared RBAC write shape; token scopes are grants, so only effect='allow' is accepted). Defaults to run and read scopes: agents:run, teams:run, workflows:run, sessions:read"},"expires_in_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Expires In Days","description":"Days until the token expires (default: 90)","default":90},"never_expires":{"type":"boolean","title":"Never Expires","description":"Mint a non-expiring token. Must be set explicitly; overrides expires_in_days.","default":false},"allow_privileged_scopes":{"type":"boolean","title":"Allow Privileged Scopes","description":"Required to grant privileged scopes: any write or delete action, the admin scope, or any service_accounts scope. Privileged tokens must be deliberate, never accidental.","default":false}},"type":"object","required":["name"],"title":"ServiceAccountCreate"},"ServiceAccountCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"token":{"type":"string","title":"Token","description":"The plaintext token. Shown exactly once - store it securely now."}},"type":"object","required":["id","name","principal","token_prefix","created_at","token"],"title":"ServiceAccountCreateResponse","description":"Returned once, at creation. The token is never retrievable again."},"ServiceAccountResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","name","principal","token_prefix","created_at"],"title":"ServiceAccountResponse","description":"Service account metadata. Never includes the token hash or plaintext."},"ServiceUnavailableResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ServiceUnavailableResponse","example":{"detail":"Feature not supported by the configured service"}},"SessionConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_SessionDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"SessionConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"SessionDomainConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier for the session"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state data of the session"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when session was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when session was last updated"},"session_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type","description":"Type of session: agent, team, or workflow"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["session_id","session_name"],"title":"SessionSchema"},"SessionType":{"type":"string","enum":["agent","team","workflow"],"title":"SessionType"},"SlackChallengeResponse":{"properties":{"challenge":{"type":"string","title":"Challenge","description":"Challenge string to echo back to Slack"}},"type":"object","required":["challenge"],"title":"SlackChallengeResponse"},"SlackEventResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"}},"type":"object","title":"SlackEventResponse"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"SourceFileSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Full path/key of the file"},"name":{"type":"string","title":"Name","description":"Display name (filename)"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"File size in bytes"},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified","description":"ISO 8601 timestamp of last modification"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"MIME type of the file"}},"type":"object","required":["key","name"],"title":"SourceFileSchema","description":"Schema for a file in a content source."},"SourceFilesResponseSchema":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"ID of the content source"},"source_name":{"type":"string","title":"Source Name","description":"Name of the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Prefix filter that was applied"},"folders":{"items":{"$ref":"#/components/schemas/SourceFolderSchema"},"type":"array","title":"Folders","description":"Subfolders at this level"},"files":{"items":{"$ref":"#/components/schemas/SourceFileSchema"},"type":"array","title":"Files","description":"List of files at this level"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["source_id","source_name","meta"],"title":"SourceFilesResponseSchema","description":"Response schema for listing files in a content source."},"SourceFolderSchema":{"properties":{"prefix":{"type":"string","title":"Prefix","description":"Full prefix to use for navigating into this folder"},"name":{"type":"string","title":"Name","description":"Display name of the folder"},"is_empty":{"type":"boolean","title":"Is Empty","description":"Whether the folder contains any files","default":false}},"type":"object","required":["prefix","name"],"title":"SourceFolderSchema","description":"Schema for a folder in a content source."},"SystemMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"system","title":"Role","default":"system"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"SystemMessage","description":"A system message."},"Task":{"properties":{"artifacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Artifact"},"type":"array"},{"type":"null"}],"title":"Artifacts"},"contextId":{"type":"string","title":"Contextid"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"History"},"id":{"type":"string","title":"Id"},"kind":{"type":"string","const":"task","title":"Kind","default":"task"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"status":{"$ref":"#/components/schemas/TaskStatus"}},"type":"object","required":["contextId","id","status"],"title":"Task","description":"Represents a single, stateful operation or conversation between a client and an agent."},"TaskState":{"type":"string","enum":["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"],"title":"TaskState","description":"Defines the lifecycle states of a Task."},"TaskStatus":{"properties":{"message":{"anyOf":[{"$ref":"#/components/schemas/Message"},{"type":"null"}]},"state":{"$ref":"#/components/schemas/TaskState"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp","examples":["2023-10-27T10:00:00Z"]}},"type":"object","required":["state"],"title":"TaskStatus","description":"Represents the status of a task at a specific point in time."},"TeamResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"members":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"$ref":"#/components/schemas/TeamResponse"}]},"type":"array"},{"type":"null"}],"title":"Members"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"TeamResponse"},"TeamRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the team run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that executed this run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the team run"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this team run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this team run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this team run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this team run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"TeamRunSchema"},"TeamSessionDetailSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID used in this session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of team interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"team_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Team Data","description":"Team-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"}},"type":"object","required":["session_id","session_name"],"title":"TeamSessionDetailSchema"},"TeamSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the team"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the team"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the team"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Team execution mode (coordinate, route, broadcast, tasks)"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the team leader"}},"type":"object","title":"TeamSummaryResponse"},"TelegramStatusResponse":{"properties":{"status":{"type":"string","title":"Status","default":"available"}},"type":"object","title":"TelegramStatusResponse"},"TelegramWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status"}},"type":"object","required":["status"],"title":"TelegramWebhookResponse"},"TextInputContent":{"properties":{"type":{"type":"string","const":"text","title":"Type","default":"text"},"text":{"type":"string","title":"Text"}},"additionalProperties":true,"type":"object","required":["text"],"title":"TextInputContent","description":"A text fragment in a multimodal user message."},"TextPart":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"TextPart","description":"Represents a text segment within a message or artifact."},"Tool":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{},{"type":"null"}],"title":"Parameters"}},"additionalProperties":true,"type":"object","required":["name","description"],"title":"Tool","description":"A tool definition."},"ToolCall":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/FunctionCall"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","function"],"title":"ToolCall","description":"A tool call, modelled after OpenAI tool calls."},"ToolMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"tool","title":"Role","default":"tool"},"content":{"type":"string","title":"Content"},"toolCallId":{"type":"string","title":"Toolcallid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content","toolCallId"],"title":"ToolMessage","description":"A tool result message."},"TraceDetail":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent/workflow"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the agent/workflow"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"},"tree":{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array","title":"Tree","description":"Hierarchical tree of spans (root nodes)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at","tree"],"title":"TraceDetail","description":"Detailed trace information with hierarchical span tree"},"TraceNode":{"properties":{"id":{"type":"string","title":"Id","description":"Span ID"},"name":{"type":"string","title":"Name","description":"Span name (e.g., 'agent.run', 'llm.invoke')"},"type":{"type":"string","title":"Type","description":"Span kind (AGENT, TEAM, WORKFLOW, LLM, TOOL)"},"duration":{"type":"string","title":"Duration","description":"Human-readable duration (e.g., '123ms', '1.5s')"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"End time (Pydantic auto-serializes to ISO 8601)"},"status":{"type":"string","title":"Status","description":"Status code (OK, ERROR)"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the span"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the span"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"spans":{"anyOf":[{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array"},{"type":"null"}],"title":"Spans","description":"Child spans in the trace hierarchy"},"step_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Type","description":"Workflow step type (Step, Condition, function, Agent, Team)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional span attributes and data"},"extra_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Data","description":"Flexible field for custom attributes and additional data"}},"type":"object","required":["id","name","type","duration","start_time","end_time","status"],"title":"TraceNode","description":"Recursive node structure for rendering trace hierarchy in the frontend"},"TraceSearchGroupBy":{"type":"string","enum":["run","session"],"title":"TraceSearchGroupBy","description":"Grouping options for trace search results."},"TraceSearchRequest":{"properties":{"filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter","description":"FilterExpr DSL as JSON dict. Supports operators: EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH, AND, OR, NOT."},"group_by":{"$ref":"#/components/schemas/TraceSearchGroupBy","description":"Grouping mode: 'run' returns individual TraceDetail, 'session' returns aggregated TraceSessionStats.","default":"run"},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number (1-indexed)","default":1},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"Number of traces per page (max 100)","default":20}},"type":"object","title":"TraceSearchRequest","description":"Request body for POST /traces/search with advanced filtering.\n\nThe filter field accepts a FilterExpr DSL dict supporting composable queries\nwith AND/OR/NOT logic and operators like EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH.\n\nExample for run grouping (default):\n {\n \"filter\": {\n \"op\": \"AND\",\n \"conditions\": [\n {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n {\"op\": \"CONTAINS\", \"key\": \"user_id\", \"value\": \"admin\"}\n ]\n },\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n }\n\nExample for session grouping:\n {\n \"filter\": {\"op\": \"EQ\", \"key\": \"agent_id\", \"value\": \"my-agent\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n }"},"TraceSessionStats":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID(s) used in the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID associated with the session"},"total_traces":{"type":"integer","title":"Total Traces","description":"Total number of traces in this session"},"first_trace_at":{"type":"string","format":"date-time","title":"First Trace At","description":"Time of first trace (Pydantic auto-serializes to ISO 8601)"},"last_trace_at":{"type":"string","format":"date-time","title":"Last Trace At","description":"Time of last trace (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["session_id","total_traces","first_trace_at","last_trace_at"],"title":"TraceSessionStats","description":"Aggregated trace statistics grouped by session"},"TraceSummary":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR, UNSET)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at"],"title":"TraceSummary","description":"Summary information for trace list view"},"TracesConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_TracesDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"TracesConfig","description":"Configuration for the Traces domain of the AgentOS"},"TracesDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"TracesDomainConfig","description":"Configuration for the Traces domain of the AgentOS"},"UnauthenticatedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"UnauthenticatedResponse","example":{"detail":"Unauthenticated access","error_code":"UNAUTHENTICATED"}},"UpdateEvalRunRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"New name for the evaluation run"}},"type":"object","required":["name"],"title":"UpdateEvalRunRequest"},"UpdateSessionRequest":{"properties":{"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Updated session name"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Updated session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Updated metadata"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary","description":"Session summary"}},"type":"object","title":"UpdateSessionRequest"},"UserMemoryCreateSchema":{"properties":{"memory":{"type":"string","maxLength":5000,"minLength":1,"title":"Memory","description":"Memory content text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags to categorize the memory"}},"type":"object","required":["memory"],"title":"UserMemoryCreateSchema","description":"Define the payload expected for creating a new user memory"},"UserMemorySchema":{"properties":{"memory_id":{"type":"string","title":"Memory Id","description":"Unique identifier for the memory"},"memory":{"type":"string","title":"Memory","description":"Memory content text"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags associated with the memory"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID associated with this memory"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with this memory"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when memory was last updated"}},"type":"object","required":["memory_id","memory"],"title":"UserMemorySchema"},"UserMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"user","title":"Role","default":"user"},"content":{"anyOf":[{"type":"string"},{"items":{"oneOf":[{"$ref":"#/components/schemas/TextInputContent"},{"$ref":"#/components/schemas/ImageInputContent"},{"$ref":"#/components/schemas/AudioInputContent"},{"$ref":"#/components/schemas/VideoInputContent"},{"$ref":"#/components/schemas/DocumentInputContent"},{"$ref":"#/components/schemas/BinaryInputContent"}],"discriminator":{"propertyName":"type","mapping":{"audio":"#/components/schemas/AudioInputContent","binary":"#/components/schemas/BinaryInputContent","document":"#/components/schemas/DocumentInputContent","image":"#/components/schemas/ImageInputContent","text":"#/components/schemas/TextInputContent","video":"#/components/schemas/VideoInputContent"}}},"type":"array"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"UserMessage","description":"A user message supporting text or multimodal content."},"UserStatsSchema":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"total_memories":{"type":"integer","minimum":0.0,"title":"Total Memories","description":"Total number of memories for this user"},"last_memory_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Memory Updated At","description":"Timestamp of the most recent memory update"}},"type":"object","required":["user_id","total_memories"],"title":"UserStatsSchema","description":"Schema for user memory statistics"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"ValidationErrorResponse","example":{"detail":"Validation error","error_code":"VALIDATION_ERROR"}},"VectorDbSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the vector database"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the vector database"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the vector database"},"search_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Search Types","description":"List of supported search types (vector, keyword, hybrid)"}},"type":"object","required":["id"],"title":"VectorDbSchema"},"VectorSearchRequestSchema":{"properties":{"query":{"type":"string","title":"Query","description":"The search query text"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database ID to search in"},"knowledge_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledge Id","description":"Knowledge base ID to search in"},"vector_db_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vector Db Ids","description":"List of vector database IDs to search in"},"search_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Type","description":"The type of search to perform (vector, keyword, hybrid)"},"max_results":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Max Results","description":"The maximum number of results to return"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Filters to apply to the search results"},"meta":{"anyOf":[{"$ref":"#/components/schemas/Meta"},{"type":"null"}],"description":"Pagination metadata. Limit and page number to return a subset of results."}},"type":"object","required":["query"],"title":"VectorSearchRequestSchema","description":"Schema for vector search request."},"VectorSearchResult":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the search result document"},"content":{"type":"string","title":"Content","description":"Content text of the document"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the document"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Metadata associated with the document"},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"Usage statistics (e.g., token counts)"},"reranking_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reranking Score","description":"Reranking score for relevance"},"content_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Id","description":"ID of the source content"},"content_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Origin","description":"Origin URL or source of the content"},"size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"}},"type":"object","required":["id","content"],"title":"VectorSearchResult","description":"Schema for search result documents."},"VideoInputContent":{"properties":{"type":{"type":"string","const":"video","title":"Type","default":"video"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"VideoInputContent","description":"A video input content fragment."},"WhatsAppWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status","default":"ok"}},"type":"object","title":"WhatsAppWebhookResponse"},"WorkflowResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema","description":"Input schema for the workflow"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps","description":"List of workflow steps"},"agent":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"type":"null"}],"description":"Agent configuration if used"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamResponse"},{"type":"null"}],"description":"Team configuration if used"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"workflow_agent":{"type":"boolean","title":"Workflow Agent","description":"Whether this workflow uses a WorkflowAgent","default":false},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowResponse"},"WorkflowRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the workflow run"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the workflow"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was executed"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the workflow"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"Type of content returned"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status of the workflow run"},"step_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Results","description":"Results from each workflow step"},"step_executor_runs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Executor Runs","description":"Executor runs for each step"},"step_requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Requirements","description":"HITL step requirements (resolved state for historical display)"},"pause_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Kind","description":"Kind of HITL pause: 'step' or 'executor'"},"paused_step_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Step Name","description":"Name of the step that caused the pause"},"paused_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Paused Step Index","description":"Index of the step that caused the pause"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the workflow"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the workflow"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the workflow"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the workflow"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the workflow"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"}},"type":"object","required":["run_id"],"title":"WorkflowRunSchema"},"WorkflowSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID used in this session"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name","description":"Name of the workflow"},"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Data","description":"Complete session data"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current workflow state"},"workflow_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Data","description":"Workflow-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["session_id","session_name"],"title":"WorkflowSessionDetailSchema"},"WorkflowSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowSummaryResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} +{"openapi":"3.1.0","info":{"title":"Agno API Reference","description":"The all-in-one, private, secure agent platform that runs in your cloud.","version":"2.7.4"},"paths":{"/":{"get":{"tags":["Home"],"summary":"API Information","description":"Return the AgentOS instance name, ID, and version.","operationId":"get_api_info","responses":{"200":{"description":"API information retrieved successfully","content":{"application/json":{"schema":{"properties":{"name":{"type":"string","title":"Name"},"id":{"type":"string","title":"Id"},"version":{"type":"string","title":"Version"}},"type":"object","required":["name","id","version"],"title":"ApiInfoResponse"},"examples":{"home":{"summary":"Example home response","value":{"name":"AgentOS API","id":"demo-os","version":"1.0.0"}}}}}}}}},"/health":{"get":{"tags":["Health"],"summary":"Health Check","description":"Check the health status of the AgentOS API. Returns a simple status indicator.","operationId":"health_check","responses":{"200":{"description":"API is healthy and operational","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"},"example":{"status":"ok","instantiated_at":"2025-06-10T12:00:00Z"}}}}}}},"/info":{"get":{"tags":["Core"],"summary":"Get OS Info","description":"Return lightweight, unauthenticated metadata about this AgentOS instance.","operationId":"get_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoResponse"}}}}}}},"/config":{"get":{"tags":["Core"],"summary":"Get OS Configuration","description":"Retrieve the complete configuration of the AgentOS instance, including:\n\n- Available models and databases\n- Registered agents, teams, and workflows\n- Chat, session, memory, knowledge, and evaluation configurations\n- Available interfaces and their routes","operationId":"get_config","responses":{"200":{"description":"OS configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"},"example":{"description":"Example AgentOS configuration","available_models":[],"databases":["9c884dc4-9066-448c-9074-ef49ec7eb73c"],"session":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Sessions"}}]},"metrics":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Metrics"}}]},"memory":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Memory"}}]},"knowledge":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Knowledge"}}]},"evals":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Evals"}}]},"agents":[{"id":"main-agent","name":"Main Agent","db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c"}],"teams":[],"workflows":[],"interfaces":[],"os_id":"demo"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/models":{"get":{"tags":["Core"],"summary":"Get Available Models","description":"Retrieve a list of all unique models currently used by agents and teams in this OS instance. This includes the model ID and provider information for each model.","operationId":"get_models","responses":{"200":{"description":"List of models retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Response Get Models"},"example":[{"id":"gpt-4","provider":"openai"},{"id":"claude-3-sonnet","provider":"anthropic"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}/runs":{"post":{"tags":["Agents"],"summary":"Create Agent Run","description":"Execute an agent with a message and optional media files. Supports both streaming and non-streaming responses.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_agent_run"}}}},"responses":{"200":{"description":"Agent run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"examples":{"event_stream":{"summary":"Example event stream response","value":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Agents"],"summary":"List Agent Runs","description":"List runs for an agent within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_agent_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED","title":"Status"},"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RunSchema"},"type":"array","title":"Response List Agent Runs"}}}},"400":{"description":"Run listing is unavailable for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Agent resolution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/cancel":{"post":{"tags":["Agents"],"summary":"Cancel Agent Run","description":"Request cancellation for `run_id`. After any required ownership check, local and factory agents store cancellation intent keyed by run ID. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote agent.","operationId":"cancel_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.","title":"Session Id"},"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it."}],"responses":{"200":{"description":"Cancellation request accepted. The empty response does not confirm run existence or remote delivery.","content":{"application/json":{"schema":{}}}},"400":{"description":"A user-scoped caller omitted session_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found, or the run could not be verified in the caller's session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run cancellation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/continue":{"post":{"tags":["Agents"],"summary":"Continue Agent Run","description":"Advance a persisted agent run from its current state. Dispatches on the body shape and the persisted run state (see ADR-003 in specs/agno/features/checkpointing/decisions.md).\n\n**Variants:**\n- PAUSED + tools provided \u2192 apply HITL tool results, resume\n- PAUSED + resolved admin approval (empty tools) \u2192 apply resolution, resume\n- RUNNING / ERROR (no unresolved HITL requirements) \u2192 resume from last persisted state\n- COMPLETED + new tools \u2192 continue with appended messages\n\n**Tools Parameter:**\nJSON string containing array of tool execution objects with results. Optional \u2014 only required when the persisted run has unresolved HITL requirements.","operationId":"continue_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_agent_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid tools or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Agent run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run continuation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"503":{"description":"Remote agent is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/agents/{agent_id}/sessions/{session_id}/fork":{"post":{"tags":["Agents"],"summary":"Fork Agent Session","description":"Deep-copy a session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_agent_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents":{"get":{"tags":["Agents"],"summary":"List All Agents","description":"Retrieve a comprehensive list of all agents configured in this OS instance.\n\n**Returns:**\n- Agent metadata (ID, name, description)\n- Model configuration and capabilities\n- Available tools and their configurations\n- Session, knowledge, memory, and reasoning settings\n- Only meaningful (non-default) configurations are included","operationId":"get_agents","responses":{"200":{"description":"List of agents retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentResponse"},"type":"array","title":"Response Get Agents"},"example":[{"id":"main-agent","name":"Main Agent","db_id":"c6bf0644-feb8-4930-a305-380dae5ad6aa","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Details","description":"Retrieve detailed configuration and capabilities of a specific agent.\n\n**Returns comprehensive agent information including:**\n- Model configuration and provider details\n- Complete tool inventory and configurations\n- Session management settings\n- Knowledge base and memory configurations\n- Reasoning capabilities and settings\n- System prompts and response formatting options","operationId":"get_agent","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Agent details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"},"example":{"id":"main-agent","name":"Main Agent","db_id":"9e064c70-6821-4840-a333-ce6230908a70","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Run","description":"Retrieve the status and output of an agent run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Agents"],"summary":"List Agent Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_agent_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointListResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Agents"],"summary":"Get Agent Run Checkpoint Snapshot","description":"Return a derived run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_agent_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointSnapshotResponse"}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/resume":{"post":{"tags":["Agents"],"summary":"Resume Agent Run Stream","description":"Resume an SSE stream for an agent run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_agent_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_agent_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Not supported for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs":{"post":{"tags":["Teams"],"summary":"Create Team Run","description":"Execute a team collaboration with multiple agents working together on a task.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_team_run"}}}},"responses":{"200":{"description":"Team run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Teams"],"summary":"List Team Runs","description":"List runs for a team within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_team_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/cancel":{"post":{"tags":["Teams"],"summary":"Cancel Team Run","description":"Request cancellation for `run_id`. After any required ownership check, local and factory teams store cancellation intent keyed by run ID and mark known member runs for cancellation. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote team.","operationId":"cancel_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.","title":"Session Id"},"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it."}],"responses":{"200":{"description":"Cancellation request accepted. The empty response does not confirm run existence or remote delivery.","content":{"application/json":{"schema":{}}}},"400":{"description":"A user-scoped caller omitted session_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found, or the run could not be verified in the caller's session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel team run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/resume":{"post":{"tags":["Teams"],"summary":"Resume Team Run Stream","description":"Resume an SSE stream for a team run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_team_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_team_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory teams. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/continue":{"post":{"tags":["Teams"],"summary":"Continue Team Run","description":"Continue a paused or incomplete team run with updated requirements.\n\n**Use Cases:**\n- Resume execution after tool approval/rejection\n- Provide manual tool execution results\n- Resume after admin approval (requirements can be empty; resolution fetched from DB)\n\n**Requirements Parameter:**\nJSON string containing array of requirement objects with tool execution results.\nCan be empty when an admin-required approval has been resolved.","operationId":"continue_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_team_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid requirements or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Team run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Remote team is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/teams/{team_id}/sessions/{session_id}/fork":{"post":{"tags":["Teams"],"summary":"Fork Team Session","description":"Deep-copy a team session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_team_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams":{"get":{"tags":["Teams"],"summary":"List Accessible Teams","description":"Retrieve configured team metadata, models, members, knowledge, and memory settings. When authorization is enabled, in-memory team registrations are filtered by caller scopes. Database-loaded team components are also included.","operationId":"get_teams","responses":{"200":{"description":"List of teams retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamResponse"},"type":"array","title":"Response Get Teams"},"example":[{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"agno_memories","app_url":"/memory/1","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/teams/{team_id}":{"get":{"tags":["Teams"],"summary":"Get Team Details","description":"Retrieve detailed configuration and member information for a specific team.","operationId":"get_team","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"},"example":{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}":{"get":{"tags":["Teams"],"summary":"Get Team Run","description":"Retrieve the status and output of a team run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Teams"],"summary":"List Team Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored team run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_team_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointListResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Teams"],"summary":"Get Team Run Checkpoint Snapshot","description":"Return a derived team run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_team_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointSnapshotResponse"}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows":{"get":{"tags":["Workflows"],"summary":"List Workflows","description":"Return workflow ID, name, description, database ID, factory metadata, and Builder version metadata. When authorization is enabled, caller scopes filter in-memory workflow registrations. Database-loaded Builder workflows are appended separately.","operationId":"get_workflows","responses":{"200":{"description":"List of workflows retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Response Get Workflows"},"example":[{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/workflows/{workflow_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Details","description":"Retrieve detailed configuration and step information for a specific workflow.","operationId":"get_workflow","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Workflow version to retrieve","title":"Version"},"description":"Workflow version to retrieve"}],"responses":{"200":{"description":"Workflow details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"},"example":{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs":{"post":{"tags":["Workflows"],"summary":"Execute Workflow","description":"Execute a workflow with the provided input data. Workflows can run in streaming or batch mode.\n\n**Execution Modes:**\n- **Streaming (`stream=true`)**: Real-time step-by-step execution updates via SSE\n- **Non-Streaming (`stream=false`)**: Complete workflow execution with final result\n\n**Workflow Execution Process:**\n1. Input validation against workflow schema\n2. Sequential or parallel step execution based on workflow design\n3. Data flow between steps with transformation\n4. Error handling and automatic retries where configured\n5. Final result compilation and response\n\n**Session Management:**\nWorkflows support session continuity for stateful execution across multiple runs.","operationId":"create_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_run"}}}},"responses":{"200":{"description":"Workflow executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid input data or workflow configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Workflow execution error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"List Workflow Runs","description":"List runs for a workflow within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_workflow_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/continue":{"post":{"tags":["Workflows"],"summary":"Continue Workflow Run","description":"Continue a paused workflow run with resolved requirements.\n\n**Use Cases:**\n- Resume after step-level HITL (confirmation, user input, router selection)\n- Resume after executor-level HITL (agent/team tool confirmation within a step)\n\n**Requirements Parameter:**\nJSON string containing the resolved step requirements.","operationId":"continue_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_workflow_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: StepCompleted\ndata: {\"step_name\": \"step1\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid step requirements or factory input, missing required session ID, rejected input, or remote workflow continuation requested","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is not paused and cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/cancel":{"post":{"tags":["Workflows"],"summary":"Cancel Workflow Run","description":"Request cancellation for `run_id`. After any required ownership check, local and factory workflows store cancellation intent keyed by run ID and mark known agent or team executor runs for cancellation. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote workflow.","operationId":"cancel_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.","title":"Session Id"},"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it."}],"responses":{"200":{"description":"Cancellation request accepted. The empty response does not confirm run existence or remote delivery.","content":{"application/json":{"schema":{}}}},"400":{"description":"A user-scoped caller omitted session_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found, or the run could not be verified in the caller's session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel workflow run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/resume":{"post":{"tags":["Workflows"],"summary":"Resume Workflow Run Stream","description":"Resume an SSE stream for a workflow run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_workflow_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_workflow_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory workflows. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Run","description":"Retrieve the status and output of a workflow run. Use this to poll for run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/slack/events":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Receives incoming Slack events (messages, mentions, thread starts).\n\n**URL Verification:** On first setup, Slack sends a `url_verification` challenge. The endpoint echoes back the challenge string.\n\n**Event Processing:** Normal events are acknowledged immediately with `{\"status\": \"ok\"}` and processed in the background. This prevents Slack's 3-second retry timeout.\n\n**Retry Handling:** Events with `X-Slack-Retry-Num` header are duplicates and return 200 without reprocessing.\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Event Subscriptions > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for creating a Slack App or use the [manifest](/agent-os/interfaces/slack/setup#2-create-the-slack-app) for quick setup.\n","operationId":"slack_events_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SlackChallengeResponse"},{"$ref":"#/components/schemas/SlackEventResponse"}],"title":"Response Slack Events Simple Agent"}}}},"400":{"description":"Missing Slack headers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured, or the event body is not valid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number (present on retried events)"}]}},"/slack/interactions":{"post":{"tags":["Slack"],"summary":"Slack Interactions","description":"Handles Slack interactive components for Human-in-the-Loop (HITL) workflows.\n\n**Supported Actions:**\n- `row_approve` - Approve a pending tool call\n- `row_reject` - Reject a pending tool call\n- `submit_pause` - Submit form data for a paused workflow\n- `check_status` - Check an admin approval and resume an approved run\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Interactivity & Shortcuts > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for step-by-step instructions or the [HITL guide](/agent-os/interfaces/slack/hitl) for approval workflows.\n","operationId":"slack_interactions_simple_agent","responses":{"200":{"description":"Interaction accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackEventResponse"}}}},"400":{"description":"Missing Slack headers or malformed interaction payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number. Retried interactions return 200 without reprocessing."}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"URL-encoded JSON interaction payload (Slack sends interactive component data as a single form field)"}}}}}}}},"/whatsapp/status":{"get":{"tags":["Whatsapp"],"summary":"Status","operationId":"whatsapp_status_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"WhatsAppStatusResponse","example":{"status":"available"}}}}}}}},"/whatsapp/webhook":{"get":{"tags":["Whatsapp"],"summary":"Whatsapp Verify","description":"Handle WhatsApp webhook verification","operationId":"whatsapp_verify_simple_agent","responses":{"200":{"description":"Webhook challenge accepted","content":{"text/plain":{"schema":{"type":"string"},"example":"challenge-token"}}},"400":{"description":"No challenge was provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid verify token or mode","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Webhook verification is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"hub.mode","in":"query","required":true,"schema":{"type":"string"},"description":"Webhook verification mode. Meta sends `subscribe`."},{"name":"hub.verify_token","in":"query","required":true,"schema":{"type":"string"},"description":"Verification token configured for the WhatsApp interface."},{"name":"hub.challenge","in":"query","required":true,"schema":{"type":"string"},"description":"Challenge returned as plain text after successful verification."}]},"post":{"tags":["Whatsapp"],"summary":"Whatsapp Webhook","description":"Process incoming WhatsApp messages","operationId":"whatsapp_webhook_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppWebhookResponse"}}}},"403":{"description":"Invalid webhook signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Signature validation is not configured, or the JSON body is malformed or is not an object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Hub-Signature-256","in":"header","required":true,"schema":{"type":"string"},"description":"SHA-256 HMAC signature for the raw request body, prefixed with `sha256=`"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}},"/telegram/status":{"get":{"tags":["Telegram"],"summary":"Telegram Status","operationId":"telegram_status_simple-agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramStatusResponse"}}}}}}},"/telegram/webhook":{"post":{"tags":["Telegram"],"summary":"Telegram Webhook","operationId":"telegram_webhook_simple-agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramWebhookResponse"}}}},"403":{"description":"Invalid webhook secret token"}}}},"/agui":{"post":{"tags":["AGUI"],"summary":"Run Agent","operationId":"run_agent_agui_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentInput"}}},"required":true},"responses":{"200":{"description":"Server-sent event stream","content":{"text/event-stream":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/status":{"get":{"tags":["AGUI"],"summary":"Get Status","operationId":"get_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/a2a/agents/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Agent Card","operationId":"get_agent_card_a2a_agents__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/a2a/agents/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Agent","description":"Send a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"A2A is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/agents/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Agent Task","description":"Get the status and result of an agent task by ID. `params.contextId` identifies the session containing the task.","operationId":"get_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent task retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Missing task or context ID, or task polling requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"Task polling is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/get","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/agents/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Agent Task","description":"Cancel a running agent task. Scoped non-admin callers must identify the task's session with `params.contextId`.","operationId":"cancel_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent task canceled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"canceled"}}}}}},"400":{"description":"Missing task or required context ID, or task cancellation requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"Task cancellation is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/cancel","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/agents/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Agent","description":"Stream a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/teams/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Team Card","operationId":"get_team_card_a2a_teams__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/a2a/teams/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Team","description":"Send a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/teams/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Team Task","description":"Get the status and result of a team task by ID. `params.contextId` identifies the session containing the task.","operationId":"get_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team task retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Missing task or context ID, or task polling requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/get","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/teams/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Team Task","description":"Cancel a running team task. Scoped non-admin callers must identify the task's session with `params.contextId`.","operationId":"cancel_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team task canceled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"canceled"}}}}}},"400":{"description":"Missing task or required context ID, or task cancellation requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/cancel","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/teams/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Team","description":"Stream a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/workflows/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Workflow Card","operationId":"get_workflow_card_a2a_workflows__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Workflow card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/a2a/workflows/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Workflow","description":"Send a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/workflows/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Workflow","description":"Stream a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/message/send":{"post":{"tags":["A2A"],"summary":"Send Message","description":"[DEPRECATED] Send a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"send_message","responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request or unsupported method","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, team, or workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"deprecated":true,"security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"X-Agent-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Target agent, team, or workflow ID when `params.message.agentId` is omitted."},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/message/stream":{"post":{"tags":["A2A"],"summary":"Stream Message","description":"[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as Server-Sent Events (SSE).","operationId":"stream_message","responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request or unsupported method","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, team, or workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"deprecated":true,"security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"X-Agent-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Target agent, team, or workflow ID when `params.message.agentId` is omitted."},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/sessions":{"get":{"tags":["Sessions"],"summary":"List Sessions","description":"Retrieve paginated list of sessions with filtering and sorting options. Supports filtering by session type (agent, team, workflow), component, user, and name. Sessions represent conversation histories and execution contexts.","operationId":"get_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types.","title":"Type"},"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types."},{"name":"component_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by component ID (agent/team/workflow ID)","title":"Component Id"},"description":"Filter sessions by component ID (agent/team/workflow ID)"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by user ID","title":"User Id"},"description":"Filter sessions by user ID"},{"name":"session_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by name (partial match)","title":"Session Name"},"description":"Filter sessions by name (partial match)"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of sessions to return per page","default":20,"title":"Limit"},"description":"Number of sessions to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort sessions by","default":"created_at","title":"Sort By"},"description":"Field to sort sessions by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query sessions from","title":"Db Id"},"description":"Database ID to query sessions from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Sessions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_SessionSchema_"},"example":{"session_example":{"summary":"Example session response","value":{"data":[{"session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_state":{},"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}]}}}}}},"400":{"description":"Invalid session type or filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in query parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Sessions"],"summary":"Create New Session","description":"Create a new empty session with optional configuration. Useful for pre-creating sessions with specific session_state, metadata, or other properties before running any agent/team/workflow interactions. The session can later be used by providing its session_id in run requests.","operationId":"create_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SessionType","description":"Type of session to create (agent, team, or workflow)","default":"agent"},"description":"Type of session to create (agent, team, or workflow)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to create session in","title":"Db Id"},"description":"Database ID to create session in"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest","description":"Session configuration data","default":{}}}}},"responses":{"201":{"description":"Session created successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Create Session"},"examples":{"agent_session_example":{"summary":"Example created agent session","value":{"user_id":"user-123","agent_session_id":"new-session-id","session_id":"new-session-id","session_name":"New Session","session_state":{"key":"value"},"metadata":{"key":"value"},"agent_id":"agent-1","created_at":"2025-10-21T12:00:00Z","updated_at":"2025-10-21T12:00:00Z"}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A session with the supplied session_id already exists"},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Multiple Sessions","description":"Delete multiple sessions by their IDs in a single operation. This action cannot be undone and will permanently remove all specified sessions and their runs.","operationId":"delete_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSessionRequest"}}}},"responses":{"204":{"description":"Sessions deleted successfully"},"400":{"description":"Invalid request - session IDs and types length mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["Sessions"],"summary":"Get Session by ID","description":"Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow).","operationId":"get_session_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to retrieve","title":"Session Id"},"description":"Session ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query session from","title":"User Id"},"description":"User ID to query session from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query session from","title":"Db Id"},"description":"Database ID to query session from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query session from","title":"Table"},"description":"Table to query session from"}],"responses":{"200":{"description":"Session details retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Get Session By Id"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Session","description":"Permanently delete a specific session and all its associated runs. This action cannot be undone and will remove all conversation history.","operationId":"delete_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to delete","title":"Session Id"},"description":"Session ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Sessions"],"summary":"Update Session","description":"Update session properties such as session_name, session_state, metadata, or summary. Use this endpoint to modify the session name, update state, add metadata, or update the session summary.","operationId":"update_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to update","title":"Session Id"},"description":"Session ID to update"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID","title":"User Id"},"description":"User ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update operation","title":"Db Id"},"description":"Database ID to use for update operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update operation","title":"Table"},"description":"Table to use for update operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest","description":"Session update data"}}}},"responses":{"200":{"description":"Session updated successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Update Session"},"examples":{"update_summary":{"summary":"Update session summary","value":{"summary":{"summary":"The user discussed project planning with the agent.","updated_at":"2025-10-21T14:30:00Z"}}},"update_metadata":{"summary":"Update session metadata","value":{"metadata":{"tags":["planning","project"],"priority":"high"}}},"update_session_name":{"summary":"Update session name","value":{"session_name":"Updated Session Name"}},"update_session_state":{"summary":"Update session state","value":{"session_state":{"step":"completed","context":"Project planning finished","progress":100}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs":{"get":{"tags":["Sessions"],"summary":"Get Session Runs","description":"Retrieve all runs (executions) for a specific session with optional timestamp filtering. Runs represent individual interactions or executions within a session. Response schema varies based on session type.","operationId":"get_session_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get runs from","title":"Session Id"},"description":"Session ID to get runs from"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query runs from","title":"User Id"},"description":"User ID to query runs from"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created after this Unix timestamp (epoch time in seconds)","title":"Created After"},"description":"Filter runs created after this Unix timestamp (epoch time in seconds)"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created before this Unix timestamp (epoch time in seconds)","title":"Created Before"},"description":"Filter runs created before this Unix timestamp (epoch time in seconds)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query runs from","title":"Db Id"},"description":"Database ID to query runs from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query runs from","title":"Table"},"description":"Table to query runs from"}],"responses":{"200":{"description":"Session runs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}]},"title":"Response Get Session Runs"},"examples":{"completed_run":{"summary":"Example completed run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"","run_input":"Which tools do you have access to?","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","run_response_format":"text","reasoning_content":"","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069},"messages":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-08 17:52:10.101003.\n\n\nYou have the capability to retain memories from previous interactions with the user, but have not had any interactions with the user yet.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757346730},{"content":"Which tools do you have access to?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757346730},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138},"created_at":1757346730}],"events":[{"created_at":1757346730,"event":"RunStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","model":"gpt-4o","model_provider":"OpenAI"},{"created_at":1757346733,"event":"MemoryUpdateStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"MemoryUpdateCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"RunCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","content_type":"str","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069}}],"created_at":"2025-09-08T15:52:10Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found or has no runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs/{run_id}":{"get":{"tags":["Sessions"],"summary":"Get Run by ID","description":"Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run).","operationId":"get_session_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get run from","title":"Session Id"},"description":"Session ID to get run from"},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","description":"Run ID to retrieve","title":"Run Id"},"description":"Run ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query run from","title":"User Id"},"description":"User ID to query run from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query run from","title":"Db Id"},"description":"Database ID to query run from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query run from","title":"Table"},"description":"Table to query run from"}],"responses":{"200":{"description":"Run retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}],"title":"Response Get Session Run"},"examples":{"agent_run":{"summary":"Example agent run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"user_123","run_input":"Which tools do you have access to?","content":"I don't have access to external tools.","created_at":1728499200}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/rename":{"post":{"tags":["Sessions"],"summary":"Rename Session","description":"Update the name of an existing session. Useful for organizing and categorizing sessions with meaningful names for better identification and management.","operationId":"rename_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to rename","title":"Session Id"},"description":"Session ID to rename"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope rename to","title":"User Id"},"description":"User ID to scope rename to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for rename operation","title":"Db Id"},"description":"Database ID to use for rename operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_rename_session"}}}},"responses":{"200":{"description":"Session renamed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Rename Session"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Invalid session name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type or validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories":{"post":{"tags":["Memory"],"summary":"Create Memory","description":"Create a new user memory with content and associated topics. Memories are used to store contextual information for users across conversations.","operationId":"create_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for memory storage","title":"Db Id"},"description":"Database ID to use for memory storage"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for memory storage","title":"Table"},"description":"Table to use for memory storage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"mem-123","memory":"User prefers technical explanations with code examples","topics":["preferences","communication_style","technical"],"user_id":"user-456","created_at":"2024-01-15T10:30:00Z","updated_at":"2024-01-15T10:30:00Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Memory"],"summary":"Delete Multiple Memories","description":"Delete multiple user memories by their IDs in a single operation. This action cannot be undone and all specified memories will be permanently removed.","operationId":"delete_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMemoriesRequest"}}}},"responses":{"204":{"description":"Memories deleted successfully"},"400":{"description":"Invalid request - empty memory_ids list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"List Memories","description":"Retrieve paginated list of user memories with filtering and search capabilities. Filter by user, agent, team, topics, or search within memory content.","operationId":"get_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by user ID","title":"User Id"},"description":"Filter memories by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by agent ID","title":"Agent Id"},"description":"Filter memories by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by team ID","title":"Team Id"},"description":"Filter memories by team ID"},{"name":"search_content","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fuzzy search within memory content","title":"Search Content"},"description":"Fuzzy search within memory content"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of memories to return per page","default":20,"title":"Limit"},"description":"Number of memories to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort memories by","default":"updated_at","title":"Sort By"},"description":"Field to sort memories by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memories from","title":"Db Id"},"description":"Database ID to query memories from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Comma-separated list of topics to filter by","examples":["preferences,technical,communication_style"],"title":"Topics"},"description":"Comma-separated list of topics to filter by"}],"responses":{"200":{"description":"Memories retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserMemorySchema_"},"example":{"data":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories/{memory_id}":{"delete":{"tags":["Memory"],"summary":"Delete Memory","description":"Permanently delete a specific user memory. This action cannot be undone.","operationId":"delete_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to delete","title":"Memory Id"},"description":"Memory ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to delete memory for","title":"User Id"},"description":"User ID to delete memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Memory deleted successfully"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"Get Memory by ID","description":"Retrieve detailed information about a specific user memory by its ID.","operationId":"get_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to retrieve","title":"Memory Id"},"description":"Memory ID to retrieve"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query memory for","title":"User Id"},"description":"User ID to query memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memory from","title":"Db Id"},"description":"Database ID to query memory from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query memory from","title":"Table"},"description":"Table to query memory from"}],"responses":{"200":{"description":"Memory retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Memory"],"summary":"Update Memory","description":"Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values.","operationId":"update_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to update","title":"Memory Id"},"description":"Memory ID to update"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update","title":"Db Id"},"description":"Database ID to use for update"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update","title":"Table"},"description":"Table to use for update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memory_topics":{"get":{"tags":["Memory"],"summary":"Get Memory Topics","description":"Retrieve all unique topics associated with memories in the system. Useful for filtering and categorizing memories by topic.","operationId":"get_memory_topics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter topics for","title":"User Id"},"description":"User ID to filter topics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query topics from","title":"Db Id"},"description":"Database ID to query topics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query topics from","title":"Table"},"description":"Table to query topics from"}],"responses":{"200":{"description":"Memory topics retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Get Memory Topics"},"example":["preferences","communication_style","technical","industry","compliance","code_examples","requirements","healthcare","finance"]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/user_memory_stats":{"get":{"tags":["Memory"],"summary":"Get User Memory Statistics","description":"Retrieve paginated statistics about memory usage by user. Provides insights into user engagement and memory distribution across users.","operationId":"get_user_memory_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of user statistics to return per page","default":20,"title":"Limit"},"description":"Number of user statistics to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter statistics for","title":"User Id"},"description":"User ID to filter statistics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query statistics from","title":"Table"},"description":"Table to query statistics from"}],"responses":{"200":{"description":"User memory statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserStatsSchema_"},"example":{"data":[{"user_id":"123","total_memories":3,"last_memory_updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve user statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/optimize-memories":{"post":{"tags":["Memory"],"summary":"Optimize User Memories","description":"Optimize all memories for a user with the summarize strategy. The operation combines the user's memories into one summary. Set `apply=false` to preview the result without saving it. Specify a custom model as `provider:model_id`, for example `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, or `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`.","operationId":"optimize_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for optimization","title":"Db Id"},"description":"Database ID to use for optimization"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for optimization","title":"Table"},"description":"Table to use for optimization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesRequest"}}}},"responses":{"200":{"description":"Memories optimized successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesResponse"},"example":{"memories":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User has a 3-year-old golden retriever named Max who loves fetch and walks. Lives in San Francisco's Mission district, works as a product manager in tech. Enjoys hiking Bay Area trails, trying new restaurants (especially Japanese, Thai, Mexican), and learning piano for 1.5 years.","topics":["pets","location","work","hobbies","food_preferences"],"user_id":"user2","updated_at":"2025-11-18T10:30:00Z"}],"memories_before":4,"memories_after":1,"tokens_before":450,"tokens_after":180,"tokens_saved":270,"reduction_percentage":60.0}}}},"400":{"description":"Bad request - User ID is required or invalid model string format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No memories found for user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to optimize memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings":{"get":{"tags":["Learnings"],"summary":"List Learnings","description":"List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) \u2014 this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`).","operationId":"list_learnings","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by learning type","title":"Learning Type"},"description":"Filter by learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"namespace","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by namespace","title":"Namespace"},"description":"Filter by namespace"},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity ID","title":"Entity Id"},"description":"Filter by entity ID"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity type","title":"Entity Type"},"description":"Filter by entity type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":100,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used).","title":"Sort By"},"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used)."},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"post":{"tags":["Learnings"],"summary":"Create Learning","description":"Create a new learning record. For the identity-keyed learning types (`user_profile`, `user_memory`, `session_context`, `entity_memory`) the record id is derived deterministically from the identity fields so it reconciles with what the agent reads/writes \u2014 provide those fields (else 422), and if a record already exists the request is rejected with 409 (use PATCH to update it). Other types get a generated id. For a scoped (non-admin) caller, the body's `user_id` must be omitted/null or match the caller (mismatch \u2192 403); admins and unscoped callers may set any `user_id`.","operationId":"create_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"An identity-keyed learning already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/users":{"get":{"tags":["Learnings"],"summary":"List Learning Users","description":"List the users that own learning records, with a per-user count and last-updated timestamp. Intended as the entry point for a per-user view: list users here, then drill into a single user's learnings via `GET /learnings?user_id=...`. Records with no owner (`user_id IS NULL`) are excluded. Pass `learning_type` to restrict the grouping to a single store (e.g. `user_profile` or `user_memory`). For a scoped (non-admin) caller results are bound to that user; an explicit `user_id` that differs is rejected with 403. Admins and unscoped callers list all users. Sortable by `user_id` or `last_learning_updated_at` (the default).","operationId":"list_learning_users","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the grouping to a single learning type","title":"Learning Type"},"description":"Restrict the grouping to a single learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the result to a single user","title":"User Id"},"description":"Restrict the result to a single user"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by: user_id or last_learning_updated_at (the default)","title":"Sort By"},"description":"Field to sort by: user_id or last_learning_updated_at (the default)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningUserStats_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/users/{user_id}":{"delete":{"tags":["Learnings"],"summary":"Delete Learning User","description":"Delete the learning records owned by a user. By default removes every learning type backed by the agno_learnings table (user_profile, user_memory, and any user-scoped entity records); pass `learning_type` to restrict deletion to a single store. Records with no owner (`user_id IS NULL`) are not affected. For a scoped (non-admin) caller, only their own learnings may be deleted; a different `user_id` is rejected with 403. Admins and unscoped callers may delete any user's learnings. Returns 204 even if the user had no matching records.","operationId":"delete_learning_user","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The user whose learnings should be deleted","title":"User Id"},"description":"The user whose learnings should be deleted"},{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings","title":"Learning Type"},"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/{learning_id}":{"get":{"tags":["Learnings"],"summary":"Get Learning","description":"Retrieve a single learning record by its ID.","operationId":"get_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"patch":{"tags":["Learnings"],"summary":"Update Learning","description":"Update a learning record. Only `content` and `metadata` may be modified; identity fields (user_id, agent_id, team_id, etc.) are immutable. Provided fields fully replace the existing values. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) are readable by any caller but may only be modified by an admin.","operationId":"update_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"delete":{"tags":["Learnings"],"summary":"Delete Learning","description":"Permanently delete a learning record by its ID. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) may only be deleted by an admin.","operationId":"delete_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/eval-runs":{"get":{"tags":["Evals"],"summary":"List Evaluation Runs","description":"Retrieve paginated evaluation runs with filtering and sorting options. Filter by agent, team, workflow, model, or evaluation type.","operationId":"get_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Workflow ID","title":"Workflow Id"},"description":"Workflow ID"},{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model ID","title":"Model Id"},"description":"Model ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EvalFilterType"},{"type":"null"}],"description":"Filter type","title":"Type"},"description":"Filter type"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of eval runs to return","default":20,"title":"Limit"},"description":"Number of eval runs to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"eval_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)","examples":["accuracy,agent_as_judge,performance,reliability"],"title":"Eval Types"},"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)"}],"responses":{"200":{"description":"Evaluation runs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_EvalSchema_"},"example":{"data":[{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Evals"],"summary":"Delete Evaluation Runs","description":"Delete multiple evaluation runs by their IDs. This action cannot be undone.","operationId":"delete_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvalRunsRequest"}}}},"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Deletion failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Evals"],"summary":"Execute Evaluation","description":"Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both.","operationId":"run_eval","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for evaluation","title":"Db Id"},"description":"Database ID to use for evaluation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for evaluation","title":"Table"},"description":"Table to use for evaluation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRunInput"}}}},"responses":{"200":{"description":"Evaluation executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"f2b2d72f-e9e2-4f0e-8810-0a7e1ff58614","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Invalid request - provide either agent_id or team_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs/{eval_run_id}":{"get":{"tags":["Evals"],"summary":"Get Evaluation Run","description":"Retrieve detailed results and metrics for a specific evaluation run.","operationId":"get_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query eval run from","title":"Table"},"description":"Table to query eval run from"}],"responses":{"200":{"description":"Evaluation run details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Evals"],"summary":"Update Evaluation Run","description":"Update the name or other properties of an existing evaluation run.","operationId":"update_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvalRunRequest"}}}},"responses":{"200":{"description":"Evaluation run updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update evaluation run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics":{"get":{"tags":["Metrics"],"summary":"Get AgentOS Metrics","description":"Retrieve AgentOS metrics and analytics data for a specified date range. If no date range is specified, returns all available metrics.","operationId":"get_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"starting_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Starting date for metrics range (YYYY-MM-DD format)","title":"Starting Date"},"description":"Starting date for metrics range (YYYY-MM-DD format)"},{"name":"ending_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Ending date for metrics range (YYYY-MM-DD format)","title":"Ending Date"},"description":"Ending date for metrics range (YYYY-MM-DD format)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query metrics from","title":"Db Id"},"description":"Database ID to query metrics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Metrics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"},"example":{"metrics":[{"id":"7bf39658-a00a-484c-8a28-67fd8a9ddb2a","agent_runs_count":5,"agent_sessions_count":5,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":448,"output_tokens":148,"total_tokens":596,"audio_tokens":0,"input_audio_tokens":0,"output_audio_tokens":0,"cached_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":5}],"date":"2025-07-31T00:00:00Z","created_at":"2025-07-31T12:38:52Z","updated_at":"2025-07-31T12:49:01Z"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Metrics retrieval failed. In Agno 2.7.4, invalid or ambiguous database selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics/refresh":{"post":{"tags":["Metrics"],"summary":"Refresh Metrics","description":"Manually trigger recalculation of system metrics from raw data. This operation analyzes system activity logs and regenerates aggregated metrics. Useful for ensuring metrics are up-to-date or after system maintenance.","operationId":"refresh_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for metrics calculation","title":"Db Id"},"description":"Database ID to use for metrics calculation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for metrics calculation","title":"Table"},"description":"Table to use for metrics calculation"}],"responses":{"200":{"description":"Metrics refreshed successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"title":"Response Refresh Metrics"},"example":[{"id":"e77c9531-818b-47a5-99cd-59fed61e5403","agent_runs_count":2,"agent_sessions_count":2,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":256,"output_tokens":441,"total_tokens":697,"audio_total_tokens":0,"audio_input_tokens":0,"audio_output_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":2}],"date":"2025-08-12T00:00:00Z","created_at":"2025-08-12T08:01:47Z","updated_at":"2025-08-12T08:01:47Z"}]}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Refresh failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content":{"post":{"tags":["Knowledge"],"summary":"Upload Content","description":"Upload content to the knowledge base. Supports file uploads, text content, or URLs. Content is processed asynchronously in the background. Supports custom readers and chunking strategies.","operationId":"upload_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_content"}}}},"responses":{"202":{"description":"Content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-123","name":"example-document.pdf","description":"Sample document for processing","metadata":{"category":"documentation","priority":"high"},"status":"processing"}}}},"400":{"description":"Invalid request - malformed metadata or missing content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in form data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"List Content","description":"Return a paginated, sorted list of content for the selected knowledge base. Use `limit`, `page`, `sort_by`, and `sort_order` to control the result. Agno 2.7.4 exposes no status, content type, or metadata filter parameters on this endpoint. Named local knowledge instances scope rows by the stored `linked_to` value.","operationId":"get_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of content entries to return","default":20,"title":"Limit"},"description":"Number of content entries to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ContentResponseSchema_"},"example":{"data":[{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":null,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z","linked_to":null}],"meta":{"page":1,"limit":20,"total_pages":1,"total_count":2}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete All Content","description":"Permanently remove all content from the knowledge base. This is a destructive operation that cannot be undone. Use with extreme caution.","operationId":"delete_all_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete all content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/remote-content":{"post":{"tags":["Knowledge"],"summary":"Upload Remote Content","description":"Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.","operationId":"upload_remote_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_upload_remote_content"}}}},"responses":{"202":{"description":"Remote content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-456","name":"reports/q1-2024.pdf","description":"Q1 Report from S3","metadata":{"source":"s3-docs"},"status":"processing"}}}},"400":{"description":"Invalid request - unknown config or missing path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Remote content upload is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/knowledge/content/{content_id}":{"patch":{"tags":["Knowledge"],"summary":"Update Content","description":"Update content name, description, or metadata without re-uploading it. In Agno 2.7.4, this endpoint accepts `reader_id`. Local knowledge validates the value, but the content patch does not apply or persist the reader change.","operationId":"update_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","description":"Content ID","title":"Content Id"},"description":"Content ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_update_content"}}}},"responses":{"200":{"description":"Content updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":null,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z","linked_to":null}}}},"400":{"description":"Invalid request - malformed metadata or invalid reader_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"Get Content by ID","description":"Retrieve detailed information about a specific content item including processing status and metadata.","operationId":"get_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":null,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z","linked_to":null}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete Content by ID","description":"Permanently remove a specific content item from the knowledge base. This action cannot be undone.","operationId":"delete_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}/status":{"get":{"tags":["Knowledge"],"summary":"Get Content Status","description":"Return the processing status for a content ID. For local knowledge in Agno 2.7.4, an unknown content ID returns HTTP 200 with `status=\"failed\"` and `status_message=\"Content not found\"`.","operationId":"get_content_status","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content status returned. An unknown local content ID is represented by status \"failed\".","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentStatusResponse"},"examples":{"completed":{"summary":"Completed content","value":{"id":"content-123","status":"completed","status_message":""}},"content_not_found":{"summary":"Unknown local content ID","value":{"id":"missing-content","status":"failed","status_message":"Content not found"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Selected knowledge base or database ID not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/search":{"post":{"tags":["Knowledge"],"summary":"Search Knowledge","description":"Search the knowledge base for relevant documents using query, filters and search type.","operationId":"search_knowledge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VectorSearchRequestSchema"}}},"required":true},"responses":{"200":{"description":"Search results retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_VectorSearchResult_"},"example":{"data":[{"id":"doc_123","content":"Jordan Mitchell - Software Engineer with skills in JavaScript, React, Python","name":"cv_1","meta_data":{"page":1,"chunk":1},"usage":{"total_tokens":14},"reranking_score":0.95,"content_id":"content_456"}],"meta":{"page":1,"limit":20,"total_pages":2,"total_count":35}}}}},"400":{"description":"Invalid search parameters"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No documents found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/knowledge/config":{"get":{"tags":["Knowledge"],"summary":"Get Config","description":"Retrieve available readers, chunkers, and configuration options for content processing. This endpoint provides metadata about supported file types, processing strategies, and filters.","operationId":"get_knowledge_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Knowledge configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponseSchema"},"example":{"readers":{"website":{"id":"website","name":"WebsiteReader","description":"Reads website files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"firecrawl":{"id":"firecrawl","name":"FirecrawlReader","description":"Reads firecrawl files","chunkers":["SemanticChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"youtube":{"id":"youtube","name":"YoutubeReader","description":"Reads youtube files","chunkers":["RecursiveChunker","AgenticChunker","DocumentChunker","SemanticChunker","FixedSizeChunker"]},"web_search":{"id":"web_search","name":"WebSearchReader","description":"Reads web_search files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"arxiv":{"id":"arxiv","name":"ArxivReader","description":"Reads arxiv files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"csv":{"id":"csv","name":"CsvReader","description":"Reads csv files","chunkers":["RowChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"docling":{"id":"docling","name":"DoclingReader","description":"Converts multiple document formats like PDF, DOCX, PPTX, images, HTML, etc. using IBM's Docling library","chunkers":["AgenticChunker","CodeChunker","DocumentChunker","FixedSizeChunker","RecursiveChunker","SemanticChunker"]},"docx":{"id":"docx","name":"DocxReader","description":"Reads docx files","chunkers":["DocumentChunker","FixedSizeChunker","SemanticChunker","AgenticChunker","RecursiveChunker"]},"gcs":{"id":"gcs","name":"GcsReader","description":"Reads gcs files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"json":{"id":"json","name":"JsonReader","description":"Reads json files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"markdown":{"id":"markdown","name":"MarkdownReader","description":"Reads markdown files","chunkers":["MarkdownChunker","DocumentChunker","AgenticChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"pdf":{"id":"pdf","name":"PdfReader","description":"Reads pdf files","chunkers":["DocumentChunker","FixedSizeChunker","AgenticChunker","SemanticChunker","RecursiveChunker"]},"text":{"id":"text","name":"TextReader","description":"Reads text files","chunkers":["CodeChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]}},"readersForType":{"url":["url","website","firecrawl","youtube","web_search","gcs"],"youtube":["youtube"],"text":["web_search"],"topic":["arxiv"],"file":["csv","gcs"],".csv":["csv","field_labeled_csv","docling"],".xlsx":["excel","docling"],".xls":["excel"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["excel"],"application/vnd.ms-excel":["excel"],".docx":["docx","docling"],".dotx":["docling"],".docm":["docling"],".dotm":["docling"],".pptx":["docling","pptx"],".potx":["docling"],".ppsx":["docling"],".pptm":["docling"],".ppsm":["docling"],".potm":["docling"],".doc":["docx"],".json":["json"],".md":["markdown","docling"],".pdf":["pdf","docling"],".txt":["text"],".html":["docling"],".htm":["docling"],".xhtml":["docling"],".xml":["docling"],".nxml":["docling"],".xbrl":["docling"],".adoc":["docling"],".asciidoc":["docling"],".asc":["docling"],".xlsm":["docling"],".tex":["docling"],".latex":["docling"],".tar.gz":["docling"],".vtt":["docling"],".png":["docling"],".jpeg":["docling"],".jpg":["docling"],".tiff":["docling"],".tif":["docling"],".bmp":["docling"],".webp":["docling"],".wav":["docling"],".mp3":["docling"],".m4a":["docling"],".aac":["docling"],".ogg":["docling"],".flac":["docling"],".mp4":["docling"],".avi":["docling"],".mov":["docling"]},"chunkers":{"AgenticChunker":{"key":"AgenticChunker","name":"AgenticChunker","description":"Chunking strategy that uses an LLM to determine natural breakpoints in the text","metadata":{"chunk_size":5000}},"CodeChunker":{"key":"CodeChunker","name":"CodeChunker","description":"The CodeChunker splits code into chunks based on its structure, leveraging Abstract Syntax Trees (ASTs) to create contextually relevant segments","metadata":{"chunk_size":2048}},"DocumentChunker":{"key":"DocumentChunker","name":"DocumentChunker","description":"A chunking strategy that splits text based on document structure like paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"FixedSizeChunker":{"key":"FixedSizeChunker","name":"FixedSizeChunker","description":"Chunking strategy that splits text into fixed-size chunks with optional overlap","metadata":{"chunk_size":5000,"chunk_overlap":0}},"MarkdownChunker":{"key":"MarkdownChunker","name":"MarkdownChunker","description":"A chunking strategy that splits markdown based on structure like headers, paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RecursiveChunker":{"key":"RecursiveChunker","name":"RecursiveChunker","description":"Chunking strategy that recursively splits text into chunks by finding natural break points","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RowChunker":{"key":"RowChunker","name":"RowChunker","description":"RowChunking chunking strategy","metadata":{}},"SemanticChunker":{"key":"SemanticChunker","name":"SemanticChunker","description":"Chunking strategy that splits text into semantic chunks using chonkie","metadata":{"chunk_size":5000}}},"vector_dbs":[{"id":"vector_db_1","name":"Vector DB 1","description":"Vector DB 1 description","search_types":["vector","keyword","hybrid"]}],"filters":["filter_tag_1","filter_tag2"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources":{"get":{"tags":["Knowledge"],"summary":"List Content Sources","description":"List all registered content sources (S3, GCS, SharePoint, GitHub) for the knowledge base.","operationId":"list_content_sources","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Content sources retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"title":"Response List Content Sources"},"example":[{"id":"company-s3","name":"Company Documents","type":"s3","prefix":"documents/"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Content source listing is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/knowledge/{knowledge_id}/sources/{source_id}/files":{"get":{"tags":["Knowledge"],"summary":"List Files in Source","description":"List available files and folders in a specific content source. Supports pagination and folder navigation.","operationId":"list_source_files","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the content source","title":"Source Id"},"description":"ID of the content source"},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Path prefix to filter files","title":"Prefix"},"description":"Path prefix to filter files"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of files per page","default":100,"title":"Limit"},"description":"Number of files per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"delimiter","in":"query","required":false,"schema":{"type":"string","description":"Folder delimiter (enables folder grouping)","default":"/","title":"Delimiter"},"description":"Folder delimiter (enables folder grouping)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Files listed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceFilesResponseSchema"},"example":{"source_id":"company-s3","source_name":"Company Documents","prefix":"reports/","folders":[{"prefix":"reports/2024/","name":"2024","is_empty":false}],"files":[{"key":"reports/annual-summary.pdf","name":"annual-summary.pdf","size":102400,"last_modified":"2024-01-15T10:30:00Z","content_type":"application/pdf"}],"meta":{"page":1,"limit":100,"total_pages":1,"total_count":1}}}}},"400":{"description":"Unsupported source type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base or content source not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Source file listing is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/traces":{"get":{"tags":["Traces","Traces"],"summary":"List Traces","description":"Retrieve a paginated list of execution traces with optional filtering.\n\n**Traces provide observability into:**\n- Agent execution flows\n- Model invocations and token usage\n- Tool calls and their results\n- Errors and performance bottlenecks\n\n**Filtering Options:**\n- By run, session, user, or agent ID\n- By status (OK, ERROR)\n- By time range\n\n**Pagination:**\n- Use `page` (1-indexed) and `limit` parameters\n- Response includes pagination metadata (total_pages, total_count, etc.)\n\n**Response Format:**\nReturns summary information for each trace. Use GET `/traces/{trace_id}` for detailed hierarchy.","operationId":"get_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run ID","title":"Run Id"},"description":"Filter by run ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status (OK, ERROR)","title":"Status"},"description":"Filter by status (OK, ERROR)"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of traces per page","default":20,"title":"Limit"},"description":"Number of traces per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"responses":{"200":{"description":"List of traces retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSummary_"},"example":{"data":[{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","total_spans":4,"error_count":0,"input":"What is the stock price of NVDA?","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"agent_stock","created_at":"2025-11-19T10:30:00+00:00"}],"meta":{"page":1,"limit":20,"total_pages":5,"total_count":95}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/filter-schema":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Filter Schema","description":"Returns the available filterable fields, their types, valid operators, and enum values.\n\nThe frontend uses this to dynamically build the filter bar UI:\n- Field dropdown populated from `fields[].key`\n- Operator dropdown changes per field type\n- Value input shows autocomplete for enum fields (e.g., status)\n- Logical operators (AND, OR) for combining clauses","operationId":"get_traces_filter_schema","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterSchemaResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/traces/{trace_id}":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace or Span Detail","description":"Retrieve detailed trace information with hierarchical span tree, or a specific span within the trace.\n\n**Without span_id parameter:**\nReturns the full trace with hierarchical span tree:\n- Trace metadata (ID, status, duration, context)\n- Hierarchical tree of all spans\n- Each span includes timing, status, and type-specific metadata\n\n**With span_id parameter:**\nReturns details for a specific span within the trace:\n- Span metadata (ID, name, type, timing)\n- Status and error information\n- Type-specific attributes (model, tokens, tool params, etc.)\n\n**Span Hierarchy (full trace):**\nThe `tree` field contains root spans, each with potential `children`.\nThis recursive structure represents the execution flow:\n```\nAgent.run (root)\n \u251c\u2500 LLM.invoke\n \u251c\u2500 Tool.execute\n \u2502 \u2514\u2500 LLM.invoke (nested)\n \u2514\u2500 LLM.invoke\n```\n\n**Span Types:**\n- `AGENT`: Agent execution with input/output\n- `LLM`: Model invocations with tokens and prompts\n- `TOOL`: Tool calls with parameters and results","operationId":"get_trace","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}},{"name":"span_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Span ID to retrieve specific span","title":"Span Id"},"description":"Optional: Span ID to retrieve specific span"},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Run ID to retrieve trace for","title":"Run Id"},"description":"Optional: Run ID to retrieve trace for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query trace from","title":"Db Id"},"description":"Database ID to query trace from"}],"responses":{"200":{"description":"Trace or span detail retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TraceDetail"},{"$ref":"#/components/schemas/TraceNode"}],"title":"Response Get Trace"},"examples":{"full_trace":{"summary":"Full trace with hierarchy (no span_id)","value":{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","end_time":"2025-11-19T10:30:01.200000+00:00","total_spans":4,"error_count":0,"input":"What is Tesla stock price?","output":"The current price of Tesla (TSLA) is $245.67.","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"stock_agent","created_at":"2025-11-19T10:30:00+00:00","tree":[{"id":"span1","name":"Stock_Price_Agent.run","type":"AGENT","duration":"1.2s","status":"OK","spans":[]}]}},"single_span":{"summary":"Single span detail (with span_id)","value":{"id":"span2","name":"gpt-4o-mini.invoke","type":"LLM","duration":"800ms","status":"OK","metadata":{"model":"gpt-4o-mini","input_tokens":120}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Trace or span not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/trace_session_stats":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Statistics by Session","description":"Retrieve aggregated trace statistics grouped by session ID with pagination.\n\n**Provides insights into:**\n- Total traces per session\n- First and last trace timestamps per session\n- Associated user and agent information\n\n**Filtering Options:**\n- By user ID\n- By agent ID\n\n**Use Cases:**\n- Monitor session-level activity\n- Track conversation flows\n- Identify high-activity sessions\n- Analyze user engagement patterns","operationId":"get_trace_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of sessions per page","default":20,"title":"Limit"},"description":"Number of sessions per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"}],"responses":{"200":{"description":"Trace statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"},"example":{"data":[{"session_id":"37029bc6-1794-4ba8-a629-1efedc53dcad","user_id":"kaustubh@agno.com","agent_id":"hackernews-agent","total_traces":5,"first_trace_at":"2025-11-19T10:15:16+00:00","last_trace_at":"2025-11-19T10:21:30+00:00"}],"meta":{"page":1,"limit":20,"total_pages":3,"total_count":45}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/search":{"post":{"tags":["Traces","Traces"],"summary":"Search Traces with Advanced Filters","description":"Search traces using the FilterExpr DSL for complex, composable queries.\n\n**Group By Mode:**\n- `run` (default): Returns `PaginatedResponse[TraceDetail]` with full span trees\n- `session`: Returns `PaginatedResponse[TraceSessionStats]` with aggregated session stats\n\n**Supported Operators:**\n- Comparison: `EQ`, `NEQ`, `GT`, `GTE`, `LT`, `LTE`\n- Inclusion: `IN`\n- String matching: `CONTAINS` (case-insensitive substring), `STARTSWITH` (prefix)\n- Logical: `AND`, `OR`, `NOT`\n\n**Filterable Fields:**\ntrace_id, name, status, start_time, end_time, duration_ms, run_id, session_id, user_id, agent_id, team_id, workflow_id, created_at\n\n**Example Request Body (runs):**\n```json\n{\n \"filter\": {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n}\n```\n\n**Example Request Body (sessions):**\n```json\n{\n \"filter\": {\"op\": \"CONTAINS\", \"key\": \"agent_id\", \"value\": \"stock\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n}\n```","operationId":"search_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PaginatedResponse_TraceDetail_"},{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"}],"title":"Response Search Traces"}}}},"400":{"description":"Invalid filter expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/all/migrate":{"post":{"tags":["Database"],"summary":"Migrate All Databases","description":"Migrate all database schemas to the given target version. If a target version is not provided, all databases will be migrated to the latest version.","operationId":"migrate_all_databases","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"All databases migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"All databases migrated successfully to version 3.0.0"}}}},"207":{"description":"Some database migrations failed","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"},"failed":{"type":"object","additionalProperties":{"type":"string"},"title":"Failed"}},"type":"object","required":["message","failed"],"title":"PartialMigrationResponse"},"example":{"message":"Migrated 2/3 databases to latest version","failed":{"archive-db":"Migration failed"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/{db_id}/migrate":{"post":{"tags":["Database"],"summary":"Migrate Database","description":"Migrate the given database schema to the given target version. If a target version is not provided, the database will be migrated to the latest version.","operationId":"migrate_database","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"Database migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"Database migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Database not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components":{"get":{"tags":["Components"],"summary":"List Components","description":"Retrieve a paginated list of components with optional filtering by type.","operationId":"list_components","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ComponentType"},{"type":"null"}],"description":"Filter by type: agent, team, workflow","title":"Component Type"},"description":"Filter by type: agent, team, workflow"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ComponentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Component","description":"Create a new component (agent, team, or workflow) with initial config.","operationId":"create_component","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}":{"get":{"tags":["Components"],"summary":"Get Component","description":"Retrieve a component by ID.","operationId":"get_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Components"],"summary":"Update Component","description":"Partially update a component by ID.","operationId":"update_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentUpdate","description":"Component fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Component","description":"Soft-delete a component by ID. Component configs and links remain stored.","operationId":"delete_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs":{"get":{"tags":["Components"],"summary":"List Configs","description":"List all configs for a component.","operationId":"list_configs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"include_config","in":"query","required":false,"schema":{"type":"boolean","description":"Include full config blob","default":true,"title":"Include Config"},"description":"Include full config blob"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComponentConfigResponse"},"title":"Response List Configs"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Config Version","description":"Create a new config version for a component.","operationId":"create_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigCreate","description":"Config data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}":{"patch":{"tags":["Components"],"summary":"Update Draft Config","description":"Update an existing draft config. Cannot update published configs.","operationId":"update_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigUpdate","description":"Config fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Components"],"summary":"Get Config Version","description":"Get a specific config version by number.","operationId":"get_config_version","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Config Version","description":"Delete a specific config version. Agno v2.7.4 rejects the current version. Synchronous SQLite and PostgreSQL storage allow deletion of a published non-current version.","operationId":"delete_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/current":{"get":{"tags":["Components"],"summary":"Get Current Config","description":"Get the current config version for a component.","operationId":"get_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}/set-current":{"post":{"tags":["Components"],"summary":"Set Current Config Version","description":"Set a published config version as current (for rollback).","operationId":"set_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/schedules":{"get":{"tags":["Schedules"],"summary":"List Schedules","operationId":"list_schedules_schedules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"post":{"tags":["Schedules"],"summary":"Create Schedule","operationId":"create_schedule_schedules_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule","operationId":"get_schedule_schedules__schedule_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"patch":{"tags":["Schedules"],"summary":"Update Schedule","operationId":"update_schedule_schedules__schedule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Schedules"],"summary":"Delete Schedule","operationId":"delete_schedule_schedules__schedule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/enable":{"post":{"tags":["Schedules"],"summary":"Enable Schedule","operationId":"enable_schedule_schedules__schedule_id__enable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/disable":{"post":{"tags":["Schedules"],"summary":"Disable Schedule","operationId":"disable_schedule_schedules__schedule_id__disable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/trigger":{"post":{"tags":["Schedules"],"summary":"Trigger Schedule","operationId":"trigger_schedule_schedules__schedule_id__trigger_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Schedule is disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler is not running or storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs":{"get":{"tags":["Schedules"],"summary":"List Schedule Runs","operationId":"list_schedule_runs_schedules__schedule_id__runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleRunResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs/{run_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule Run","operationId":"get_schedule_run_schedules__schedule_id__runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals":{"get":{"tags":["Approvals"],"summary":"List Approvals","operationId":"list_approvals_approvals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","approved","rejected","expired","cancelled"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"source_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"}},{"name":"approval_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["required","audit"],"type":"string"},{"type":"null"}],"title":"Approval Type"}},{"name":"pause_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"schedule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"}},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ApprovalResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approvals could not be listed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/count":{"get":{"tags":["Approvals"],"summary":"Get Approval Count","operationId":"get_approval_count_approvals_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalCountResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval count could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/status":{"get":{"tags":["Approvals"],"summary":"Get Approval Status","operationId":"get_approval_status_approvals__approval_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalStatusResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval status could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}":{"get":{"tags":["Approvals"],"summary":"Get Approval","operationId":"get_approval_approvals__approval_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Approvals"],"summary":"Delete Approval","operationId":"delete_approval_approvals__approval_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval is not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/resolve":{"post":{"tags":["Approvals"],"summary":"Resolve Approval","operationId":"resolve_approval_approvals__approval_id__resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResolve"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Approval has already been resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts":{"post":{"tags":["Service Accounts"],"summary":"Create Service Account","description":"Mint a service account token. The plaintext token is returned exactly once.","operationId":"create_service_account_service_accounts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreateResponse"}}}},"400":{"description":"Requested scopes are invalid, or privileged scopes were not explicitly allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"An active service account with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"get":{"tags":["Service Accounts"],"summary":"List Service Accounts","description":"List service accounts. Returns metadata and display prefixes only - never hashes or plaintext.","operationId":"list_service_accounts_service_accounts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Revoked"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ServiceAccountResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts/{service_account_id}":{"delete":{"tags":["Service Accounts"],"summary":"Revoke Service Account","description":"Revoke an existing service account.\n\nTakes effect immediately on this worker (the local verification cache entry is evicted) and within the cache TTL on other workers.","operationId":"revoke_service_account_service_accounts__service_account_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"service_account_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Service account not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/registry":{"get":{"tags":["Registry"],"summary":"List Registry","description":"List all resources in the registry with optional filtering.","operationId":"list_registry","security":[{"HTTPBearer":[]}],"parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RegistryResourceType"},{"type":"null"}],"description":"Filter by resource type","title":"Resource Type"},"description":"Filter by resource type"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (partial match)","title":"Name"},"description":"Filter by name (partial match)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_RegistryContentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}}},"components":{"schemas":{"A2ACard_APIKeySecurityScheme":{"description":"Defines a security scheme using an API key.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"in":{"$ref":"#/components/schemas/A2ACard_In"},"name":{"title":"Name","type":"string"},"type":{"const":"apiKey","default":"apiKey","title":"Type","type":"string"}},"required":["in","name"],"title":"APIKeySecurityScheme","type":"object"},"A2ACard_AgentCapabilities":{"description":"Defines optional capabilities supported by an agent.","properties":{"extensions":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentExtension"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"pushNotifications":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Pushnotifications"},"stateTransitionHistory":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Statetransitionhistory"},"streaming":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Streaming"}},"title":"AgentCapabilities","type":"object"},"A2ACard_AgentCardSignature":{"description":"AgentCardSignature represents a JWS signature of an AgentCard.\nThis follows the JSON format of an RFC 7515 JSON Web Signature (JWS).","properties":{"header":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Header"},"protected":{"title":"Protected","type":"string"},"signature":{"title":"Signature","type":"string"}},"required":["protected","signature"],"title":"AgentCardSignature","type":"object"},"A2ACard_AgentExtension":{"description":"A declaration of a protocol extension supported by an Agent.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"params":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Params"},"required":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Required"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"AgentExtension","type":"object"},"A2ACard_AgentInterface":{"description":"Declares a combination of a target URL and a transport protocol for interacting with the agent.\nThis allows agents to expose the same functionality over multiple transport mechanisms.","properties":{"transport":{"examples":["JSONRPC","GRPC","HTTP+JSON"],"title":"Transport","type":"string"},"url":{"examples":["https://api.example.com/a2a/v1","https://grpc.example.com/a2a","https://rest.example.com/v1"],"title":"Url","type":"string"}},"required":["transport","url"],"title":"AgentInterface","type":"object"},"A2ACard_AgentProvider":{"description":"Represents the service provider of an agent.","properties":{"organization":{"title":"Organization","type":"string"},"url":{"title":"Url","type":"string"}},"required":["organization","url"],"title":"AgentProvider","type":"object"},"A2ACard_AgentSkill":{"description":"Represents a distinct capability or function that an agent can perform.","properties":{"description":{"title":"Description","type":"string"},"examples":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"examples":[["I need a recipe for bread"]],"title":"Examples"},"id":{"title":"Id","type":"string"},"inputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Inputmodes"},"name":{"title":"Name","type":"string"},"outputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Outputmodes"},"security":{"anyOf":[{"items":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},"type":"array"},{"type":"null"}],"default":null,"examples":[[{"google":["oidc"]}]],"title":"Security"},"tags":{"examples":[["cooking","customer support","billing"]],"items":{"type":"string"},"title":"Tags","type":"array"}},"required":["description","id","name","tags"],"title":"AgentSkill","type":"object"},"A2ACard_AuthorizationCodeOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Authorization Code flow.","properties":{"authorizationUrl":{"title":"Authorizationurl","type":"string"},"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["authorizationUrl","scopes","tokenUrl"],"title":"AuthorizationCodeOAuthFlow","type":"object"},"A2ACard_ClientCredentialsOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Client Credentials flow.","properties":{"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["scopes","tokenUrl"],"title":"ClientCredentialsOAuthFlow","type":"object"},"A2ACard_HTTPAuthSecurityScheme":{"description":"Defines a security scheme using HTTP authentication.","properties":{"bearerFormat":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Bearerformat"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"scheme":{"title":"Scheme","type":"string"},"type":{"const":"http","default":"http","title":"Type","type":"string"}},"required":["scheme"],"title":"HTTPAuthSecurityScheme","type":"object"},"A2ACard_ImplicitOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Implicit flow.","properties":{"authorizationUrl":{"title":"Authorizationurl","type":"string"},"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"}},"required":["authorizationUrl","scopes"],"title":"ImplicitOAuthFlow","type":"object"},"A2ACard_In":{"description":"The location of the API key.","enum":["cookie","header","query"],"title":"In","type":"string"},"A2ACard_MutualTLSSecurityScheme":{"description":"Defines a security scheme using mTLS authentication.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"type":{"const":"mutualTLS","default":"mutualTLS","title":"Type","type":"string"}},"title":"MutualTLSSecurityScheme","type":"object"},"A2ACard_OAuth2SecurityScheme":{"description":"Defines a security scheme using OAuth 2.0.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"flows":{"$ref":"#/components/schemas/A2ACard_OAuthFlows"},"oauth2MetadataUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Oauth2Metadataurl"},"type":{"const":"oauth2","default":"oauth2","title":"Type","type":"string"}},"required":["flows"],"title":"OAuth2SecurityScheme","type":"object"},"A2ACard_OAuthFlows":{"description":"Defines the configuration for the supported OAuth 2.0 flows.","properties":{"authorizationCode":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_AuthorizationCodeOAuthFlow"},{"type":"null"}],"default":null},"clientCredentials":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_ClientCredentialsOAuthFlow"},{"type":"null"}],"default":null},"implicit":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_ImplicitOAuthFlow"},{"type":"null"}],"default":null},"password":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_PasswordOAuthFlow"},{"type":"null"}],"default":null}},"title":"OAuthFlows","type":"object"},"A2ACard_OpenIdConnectSecurityScheme":{"description":"Defines a security scheme using OpenID Connect.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"openIdConnectUrl":{"title":"Openidconnecturl","type":"string"},"type":{"const":"openIdConnect","default":"openIdConnect","title":"Type","type":"string"}},"required":["openIdConnectUrl"],"title":"OpenIdConnectSecurityScheme","type":"object"},"A2ACard_PasswordOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Resource Owner Password flow.","properties":{"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["scopes","tokenUrl"],"title":"PasswordOAuthFlow","type":"object"},"A2ACard_SecurityScheme":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_APIKeySecurityScheme"},{"$ref":"#/components/schemas/A2ACard_HTTPAuthSecurityScheme"},{"$ref":"#/components/schemas/A2ACard_OAuth2SecurityScheme"},{"$ref":"#/components/schemas/A2ACard_OpenIdConnectSecurityScheme"},{"$ref":"#/components/schemas/A2ACard_MutualTLSSecurityScheme"}],"title":"SecurityScheme"},"A2ARequest_DataPart":{"description":"Represents a structured data segment (e.g., JSON) within a message or artifact.","properties":{"data":{"additionalProperties":true,"title":"Data","type":"object"},"kind":{"const":"data","default":"data","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["data"],"title":"DataPart","type":"object"},"A2ARequest_FilePart":{"description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI.","properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_FileWithBytes"},{"$ref":"#/components/schemas/A2ARequest_FileWithUri"}],"title":"File"},"kind":{"const":"file","default":"file","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["file"],"title":"FilePart","type":"object"},"A2ARequest_FileWithBytes":{"description":"Represents a file with its content provided directly as a base64-encoded string.","properties":{"bytes":{"title":"Bytes","type":"string"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"}},"required":["bytes"],"title":"FileWithBytes","type":"object"},"A2ARequest_FileWithUri":{"description":"Represents a file with its content located at a specific URI.","properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"FileWithUri","type":"object"},"A2ARequest_Message":{"description":"Represents a single message in the conversation between a user and an agent.","properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"kind":{"const":"message","default":"message","title":"Kind","type":"string"},"messageId":{"title":"Messageid","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/A2ARequest_Part"},"title":"Parts","type":"array"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/A2ARequest_Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Taskid"},"agentId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Agent ID","description":"Target agent, team, or workflow ID for deprecated dynamic-dispatch endpoints."}},"required":["messageId","parts","role"],"title":"Message","type":"object"},"A2ARequest_MessageSendConfiguration":{"description":"Defines configuration options for a `message/send` or `message/stream` request.","properties":{"acceptedOutputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Acceptedoutputmodes"},"blocking":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Blocking"},"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"pushNotificationConfig":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationConfig"},{"type":"null"}],"default":null}},"title":"MessageSendConfiguration","type":"object"},"A2ARequest_MessageSendParams":{"description":"Defines the parameters for a request to send a message to an agent. This can be used\nto create a new task, continue an existing one, or restart a task.","properties":{"configuration":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_MessageSendConfiguration"},{"type":"null"}],"default":null},"message":{"$ref":"#/components/schemas/A2ARequest_Message"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["message"],"title":"MessageSendParams","type":"object"},"A2ARequest_Part":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_TextPart"},{"$ref":"#/components/schemas/A2ARequest_FilePart"},{"$ref":"#/components/schemas/A2ARequest_DataPart"}],"title":"Part"},"A2ARequest_PushNotificationAuthenticationInfo":{"description":"Defines authentication details for a push notification endpoint.","properties":{"credentials":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Credentials"},"schemes":{"items":{"type":"string"},"title":"Schemes","type":"array"}},"required":["schemes"],"title":"PushNotificationAuthenticationInfo","type":"object"},"A2ARequest_PushNotificationConfig":{"description":"Defines the configuration for setting up push notifications for task updates.","properties":{"authentication":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationAuthenticationInfo"},{"type":"null"}],"default":null},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Id"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Token"},"url":{"title":"Url","type":"string"}},"required":["url"],"title":"PushNotificationConfig","type":"object"},"A2ARequest_Role":{"description":"Identifies the sender of the message. `user` for the client, `agent` for the service.","enum":["agent","user"],"title":"Role","type":"string"},"A2ARequest_TaskIdParams":{"description":"Defines parameters containing a task ID, used for simple task operations.","properties":{"id":{"title":"Id","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"contextId":{"type":"string","title":"Context ID","description":"Agno session ID containing the task."}},"required":["id"],"title":"TaskIdParams","type":"object"},"A2ARequest_TaskQueryParams":{"description":"Defines parameters for querying a task, with an option to limit history length.","properties":{"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"id":{"title":"Id","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"contextId":{"type":"string","title":"Context ID","description":"Agno session ID containing the task."}},"required":["id","contextId"],"title":"TaskQueryParams","type":"object"},"A2ARequest_TextPart":{"description":"Represents a text segment within a message or artifact.","properties":{"kind":{"const":"text","default":"text","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"text":{"title":"Text","type":"string"}},"required":["text"],"title":"TextPart","type":"object"},"ActivityMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"activity","title":"Role","default":"activity"},"activityType":{"type":"string","title":"Activitytype"},"content":{"additionalProperties":true,"type":"object","title":"Content"}},"additionalProperties":true,"type":"object","required":["id","activityType","content"],"title":"ActivityMessage","description":"An activity progress message emitted between chat messages."},"AgentCard":{"description":"The AgentCard is a self-describing manifest for an agent. It provides essential\nmetadata including the agent's identity, capabilities, skills, supported\ncommunication methods, and security requirements.","properties":{"additionalInterfaces":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentInterface"},"type":"array"},{"type":"null"}],"default":null,"title":"Additionalinterfaces"},"capabilities":{"$ref":"#/components/schemas/A2ACard_AgentCapabilities"},"defaultInputModes":{"items":{"type":"string"},"title":"Defaultinputmodes","type":"array"},"defaultOutputModes":{"items":{"type":"string"},"title":"Defaultoutputmodes","type":"array"},"description":{"examples":["Agent that helps users with recipes and cooking."],"title":"Description","type":"string"},"documentationUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Documentationurl"},"iconUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Iconurl"},"name":{"examples":["Recipe Agent"],"title":"Name","type":"string"},"preferredTransport":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"JSONRPC","examples":["JSONRPC","GRPC","HTTP+JSON"],"title":"Preferredtransport"},"protocolVersion":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"0.3.0","title":"Protocolversion"},"provider":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_AgentProvider"},{"type":"null"}],"default":null},"security":{"anyOf":[{"items":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},"type":"array"},{"type":"null"}],"default":null,"examples":[[{"oauth":["read"]},{"api-key":[],"mtls":[]}]],"title":"Security"},"securitySchemes":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/A2ACard_SecurityScheme"},"type":"object"},{"type":"null"}],"default":null,"title":"Securityschemes"},"signatures":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentCardSignature"},"type":"array"},{"type":"null"}],"default":null,"title":"Signatures"},"skills":{"items":{"$ref":"#/components/schemas/A2ACard_AgentSkill"},"title":"Skills","type":"array"},"supportsAuthenticatedExtendedCard":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Supportsauthenticatedextendedcard"},"url":{"examples":["https://api.example.com/a2a/v1"],"title":"Url","type":"string"},"version":{"examples":["1.0.0"],"title":"Version","type":"string"}},"required":["capabilities","defaultInputModes","defaultOutputModes","description","name","skills","url","version"],"title":"AgentCard","type":"object"},"AgentResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"extra_messages":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Messages"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"AgentResponse"},"AgentSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_session_id":{"type":"string","title":"Agent Session Id","description":"Unique agent session identifier"},"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID used in this session"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"agent_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Data","description":"Agent-specific data"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["agent_session_id","session_id","session_name"],"title":"AgentSessionDetailSchema"},"AgentSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the agent"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the agent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the agent"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the agent"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","title":"AgentSummaryResponse"},"ApprovalCountResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"ApprovalCountResponse","description":"Response model for pending approval count."},"ApprovalResolve":{"properties":{"status":{"type":"string","pattern":"^(approved|rejected)$","title":"Status"},"resolved_by":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Resolved By"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"}},"type":"object","required":["status"],"title":"ApprovalResolve","description":"Request body for resolving (approve/reject) an approval."},"ApprovalResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"},"source_type":{"type":"string","title":"Source Type"},"approval_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Type"},"pause_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Args"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"},"schedule_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Run Id"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"},"run_status":{"anyOf":[{"$ref":"#/components/schemas/RunStatus"},{"type":"null"}]}},"type":"object","required":["id","run_id","session_id","status","source_type"],"title":"ApprovalResponse","description":"Response model for a single approval."},"ApprovalStatusResponse":{"properties":{"approval_id":{"type":"string","title":"Approval Id"},"status":{"type":"string","title":"Status"},"run_id":{"type":"string","title":"Run Id"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"}},"type":"object","required":["approval_id","status","run_id"],"title":"ApprovalStatusResponse","description":"Lightweight response model for polling approval status."},"Artifact":{"properties":{"artifactId":{"type":"string","title":"Artifactid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"}},"type":"object","required":["artifactId","parts"],"title":"Artifact","description":"Represents a file, data structure, or other resource generated by an agent during a task."},"AssistantMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"assistant","title":"Role","default":"assistant"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"},"toolCalls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},{"type":"null"}],"title":"Toolcalls"}},"additionalProperties":true,"type":"object","required":["id"],"title":"AssistantMessage","description":"An assistant message."},"AudioInputContent":{"properties":{"type":{"type":"string","const":"audio","title":"Type","default":"audio"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"AudioInputContent","description":"An audio input content fragment."},"BackgroundRunResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the background run."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the background run."},"status":{"type":"string","title":"Status","description":"Initial run status."}},"type":"object","required":["run_id","session_id","status"],"title":"BackgroundRunResponse"},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"BadRequestResponse","example":{"detail":"Bad request","error_code":"BAD_REQUEST"}},"BinaryInputContent":{"properties":{"type":{"type":"string","const":"binary","title":"Type","default":"binary"},"mimeType":{"type":"string","title":"Mimetype"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"additionalProperties":true,"type":"object","required":["mimeType"],"title":"BinaryInputContent","description":"A deprecated binary payload reference in a multimodal user message."},"Body_continue_agent_run":{"properties":{"tools":{"type":"string","title":"Tools","description":"JSON string of tool call results to continue the paused run","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Optional new user-message text to append to the run before resuming. Use for continuing a COMPLETED run with a follow-up, or adding context to a RUNNING/ERROR resume."},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","description":"When true, clone the run with a new ``run_id`` before resuming. The original is untouched; the clone becomes a sibling within the same session, with ``forked_from_run_id`` set.","default":false},"regenerate":{"type":"boolean","title":"Regenerate","description":"Sugar: regenerate the last response of this run. Auto-computes ``continue_from='last_user'`` to land just after the last user message. Pair with ``additional_instructions`` to steer the new output. By default the original response is hidden from history (replaced); pass ``replace_original=false`` to keep both the original and the regenerated response visible side by side.","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original","description":"Only valid with ``regenerate=true``. Controls history visibility of the original response; the original run is always retained in storage. Defaults to true: the original is marked REGENERATED and hidden from history so the new response replaces it. Pass false to keep both the original and regenerated responses visible."},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions","description":"Only valid with ``regenerate=true``: extra guidance appended as a user message before re-generation. Friendly alias for ``input``."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run continue in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false}},"type":"object","title":"Body_continue_agent_run"},"Body_continue_team_run":{"properties":{"requirements":{"type":"string","title":"Requirements","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input"},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","default":false},"regenerate":{"type":"boolean","title":"Regenerate","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original"},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"stream":{"type":"boolean","title":"Stream","default":true},"background":{"type":"boolean","title":"Background","default":false}},"type":"object","title":"Body_continue_team_run"},"Body_continue_workflow_run":{"properties":{"step_requirements":{"type":"string","title":"Step Requirements","description":"JSON string of step requirement objects with resolution status","default":""},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}},"type":"object","title":"Body_continue_workflow_run"},"Body_create_agent_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the agent"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Agent version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic agent construction"}},"type":"object","required":["message"],"title":"Body_create_agent_run"},"Body_create_team_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the team"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"monitor":{"type":"boolean","title":"Monitor","description":"Enable monitoring and logging for this run","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Team version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic team construction"}},"type":"object","required":["message"],"title":"Body_create_team_run"},"Body_create_workflow_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the workflow"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run workflow in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Workflow version to use for this run"},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow construction"}},"type":"object","required":["message"],"title":"Body_create_workflow_run"},"Body_rename_session":{"properties":{"session_name":{"type":"string","title":"Session Name","description":"New name for the session"}},"type":"object","required":["session_name"],"title":"Body_rename_session"},"Body_resume_agent_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_agent_run_stream"},"Body_resume_team_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_team_run_stream"},"Body_resume_workflow_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_workflow_run_stream"},"Body_update_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"Content metadata as JSON string"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"Reader ID. In Agno 2.7.4, local knowledge validates the value, but the content patch does not apply or persist the reader change."}},"type":"object","title":"Body_update_content"},"Body_upload_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated from file/URL if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description for context"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"URL to fetch content from (JSON array or single URL string)"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object for additional content properties"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File","description":"File to upload for processing"},"text_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Content","description":"Raw text content to process"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for content processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply during processing"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size to use for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap to use for processing"}},"type":"object","title":"Body_upload_content"},"Body_upload_remote_content":{"properties":{"config_id":{"type":"string","title":"Config Id","description":"ID of the configured remote content source (from /knowledge/config)"},"path":{"type":"string","title":"Path","description":"Path to file or folder in the remote source"},"source_params":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Params","description":"JSON object of per-request parameters forwarded to the source's factory. Used for provider-specific routing that shouldn't be baked into the config. Currently supported keys: GitHub accepts 'repo' ('owner/repo'), letting one configured GitHub source serve multiple repositories the credentials can access."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap for processing"}},"type":"object","required":["config_id","path"],"title":"Body_upload_remote_content"},"CancelTaskRequest":{"description":"Represents a JSON-RPC request for the `tasks/cancel` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"tasks/cancel","default":"tasks/cancel","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_TaskIdParams"}},"required":["id","params"],"title":"CancelTaskRequest","type":"object"},"CancelTaskSuccessResponse":{"description":"Represents a successful JSON-RPC response for the `tasks/cancel` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"default":null,"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"result":{"$ref":"#/components/schemas/Task"}},"required":["result"],"title":"CancelTaskSuccessResponse","type":"object"},"ChatConfig":{"properties":{"quick_prompts":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Quick Prompts"}},"type":"object","required":["quick_prompts"],"title":"ChatConfig","description":"Configuration for the Chat page of the AgentOS"},"ChunkerSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["key"],"title":"ChunkerSchema"},"ComponentConfigResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"version":{"type":"integer","title":"Version"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"type":"string","title":"Stage"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","version","stage","config","created_at"],"title":"ComponentConfigResponse"},"ComponentCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Display name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id","description":"Unique identifier for the entity. Auto-generated from name if not provided."},"component_type":{"$ref":"#/components/schemas/ComponentType","description":"Type of entity: agent, team, or workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config","description":"Optional configuration"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["name","component_type"],"title":"ComponentCreate"},"ComponentResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"component_type":{"$ref":"#/components/schemas/ComponentType"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","component_type","created_at"],"title":"ComponentResponse"},"ComponentType":{"type":"string","enum":["agent","team","workflow"],"title":"ComponentType"},"ComponentUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"component_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"}},"type":"object","title":"ComponentUpdate"},"ConfigCreate":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config","description":"The configuration data"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Optional version number"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links","description":"Optional links to child components"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["config"],"title":"ConfigCreate"},"ConfigResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the OS instance"},"available_models":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Models","description":"List of available models"},"os_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Database","description":"ID of the database used for the OS instance"},"databases":{"items":{"type":"string"},"type":"array","title":"Databases","description":"List of database IDs used by the components of the OS instance"},"chat":{"anyOf":[{"$ref":"#/components/schemas/ChatConfig"},{"type":"null"}],"description":"Chat configuration"},"manifest":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Manifest"},"type":"object"},{"type":"null"}],"title":"Manifest","description":"Per-entity UI metadata keyed by agent/team/workflow id"},"session":{"anyOf":[{"$ref":"#/components/schemas/SessionConfig"},{"type":"null"}],"description":"Session configuration"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/MetricsConfig"},{"type":"null"}],"description":"Metrics configuration"},"memory":{"anyOf":[{"$ref":"#/components/schemas/MemoryConfig"},{"type":"null"}],"description":"Memory configuration"},"learning":{"anyOf":[{"$ref":"#/components/schemas/LearningConfig"},{"type":"null"}],"description":"Learning configuration"},"knowledge":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeConfig"},{"type":"null"}],"description":"Knowledge configuration"},"evals":{"anyOf":[{"$ref":"#/components/schemas/EvalsConfig"},{"type":"null"}],"description":"Evaluations configuration"},"traces":{"anyOf":[{"$ref":"#/components/schemas/TracesConfig"},{"type":"null"}],"description":"Traces configuration"},"agents":{"items":{"$ref":"#/components/schemas/AgentSummaryResponse"},"type":"array","title":"Agents","description":"List of registered agents"},"teams":{"items":{"$ref":"#/components/schemas/TeamSummaryResponse"},"type":"array","title":"Teams","description":"List of registered teams"},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Workflows","description":"List of registered workflows"},"interfaces":{"items":{"$ref":"#/components/schemas/InterfaceResponse"},"type":"array","title":"Interfaces","description":"List of available interfaces"}},"type":"object","required":["os_id","databases","agents","teams","workflows","interfaces"],"title":"ConfigResponse","description":"Response schema for the general config endpoint"},"ConfigResponseSchema":{"properties":{"readers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ReaderSchema"},"type":"object"},{"type":"null"}],"title":"Readers","description":"Available content readers"},"readersForType":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Readersfortype","description":"Mapping of content types to reader IDs"},"chunkers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ChunkerSchema"},"type":"object"},{"type":"null"}],"title":"Chunkers","description":"Available chunking strategies"},"filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filters","description":"Available filter tags"},"vector_dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/VectorDbSchema"},"type":"array"},{"type":"null"}],"title":"Vector Dbs","description":"Configured vector databases"},"remote_content_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"type":"array"},{"type":"null"}],"title":"Remote Content Sources","description":"Configured remote content sources (S3, GCS, SharePoint, GitHub)"}},"type":"object","title":"ConfigResponseSchema"},"ConfigUpdate":{"properties":{"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","title":"ConfigUpdate"},"ConflictResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ConflictResponse","example":{"detail":"Resource conflict"}},"ContentResponseSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the content"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"MIME type of the content"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"},"linked_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linked To","description":"Knowledge instance name used for content isolation. Local Agno 2.7.4 responses return null because response conversion does not propagate the stored value."},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata as key-value pairs"},"access_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Access Count","description":"Stored access count. Local Agno 2.7.4 responses return null because response conversion does not propagate the stored value."},"status":{"anyOf":[{"$ref":"#/components/schemas/ContentStatus"},{"type":"null"}],"description":"Processing status of the content"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message","description":"Status message or error details"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when content was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when content was last updated"}},"type":"object","required":["id"],"title":"ContentResponseSchema"},"ContentStatus":{"type":"string","enum":["processing","completed","failed"],"title":"ContentStatus","description":"Enumeration of possible content processing statuses."},"ContentStatusResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Content ID"},"status":{"$ref":"#/components/schemas/ContentStatus","description":"Current processing status of the content"},"status_message":{"type":"string","title":"Status Message","description":"Status message or error details","default":""}},"type":"object","required":["status"],"title":"ContentStatusResponse","description":"Response model for content status endpoint."},"Context":{"properties":{"description":{"type":"string","title":"Description"},"value":{"type":"string","title":"Value"}},"additionalProperties":true,"type":"object","required":["description","value"],"title":"Context","description":"Additional context for the agent."},"CreateSessionRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session ID (generated if not provided)"},"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Initial session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"}},"type":"object","title":"CreateSessionRequest"},"DataPart":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data"},"kind":{"type":"string","const":"data","title":"Kind","default":"data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["data"],"title":"DataPart","description":"Represents a structured data segment (e.g., JSON) within a message or artifact."},"DatabaseConfig_EvalsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/EvalsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[EvalsDomainConfig]"},"DatabaseConfig_LearningDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/LearningDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[LearningDomainConfig]"},"DatabaseConfig_MemoryDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MemoryDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MemoryDomainConfig]"},"DatabaseConfig_MetricsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MetricsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MetricsDomainConfig]"},"DatabaseConfig_SessionDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/SessionDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[SessionDomainConfig]"},"DatabaseConfig_TracesDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/TracesDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[TracesDomainConfig]"},"DayAggregatedMetrics":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the metrics record"},"agent_runs_count":{"type":"integer","minimum":0.0,"title":"Agent Runs Count","description":"Total number of agent runs"},"agent_sessions_count":{"type":"integer","minimum":0.0,"title":"Agent Sessions Count","description":"Total number of agent sessions"},"team_runs_count":{"type":"integer","minimum":0.0,"title":"Team Runs Count","description":"Total number of team runs"},"team_sessions_count":{"type":"integer","minimum":0.0,"title":"Team Sessions Count","description":"Total number of team sessions"},"workflow_runs_count":{"type":"integer","minimum":0.0,"title":"Workflow Runs Count","description":"Total number of workflow runs"},"workflow_sessions_count":{"type":"integer","minimum":0.0,"title":"Workflow Sessions Count","description":"Total number of workflow sessions"},"users_count":{"type":"integer","minimum":0.0,"title":"Users Count","description":"Total number of unique users"},"token_metrics":{"additionalProperties":true,"type":"object","title":"Token Metrics","description":"Token usage metrics (input, output, cached, etc.)"},"model_metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Model Metrics","description":"Metrics grouped by model (model_id, provider, count)"},"date":{"type":"string","format":"date-time","title":"Date","description":"Date for which these metrics are aggregated"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when metrics were created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when metrics were last updated"}},"type":"object","required":["id","agent_runs_count","agent_sessions_count","team_runs_count","team_sessions_count","workflow_runs_count","workflow_sessions_count","users_count","token_metrics","model_metrics","date","created_at","updated_at"],"title":"DayAggregatedMetrics","description":"Aggregated metrics for a given day"},"DeleteEvalRunsRequest":{"properties":{"eval_run_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Eval Run Ids","description":"List of evaluation run IDs to delete"}},"type":"object","required":["eval_run_ids"],"title":"DeleteEvalRunsRequest"},"DeleteMemoriesRequest":{"properties":{"memory_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Memory Ids","description":"List of memory IDs to delete"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID to filter memories for deletion"}},"type":"object","required":["memory_ids"],"title":"DeleteMemoriesRequest"},"DeleteSessionRequest":{"properties":{"session_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Session Ids","description":"List of session IDs to delete"},"session_types":{"items":{"$ref":"#/components/schemas/SessionType"},"type":"array","minItems":1,"title":"Session Types","description":"Types of sessions to delete"}},"type":"object","required":["session_ids","session_types"],"title":"DeleteSessionRequest"},"DeveloperMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"developer","title":"Role","default":"developer"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"DeveloperMessage","description":"A developer message."},"DocumentInputContent":{"properties":{"type":{"type":"string","const":"document","title":"Type","default":"document"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"DocumentInputContent","description":"A document input content fragment."},"EvalFilterType":{"type":"string","enum":["agent","team","workflow"],"title":"EvalFilterType"},"EvalRunInput":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID to evaluate"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID to evaluate"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID to use for evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation to run (accuracy, performance, or reliability)"},"input":{"type":"string","minLength":1,"title":"Input","description":"Input text/query for the evaluation"},"additional_guidelines":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Guidelines","description":"Additional guidelines for the evaluation"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for the evaluation"},"num_iterations":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Num Iterations","description":"Number of times to run the evaluation","default":1},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for this evaluation run"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output","description":"Expected output for accuracy evaluation"},"criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criteria","description":"Evaluation criteria for agent-as-judge evaluation"},"scoring_strategy":{"anyOf":[{"type":"string","enum":["numeric","binary"]},{"type":"null"}],"title":"Scoring Strategy","description":"Scoring strategy: 'numeric' (1-10 with threshold) or 'binary' (PASS/FAIL)","default":"binary"},"threshold":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Threshold","description":"Score threshold for pass/fail (1-10), only used with numeric scoring","default":7},"warmup_runs":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Warmup Runs","description":"Number of warmup runs before measuring performance","default":0},"expected_tool_calls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expected Tool Calls","description":"Expected tool calls for reliability evaluation"},"allow_additional_tool_calls":{"type":"boolean","title":"Allow Additional Tool Calls","description":"When True, tool calls not in expected_tool_calls are allowed (subset matching)","default":false},"expected_tool_call_arguments":{"anyOf":[{"additionalProperties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Expected Tool Call Arguments","description":"Expected arguments for specific tool calls, e.g. {\"tool_name\": {\"arg_name\": \"expected_value\"}} or {\"tool_name\": [{\"arg_name\": \"val1\"}, {\"arg_name\": \"val2\"}]}"}},"type":"object","required":["eval_type","input"],"title":"EvalRunInput"},"EvalSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the evaluation run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that was evaluated"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID used in evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that was evaluated"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was evaluated"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the evaluation run"},"evaluated_component_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluated Component Name","description":"Name of the evaluated component"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation (accuracy, performance, or reliability)"},"eval_data":{"additionalProperties":true,"type":"object","title":"Eval Data","description":"Evaluation results and metrics"},"eval_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eval Input","description":"Input parameters used for the evaluation"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when evaluation was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when evaluation was last updated"}},"type":"object","required":["id","eval_type","eval_data"],"title":"EvalSchema"},"EvalType":{"type":"string","enum":["accuracy","agent_as_judge","performance","reliability"],"title":"EvalType"},"EvalsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_EvalsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"EvalsConfig","description":"Configuration for the Evals domain of the AgentOS"},"EvalsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"EvalsDomainConfig","description":"Configuration for the Evals domain of the AgentOS"},"FilePart":{"properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/FileWithBytes"},{"$ref":"#/components/schemas/FileWithUri"}],"title":"File"},"kind":{"type":"string","const":"file","title":"Kind","default":"file"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["file"],"title":"FilePart","description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI."},"FileWithBytes":{"properties":{"bytes":{"type":"string","title":"Bytes"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["bytes"],"title":"FileWithBytes","description":"Represents a file with its content provided directly as a base64-encoded string."},"FileWithUri":{"properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uri":{"type":"string","title":"Uri"}},"type":"object","required":["uri"],"title":"FileWithUri","description":"Represents a file with its content located at a specific URI."},"FilterFieldSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Column/field name used in filter expressions"},"label":{"type":"string","title":"Label","description":"Human-readable display label for the UI"},"type":{"type":"string","title":"Type","description":"Field data type: string, number, datetime, enum"},"operators":{"items":{"type":"string"},"type":"array","title":"Operators","description":"List of valid filter operators for this field"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values","description":"Allowed enum values (for autocomplete/dropdown)"}},"type":"object","required":["key","label","type","operators"],"title":"FilterFieldSchema","description":"Schema describing a single filterable field for the frontend filter bar."},"FilterSchemaResponse":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FilterFieldSchema"},"type":"array","title":"Fields","description":"Available filterable fields"},"logical_operators":{"items":{"type":"string"},"type":"array","title":"Logical Operators","description":"Logical operators for combining filter clauses","default":["AND","OR"]}},"type":"object","required":["fields"],"title":"FilterSchemaResponse","description":"Response for the filter schema endpoint. Tells the FE what fields, operators, and values are available."},"ForbiddenResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ForbiddenResponse","example":{"detail":"Insufficient permissions"}},"FunctionCall":{"properties":{"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"additionalProperties":true,"type":"object","required":["name","arguments"],"title":"FunctionCall","description":"Name and arguments of a function call."},"GetTaskRequest":{"description":"Represents a JSON-RPC request for the `tasks/get` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"tasks/get","default":"tasks/get","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_TaskQueryParams"}},"required":["id","params"],"title":"GetTaskRequest","type":"object"},"GetTaskSuccessResponse":{"description":"Represents a successful JSON-RPC response for the `tasks/get` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"default":null,"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"result":{"$ref":"#/components/schemas/Task"}},"required":["result"],"title":"GetTaskSuccessResponse","type":"object"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Health status of the service"},"instantiated_at":{"type":"string","format":"date-time","title":"Instantiated At","description":"Timestamp when service was instantiated"}},"type":"object","required":["status","instantiated_at"],"title":"HealthResponse","example":{"instantiated_at":"2025-06-10T12:00:00Z","status":"ok"}},"ImageInputContent":{"properties":{"type":{"type":"string","const":"image","title":"Type","default":"image"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"ImageInputContent","description":"An image input content fragment."},"InfoResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"agno_version":{"type":"string","title":"Agno Version","description":"Version of the agno framework"},"agent_count":{"type":"integer","title":"Agent Count","description":"Number of agents registered in the OS","default":0},"team_count":{"type":"integer","title":"Team Count","description":"Number of teams registered in the OS","default":0},"workflow_count":{"type":"integer","title":"Workflow Count","description":"Number of workflows registered in the OS","default":0},"mcp":{"$ref":"#/components/schemas/McpInfo","description":"MCP server availability for this OS instance"},"auth_mode":{"type":"string","enum":["none","security_key","jwt"],"title":"Auth Mode","description":"Authentication mode enforced on the REST/WS plane of this OS instance. MCP OAuth, when enabled, is described separately under `mcp.oauth`.","default":"none"}},"type":"object","required":["os_id","agno_version"],"title":"InfoResponse","description":"Response schema for the /info endpoint returning lightweight OS metadata."},"InputContentDataSource":{"properties":{"type":{"type":"string","const":"data","title":"Type","default":"data"},"value":{"type":"string","title":"Value"},"mimeType":{"type":"string","title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value","mimeType"],"title":"InputContentDataSource","description":"Inline base64-encoded source."},"InputContentUrlSource":{"properties":{"type":{"type":"string","const":"url","title":"Type","default":"url"},"value":{"type":"string","title":"Value"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value"],"title":"InputContentUrlSource","description":"URL-referenced source."},"InterfaceResponse":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the interface"},"version":{"type":"string","title":"Version","description":"Version of the interface"},"route":{"type":"string","title":"Route","description":"API route path"}},"type":"object","required":["type","version","route"],"title":"InterfaceResponse"},"InternalServerErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"InternalServerErrorResponse","example":{"detail":"Internal server error","error_code":"INTERNAL_SERVER_ERROR"}},"KnowledgeConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeDatabaseConfig"},"type":"array"},{"type":"null"}],"title":"Dbs"},"knowledge_instances":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeInstanceConfig"},"type":"array"},{"type":"null"}],"title":"Knowledge Instances"}},"type":"object","title":"KnowledgeConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeDatabaseConfig":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeDomainConfig"},{"type":"null"}]},"tables":{"items":{"type":"string"},"type":"array","title":"Tables","default":[]}},"type":"object","required":["db_id"],"title":"KnowledgeDatabaseConfig","description":"Configuration for a knowledge database with its tables"},"KnowledgeDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"KnowledgeDomainConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeInstanceConfig":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"db_id":{"type":"string","title":"Db Id"},"table":{"type":"string","title":"Table"}},"type":"object","required":["id","name","db_id","table"],"title":"KnowledgeInstanceConfig","description":"Configuration for a single knowledge instance"},"LearningConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_LearningDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"LearningConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningCreate":{"properties":{"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"content":{"additionalProperties":true,"type":"object","title":"Content","description":"The learning content payload"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID. When the request is authenticated, must match the JWT subject or be omitted/null (which creates a global / non-user-scoped record)."},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"}},"type":"object","required":["learning_type","content"],"title":"LearningCreate","description":"Request body for creating a learning record."},"LearningDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"LearningDomainConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningResponse":{"properties":{"learning_id":{"type":"string","title":"Learning Id","description":"Unique identifier for the learning record"},"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID (for entity-specific learnings)"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type (e.g. 'person', 'company')"},"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"The learning content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Creation timestamp (Unix epoch seconds)"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp (Unix epoch seconds)"}},"type":"object","required":["learning_id","learning_type"],"title":"LearningResponse","description":"A single learning record as returned by the API."},"LearningUpdate":{"properties":{"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Replacement content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Replacement metadata"}},"type":"object","title":"LearningUpdate","description":"Request body for updating a learning record. Identity fields are immutable."},"LearningUserStats":{"properties":{"user_id":{"type":"string","title":"User Id","description":"The user ID"},"last_learning_updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Learning Updated At","description":"Most recent learning update for this user (Unix epoch seconds)"}},"type":"object","required":["user_id"],"title":"LearningUserStats","description":"A user that owns learning records, with their most recent activity.\n\nUsed as a lightweight index for the per-user view: list users here, then drill into a\nsingle user's records via ``GET /learnings?user_id=...``. No per-user count is returned\n-- the user-scoped stores (``user_profile``, ``user_memory``) keep a single record per\nuser, so a record count would always be 1; the actual memory count lives in that\nrecord's ``content``."},"Manifest":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"},"quick_prompts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quick Prompts"}},"type":"object","title":"Manifest","description":"OS-level UI metadata for an agent/team/workflow.\n\nFields here are AgentOS UI metadata only. ``description`` is unrelated to\n``Agent.description`` / ``Team.description`` / ``Workflow.description``,\nwhich are sent to the model.\n\nRendering surfaces:\n- ``description``, ``labels``: home/landing card\n- ``quick_prompts``: chat page"},"McpInfo":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the MCP server is enabled on this OS instance","default":false},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Path where the MCP server is mounted, null when disabled"},"oauth":{"anyOf":[{"$ref":"#/components/schemas/McpOAuthInfo"},{"type":"null"}],"description":"OAuth discovery details when the MCP endpoint is OAuth-protected, null otherwise"}},"type":"object","title":"McpInfo","description":"MCP server availability for the /info endpoint."},"McpOAuthInfo":{"properties":{"authorization_servers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorization Servers","description":"Issuer URL(s) of the authorization server(s) protecting the MCP endpoint"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource","description":"RFC 9728 resource URL advertised for the MCP endpoint"}},"type":"object","title":"McpOAuthInfo","description":"OAuth discovery details for an MCP endpoint protected by ``AgentOS(mcp_auth=...)``."},"MemoryConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MemoryDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MemoryConfig","description":"Configuration for the Memory domain of the AgentOS"},"MemoryDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MemoryDomainConfig","description":"Configuration for the Memory domain of the AgentOS"},"Message":{"properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"kind":{"type":"string","const":"message","title":"Kind","default":"message"},"messageId":{"type":"string","title":"Messageid"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taskid"}},"type":"object","required":["messageId","parts","role"],"title":"Message","description":"Represents a single message in the conversation between a user and an agent."},"Meta":{"properties":{"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of results per page","default":20},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number","default":1}},"type":"object","title":"Meta","description":"Inline metadata schema for pagination."},"MetricsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MetricsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MetricsConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MetricsDomainConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsResponse":{"properties":{"metrics":{"items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"type":"array","title":"Metrics","description":"List of daily aggregated metrics"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp of the most recent metrics update"}},"type":"object","required":["metrics"],"title":"MetricsResponse"},"Model":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"Model"},"ModelResponse":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the model"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"ModelResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"NotFoundResponse","example":{"detail":"Not found","error_code":"NOT_FOUND"}},"NotImplementedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"NotImplementedResponse","example":{"detail":"Operation not supported for this resource type"}},"OptimizeMemoriesRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID to optimize memories for"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model in `provider:model_id` format. Current examples include `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, and `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`."},"apply":{"type":"boolean","title":"Apply","description":"If True, apply optimization changes to database. If False, return preview only without saving.","default":true}},"type":"object","required":["user_id"],"title":"OptimizeMemoriesRequest","description":"Schema for memory optimization request"},"OptimizeMemoriesResponse":{"properties":{"memories":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Memories","description":"List of optimized memory objects"},"memories_before":{"type":"integer","minimum":0.0,"title":"Memories Before","description":"Number of memories before optimization"},"memories_after":{"type":"integer","minimum":0.0,"title":"Memories After","description":"Number of memories after optimization"},"tokens_before":{"type":"integer","minimum":0.0,"title":"Tokens Before","description":"Token count before optimization"},"tokens_after":{"type":"integer","minimum":0.0,"title":"Tokens After","description":"Token count after optimization"},"tokens_saved":{"type":"integer","minimum":0.0,"title":"Tokens Saved","description":"Number of tokens saved through optimization"},"reduction_percentage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Reduction Percentage","description":"Percentage of token reduction achieved"}},"type":"object","required":["memories","memories_before","memories_after","tokens_before","tokens_after","tokens_saved","reduction_percentage"],"title":"OptimizeMemoriesResponse","description":"Schema for memory optimization response"},"PaginatedResponse_ApprovalResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ApprovalResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ApprovalResponse]"},"PaginatedResponse_ComponentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ComponentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ComponentResponse]"},"PaginatedResponse_ContentResponseSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentResponseSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ContentResponseSchema]"},"PaginatedResponse_EvalSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EvalSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[EvalSchema]"},"PaginatedResponse_LearningResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningResponse]"},"PaginatedResponse_LearningUserStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningUserStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningUserStats]"},"PaginatedResponse_RegistryContentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RegistryContentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[RegistryContentResponse]"},"PaginatedResponse_ScheduleResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleResponse]"},"PaginatedResponse_ScheduleRunResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleRunResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleRunResponse]"},"PaginatedResponse_ServiceAccountResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ServiceAccountResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ServiceAccountResponse]"},"PaginatedResponse_SessionSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SessionSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[SessionSchema]"},"PaginatedResponse_TraceDetail_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceDetail"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceDetail]"},"PaginatedResponse_TraceSessionStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSessionStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSessionStats]"},"PaginatedResponse_TraceSummary_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSummary"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSummary]"},"PaginatedResponse_UserMemorySchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserMemorySchema]"},"PaginatedResponse_UserStatsSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserStatsSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserStatsSchema]"},"PaginatedResponse_VectorSearchResult_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VectorSearchResult"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[VectorSearchResult]"},"PaginationInfo":{"properties":{"page":{"type":"integer","minimum":0.0,"title":"Page","description":"Page value returned by the endpoint. AgentOS paginated routes use 1-based page numbers. Some Agno 2.7.4 routes accept and echo 0 even though their pagination implementation is 1-based.","default":0},"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of items per page","default":20},"total_pages":{"type":"integer","minimum":0.0,"title":"Total Pages","description":"Total number of pages","default":0},"total_count":{"type":"integer","minimum":0.0,"title":"Total Count","description":"Total count of items","default":0},"search_time_ms":{"type":"number","minimum":0.0,"title":"Search Time Ms","description":"Search execution time in milliseconds","default":0}},"type":"object","title":"PaginationInfo"},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/DataPart"}],"title":"Part"},"ReaderSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the reader"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the reader"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the reader's capabilities"},"chunkers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chunkers","description":"List of supported chunking strategies"}},"type":"object","required":["id"],"title":"ReaderSchema"},"ReasoningMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"reasoning","title":"Role","default":"reasoning"},"content":{"type":"string","title":"Content"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"ReasoningMessage","description":"A reasoning message containing the agent's internal reasoning process."},"RegistryContentResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/RegistryResourceType"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name","type"],"title":"RegistryContentResponse"},"RegistryResourceType":{"type":"string","enum":["tool","model","db","vector_db","schema","function","agent","team","knowledge","memory_manager","session_summary_manager"],"title":"RegistryResourceType","description":"Types of resources that can be stored in a registry."},"RemoteContentSourceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content source"},"name":{"type":"string","title":"Name","description":"Display name for the content source"},"type":{"type":"string","title":"Type","description":"Type of content source (s3, gcs, sharepoint, github, azureblob)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Default path prefix for this source"}},"type":"object","required":["id","name","type"],"title":"RemoteContentSourceSchema","description":"Schema for remote content source configuration."},"ResumeEntry":{"properties":{"interruptId":{"type":"string","title":"Interruptid"},"status":{"type":"string","enum":["resolved","cancelled"],"title":"Status"},"payload":{"anyOf":[{},{"type":"null"}],"title":"Payload"}},"additionalProperties":true,"type":"object","required":["interruptId","status"],"title":"ResumeEntry","description":"A per-interrupt response in the resume array of a RunAgentInput."},"Role":{"type":"string","enum":["agent","user"],"title":"Role","description":"Identifies the sender of the message. `user` for the client, `agent` for the service."},"RunAgentInput":{"properties":{"threadId":{"type":"string","title":"Threadid"},"runId":{"type":"string","title":"Runid"},"parentRunId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentrunid"},"state":{"title":"State"},"messages":{"items":{"oneOf":[{"$ref":"#/components/schemas/DeveloperMessage"},{"$ref":"#/components/schemas/SystemMessage"},{"$ref":"#/components/schemas/AssistantMessage"},{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/ToolMessage"},{"$ref":"#/components/schemas/ActivityMessage"},{"$ref":"#/components/schemas/ReasoningMessage"}],"discriminator":{"propertyName":"role","mapping":{"activity":"#/components/schemas/ActivityMessage","assistant":"#/components/schemas/AssistantMessage","developer":"#/components/schemas/DeveloperMessage","reasoning":"#/components/schemas/ReasoningMessage","system":"#/components/schemas/SystemMessage","tool":"#/components/schemas/ToolMessage","user":"#/components/schemas/UserMessage"}}},"type":"array","title":"Messages"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","title":"Tools"},"context":{"items":{"$ref":"#/components/schemas/Context"},"type":"array","title":"Context"},"forwardedProps":{"title":"Forwardedprops"},"resume":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResumeEntry"},"type":"array"},{"type":"null"}],"title":"Resume"}},"additionalProperties":true,"type":"object","required":["threadId","runId","state","messages","tools","context","forwardedProps"],"title":"RunAgentInput","description":"Input for running an agent."},"RunCheckpointEntry":{"properties":{"checkpoint_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Checkpoint Id","description":"One-based display ID, or null when the requested boundary is not on the checkpoint timeline."},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Run that contains the checkpoint."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session that contains the run."},"message_index":{"type":"integer","minimum":0,"title":"Message Index","description":"Message boundary represented by the checkpoint."},"continue_from":{"type":"integer","minimum":0,"title":"Continue From","description":"Value to send as continue_from when continuing the run."},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Checkpoint status or current run status."},"reason":{"type":"string","title":"Reason","description":"Why this boundary was returned."},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Unix timestamp for the checkpoint or run."},"message_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Id","description":"Message ID at the checkpoint boundary."},"message_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Role","description":"Role of the message at the checkpoint boundary."},"message_preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Preview","description":"Truncated message content at the checkpoint boundary."},"is_latest":{"type":"boolean","title":"Is Latest","description":"Whether this is the final message boundary in the stored run."}},"type":"object","required":["checkpoint_id","run_id","session_id","message_index","continue_from","status","reason","created_at","message_id","message_role","message_preview","is_latest"],"title":"RunCheckpointEntry","description":"A continuation boundary derived from a stored run transcript."},"RunCheckpointListResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Run whose checkpoints were listed."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the run."},"checkpoints":{"type":"array","items":{"$ref":"#/components/schemas/RunCheckpointEntry"},"title":"Checkpoints","description":"Checkpoint boundaries in message order."}},"type":"object","required":["run_id","session_id","checkpoints"],"title":"RunCheckpointListResponse"},"RunCheckpointSnapshotResponse":{"properties":{"checkpoint":{"$ref":"#/components/schemas/RunCheckpointEntry"},"snapshot":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"}],"title":"Snapshot","description":"Agent or team run serialized at the requested message boundary."}},"type":"object","required":["checkpoint","snapshot"],"title":"RunCheckpointSnapshotResponse"},"RunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that executed this run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"RunSchema"},"RunStatus":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","PAUSED","CANCELLED","ERROR","REGENERATED"],"title":"RunStatus","description":"State of the main run response"},"ScheduleCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"cron_expr":{"type":"string","maxLength":128,"title":"Cron Expr"},"endpoint":{"type":"string","maxLength":512,"title":"Endpoint"},"method":{"type":"string","maxLength":10,"title":"Method","default":"POST"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"type":"string","maxLength":64,"title":"Timezone","default":"UTC"},"timeout_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Timeout Seconds","default":3600},"max_retries":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Max Retries","default":0},"retry_delay_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Retry Delay Seconds","default":60}},"type":"object","required":["name","cron_expr","endpoint"],"title":"ScheduleCreate"},"ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"cron_expr":{"type":"string","title":"Cron Expr"},"timezone":{"type":"string","title":"Timezone"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"max_retries":{"type":"integer","title":"Max Retries"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","method","endpoint","cron_expr","timezone","timeout_seconds","max_retries","retry_delay_seconds","enabled"],"title":"ScheduleResponse"},"ScheduleRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"schedule_id":{"type":"string","title":"Schedule Id"},"attempt":{"type":"integer","title":"Attempt"},"triggered_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triggered At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"status":{"type":"string","title":"Status"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","schedule_id","attempt","status"],"title":"ScheduleRunResponse"},"ScheduleStateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","enabled"],"title":"ScheduleStateResponse","description":"Trimmed response for state-changing operations (enable/disable)."},"ScheduleUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"cron_expr":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Cron Expr"},"endpoint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Endpoint"},"method":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Method"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Timezone"},"timeout_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":1.0},{"type":"null"}],"title":"Timeout Seconds"},"max_retries":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Max Retries"},"retry_delay_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":1.0},{"type":"null"}],"title":"Retry Delay Seconds"}},"type":"object","title":"ScheduleUpdate"},"ScopeItem":{"properties":{"scope":{"type":"string","title":"Scope","description":"Scope string, e.g. 'agents:*:run'"},"effect":{"type":"string","enum":["allow","deny"],"title":"Effect","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["scope"],"title":"ScopeItem","description":"Write shape for one scope grant \u2014 the canonical RBAC payload for every scope-bearing API.\n\nEndpoints that take scopes accept these objects only (a bare string is a validation\nerror). ``effect`` is constrained here so every consumer rejects typos at the model\nlayer; whether ``deny`` is *semantically* legal stays per-endpoint (roles support\ndeny rules, service-account tokens are pure grants and reject it)."},"ScopeSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Scope id (always null here; kept for shape parity with the cloud RBAC API, which addresses scopes individually)"},"raw":{"type":"string","title":"Raw","description":"Original scope string, e.g. 'agents:*:run'"},"namespace":{"type":"string","title":"Namespace","description":"Resource namespace, e.g. 'agents'"},"sub_namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Namespace","description":"Specific resource id or wildcard '*'"},"permission":{"type":"string","title":"Permission","description":"Action, e.g. 'read' / 'run' / 'write'"},"value":{"type":"string","title":"Value","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["raw","namespace","permission"],"title":"ScopeSchema","description":"Read shape for one scope \u2014 the parsed RBAC payload shared by every scope-bearing API.\n\nMirrors the cloud RBAC scope shape ({raw, namespace, sub_namespace, permission, value})\nso a frontend renders scopes from any AgentOS API with one integration."},"SendMessageRequest":{"description":"Represents a JSON-RPC request for the `message/send` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/send","default":"message/send","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendMessageRequest","type":"object"},"SendMessageSuccessResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id"},"jsonrpc":{"type":"string","const":"2.0","title":"Jsonrpc","default":"2.0"},"result":{"anyOf":[{"$ref":"#/components/schemas/Task"},{"$ref":"#/components/schemas/Message"}],"title":"Result"}},"type":"object","required":["result"],"title":"SendMessageSuccessResponse","description":"Represents a successful JSON-RPC response for the `message/send` method."},"SendStreamingMessageRequest":{"description":"Represents a JSON-RPC request for the `message/stream` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/stream","default":"message/stream","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendStreamingMessageRequest","type":"object"},"ServiceAccountCreate":{"properties":{"name":{"type":"string","maxLength":63,"title":"Name","description":"Machine identity name (lowercase slug), e.g. 'claude-code' or 'github-actions'"},"scopes":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScopeItem"},"type":"array"},{"type":"null"}],"title":"Scopes","description":"Scopes granted to the token, as {scope, effect} objects (the shared RBAC write shape; token scopes are grants, so only effect='allow' is accepted). Defaults to run and read scopes: agents:run, teams:run, workflows:run, sessions:read"},"expires_in_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Expires In Days","description":"Days until the token expires (default: 90)","default":90},"never_expires":{"type":"boolean","title":"Never Expires","description":"Mint a non-expiring token. Must be set explicitly; overrides expires_in_days.","default":false},"allow_privileged_scopes":{"type":"boolean","title":"Allow Privileged Scopes","description":"Required to grant privileged scopes: any write or delete action, the admin scope, or any service_accounts scope. Privileged tokens must be deliberate, never accidental.","default":false}},"type":"object","required":["name"],"title":"ServiceAccountCreate"},"ServiceAccountCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"token":{"type":"string","title":"Token","description":"The plaintext token. Shown exactly once - store it securely now."}},"type":"object","required":["id","name","principal","token_prefix","created_at","token"],"title":"ServiceAccountCreateResponse","description":"Returned once, at creation. The token is never retrievable again."},"ServiceAccountResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","name","principal","token_prefix","created_at"],"title":"ServiceAccountResponse","description":"Service account metadata. Never includes the token hash or plaintext."},"ServiceUnavailableResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ServiceUnavailableResponse","example":{"detail":"Feature not supported by the configured service"}},"SessionConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_SessionDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"SessionConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"SessionDomainConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier for the session"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state data of the session"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when session was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when session was last updated"},"session_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type","description":"Type of session: agent, team, or workflow"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["session_id","session_name"],"title":"SessionSchema"},"SessionType":{"type":"string","enum":["agent","team","workflow"],"title":"SessionType"},"SlackChallengeResponse":{"properties":{"challenge":{"type":"string","title":"Challenge","description":"Challenge string to echo back to Slack"}},"type":"object","required":["challenge"],"title":"SlackChallengeResponse"},"SlackEventResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"}},"type":"object","title":"SlackEventResponse"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"SourceFileSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Full path/key of the file"},"name":{"type":"string","title":"Name","description":"Display name (filename)"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"File size in bytes"},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified","description":"ISO 8601 timestamp of last modification"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"MIME type of the file"}},"type":"object","required":["key","name"],"title":"SourceFileSchema","description":"Schema for a file in a content source."},"SourceFilesResponseSchema":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"ID of the content source"},"source_name":{"type":"string","title":"Source Name","description":"Name of the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Prefix filter that was applied"},"folders":{"items":{"$ref":"#/components/schemas/SourceFolderSchema"},"type":"array","title":"Folders","description":"Subfolders at this level"},"files":{"items":{"$ref":"#/components/schemas/SourceFileSchema"},"type":"array","title":"Files","description":"List of files at this level"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["source_id","source_name","meta"],"title":"SourceFilesResponseSchema","description":"Response schema for listing files in a content source."},"SourceFolderSchema":{"properties":{"prefix":{"type":"string","title":"Prefix","description":"Full prefix to use for navigating into this folder"},"name":{"type":"string","title":"Name","description":"Display name of the folder"},"is_empty":{"type":"boolean","title":"Is Empty","description":"Whether the folder contains any files","default":false}},"type":"object","required":["prefix","name"],"title":"SourceFolderSchema","description":"Schema for a folder in a content source."},"SystemMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"system","title":"Role","default":"system"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"SystemMessage","description":"A system message."},"Task":{"properties":{"artifacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Artifact"},"type":"array"},{"type":"null"}],"title":"Artifacts"},"contextId":{"type":"string","title":"Contextid"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"History"},"id":{"type":"string","title":"Id"},"kind":{"type":"string","const":"task","title":"Kind","default":"task"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"status":{"$ref":"#/components/schemas/TaskStatus"}},"type":"object","required":["contextId","id","status"],"title":"Task","description":"Represents a single, stateful operation or conversation between a client and an agent."},"TaskState":{"type":"string","enum":["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"],"title":"TaskState","description":"Defines the lifecycle states of a Task."},"TaskStatus":{"properties":{"message":{"anyOf":[{"$ref":"#/components/schemas/Message"},{"type":"null"}]},"state":{"$ref":"#/components/schemas/TaskState"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp","examples":["2023-10-27T10:00:00Z"]}},"type":"object","required":["state"],"title":"TaskStatus","description":"Represents the status of a task at a specific point in time."},"TeamResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"members":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"$ref":"#/components/schemas/TeamResponse"}]},"type":"array"},{"type":"null"}],"title":"Members"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"TeamResponse"},"TeamRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the team run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that executed this run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the team run"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this team run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this team run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this team run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this team run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"TeamRunSchema"},"TeamSessionDetailSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID used in this session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of team interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"team_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Team Data","description":"Team-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"}},"type":"object","required":["session_id","session_name"],"title":"TeamSessionDetailSchema"},"TeamSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the team"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the team"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the team"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Team execution mode (coordinate, route, broadcast, tasks)"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the team leader"}},"type":"object","title":"TeamSummaryResponse"},"TelegramStatusResponse":{"properties":{"status":{"type":"string","title":"Status","default":"available"}},"type":"object","title":"TelegramStatusResponse"},"TelegramWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status"}},"type":"object","required":["status"],"title":"TelegramWebhookResponse"},"TextInputContent":{"properties":{"type":{"type":"string","const":"text","title":"Type","default":"text"},"text":{"type":"string","title":"Text"}},"additionalProperties":true,"type":"object","required":["text"],"title":"TextInputContent","description":"A text fragment in a multimodal user message."},"TextPart":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"TextPart","description":"Represents a text segment within a message or artifact."},"Tool":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{},{"type":"null"}],"title":"Parameters"}},"additionalProperties":true,"type":"object","required":["name","description"],"title":"Tool","description":"A tool definition."},"ToolCall":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/FunctionCall"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","function"],"title":"ToolCall","description":"A tool call, modelled after OpenAI tool calls."},"ToolMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"tool","title":"Role","default":"tool"},"content":{"type":"string","title":"Content"},"toolCallId":{"type":"string","title":"Toolcallid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content","toolCallId"],"title":"ToolMessage","description":"A tool result message."},"TraceDetail":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent/workflow"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the agent/workflow"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"},"tree":{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array","title":"Tree","description":"Hierarchical tree of spans (root nodes)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at","tree"],"title":"TraceDetail","description":"Detailed trace information with hierarchical span tree"},"TraceNode":{"properties":{"id":{"type":"string","title":"Id","description":"Span ID"},"name":{"type":"string","title":"Name","description":"Span name (e.g., 'agent.run', 'llm.invoke')"},"type":{"type":"string","title":"Type","description":"Span kind (AGENT, TEAM, WORKFLOW, LLM, TOOL)"},"duration":{"type":"string","title":"Duration","description":"Human-readable duration (e.g., '123ms', '1.5s')"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"End time (Pydantic auto-serializes to ISO 8601)"},"status":{"type":"string","title":"Status","description":"Status code (OK, ERROR)"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the span"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the span"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"spans":{"anyOf":[{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array"},{"type":"null"}],"title":"Spans","description":"Child spans in the trace hierarchy"},"step_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Type","description":"Workflow step type (Step, Condition, function, Agent, Team)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional span attributes and data"},"extra_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Data","description":"Flexible field for custom attributes and additional data"}},"type":"object","required":["id","name","type","duration","start_time","end_time","status"],"title":"TraceNode","description":"Recursive node structure for rendering trace hierarchy in the frontend"},"TraceSearchGroupBy":{"type":"string","enum":["run","session"],"title":"TraceSearchGroupBy","description":"Grouping options for trace search results."},"TraceSearchRequest":{"properties":{"filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter","description":"FilterExpr DSL as JSON dict. Supports operators: EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH, AND, OR, NOT."},"group_by":{"$ref":"#/components/schemas/TraceSearchGroupBy","description":"Grouping mode: 'run' returns individual TraceDetail, 'session' returns aggregated TraceSessionStats.","default":"run"},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number (1-indexed)","default":1},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"Number of traces per page (max 100)","default":20}},"type":"object","title":"TraceSearchRequest","description":"Request body for POST /traces/search with advanced filtering.\n\nThe filter field accepts a FilterExpr DSL dict supporting composable queries\nwith AND/OR/NOT logic and operators like EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH.\n\nExample for run grouping (default):\n {\n \"filter\": {\n \"op\": \"AND\",\n \"conditions\": [\n {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n {\"op\": \"CONTAINS\", \"key\": \"user_id\", \"value\": \"admin\"}\n ]\n },\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n }\n\nExample for session grouping:\n {\n \"filter\": {\"op\": \"EQ\", \"key\": \"agent_id\", \"value\": \"my-agent\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n }"},"TraceSessionStats":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID(s) used in the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID associated with the session"},"total_traces":{"type":"integer","title":"Total Traces","description":"Total number of traces in this session"},"first_trace_at":{"type":"string","format":"date-time","title":"First Trace At","description":"Time of first trace (Pydantic auto-serializes to ISO 8601)"},"last_trace_at":{"type":"string","format":"date-time","title":"Last Trace At","description":"Time of last trace (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["session_id","total_traces","first_trace_at","last_trace_at"],"title":"TraceSessionStats","description":"Aggregated trace statistics grouped by session"},"TraceSummary":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR, UNSET)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at"],"title":"TraceSummary","description":"Summary information for trace list view"},"TracesConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_TracesDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"TracesConfig","description":"Configuration for the Traces domain of the AgentOS"},"TracesDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"TracesDomainConfig","description":"Configuration for the Traces domain of the AgentOS"},"UnauthenticatedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"UnauthenticatedResponse","example":{"detail":"Unauthenticated access","error_code":"UNAUTHENTICATED"}},"UpdateEvalRunRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"New name for the evaluation run"}},"type":"object","required":["name"],"title":"UpdateEvalRunRequest"},"UpdateSessionRequest":{"properties":{"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Updated session name"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Updated session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Updated metadata"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary","description":"Session summary"}},"type":"object","title":"UpdateSessionRequest"},"UserMemoryCreateSchema":{"properties":{"memory":{"type":"string","maxLength":5000,"minLength":1,"title":"Memory","description":"Memory content text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags to categorize the memory"}},"type":"object","required":["memory"],"title":"UserMemoryCreateSchema","description":"Define the payload expected for creating a new user memory"},"UserMemorySchema":{"properties":{"memory_id":{"type":"string","title":"Memory Id","description":"Unique identifier for the memory"},"memory":{"type":"string","title":"Memory","description":"Memory content text"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags associated with the memory"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID associated with this memory"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with this memory"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when memory was last updated"}},"type":"object","required":["memory_id","memory"],"title":"UserMemorySchema"},"UserMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"user","title":"Role","default":"user"},"content":{"anyOf":[{"type":"string"},{"items":{"oneOf":[{"$ref":"#/components/schemas/TextInputContent"},{"$ref":"#/components/schemas/ImageInputContent"},{"$ref":"#/components/schemas/AudioInputContent"},{"$ref":"#/components/schemas/VideoInputContent"},{"$ref":"#/components/schemas/DocumentInputContent"},{"$ref":"#/components/schemas/BinaryInputContent"}],"discriminator":{"propertyName":"type","mapping":{"audio":"#/components/schemas/AudioInputContent","binary":"#/components/schemas/BinaryInputContent","document":"#/components/schemas/DocumentInputContent","image":"#/components/schemas/ImageInputContent","text":"#/components/schemas/TextInputContent","video":"#/components/schemas/VideoInputContent"}}},"type":"array"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"UserMessage","description":"A user message supporting text or multimodal content."},"UserStatsSchema":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"total_memories":{"type":"integer","minimum":0.0,"title":"Total Memories","description":"Total number of memories for this user"},"last_memory_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Memory Updated At","description":"Timestamp of the most recent memory update"}},"type":"object","required":["user_id","total_memories"],"title":"UserStatsSchema","description":"Schema for user memory statistics"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"ValidationErrorResponse","example":{"detail":"Validation error","error_code":"VALIDATION_ERROR"}},"VectorDbSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the vector database"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the vector database"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the vector database"},"search_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Search Types","description":"List of supported search types (vector, keyword, hybrid)"}},"type":"object","required":["id"],"title":"VectorDbSchema"},"VectorSearchRequestSchema":{"properties":{"query":{"type":"string","title":"Query","description":"The search query text"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database ID to search in"},"knowledge_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledge Id","description":"Knowledge base ID to search in"},"vector_db_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vector Db Ids","description":"List of vector database IDs to search in"},"search_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Type","description":"The type of search to perform (vector, keyword, hybrid)"},"max_results":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Max Results","description":"The maximum number of results to return"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Filters to apply to the search results"},"meta":{"anyOf":[{"$ref":"#/components/schemas/Meta"},{"type":"null"}],"description":"Pagination metadata. Limit and page number to return a subset of results."}},"type":"object","required":["query"],"title":"VectorSearchRequestSchema","description":"Schema for vector search request."},"VectorSearchResult":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the search result document"},"content":{"type":"string","title":"Content","description":"Content text of the document"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the document"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Metadata associated with the document"},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"Usage statistics (e.g., token counts)"},"reranking_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reranking Score","description":"Reranking score for relevance"},"content_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Id","description":"ID of the source content"},"content_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Origin","description":"Origin URL or source of the content"},"size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"}},"type":"object","required":["id","content"],"title":"VectorSearchResult","description":"Schema for search result documents."},"VideoInputContent":{"properties":{"type":{"type":"string","const":"video","title":"Type","default":"video"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"VideoInputContent","description":"A video input content fragment."},"WhatsAppWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status","default":"ok"}},"type":"object","title":"WhatsAppWebhookResponse"},"WorkflowResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema","description":"Input schema for the workflow"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps","description":"List of workflow steps"},"agent":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"type":"null"}],"description":"Agent configuration if used"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamResponse"},{"type":"null"}],"description":"Team configuration if used"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"workflow_agent":{"type":"boolean","title":"Workflow Agent","description":"Whether this workflow uses a WorkflowAgent","default":false},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowResponse"},"WorkflowRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the workflow run"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the workflow"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was executed"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the workflow"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"Type of content returned"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status of the workflow run"},"step_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Results","description":"Results from each workflow step"},"step_executor_runs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Executor Runs","description":"Executor runs for each step"},"step_requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Requirements","description":"HITL step requirements (resolved state for historical display)"},"pause_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Kind","description":"Kind of HITL pause: 'step' or 'executor'"},"paused_step_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Step Name","description":"Name of the step that caused the pause"},"paused_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Paused Step Index","description":"Index of the step that caused the pause"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the workflow"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the workflow"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the workflow"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the workflow"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the workflow"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"}},"type":"object","required":["run_id"],"title":"WorkflowRunSchema"},"WorkflowSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID used in this session"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name","description":"Name of the workflow"},"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Data","description":"Complete session data"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current workflow state"},"workflow_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Data","description":"Workflow-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["session_id","session_name"],"title":"WorkflowSessionDetailSchema"},"WorkflowSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowSummaryResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} diff --git a/reference-api/openapi.yaml b/reference-api/openapi.yaml index a68ad470d..a5277a7f8 100644 --- a/reference-api/openapi.yaml +++ b/reference-api/openapi.yaml @@ -951,7 +951,8 @@ paths: description: Run checkpoints retrieved successfully content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/RunCheckpointListResponse' '400': description: Bad Request content: @@ -1029,7 +1030,8 @@ paths: description: Run checkpoint snapshot retrieved successfully content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/RunCheckpointSnapshotResponse' '400': description: Invalid checkpoint message index content: @@ -1989,7 +1991,8 @@ paths: description: Run checkpoints retrieved successfully content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/RunCheckpointListResponse' '400': description: Bad Request content: @@ -2067,7 +2070,8 @@ paths: description: Run checkpoint snapshot retrieved successfully content: application/json: - schema: {} + schema: + $ref: '#/components/schemas/RunCheckpointSnapshotResponse' '400': description: Invalid checkpoint message index content: @@ -3132,6 +3136,7 @@ paths: schema: $ref: '#/components/schemas/HTTPValidationError' security: + - {} - HTTPBearer: [] /a2a/agents/{id}/v1/message:send: post: @@ -3204,6 +3209,7 @@ paths: schema: $ref: '#/components/schemas/NotImplementedResponse' security: + - {} - HTTPBearer: [] requestBody: required: true @@ -3278,6 +3284,7 @@ paths: schema: $ref: '#/components/schemas/NotImplementedResponse' security: + - {} - HTTPBearer: [] requestBody: required: true @@ -3359,6 +3366,7 @@ paths: schema: $ref: '#/components/schemas/NotImplementedResponse' security: + - {} - HTTPBearer: [] requestBody: required: true @@ -3436,6 +3444,7 @@ paths: schema: $ref: '#/components/schemas/InternalServerErrorResponse' security: + - {} - HTTPBearer: [] requestBody: required: true @@ -3488,6 +3497,7 @@ paths: schema: $ref: '#/components/schemas/HTTPValidationError' security: + - {} - HTTPBearer: [] /a2a/teams/{id}/v1/message:send: post: @@ -3554,6 +3564,7 @@ paths: schema: $ref: '#/components/schemas/HTTPValidationError' security: + - {} - HTTPBearer: [] requestBody: required: true @@ -3622,6 +3633,7 @@ paths: schema: $ref: '#/components/schemas/HTTPValidationError' security: + - {} - HTTPBearer: [] requestBody: required: true @@ -3697,6 +3709,7 @@ paths: schema: $ref: '#/components/schemas/HTTPValidationError' security: + - {} - HTTPBearer: [] requestBody: required: true @@ -3774,6 +3787,7 @@ paths: schema: $ref: '#/components/schemas/InternalServerErrorResponse' security: + - {} - HTTPBearer: [] requestBody: required: true @@ -3826,6 +3840,7 @@ paths: schema: $ref: '#/components/schemas/HTTPValidationError' security: + - {} - HTTPBearer: [] /a2a/workflows/{id}/v1/message:send: post: @@ -3886,6 +3901,7 @@ paths: schema: $ref: '#/components/schemas/HTTPValidationError' security: + - {} - HTTPBearer: [] requestBody: required: true @@ -3956,6 +3972,7 @@ paths: schema: $ref: '#/components/schemas/InternalServerErrorResponse' security: + - {} - HTTPBearer: [] requestBody: required: true @@ -4012,6 +4029,7 @@ paths: $ref: '#/components/schemas/NotFoundResponse' deprecated: true security: + - {} - HTTPBearer: [] parameters: - name: X-Agent-ID @@ -4085,6 +4103,7 @@ paths: $ref: '#/components/schemas/InternalServerErrorResponse' deprecated: true security: + - {} - HTTPBearer: [] parameters: - name: X-Agent-ID @@ -17256,6 +17275,127 @@ components: - forwardedProps title: RunAgentInput description: Input for running an agent. + RunCheckpointEntry: + properties: + checkpoint_id: + anyOf: + - type: string + - type: 'null' + title: Checkpoint Id + description: One-based display ID, or null when the requested boundary is not on the checkpoint timeline. + run_id: + anyOf: + - type: string + - type: 'null' + title: Run Id + description: Run that contains the checkpoint. + session_id: + anyOf: + - type: string + - type: 'null' + title: Session Id + description: Session that contains the run. + message_index: + type: integer + minimum: 0 + title: Message Index + description: Message boundary represented by the checkpoint. + continue_from: + type: integer + minimum: 0 + title: Continue From + description: Value to send as continue_from when continuing the run. + status: + anyOf: + - type: string + - type: 'null' + title: Status + description: Checkpoint status or current run status. + reason: + type: string + title: Reason + description: Why this boundary was returned. + created_at: + anyOf: + - type: integer + - type: 'null' + title: Created At + description: Unix timestamp for the checkpoint or run. + message_id: + anyOf: + - type: string + - type: 'null' + title: Message Id + description: Message ID at the checkpoint boundary. + message_role: + anyOf: + - type: string + - type: 'null' + title: Message Role + description: Role of the message at the checkpoint boundary. + message_preview: + anyOf: + - type: string + - type: 'null' + title: Message Preview + description: Truncated message content at the checkpoint boundary. + is_latest: + type: boolean + title: Is Latest + description: Whether this is the final message boundary in the stored run. + type: object + required: + - checkpoint_id + - run_id + - session_id + - message_index + - continue_from + - status + - reason + - created_at + - message_id + - message_role + - message_preview + - is_latest + title: RunCheckpointEntry + description: A continuation boundary derived from a stored run transcript. + RunCheckpointListResponse: + properties: + run_id: + type: string + title: Run Id + description: Run whose checkpoints were listed. + session_id: + type: string + title: Session Id + description: Session that contains the run. + checkpoints: + type: array + items: + $ref: '#/components/schemas/RunCheckpointEntry' + title: Checkpoints + description: Checkpoint boundaries in message order. + type: object + required: + - run_id + - session_id + - checkpoints + title: RunCheckpointListResponse + RunCheckpointSnapshotResponse: + properties: + checkpoint: + $ref: '#/components/schemas/RunCheckpointEntry' + snapshot: + anyOf: + - $ref: '#/components/schemas/RunSchema' + - $ref: '#/components/schemas/TeamRunSchema' + title: Snapshot + description: Agent or team run serialized at the requested message boundary. + type: object + required: + - checkpoint + - snapshot + title: RunCheckpointSnapshotResponse RunSchema: properties: run_id: diff --git a/reference/agent-os/jwt-middleware.mdx b/reference/agent-os/jwt-middleware.mdx index 225e0b14b..55099425d 100644 --- a/reference/agent-os/jwt-middleware.mdx +++ b/reference/agent-os/jwt-middleware.mdx @@ -171,7 +171,7 @@ app.add_middleware( ## Request State -After processing, the middleware stores the following in `request.state`: +After a successful JWT request, the middleware stores the following in `request.state`: | Attribute | Type | Description | |-----------|------|-------------| @@ -181,11 +181,13 @@ After processing, the middleware stores the following in `request.state`: | `scopes` | `List[str]` | User's permission scopes | | `claims` | `Dict[str, Any]` | Full decoded JWT payload. [Factories](/reference/agent-os/factories) read it as `ctx.trusted.claims` | | `audience` | `Optional[str]` | Audience claim value | -| `token` | `str` | The raw JWT token | +| `token` | `str` | Raw JWT token | | `authorization_enabled` | `bool` | Whether RBAC is enabled | -| `dependencies` | `Dict[str, Any]` | Extracted dependencies claims | -| `session_state` | `Dict[str, Any]` | Extracted session state claims | -| `accessible_resource_ids` | `Set[str]` | Resource IDs user can access (for listing endpoints) | +| `dependencies` | `Dict[str, Any]` | Extracted dependency claims, when configured and present | +| `session_state` | `Dict[str, Any]` | Extracted session-state claims, when configured and present | +| `accessible_resource_ids` | `Set[str]` | Resource IDs the scopes permit, when a route mapping restricts IDs | + +Service account token requests set `authenticated`, `user_id`, `session_id`, `scopes`, and authorization state. They do not set `claims`, `audience`, `token`, `dependencies`, or `session_state`. Code that accepts both credential types must treat those JWT-only attributes as optional. ## Error Responses @@ -202,4 +204,3 @@ After processing, the middleware stores the following in `request.state`: - [JWT Middleware Guide](/agent-os/middleware/jwt) - Configuration guide - [Scopes](/agent-os/security/authorization/scopes) - Complete scope reference - [AuthorizationConfig](/reference/agent-os/authorization-config) - Authorization configuration - diff --git a/reference/clients/a2a-client.mdx b/reference/clients/a2a-client.mdx index 53bc07e12..897828822 100644 --- a/reference/clients/a2a-client.mdx +++ b/reference/clients/a2a-client.mdx @@ -205,7 +205,7 @@ Describes the capabilities of an A2A agent: | `url` | `str` | Agent URL | | `description` | `Optional[str]` | Agent description | | `version` | `Optional[str]` | Agent version | -| `capabilities` | `List[str]` | List of agent capabilities | +| `capabilities` | `Dict[str, Any]` | A2A capabilities object. Agno servers return flags such as `streaming` and `pushNotifications` | | `metadata` | `Optional[Dict]` | Additional metadata | diff --git a/reference/clients/agentos-client.mdx b/reference/clients/agentos-client.mdx index d529836ec..95723fa60 100644 --- a/reference/clients/agentos-client.mdx +++ b/reference/clients/agentos-client.mdx @@ -4,7 +4,7 @@ sidebarTitle: AgentOSClient description: Python client for interacting with AgentOS API endpoints --- -The `AgentOSClient` provides a convenient interface for interacting with a running AgentOS instance. It supports all AgentOS operations including running agents, teams, and workflows, managing sessions and memories, and searching knowledge bases. +The `AgentOSClient` provides a Python interface for a running AgentOS instance. This curated guide covers common run, session, memory, knowledge, trace, and metrics operations. The v2.7.4 client also exposes evaluation, migration, continuation, and additional resource-management methods. See the [AgentOSClient source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/client/os.py) for the complete method list. ## Basic Usage @@ -222,12 +222,20 @@ result = await client.continue_agent_run( #### `cancel_agent_run` -Cancel an agent run. +Cancel an agent run when user isolation is disabled or the caller has the configured admin scope. ```python await client.cancel_agent_run(agent_id="my-agent", run_id="run-123") ``` +In v2.7.4, this client method cannot send `session_id`. With user isolation enabled, a non-admin caller must use the REST endpoint and provide the run's session ID: + +```bash +curl -X POST \ + -H "Authorization: Bearer $JWT" \ + "http://localhost:7777/agents/my-agent/runs/run-123/cancel?session_id=session-123" +``` + --- ### Running Teams diff --git a/scripts/examples_sync/apply_oneoffs.py b/scripts/examples_sync/apply_oneoffs.py index 861ee364d..507ce7c55 100644 --- a/scripts/examples_sync/apply_oneoffs.py +++ b/scripts/examples_sync/apply_oneoffs.py @@ -2840,6 +2840,70 @@ def main() -> None: "[Hugging Face GPT-OSS Essay Writer](/examples/models/huggingface/llama-essay-writer)", ) + sub( + "agent-os/rbac/symmetric/user-isolation.mdx", + """--- + +Build on [Symmetric RBAC Basic]""", + """--- + + + The isolation matrix in this v2.7.4 source example has one incorrect row. Because JWT authorization is configured, a request without a token returns `401`. It does not bypass isolation or gain access to stored data. + + +Build on [Symmetric RBAC Basic]""", + ) + sub( + "knowledge/production/ssrf-allowed-hosts.mdx", + """--- + +```python ssrf_allowed_hosts.py""", + """--- + + + In v2.7.4, `WebsiteReader`, `LLMsTxtReader`, and `WebSearchReader` validate redirect targets through their HTTP request hooks. `FirecrawlReader` and `DoclingReader` validate the submitted URL, then delegate the fetch. Their `allowed_hosts` checks do not validate every downstream redirect. + + +```python ssrf_allowed_hosts.py""", + ) + sub( + "agent-os/interfaces/a2a/multi-agent-a2a/weather-agent.mdx", + """--- + +```python weather_agent.py""", + """--- + + + The URLs in this v2.7.4 source docstring omit the default `/a2a` prefix. Use `/a2a/agents/{id}/v1/message:send`, `/a2a/agents/{id}/v1/message:stream`, and `/a2a/agents/{id}/.well-known/agent-card.json`. + + +```python weather_agent.py""", + ) + sub( + "agent-os/rbac/symmetric/advanced-scopes.mdx", + """--- + +Issue HS256 tokens""", + """--- + + + This v2.7.4 source says it verifies token audiences, but `verify_audience` remains disabled and the issued tokens have no `aud` claim. To reject tokens created for another AgentOS, set `verify_audience=True` in `AuthorizationConfig` and add `\"aud\": \"my-agent-os\"` to the token payload. Until then, another instance using the same HMAC secret can accept these tokens. + + +Issue HS256 tokens""", + ) + sub( + "models/openai/chat/image-agent-bytes.mdx", + """ + Place a JPEG named `sample.jpg` in the same directory as the saved Python file. + +""", + """ + The script downloads `sample.jpg` beside the saved Python file. No input image is required. An existing file with that name is overwritten. + +""", + ) + root_sub( "state/agent/last-n-session-messages.mdx", '''title: Last N Messages diff --git a/scripts/make_openapi.py b/scripts/make_openapi.py index 957501ddd..8a5da6d4e 100644 --- a/scripts/make_openapi.py +++ b/scripts/make_openapi.py @@ -316,6 +316,139 @@ def get_parameter(operation: dict, name: str) -> dict: "title": "BackgroundRunResponse", } + for schema_name in ( + "RunCheckpointEntry", + "RunCheckpointListResponse", + "RunCheckpointSnapshotResponse", + ): + assert schema_name not in schemas + + def nullable_string_schema() -> dict: + return {"anyOf": [{"type": "string"}, {"type": "null"}]} + + schemas["RunCheckpointEntry"] = { + "properties": { + "checkpoint_id": { + **nullable_string_schema(), + "title": "Checkpoint Id", + "description": "One-based display ID, or null when the requested boundary is not on the checkpoint timeline.", + }, + "run_id": { + **nullable_string_schema(), + "title": "Run Id", + "description": "Run that contains the checkpoint.", + }, + "session_id": { + **nullable_string_schema(), + "title": "Session Id", + "description": "Session that contains the run.", + }, + "message_index": { + "type": "integer", + "minimum": 0, + "title": "Message Index", + "description": "Message boundary represented by the checkpoint.", + }, + "continue_from": { + "type": "integer", + "minimum": 0, + "title": "Continue From", + "description": "Value to send as continue_from when continuing the run.", + }, + "status": { + **nullable_string_schema(), + "title": "Status", + "description": "Checkpoint status or current run status.", + }, + "reason": { + "type": "string", + "title": "Reason", + "description": "Why this boundary was returned.", + }, + "created_at": { + "anyOf": [{"type": "integer"}, {"type": "null"}], + "title": "Created At", + "description": "Unix timestamp for the checkpoint or run.", + }, + "message_id": { + **nullable_string_schema(), + "title": "Message Id", + "description": "Message ID at the checkpoint boundary.", + }, + "message_role": { + **nullable_string_schema(), + "title": "Message Role", + "description": "Role of the message at the checkpoint boundary.", + }, + "message_preview": { + **nullable_string_schema(), + "title": "Message Preview", + "description": "Truncated message content at the checkpoint boundary.", + }, + "is_latest": { + "type": "boolean", + "title": "Is Latest", + "description": "Whether this is the final message boundary in the stored run.", + }, + }, + "type": "object", + "required": [ + "checkpoint_id", + "run_id", + "session_id", + "message_index", + "continue_from", + "status", + "reason", + "created_at", + "message_id", + "message_role", + "message_preview", + "is_latest", + ], + "title": "RunCheckpointEntry", + "description": "A continuation boundary derived from a stored run transcript.", + } + schemas["RunCheckpointListResponse"] = { + "properties": { + "run_id": { + "type": "string", + "title": "Run Id", + "description": "Run whose checkpoints were listed.", + }, + "session_id": { + "type": "string", + "title": "Session Id", + "description": "Session that contains the run.", + }, + "checkpoints": { + "type": "array", + "items": {"$ref": "#/components/schemas/RunCheckpointEntry"}, + "title": "Checkpoints", + "description": "Checkpoint boundaries in message order.", + }, + }, + "type": "object", + "required": ["run_id", "session_id", "checkpoints"], + "title": "RunCheckpointListResponse", + } + schemas["RunCheckpointSnapshotResponse"] = { + "properties": { + "checkpoint": {"$ref": "#/components/schemas/RunCheckpointEntry"}, + "snapshot": { + "anyOf": [ + {"$ref": "#/components/schemas/RunSchema"}, + {"$ref": "#/components/schemas/TeamRunSchema"}, + ], + "title": "Snapshot", + "description": "Agent or team run serialized at the requested message boundary.", + }, + }, + "type": "object", + "required": ["checkpoint", "snapshot"], + "title": "RunCheckpointSnapshotResponse", + } + run_endpoints = ( ("agents", "agent_id", "RunSchema"), ("teams", "team_id", "TeamRunSchema"), @@ -355,6 +488,18 @@ def get_parameter(operation: dict, name: str) -> dict: assert "schema" not in continue_sse continue_sse["schema"] = {"type": "string"} + for component, id_parameter in (("agents", "agent_id"), ("teams", "team_id")): + checkpoint_root = f"/{component}/{{{id_parameter}}}/runs/{{run_id}}/checkpoints" + list_checkpoints = spec["paths"][checkpoint_root]["get"] + list_schema = list_checkpoints["responses"]["200"]["content"]["application/json"]["schema"] + assert list_schema == {} + list_schema["$ref"] = "#/components/schemas/RunCheckpointListResponse" + + checkpoint_snapshot = spec["paths"][f"{checkpoint_root}/{{message_index}}"]["get"] + snapshot_schema = checkpoint_snapshot["responses"]["200"]["content"]["application/json"]["schema"] + assert snapshot_schema == {} + snapshot_schema["$ref"] = "#/components/schemas/RunCheckpointSnapshotResponse" + continue_agent_run = spec["paths"]["/agents/{agent_id}/runs/{run_id}/continue"]["post"] continue_agent_responses = continue_agent_run["responses"] assert continue_agent_responses["200"]["description"] == "Agent run continued successfully" @@ -1394,7 +1539,7 @@ def get_parameter(operation: dict, name: str) -> dict: for family, label in a2a_families: card_operation = spec["paths"][f"/a2a/{family}/{{id}}/.well-known/agent-card.json"]["get"] assert card_operation.get("security") is None - card_operation["security"] = [{"HTTPBearer": []}] + card_operation["security"] = [{}, {"HTTPBearer": []}] card_success = card_operation["responses"]["200"] assert card_success == { "description": "Successful Response", @@ -1426,7 +1571,7 @@ def get_parameter(operation: dict, name: str) -> dict: " Scoped non-admin callers must identify the task's session with `params.contextId`." ) assert operation.get("security") is None - operation["security"] = [{"HTTPBearer": []}] + operation["security"] = [{}, {"HTTPBearer": []}] assert "requestBody" not in operation operation["requestBody"] = { "required": True, @@ -1498,7 +1643,7 @@ def get_parameter(operation: dict, name: str) -> dict: path = f"/a2a/{family}/{{id}}/v1/message:{action}" operation = spec["paths"][path]["post"] assert operation.get("security") is None - operation["security"] = [{"HTTPBearer": []}] + operation["security"] = [{}, {"HTTPBearer": []}] assert [parameter["name"] for parameter in operation["parameters"]] == ["id"] operation["parameters"].append( { @@ -1578,7 +1723,7 @@ def get_parameter(operation: dict, name: str) -> dict: assert operation.get("deprecated") is None operation["deprecated"] = True assert operation.get("security") is None - operation["security"] = [{"HTTPBearer": []}] + operation["security"] = [{}, {"HTTPBearer": []}] assert "parameters" not in operation operation["parameters"] = [ { diff --git a/tracing/overview.mdx b/tracing/overview.mdx index 828f82ce1..e12c9fb34 100644 --- a/tracing/overview.mdx +++ b/tracing/overview.mdx @@ -33,7 +33,7 @@ As your Agno system becomes more complex (Agents using multiple tools, making se - **Audit Trail**: Track what agents did and why -All Agno Tracing data is stored in your own database. No tracing data will leave your system, or be sent to third parties: you are in complete control. +With the default database-backed setup and no external exporter, Agno stores tracing data in your own database. Configuring an external OpenTelemetry provider or exporter sends trace data to that provider. ## Understanding Traces and Spans From b693af9702f6180e5c92113188ffcd7b3ac67c10 Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 11:36:20 +0100 Subject: [PATCH 36/47] docs: finish v2.7.4 source-backed repairs --- examples/agent-os/advanced-demo/agents.mdx | 8 + examples/agent-os/advanced-demo/demo.mdx | 8 + .../agent-os/advanced-demo/teams-demo.mdx | 8 + examples/agent-os/advanced-demo/teams.mdx | 8 + .../agent-os/client-a2a/basic-messaging.mdx | 33 +- .../client-a2a/connect-to-google-adk.mdx | 2 +- .../agent-os/client-a2a/error-handling.mdx | 33 +- examples/agent-os/client-a2a/multi-turn.mdx | 33 +- examples/agent-os/client-a2a/streaming.mdx | 33 +- examples/agent-os/client/basic-client.mdx | 2 +- .../client/continue-run-sse-reconnect.mdx | 2 +- examples/agent-os/client/knowledge-search.mdx | 2 +- .../agent-os/client/memory-operations.mdx | 2 +- examples/agent-os/client/run-agents.mdx | 33 +- examples/agent-os/client/run-evals.mdx | 2 +- examples/agent-os/client/run-teams.mdx | 33 +- examples/agent-os/client/run-workflows.mdx | 33 +- .../agent-os/client/session-management.mdx | 2 +- examples/agent-os/client/sse-reconnect.mdx | 2 +- .../agent-os/client/team-sse-reconnect.mdx | 2 +- examples/agent-os/client/upload-content.mdx | 33 +- .../client/workflow-sse-reconnect.mdx | 2 +- .../factories/agent/jwt-role-factory.mdx | 8 + .../factories/agent/tiered-model-factory.mdx | 12 +- .../factories/input-schema-factory.mdx | 2 +- .../agent-os/factories/jwt-role-factory.mdx | 2 +- .../factories/team/tiered-team-factory.mdx | 12 +- .../workflow/tiered-workflow-factory.mdx | 12 +- .../agent-os/interfaces/agui/agentic-chat.mdx | 2 +- .../agui/backend-tool-rendering.mdx | 2 +- .../interfaces/agui/human-in-the-loop.mdx | 2 +- .../agent-os/interfaces/agui/shared-state.mdx | 2 +- .../agui/tool-based-generative-ui.mdx | 2 +- .../interfaces/slack/file-analyst.mdx | 8 + .../interfaces/slack/reasoning-agent.mdx | 8 + .../agentos-docling-markdown-analyst.mdx | 2 +- .../knowledge/agentos-excel-analyst.mdx | 2 +- .../agent-os/learnings/rest-api-learnings.mdx | 2 +- .../mcp-demo/custom-mcp-tool-example.mdx | 37 +- examples/agent-os/mcp-demo/test-client.mdx | 2 +- examples/agent-os/os-config/yaml-config.mdx | 2 +- .../agent-os/rbac/asymmetric/workos-byot.mdx | 8 +- .../rbac/symmetric/advanced-scopes.mdx | 4 + .../rbac/symmetric/agent-permissions.mdx | 4 + examples/agent-os/rbac/symmetric/basic.mdx | 4 + .../rbac/symmetric/custom-scope-mappings.mdx | 4 + .../rbac/symmetric/user-isolation.mdx | 4 + .../agent-os/rbac/symmetric/with-cookie.mdx | 4 + .../remote/a2a-agent-as-team-member.mdx | 2 +- examples/agent-os/remote/agent-os-gateway.mdx | 2 +- examples/agent-os/remote/remote-adk-agent.mdx | 2 +- .../remote/remote-agent-as-team-member.mdx | 2 +- examples/agent-os/remote/remote-agent.mdx | 37 +- .../agent-os/remote/remote-agno-a2a-agent.mdx | 2 +- examples/agent-os/remote/remote-team.mdx | 4 +- .../agent-os/scheduler/rest-api-schedules.mdx | 2 +- .../scheduler/schedule-management.mdx | 2 +- .../agent-os/skills/skills-with-agentos.mdx | 2 +- .../tracing/dbs/basic-agent-with-sqlite.mdx | 8 + examples/agents/advanced/sse-reconnect.mdx | 2 +- examples/agents/approvals/approval-team.mdx | 6 +- .../agents/fallback-models/basic-fallback.mdx | 8 + .../error-specific-fallbacks.mdx | 8 + .../fallback-models/fallback-callback.mdx | 8 + .../fallback-models/mid-run-fallback.mdx | 8 + examples/agents/skills/basic-skills.mdx | 2 +- examples/basics/run.mdx | 2 +- examples/components/get-agent.mdx | 2 +- examples/components/get-team.mdx | 2 +- examples/components/get-workflow.mdx | 2 +- examples/context/engineering-briefing.mdx | 2 +- examples/context/filesystem.mdx | 2 +- examples/context/multi-provider.mdx | 2 +- examples/context/workspace.mdx | 2 +- .../a2a/basic-agent/basic-agent.mdx | 2 +- .../integrations/a2a/basic-agent/client.mdx | 2 +- .../rag/agentic-rag-infinity-reranker.mdx | 10 +- .../rag/agentic-rag-with-lightrag.mdx | 2 +- .../surrealdb/custom-memory-instructions.mdx | 8 + .../building-blocks/agentic-filtering.mdx | 2 +- .../getting-started/loading-content.mdx | 2 +- examples/knowledge/integrations/cloud/aws.mdx | 4 + .../knowledge/integrations/cloud/azure.mdx | 4 + .../rag/agentic-rag-infinity-reranker.mdx | 8 + .../rag/agentic-rag-with-lightrag.mdx | 2 +- .../readers/docling/docling-audio.mdx | 2 +- .../readers/docling/docling-documents.mdx | 2 +- .../readers/docling/docling-images.mdx | 2 +- .../readers/docling/docling-input-types.mdx | 2 +- .../readers/docling/docling-markup.mdx | 2 +- .../readers/docling/docling-pdf.mdx | 2 +- .../readers/docling/docling-xlsx.mdx | 2 +- .../integrations/readers/documents.mdx | 2 +- .../knowledge/production/multi-source-rag.mdx | 2 +- examples/learning/demo/agents.mdx | 2 +- examples/models/anthropic/code-execution.mdx | 8 + examples/models/anthropic/csv-input.mdx | 8 + examples/models/anthropic/db.mdx | 8 + .../anthropic/financial-analyst-thinking.mdx | 8 + .../models/anthropic/image-input-bytes.mdx | 8 + .../anthropic/image-input-file-upload.mdx | 16 +- .../anthropic/image-input-local-file.mdx | 8 + examples/models/anthropic/image-input-url.mdx | 8 + examples/models/anthropic/knowledge.mdx | 8 + examples/models/anthropic/markdown-input.mdx | 8 + examples/models/anthropic/mcp-connector.mdx | 8 + examples/models/anthropic/memory.mdx | 6 +- examples/models/anthropic/pdf-input-bytes.mdx | 8 + .../anthropic/pdf-input-file-upload.mdx | 8 + examples/models/anthropic/pdf-input-local.mdx | 8 + examples/models/anthropic/pdf-input-url.mdx | 8 + examples/models/anthropic/prompt-caching.mdx | 8 + .../models/anthropic/pydantic-tool-input.mdx | 8 + .../anthropic/skills/agent-with-excel.mdx | 37 +- .../skills/agent-with-powerpoint.mdx | 37 +- .../anthropic/skills/multi-skill-agent.mdx | 37 +- examples/models/anthropic/thinking.mdx | 8 + examples/models/anthropic/tool-use.mdx | 8 + examples/models/anthropic/web-search.mdx | 8 + examples/models/cometapi/multi-model.mdx | 8 + .../gemini-interactions/deep-research-mcp.mdx | 8 + .../google/gemini/audio-input-file-upload.mdx | 12 + .../gemini/audio-input-local-file-upload.mdx | 4 + .../google/gemini/file-search-advanced.mdx | 2 +- .../google/gemini/file-search-basic.mdx | 2 +- .../gemini/file-search-image-upload.mdx | 4 + .../gemini/file-search-rag-pipeline.mdx | 2 +- .../google/gemini/image-input-file-upload.mdx | 21 +- examples/models/google/gemini/image-input.mdx | 8 + .../google/gemini/pdf-input-file-upload.mdx | 7 + .../google/gemini/video-input-file-upload.mdx | 15 + .../gemini/video-input-local-file-upload.mdx | 4 + examples/models/nexus/basic.mdx | 20 + examples/models/nexus/tool-use.mdx | 20 + .../responses/structured-output.mdx | 6 +- .../agents/is-9-11-bigger-than-9-9.mdx | 8 + .../models/groq/deepseek-plus-claude.mdx | 6 +- .../tools/claude-reasoning-tools.mdx | 8 + examples/storage/mongo/mongodb-for-agent.mdx | 6 +- examples/storage/mongo/mongodb-for-team.mdx | 2 +- .../teams/fallback-models/basic-fallback.mdx | 8 + .../error-specific-fallbacks.mdx | 8 + .../metrics/loop-team-and-member-metrics.mdx | 16 +- examples/teams/other/sse-reconnect.mdx | 2 +- .../reasoning-multi-purpose-team.mdx | 2 +- .../remote-agents/basic-remote-member.mdx | 4 + examples/teams/run-control/remote-team.mdx | 33 +- examples/teams/skills/basic-skills-team.mdx | 2 +- examples/tools/agentql-tools.mdx | 2 +- examples/tools/airflow-tools.mdx | 2 +- .../antigravity-directory-tools.mdx | 2 +- examples/tools/aws-lambda-tools.mdx | 2 +- examples/tools/aws-ses-tools.mdx | 2 +- examples/tools/bitbucket-tools.mdx | 2 +- examples/tools/brandfetch-tools.mdx | 2 +- examples/tools/cartesia-tools.mdx | 2 +- examples/tools/daytona-tools.mdx | 2 +- examples/tools/desi-vocal-tools.mdx | 2 +- examples/tools/docling-tools.mdx | 2 +- .../tools/docling-tools/basic-examples.mdx | 2 +- examples/tools/docling-tools/ocr-example.mdx | 2 +- examples/tools/docling-tools/paths.mdx | 2 +- examples/tools/docling-tools/run.mdx | 2 +- examples/tools/elevenlabs-tools.mdx | 2 +- examples/tools/evm-tools.mdx | 2 +- examples/tools/github-tools.mdx | 2 +- examples/tools/google-drive.mdx | 2 +- examples/tools/linear-tools.mdx | 2 +- examples/tools/mcp-tools.mdx | 2 +- examples/tools/mcp/brave.mdx | 2 +- examples/tools/mcp/filesystem.mdx | 2 +- examples/tools/mcp/groq-mcp.mdx | 2 +- examples/tools/mcp/include-tools.mdx | 2 +- .../tools/mcp/mcp-toolbox-demo/agent-os.mdx | 2 +- examples/tools/mcp/mcp-toolbox-demo/agent.mdx | 2 +- .../hotel-management-typesafe.mdx | 2 +- .../hotel-management-workflows.mdx | 2 +- examples/tools/mcp/mcp-toolbox-for-db.mdx | 2 +- examples/tools/mcp/mem0.mdx | 12 +- examples/tools/mcp/parallel.mdx | 9 +- examples/tools/mcp/sse-transport/client.mdx | 2 +- .../mcp/streamable-http-transport/client.mdx | 19 +- examples/tools/mcp/stripe.mdx | 2 +- examples/tools/mem0-tools.mdx | 2 +- examples/tools/multiple-tools.mdx | 2 +- examples/tools/nano-banana-tools.mdx | 2 +- examples/tools/neo4j-tools.mdx | 2 +- examples/tools/opencv-tools.mdx | 2 +- examples/tools/openweather-tools.mdx | 2 +- examples/tools/parallel-tools.mdx | 2 +- examples/tools/python-tools.mdx | 2 +- examples/tools/salesforce-tools.mdx | 2 +- examples/tools/seltz-tools.mdx | 2 +- examples/tools/shopify-tools.mdx | 2 +- examples/tools/spotify-tools.mdx | 8 + examples/tools/superserve-tools.mdx | 8 +- examples/tools/unsplash-tools.mdx | 2 +- examples/tools/valyu-tools.mdx | 2 +- examples/tools/visualization-tools.mdx | 2 +- examples/tools/webex-tools.mdx | 2 +- examples/tools/x-tools.mdx | 2 +- examples/tools/x402scan-mcp-tools.mdx | 8 + examples/tools/zep-tools.mdx | 2 +- .../background-execution/websocket-client.mdx | 2 +- .../long-running/disruption-catchup.mdx | 2 +- .../long-running/events-replay.mdx | 2 +- .../long-running/websocket-reconnect.mdx | 2 +- .../nested-workflow-events.mdx | 8 + .../run-control/remote-workflow.mdx | 2 +- .../workflow-with-file-input.mdx | 8 + other/cursor-rules.mdx | 6 +- reference-api/openapi.json | 2 +- reference-api/openapi.yaml | 10 + scripts/examples_sync/apply_oneoffs.py | 195 +++++++++- scripts/examples_sync/generate.py | 353 +++++++++++++++++- scripts/make_openapi.py | 16 +- tools/mcp/mcp-toolbox.mdx | 2 +- 217 files changed, 1630 insertions(+), 333 deletions(-) diff --git a/examples/agent-os/advanced-demo/agents.mdx b/examples/agent-os/advanced-demo/agents.mdx index 553ce6673..0ed747086 100644 --- a/examples/agent-os/advanced-demo/agents.mdx +++ b/examples/agent-os/advanced-demo/agents.mdx @@ -4,6 +4,10 @@ description: "Two Postgres-backed demo agents: Sage with Exa and web search, and source: cookbook/05_agent_os/advanced_demo/_agents.py --- + + Anthropic retired `claude-3-7-sonnet-latest` on February 19, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python _agents.py """ Agents @@ -215,6 +219,10 @@ if __name__ == "__main__": + + Replace `claude-3-7-sonnet-latest` with `claude-sonnet-4-6` in the saved file. + + This helper is imported by [Advanced Demo](/examples/agent-os/advanced-demo/demo). Keep it as `_agents.py` next to `demo.py`, then run the demo entry point. diff --git a/examples/agent-os/advanced-demo/demo.mdx b/examples/agent-os/advanced-demo/demo.mdx index 5a9679c2f..a7905f9ee 100644 --- a/examples/agent-os/advanced-demo/demo.mdx +++ b/examples/agent-os/advanced-demo/demo.mdx @@ -6,6 +6,10 @@ source: cookbook/05_agent_os/advanced_demo/demo.py Set the OS_SECURITY_KEY environment variable to your OS security key to enable authentication. + + Anthropic retired `claude-3-7-sonnet-latest` on February 19, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python demo.py """ AgentOS Demo @@ -338,6 +342,10 @@ if __name__ == "__main__": + + Replace `claude-3-7-sonnet-latest` with `claude-sonnet-4-6` in the saved file. + + Save the code blocks above as `demo.py`, `_agents.py`, `_teams.py` in the same directory, then run: ```bash diff --git a/examples/agent-os/advanced-demo/teams-demo.mdx b/examples/agent-os/advanced-demo/teams-demo.mdx index 9efee6810..c14946939 100644 --- a/examples/agent-os/advanced-demo/teams-demo.mdx +++ b/examples/agent-os/advanced-demo/teams-demo.mdx @@ -4,6 +4,10 @@ description: "Serve research, multimodal, and financial news teams with file, au source: cookbook/05_agent_os/advanced_demo/teams_demo.py --- + + Anthropic retired `claude-3-7-sonnet-latest` on February 19, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python teams_demo.py """ Teams Demo @@ -234,6 +238,10 @@ if __name__ == "__main__": + + Replace `claude-3-7-sonnet-latest` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `teams_demo.py`, then run: ```bash diff --git a/examples/agent-os/advanced-demo/teams.mdx b/examples/agent-os/advanced-demo/teams.mdx index cf6dc95cb..1bae2759f 100644 --- a/examples/agent-os/advanced-demo/teams.mdx +++ b/examples/agent-os/advanced-demo/teams.mdx @@ -4,6 +4,10 @@ description: "Build a finance team of web search and YFinance agents led by Clau source: cookbook/05_agent_os/advanced_demo/_teams.py --- + + Anthropic retired `claude-3-7-sonnet-latest` on February 19, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python _teams.py """ Teams @@ -90,6 +94,10 @@ if __name__ == "__main__": + + Replace `claude-3-7-sonnet-latest` with `claude-sonnet-4-6` in the saved file. + + This helper is imported by [Advanced Demo](/examples/agent-os/advanced-demo/demo). Keep it as `_teams.py` next to `demo.py`, then run the demo entry point. diff --git a/examples/agent-os/client-a2a/basic-messaging.mdx b/examples/agent-os/client-a2a/basic-messaging.mdx index 3102d2653..413fb0401 100644 --- a/examples/agent-os/client-a2a/basic-messaging.mdx +++ b/examples/agent-os/client-a2a/basic-messaging.mdx @@ -66,14 +66,41 @@ if __name__ == "__main__": ```bash - uv pip install -U agno + uv pip install -U "agno[a2a,os]" openai + ``` + + + + + ```bash Mac/Linux + export OPENAI_API_KEY="your_openai_api_key_here" + ``` + + ```bash Windows + $Env:OPENAI_API_KEY="your_openai_api_key_here" + ``` + + + + + Clone the repository and run the remaining commands from its root: + ```bash + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git + cd agno + ``` + + + + In another terminal, start the [Agno A2A server](/examples/agent-os/client-a2a/servers/agno-server) on port 7003: + ```bash + python cookbook/05_agent_os/client_a2a/servers/agno_server.py ``` - Save the code above as `basic_messaging.py`, then run: + Run the example from the repository root: ```bash - python basic_messaging.py + python cookbook/05_agent_os/client_a2a/01_basic_messaging.py ``` diff --git a/examples/agent-os/client-a2a/connect-to-google-adk.mdx b/examples/agent-os/client-a2a/connect-to-google-adk.mdx index 322b53df5..d516a356e 100644 --- a/examples/agent-os/client-a2a/connect-to-google-adk.mdx +++ b/examples/agent-os/client-a2a/connect-to-google-adk.mdx @@ -138,7 +138,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/client-a2a/error-handling.mdx b/examples/agent-os/client-a2a/error-handling.mdx index f1fe3923c..43c1022d8 100644 --- a/examples/agent-os/client-a2a/error-handling.mdx +++ b/examples/agent-os/client-a2a/error-handling.mdx @@ -146,14 +146,41 @@ if __name__ == "__main__": ```bash - uv pip install -U agno + uv pip install -U "agno[a2a,os]" openai + ``` + + + + + ```bash Mac/Linux + export OPENAI_API_KEY="your_openai_api_key_here" + ``` + + ```bash Windows + $Env:OPENAI_API_KEY="your_openai_api_key_here" + ``` + + + + + Clone the repository and run the remaining commands from its root: + ```bash + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git + cd agno + ``` + + + + In another terminal, start the [Agno A2A server](/examples/agent-os/client-a2a/servers/agno-server) on port 7003: + ```bash + python cookbook/05_agent_os/client_a2a/servers/agno_server.py ``` - Save the code above as `error_handling.py`, then run: + Run the example from the repository root: ```bash - python error_handling.py + python cookbook/05_agent_os/client_a2a/04_error_handling.py ``` diff --git a/examples/agent-os/client-a2a/multi-turn.mdx b/examples/agent-os/client-a2a/multi-turn.mdx index f5d76ee95..c2181a357 100644 --- a/examples/agent-os/client-a2a/multi-turn.mdx +++ b/examples/agent-os/client-a2a/multi-turn.mdx @@ -117,14 +117,41 @@ if __name__ == "__main__": ```bash - uv pip install -U agno + uv pip install -U "agno[a2a,os]" openai + ``` + + + + + ```bash Mac/Linux + export OPENAI_API_KEY="your_openai_api_key_here" + ``` + + ```bash Windows + $Env:OPENAI_API_KEY="your_openai_api_key_here" + ``` + + + + + Clone the repository and run the remaining commands from its root: + ```bash + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git + cd agno + ``` + + + + In another terminal, start the [Agno A2A server](/examples/agent-os/client-a2a/servers/agno-server) on port 7003: + ```bash + python cookbook/05_agent_os/client_a2a/servers/agno_server.py ``` - Save the code above as `multi_turn.py`, then run: + Run the example from the repository root: ```bash - python multi_turn.py + python cookbook/05_agent_os/client_a2a/03_multi_turn.py ``` diff --git a/examples/agent-os/client-a2a/streaming.mdx b/examples/agent-os/client-a2a/streaming.mdx index d42e0ad9c..c4e0230b8 100644 --- a/examples/agent-os/client-a2a/streaming.mdx +++ b/examples/agent-os/client-a2a/streaming.mdx @@ -88,14 +88,41 @@ if __name__ == "__main__": ```bash - uv pip install -U agno + uv pip install -U "agno[a2a,os]" openai + ``` + + + + + ```bash Mac/Linux + export OPENAI_API_KEY="your_openai_api_key_here" + ``` + + ```bash Windows + $Env:OPENAI_API_KEY="your_openai_api_key_here" + ``` + + + + + Clone the repository and run the remaining commands from its root: + ```bash + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git + cd agno + ``` + + + + In another terminal, start the [Agno A2A server](/examples/agent-os/client-a2a/servers/agno-server) on port 7003: + ```bash + python cookbook/05_agent_os/client_a2a/servers/agno_server.py ``` - Save the code above as `streaming.py`, then run: + Run the example from the repository root: ```bash - python streaming.py + python cookbook/05_agent_os/client_a2a/02_streaming.py ``` diff --git a/examples/agent-os/client/basic-client.mdx b/examples/agent-os/client/basic-client.mdx index 6eec32f21..bb871df2c 100644 --- a/examples/agent-os/client/basic-client.mdx +++ b/examples/agent-os/client/basic-client.mdx @@ -95,7 +95,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/client/continue-run-sse-reconnect.mdx b/examples/agent-os/client/continue-run-sse-reconnect.mdx index e3c1f1e59..4331cc694 100644 --- a/examples/agent-os/client/continue-run-sse-reconnect.mdx +++ b/examples/agent-os/client/continue-run-sse-reconnect.mdx @@ -319,7 +319,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/client/knowledge-search.mdx b/examples/agent-os/client/knowledge-search.mdx index c929f036f..d1dc1d6c0 100644 --- a/examples/agent-os/client/knowledge-search.mdx +++ b/examples/agent-os/client/knowledge-search.mdx @@ -113,7 +113,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/client/memory-operations.mdx b/examples/agent-os/client/memory-operations.mdx index a6ccc3c37..6ab3dcedb 100644 --- a/examples/agent-os/client/memory-operations.mdx +++ b/examples/agent-os/client/memory-operations.mdx @@ -124,7 +124,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/client/run-agents.mdx b/examples/agent-os/client/run-agents.mdx index b9938e2af..1c84c5ca7 100644 --- a/examples/agent-os/client/run-agents.mdx +++ b/examples/agent-os/client/run-agents.mdx @@ -108,14 +108,41 @@ if __name__ == "__main__": ```bash - uv pip install -U agno fastapi + uv pip install -U "agno[os]" chromadb ddgs openai + ``` + + + + + ```bash Mac/Linux + export OPENAI_API_KEY="your_openai_api_key_here" + ``` + + ```bash Windows + $Env:OPENAI_API_KEY="your_openai_api_key_here" + ``` + + + + + Clone the repository and run the remaining commands from its root: + ```bash + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git + cd agno + ``` + + + + In another terminal, start the [client example server](/examples/agent-os/client/server) on port 7777: + ```bash + python cookbook/05_agent_os/client/server.py ``` - Save the code above as `run_agents.py`, then run: + Run the example from the repository root: ```bash - python run_agents.py + python cookbook/05_agent_os/client/02_run_agents.py ``` diff --git a/examples/agent-os/client/run-evals.mdx b/examples/agent-os/client/run-evals.mdx index 7b118a848..bf2616b21 100644 --- a/examples/agent-os/client/run-evals.mdx +++ b/examples/agent-os/client/run-evals.mdx @@ -241,7 +241,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/client/run-teams.mdx b/examples/agent-os/client/run-teams.mdx index 9ea9bf531..0fd647c49 100644 --- a/examples/agent-os/client/run-teams.mdx +++ b/examples/agent-os/client/run-teams.mdx @@ -107,14 +107,41 @@ if __name__ == "__main__": ```bash - uv pip install -U agno fastapi + uv pip install -U "agno[os]" chromadb ddgs openai + ``` + + + + + ```bash Mac/Linux + export OPENAI_API_KEY="your_openai_api_key_here" + ``` + + ```bash Windows + $Env:OPENAI_API_KEY="your_openai_api_key_here" + ``` + + + + + Clone the repository and run the remaining commands from its root: + ```bash + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git + cd agno + ``` + + + + In another terminal, start the [client example server](/examples/agent-os/client/server) on port 7777: + ```bash + python cookbook/05_agent_os/client/server.py ``` - Save the code above as `run_teams.py`, then run: + Run the example from the repository root: ```bash - python run_teams.py + python cookbook/05_agent_os/client/06_run_teams.py ``` diff --git a/examples/agent-os/client/run-workflows.mdx b/examples/agent-os/client/run-workflows.mdx index 8c0ccafc9..709477d52 100644 --- a/examples/agent-os/client/run-workflows.mdx +++ b/examples/agent-os/client/run-workflows.mdx @@ -117,14 +117,41 @@ if __name__ == "__main__": ```bash - uv pip install -U agno fastapi + uv pip install -U "agno[os]" chromadb ddgs openai + ``` + + + + + ```bash Mac/Linux + export OPENAI_API_KEY="your_openai_api_key_here" + ``` + + ```bash Windows + $Env:OPENAI_API_KEY="your_openai_api_key_here" + ``` + + + + + Clone the repository and run the remaining commands from its root: + ```bash + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git + cd agno + ``` + + + + In another terminal, start the [client example server](/examples/agent-os/client/server) on port 7777: + ```bash + python cookbook/05_agent_os/client/server.py ``` - Save the code above as `run_workflows.py`, then run: + Run the example from the repository root: ```bash - python run_workflows.py + python cookbook/05_agent_os/client/07_run_workflows.py ``` diff --git a/examples/agent-os/client/session-management.mdx b/examples/agent-os/client/session-management.mdx index 600787f27..e94b20d82 100644 --- a/examples/agent-os/client/session-management.mdx +++ b/examples/agent-os/client/session-management.mdx @@ -141,7 +141,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/client/sse-reconnect.mdx b/examples/agent-os/client/sse-reconnect.mdx index df772eb36..be00065e5 100644 --- a/examples/agent-os/client/sse-reconnect.mdx +++ b/examples/agent-os/client/sse-reconnect.mdx @@ -264,7 +264,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/client/team-sse-reconnect.mdx b/examples/agent-os/client/team-sse-reconnect.mdx index 3ae0b8c5d..40a25b246 100644 --- a/examples/agent-os/client/team-sse-reconnect.mdx +++ b/examples/agent-os/client/team-sse-reconnect.mdx @@ -264,7 +264,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/client/upload-content.mdx b/examples/agent-os/client/upload-content.mdx index e30f82aa3..694c9649c 100644 --- a/examples/agent-os/client/upload-content.mdx +++ b/examples/agent-os/client/upload-content.mdx @@ -184,14 +184,41 @@ if __name__ == "__main__": ```bash - uv pip install -U agno fastapi + uv pip install -U "agno[os]" chromadb ddgs openai + ``` + + + + + ```bash Mac/Linux + export OPENAI_API_KEY="your_openai_api_key_here" + ``` + + ```bash Windows + $Env:OPENAI_API_KEY="your_openai_api_key_here" + ``` + + + + + Clone the repository and run the remaining commands from its root: + ```bash + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git + cd agno + ``` + + + + In another terminal, start the [client example server](/examples/agent-os/client/server) on port 7777: + ```bash + python cookbook/05_agent_os/client/server.py ``` - Save the code above as `upload_content.py`, then run: + Run the example from the repository root: ```bash - python upload_content.py + python cookbook/05_agent_os/client/09_upload_content.py ``` diff --git a/examples/agent-os/client/workflow-sse-reconnect.mdx b/examples/agent-os/client/workflow-sse-reconnect.mdx index 6458f5238..03c565cae 100644 --- a/examples/agent-os/client/workflow-sse-reconnect.mdx +++ b/examples/agent-os/client/workflow-sse-reconnect.mdx @@ -266,7 +266,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/factories/agent/jwt-role-factory.mdx b/examples/agent-os/factories/agent/jwt-role-factory.mdx index a4623d3be..3d9870561 100644 --- a/examples/agent-os/factories/agent/jwt-role-factory.mdx +++ b/examples/agent-os/factories/agent/jwt-role-factory.mdx @@ -4,6 +4,10 @@ description: "JWT-Driven Factory -- RBAC tool grants from trusted claims." source: cookbook/05_agent_os/factories/agent/03_jwt_role_factory.py --- + + The pinned source reads authorization decisions from `ctx.trusted.claims` while `JWTMiddleware(validate=False)` disables signature verification. A caller can forge the role claim until validation is enabled. + + ```python 03_jwt_role_factory.py """JWT-Driven Factory -- RBAC tool grants from trusted claims. @@ -210,6 +214,10 @@ if __name__ == "__main__": + + Change `validate=False` to `validate=True`. Replace the hard-coded `JWT_SECRET` assignment with `JWT_SECRET = os.environ["JWT_VERIFICATION_KEY"]`, add `import os`, and export a unique 32-byte secret before starting the server. + + Save the code above as `03_jwt_role_factory.py`, then run: ```bash diff --git a/examples/agent-os/factories/agent/tiered-model-factory.mdx b/examples/agent-os/factories/agent/tiered-model-factory.mdx index 526057840..d0189eb85 100644 --- a/examples/agent-os/factories/agent/tiered-model-factory.mdx +++ b/examples/agent-os/factories/agent/tiered-model-factory.mdx @@ -4,6 +4,10 @@ description: "Tiered Model Factory -- model selection based on subscription tier source: cookbook/05_agent_os/factories/agent/04_tiered_model_factory.py --- + + This example reads authorization decisions from `ctx.trusted.claims` while `JWTMiddleware(validate=False)` disables signature verification. A caller can forge the role or tier claim until validation is enabled. + + ```python 04_tiered_model_factory.py """Tiered Model Factory -- model selection based on subscription tier. @@ -152,13 +156,15 @@ if __name__ == "__main__": ``` - + ```bash Mac/Linux + export JWT_VERIFICATION_KEY="your_jwt_verification_key_here" export OPENAI_API_KEY="your_openai_api_key_here" ``` ```bash Windows + $Env:JWT_VERIFICATION_KEY="your_jwt_verification_key_here" $Env:OPENAI_API_KEY="your_openai_api_key_here" ``` @@ -166,6 +172,10 @@ if __name__ == "__main__": + + Change `validate=False` to `validate=True`. Replace the hard-coded `JWT_SECRET` assignment with `JWT_SECRET = os.environ["JWT_VERIFICATION_KEY"]`, add `import os`, and export a unique 32-byte secret before starting the server. + + Save the code above as `04_tiered_model_factory.py`, then run: ```bash diff --git a/examples/agent-os/factories/input-schema-factory.mdx b/examples/agent-os/factories/input-schema-factory.mdx index 77cc11805..02761f3e3 100644 --- a/examples/agent-os/factories/input-schema-factory.mdx +++ b/examples/agent-os/factories/input-schema-factory.mdx @@ -100,7 +100,7 @@ if __name__ == "__main__": ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/agent-os/factories/jwt-role-factory.mdx b/examples/agent-os/factories/jwt-role-factory.mdx index 7970204c5..81b63f0dd 100644 --- a/examples/agent-os/factories/jwt-role-factory.mdx +++ b/examples/agent-os/factories/jwt-role-factory.mdx @@ -214,7 +214,7 @@ if __name__ == "__main__": ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/agent-os/factories/team/tiered-team-factory.mdx b/examples/agent-os/factories/team/tiered-team-factory.mdx index 97edcb9fd..bfc5cb73d 100644 --- a/examples/agent-os/factories/team/tiered-team-factory.mdx +++ b/examples/agent-os/factories/team/tiered-team-factory.mdx @@ -4,6 +4,10 @@ description: "Tiered Team Factory -- team size and model quality based on subscr source: cookbook/05_agent_os/factories/team/02_tiered_team_factory.py --- + + This example reads authorization decisions from `ctx.trusted.claims` while `JWTMiddleware(validate=False)` disables signature verification. A caller can forge the role or tier claim until validation is enabled. + + ```python 02_tiered_team_factory.py """Tiered Team Factory -- team size and model quality based on subscription. @@ -172,13 +176,15 @@ if __name__ == "__main__": ``` - + ```bash Mac/Linux + export JWT_VERIFICATION_KEY="your_jwt_verification_key_here" export OPENAI_API_KEY="your_openai_api_key_here" ``` ```bash Windows + $Env:JWT_VERIFICATION_KEY="your_jwt_verification_key_here" $Env:OPENAI_API_KEY="your_openai_api_key_here" ``` @@ -186,6 +192,10 @@ if __name__ == "__main__": + + Change `validate=False` to `validate=True`. Replace the hard-coded `JWT_SECRET` assignment with `JWT_SECRET = os.environ["JWT_VERIFICATION_KEY"]`, add `import os`, and export a unique 32-byte secret before starting the server. + + Save the code above as `02_tiered_team_factory.py`, then run: ```bash diff --git a/examples/agent-os/factories/workflow/tiered-workflow-factory.mdx b/examples/agent-os/factories/workflow/tiered-workflow-factory.mdx index ad3668991..cf11b99f2 100644 --- a/examples/agent-os/factories/workflow/tiered-workflow-factory.mdx +++ b/examples/agent-os/factories/workflow/tiered-workflow-factory.mdx @@ -4,6 +4,10 @@ description: "Build subscription-specific workflow pipelines with a WorkflowFact source: cookbook/05_agent_os/factories/workflow/02_tiered_workflow_factory.py --- + + This example reads authorization decisions from `ctx.trusted.claims` while `JWTMiddleware(validate=False)` disables signature verification. A caller can forge the role or tier claim until validation is enabled. + + ```python 02_tiered_workflow_factory.py """Tiered Workflow Factory -- pipeline depth based on subscription. @@ -166,13 +170,15 @@ if __name__ == "__main__": ``` - + ```bash Mac/Linux + export JWT_VERIFICATION_KEY="your_jwt_verification_key_here" export OPENAI_API_KEY="your_openai_api_key_here" ``` ```bash Windows + $Env:JWT_VERIFICATION_KEY="your_jwt_verification_key_here" $Env:OPENAI_API_KEY="your_openai_api_key_here" ``` @@ -180,6 +186,10 @@ if __name__ == "__main__": + + Change `validate=False` to `validate=True`. Replace the hard-coded `JWT_SECRET` assignment with `JWT_SECRET = os.environ["JWT_VERIFICATION_KEY"]`, add `import os`, and export a unique 32-byte secret before starting the server. + + Save the code above as `02_tiered_workflow_factory.py`, then run: ```bash diff --git a/examples/agent-os/interfaces/agui/agentic-chat.mdx b/examples/agent-os/interfaces/agui/agentic-chat.mdx index ec30e5b58..5da4e01a9 100644 --- a/examples/agent-os/interfaces/agui/agentic-chat.mdx +++ b/examples/agent-os/interfaces/agui/agentic-chat.mdx @@ -125,7 +125,7 @@ Be helpful and use tools when appropriate.""", Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/interfaces/agui/backend-tool-rendering.mdx b/examples/agent-os/interfaces/agui/backend-tool-rendering.mdx index d77c490e8..f530075e4 100644 --- a/examples/agent-os/interfaces/agui/backend-tool-rendering.mdx +++ b/examples/agent-os/interfaces/agui/backend-tool-rendering.mdx @@ -116,7 +116,7 @@ The tool returns structured data that the frontend will render as a weather card Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/interfaces/agui/human-in-the-loop.mdx b/examples/agent-os/interfaces/agui/human-in-the-loop.mdx index bfac39214..7c5ea81c3 100644 --- a/examples/agent-os/interfaces/agui/human-in-the-loop.mdx +++ b/examples/agent-os/interfaces/agui/human-in-the-loop.mdx @@ -86,7 +86,7 @@ When user provides feedback (after clicking "Perform Steps"): Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/interfaces/agui/shared-state.mdx b/examples/agent-os/interfaces/agui/shared-state.mdx index 67294405b..fec56c079 100644 --- a/examples/agent-os/interfaces/agui/shared-state.mdx +++ b/examples/agent-os/interfaces/agui/shared-state.mdx @@ -100,7 +100,7 @@ Example: To add an ingredient, include the existing ingredients plus the new one Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/interfaces/agui/tool-based-generative-ui.mdx b/examples/agent-os/interfaces/agui/tool-based-generative-ui.mdx index fb37a4508..e199e6f4c 100644 --- a/examples/agent-os/interfaces/agui/tool-based-generative-ui.mdx +++ b/examples/agent-os/interfaces/agui/tool-based-generative-ui.mdx @@ -115,7 +115,7 @@ The frontend will render your haiku with the image and gradient as a beautiful c Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/interfaces/slack/file-analyst.mdx b/examples/agent-os/interfaces/slack/file-analyst.mdx index d3e604d2c..b1c0c4571 100644 --- a/examples/agent-os/interfaces/slack/file-analyst.mdx +++ b/examples/agent-os/interfaces/slack/file-analyst.mdx @@ -4,6 +4,10 @@ description: "An agent that downloads files shared in Slack, analyzes their cont source: cookbook/05_agent_os/interfaces/slack/file_analyst.py --- + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python file_analyst.py """ File Analyst @@ -109,6 +113,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Complete [Slack setup](/agent-os/interfaces/slack/setup): create and install the app, expose the server through public HTTPS, and add the scopes listed in the example. The default event request URL is `/slack/events`; HITL examples also use `/slack/interactions` for interactivity. Use any custom prefix shown in the example instead of `/slack`. diff --git a/examples/agent-os/interfaces/slack/reasoning-agent.mdx b/examples/agent-os/interfaces/slack/reasoning-agent.mdx index 5a60a2d2f..e5cd3bc21 100644 --- a/examples/agent-os/interfaces/slack/reasoning-agent.mdx +++ b/examples/agent-os/interfaces/slack/reasoning-agent.mdx @@ -6,6 +6,10 @@ source: cookbook/05_agent_os/interfaces/slack/reasoning_agent.py An agent with ReasoningTools that thinks step-by-step before answering. Combines structured reasoning with web search for finance questions. + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python reasoning_agent.py """ Reasoning Agent @@ -100,6 +104,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Complete [Slack setup](/agent-os/interfaces/slack/setup): create and install the app, expose the server through public HTTPS, and add the scopes listed in the example. The default event request URL is `/slack/events`; HITL examples also use `/slack/interactions` for interactivity. Use any custom prefix shown in the example instead of `/slack`. diff --git a/examples/agent-os/knowledge/agentos-docling-markdown-analyst.mdx b/examples/agent-os/knowledge/agentos-docling-markdown-analyst.mdx index 06b22c694..475c9a0f0 100644 --- a/examples/agent-os/knowledge/agentos-docling-markdown-analyst.mdx +++ b/examples/agent-os/knowledge/agentos-docling-markdown-analyst.mdx @@ -115,7 +115,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/knowledge/agentos-excel-analyst.mdx b/examples/agent-os/knowledge/agentos-excel-analyst.mdx index 6414a9c53..5dff6f3c7 100644 --- a/examples/agent-os/knowledge/agentos-excel-analyst.mdx +++ b/examples/agent-os/knowledge/agentos-excel-analyst.mdx @@ -116,7 +116,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/learnings/rest-api-learnings.mdx b/examples/agent-os/learnings/rest-api-learnings.mdx index aeba4b725..c9f15a8ca 100644 --- a/examples/agent-os/learnings/rest-api-learnings.mdx +++ b/examples/agent-os/learnings/rest-api-learnings.mdx @@ -204,7 +204,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/mcp-demo/custom-mcp-tool-example.mdx b/examples/agent-os/mcp-demo/custom-mcp-tool-example.mdx index a14b3ff36..c23694c94 100644 --- a/examples/agent-os/mcp-demo/custom-mcp-tool-example.mdx +++ b/examples/agent-os/mcp-demo/custom-mcp-tool-example.mdx @@ -4,6 +4,10 @@ description: "AgentOS app that exposes ONE custom MCP tool routed through an age source: cookbook/05_agent_os/mcp_demo/custom_mcp_tool_example.py --- + + This example defines an owner-only `authorize` callback without configuring JWT or MCP OAuth. Agno v2.7.4 therefore supplies `user_id=None` and rejects every MCP tool call. + + ```python custom_mcp_tool_example.py """ AgentOS app that exposes ONE custom MCP tool routed through an agent, with the @@ -103,35 +107,8 @@ if __name__ == "__main__": agent_os.serve(app="custom_mcp_tool_example:app") ``` -## Run the Example - - - - - - ```bash - uv pip install -U "agno[mcp,os]" openai - ``` - - - - - ```bash Mac/Linux - export OPENAI_API_KEY="your_openai_api_key_here" - ``` - - ```bash Windows - $Env:OPENAI_API_KEY="your_openai_api_key_here" - ``` - - - - - Save the code above as `custom_mcp_tool_example.py`, then run: - ```bash - python custom_mcp_tool_example.py - ``` - - +## Add MCP Authentication + +Start with [Built-in OAuth](/examples/agent-os/mcp-demo/oauth-builtin-example) or [WorkOS AuthKit OAuth](/examples/agent-os/mcp-demo/oauth-authkit-example). Add this source's custom `tools`, `enable_builtin_tools=False`, and `authorize` settings only after the MCP auth provider supplies a verified caller ID that matches `OWNER_IDS`. Full source: [cookbook/05_agent_os/mcp_demo/custom_mcp_tool_example.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/mcp_demo/custom_mcp_tool_example.py) diff --git a/examples/agent-os/mcp-demo/test-client.mdx b/examples/agent-os/mcp-demo/test-client.mdx index c95f219b3..0bd91d747 100644 --- a/examples/agent-os/mcp-demo/test-client.mdx +++ b/examples/agent-os/mcp-demo/test-client.mdx @@ -113,7 +113,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/os-config/yaml-config.mdx b/examples/agent-os/os-config/yaml-config.mdx index a78bb6b04..37b0dd2cf 100644 --- a/examples/agent-os/os-config/yaml-config.mdx +++ b/examples/agent-os/os-config/yaml-config.mdx @@ -135,7 +135,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/rbac/asymmetric/workos-byot.mdx b/examples/agent-os/rbac/asymmetric/workos-byot.mdx index 6730897f1..43e967fb9 100644 --- a/examples/agent-os/rbac/asymmetric/workos-byot.mdx +++ b/examples/agent-os/rbac/asymmetric/workos-byot.mdx @@ -4,6 +4,10 @@ description: "WorkOS BYOT with AgentOS - 3 roles, real WorkOS tokens, RBAC provi source: cookbook/05_agent_os/rbac/asymmetric/workos_byot.py --- + + Run this source only in an isolated WorkOS environment. It overwrites the permissions for the generic `admin`, `member`, and `viewer` roles. It also creates or reuses three fixed demo email addresses and resets their passwords to a published demo value. + + ```python workos_byot.py """ WorkOS BYOT with AgentOS - 3 roles, real WorkOS tokens, RBAC provisioned via API @@ -291,8 +295,8 @@ if __name__ == "__main__": - - In the WorkOS dashboard, enable RBAC and Email + Password authentication. Use `WORKOS_API_KEY` and `WORKOS_CLIENT_ID` from the same WorkOS environment. + + Use a disposable environment that contains no shared roles or users. Enable RBAC and Email + Password authentication, then use `WORKOS_API_KEY` and `WORKOS_CLIENT_ID` from that same environment. diff --git a/examples/agent-os/rbac/symmetric/advanced-scopes.mdx b/examples/agent-os/rbac/symmetric/advanced-scopes.mdx index fc7011b3c..cddd0ef60 100644 --- a/examples/agent-os/rbac/symmetric/advanced-scopes.mdx +++ b/examples/agent-os/rbac/symmetric/advanced-scopes.mdx @@ -304,6 +304,10 @@ AUDIENCE VERIFICATION: ## Run the Example + + The source falls back to a public demonstration secret. Local demos can use it, but before exposing this server set `JWT_VERIFICATION_KEY` to a private random value of at least 32 bytes and use the same value to sign tokens. + + diff --git a/examples/agent-os/rbac/symmetric/agent-permissions.mdx b/examples/agent-os/rbac/symmetric/agent-permissions.mdx index b7e7f7370..f28e9a3ca 100644 --- a/examples/agent-os/rbac/symmetric/agent-permissions.mdx +++ b/examples/agent-os/rbac/symmetric/agent-permissions.mdx @@ -149,6 +149,10 @@ if __name__ == "__main__": ## Run the Example + + The source falls back to a public demonstration secret. Local demos can use it, but before exposing this server set `JWT_VERIFICATION_KEY` to a private random value of at least 32 bytes and use the same value to sign tokens. + + diff --git a/examples/agent-os/rbac/symmetric/basic.mdx b/examples/agent-os/rbac/symmetric/basic.mdx index 6abd0953b..bf5831c58 100644 --- a/examples/agent-os/rbac/symmetric/basic.mdx +++ b/examples/agent-os/rbac/symmetric/basic.mdx @@ -139,6 +139,10 @@ if __name__ == "__main__": ## Run the Example + + The source falls back to a public demonstration secret. Local demos can use it, but before exposing this server set `JWT_VERIFICATION_KEY` to a private random value of at least 32 bytes and use the same value to sign tokens. + + diff --git a/examples/agent-os/rbac/symmetric/custom-scope-mappings.mdx b/examples/agent-os/rbac/symmetric/custom-scope-mappings.mdx index 690a020b1..470c6a957 100644 --- a/examples/agent-os/rbac/symmetric/custom-scope-mappings.mdx +++ b/examples/agent-os/rbac/symmetric/custom-scope-mappings.mdx @@ -171,6 +171,10 @@ if __name__ == "__main__": ## Run the Example + + The source falls back to a public demonstration secret. Local demos can use it, but before exposing this server set `JWT_VERIFICATION_KEY` to a private random value of at least 32 bytes and use the same value to sign tokens. + + diff --git a/examples/agent-os/rbac/symmetric/user-isolation.mdx b/examples/agent-os/rbac/symmetric/user-isolation.mdx index 8c2a6eab2..1678c4ba6 100644 --- a/examples/agent-os/rbac/symmetric/user-isolation.mdx +++ b/examples/agent-os/rbac/symmetric/user-isolation.mdx @@ -179,6 +179,10 @@ if __name__ == "__main__": ## Run the Example + + The source falls back to a public demonstration secret. Local demos can use it, but before exposing this server set `JWT_VERIFICATION_KEY` to a private random value of at least 32 bytes and use the same value to sign tokens. + + diff --git a/examples/agent-os/rbac/symmetric/with-cookie.mdx b/examples/agent-os/rbac/symmetric/with-cookie.mdx index 5d62023a1..83d660d14 100644 --- a/examples/agent-os/rbac/symmetric/with-cookie.mdx +++ b/examples/agent-os/rbac/symmetric/with-cookie.mdx @@ -203,6 +203,10 @@ if __name__ == "__main__": ## Run the Example + + The source falls back to a public demonstration secret. Local demos can use it, but before exposing this server set `JWT_VERIFICATION_KEY` to a private random value of at least 32 bytes and use the same value to sign tokens. + + diff --git a/examples/agent-os/remote/a2a-agent-as-team-member.mdx b/examples/agent-os/remote/a2a-agent-as-team-member.mdx index 0006fd06b..078d08cd6 100644 --- a/examples/agent-os/remote/a2a-agent-as-team-member.mdx +++ b/examples/agent-os/remote/a2a-agent-as-team-member.mdx @@ -113,7 +113,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/remote/agent-os-gateway.mdx b/examples/agent-os/remote/agent-os-gateway.mdx index 1008cab91..04f5dd737 100644 --- a/examples/agent-os/remote/agent-os-gateway.mdx +++ b/examples/agent-os/remote/agent-os-gateway.mdx @@ -212,7 +212,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/remote/remote-adk-agent.mdx b/examples/agent-os/remote/remote-adk-agent.mdx index 05383d25a..ec6d0e843 100644 --- a/examples/agent-os/remote/remote-adk-agent.mdx +++ b/examples/agent-os/remote/remote-adk-agent.mdx @@ -147,7 +147,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/remote/remote-agent-as-team-member.mdx b/examples/agent-os/remote/remote-agent-as-team-member.mdx index 89bf04e7e..8ce8f33bd 100644 --- a/examples/agent-os/remote/remote-agent-as-team-member.mdx +++ b/examples/agent-os/remote/remote-agent-as-team-member.mdx @@ -113,7 +113,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/remote/remote-agent.mdx b/examples/agent-os/remote/remote-agent.mdx index 6fab1c518..6283f2bef 100644 --- a/examples/agent-os/remote/remote-agent.mdx +++ b/examples/agent-os/remote/remote-agent.mdx @@ -4,6 +4,10 @@ description: "Call an agent hosted on another AgentOS with RemoteAgent, in both source: cookbook/05_agent_os/remote/01_remote_agent.py --- + + This example docstring names removed `agent_os_setup.py` and `AgentOSRunner`. Start `server.py` in the generated Run step below; this example uses `RemoteAgent`. + + ```python remote_agent.py """ Examples demonstrating AgentOSRunner for remote execution. @@ -85,14 +89,41 @@ if __name__ == "__main__": ```bash - uv pip install -U agno + uv pip install -U "agno[os]" chromadb ddgs openai + ``` + + + + + ```bash Mac/Linux + export OPENAI_API_KEY="your_openai_api_key_here" + ``` + + ```bash Windows + $Env:OPENAI_API_KEY="your_openai_api_key_here" + ``` + + + + + Clone the repository and run the remaining commands from its root: + ```bash + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git + cd agno + ``` + + + + In another terminal, start the [remote AgentOS server](/examples/agent-os/remote/server) on port 7778: + ```bash + python cookbook/05_agent_os/remote/server.py ``` - Save the code above as `remote_agent.py`, then run: + Run the example from the repository root: ```bash - python remote_agent.py + python cookbook/05_agent_os/remote/01_remote_agent.py ``` diff --git a/examples/agent-os/remote/remote-agno-a2a-agent.mdx b/examples/agent-os/remote/remote-agno-a2a-agent.mdx index 161723ca9..db2644b8b 100644 --- a/examples/agent-os/remote/remote-agno-a2a-agent.mdx +++ b/examples/agent-os/remote/remote-agno-a2a-agent.mdx @@ -147,7 +147,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/remote/remote-team.mdx b/examples/agent-os/remote/remote-team.mdx index 7a31cae7c..4273ffff3 100644 --- a/examples/agent-os/remote/remote-team.mdx +++ b/examples/agent-os/remote/remote-team.mdx @@ -107,13 +107,13 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` - In another terminal, start the server on port 7778: + In another terminal, start the [remote AgentOS server](/examples/agent-os/remote/server) on port 7778: ```bash python cookbook/05_agent_os/remote/server.py ``` diff --git a/examples/agent-os/scheduler/rest-api-schedules.mdx b/examples/agent-os/scheduler/rest-api-schedules.mdx index 44af933d9..03af14176 100644 --- a/examples/agent-os/scheduler/rest-api-schedules.mdx +++ b/examples/agent-os/scheduler/rest-api-schedules.mdx @@ -193,7 +193,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/scheduler/schedule-management.mdx b/examples/agent-os/scheduler/schedule-management.mdx index 39dfedcf0..581885190 100644 --- a/examples/agent-os/scheduler/schedule-management.mdx +++ b/examples/agent-os/scheduler/schedule-management.mdx @@ -150,7 +150,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/skills/skills-with-agentos.mdx b/examples/agent-os/skills/skills-with-agentos.mdx index 20bd5c78d..376ae2ff2 100644 --- a/examples/agent-os/skills/skills-with-agentos.mdx +++ b/examples/agent-os/skills/skills-with-agentos.mdx @@ -77,7 +77,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agent-os/tracing/dbs/basic-agent-with-sqlite.mdx b/examples/agent-os/tracing/dbs/basic-agent-with-sqlite.mdx index 384310733..3c70b0e35 100644 --- a/examples/agent-os/tracing/dbs/basic-agent-with-sqlite.mdx +++ b/examples/agent-os/tracing/dbs/basic-agent-with-sqlite.mdx @@ -4,6 +4,10 @@ description: "Store agent traces in SQLite by pairing SqliteDb with tracing=True source: cookbook/05_agent_os/tracing/dbs/basic_agent_with_sqlite.py --- + + This example tells Uvicorn to import `basic_agent_with_postgresdb:app`, but the saved module is `basic_agent_with_sqlite.py`. Replace the module name before running. + + ```python basic_agent_with_sqlite.py """ Traces with AgentOS using SqliteDb @@ -73,6 +77,10 @@ if __name__ == "__main__": + + Replace `basic_agent_with_postgresdb:app` with `basic_agent_with_sqlite:app` in the saved file. + + Save the code above as `basic_agent_with_sqlite.py`, then run: ```bash diff --git a/examples/agents/advanced/sse-reconnect.mdx b/examples/agents/advanced/sse-reconnect.mdx index 2a368fdd2..5575d81bc 100644 --- a/examples/agents/advanced/sse-reconnect.mdx +++ b/examples/agents/advanced/sse-reconnect.mdx @@ -248,7 +248,7 @@ if __name__ == "__main__": ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/agents/approvals/approval-team.mdx b/examples/agents/approvals/approval-team.mdx index 358590011..50ac0f5ee 100644 --- a/examples/agents/approvals/approval-team.mdx +++ b/examples/agents/approvals/approval-team.mdx @@ -88,7 +88,7 @@ if __name__ == "__main__": ### Run the Example ```bash # Clone and set up the repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate the demo virtual environment @@ -197,7 +197,7 @@ if __name__ == "__main__": ### Run the Example ```bash # Clone and set up the repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate the demo virtual environment @@ -331,7 +331,7 @@ if __name__ == "__main__": ### Run the Example ```bash # Clone and set up the repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate the demo virtual environment diff --git a/examples/agents/fallback-models/basic-fallback.mdx b/examples/agents/fallback-models/basic-fallback.mdx index a922b84fa..07e60fbdb 100644 --- a/examples/agents/fallback-models/basic-fallback.mdx +++ b/examples/agents/fallback-models/basic-fallback.mdx @@ -4,6 +4,10 @@ description: "When the primary model fails (after exhausting its own retries), f source: cookbook/02_agents/17_fallback_models/01_basic_fallback.py --- + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python basic_fallback.py """ Fallback Models — Basic @@ -59,6 +63,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `basic_fallback.py`, then run: ```bash diff --git a/examples/agents/fallback-models/error-specific-fallbacks.mdx b/examples/agents/fallback-models/error-specific-fallbacks.mdx index ccfd43168..c70a711f1 100644 --- a/examples/agents/fallback-models/error-specific-fallbacks.mdx +++ b/examples/agents/fallback-models/error-specific-fallbacks.mdx @@ -4,6 +4,10 @@ description: "Use FallbackConfig for error-specific fallback routing." source: cookbook/02_agents/17_fallback_models/02_error_specific_fallbacks.py --- + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python error_specific_fallbacks.py """ Fallback Models — Error-Specific @@ -78,6 +82,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `error_specific_fallbacks.py`, then run: ```bash diff --git a/examples/agents/fallback-models/fallback-callback.mdx b/examples/agents/fallback-models/fallback-callback.mdx index 1885b5402..c73de34ba 100644 --- a/examples/agents/fallback-models/fallback-callback.mdx +++ b/examples/agents/fallback-models/fallback-callback.mdx @@ -6,6 +6,10 @@ source: cookbook/02_agents/17_fallback_models/04_fallback_callback.py Use the ``callback`` parameter on FallbackConfig to get notified when a fallback model is activated. This is useful for metrics, alerting, or logging which model actually served a request. + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python fallback_callback.py """ Fallback Models — Callback Notification @@ -77,6 +81,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `fallback_callback.py`, then run: ```bash diff --git a/examples/agents/fallback-models/mid-run-fallback.mdx b/examples/agents/fallback-models/mid-run-fallback.mdx index d4f55013e..5cf92686e 100644 --- a/examples/agents/fallback-models/mid-run-fallback.mdx +++ b/examples/agents/fallback-models/mid-run-fallback.mdx @@ -6,6 +6,10 @@ source: cookbook/02_agents/17_fallback_models/03_mid_run_fallback.py Tests what happens when the primary model fails AFTER a tool call (and or within a run). + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python mid_run_fallback.py """ Fallback Models — Mid-Run Failure @@ -70,6 +74,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `mid_run_fallback.py`, then run: ```bash diff --git a/examples/agents/skills/basic-skills.mdx b/examples/agents/skills/basic-skills.mdx index 45b01fd2f..bdbaf7166 100644 --- a/examples/agents/skills/basic-skills.mdx +++ b/examples/agents/skills/basic-skills.mdx @@ -81,7 +81,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/basics/run.mdx b/examples/basics/run.mdx index dc6d0e2bf..462f317ad 100644 --- a/examples/basics/run.mdx +++ b/examples/basics/run.mdx @@ -2160,7 +2160,7 @@ Advanced workflow features (not shown here): Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/components/get-agent.mdx b/examples/components/get-agent.mdx index e9db6a7ba..656cd68d0 100644 --- a/examples/components/get-agent.mdx +++ b/examples/components/get-agent.mdx @@ -67,7 +67,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/components/get-team.mdx b/examples/components/get-team.mdx index 045fe6852..4a4963c07 100644 --- a/examples/components/get-team.mdx +++ b/examples/components/get-team.mdx @@ -67,7 +67,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/components/get-workflow.mdx b/examples/components/get-workflow.mdx index d2bb56a95..d3aac045a 100644 --- a/examples/components/get-workflow.mdx +++ b/examples/components/get-workflow.mdx @@ -67,7 +67,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/context/engineering-briefing.mdx b/examples/context/engineering-briefing.mdx index dd93dda1e..6c62d1f9a 100644 --- a/examples/context/engineering-briefing.mdx +++ b/examples/context/engineering-briefing.mdx @@ -103,7 +103,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/context/filesystem.mdx b/examples/context/filesystem.mdx index 3a8a3518d..f9a12d48a 100644 --- a/examples/context/filesystem.mdx +++ b/examples/context/filesystem.mdx @@ -88,7 +88,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/context/multi-provider.mdx b/examples/context/multi-provider.mdx index 4bf8318bc..59902dc77 100644 --- a/examples/context/multi-provider.mdx +++ b/examples/context/multi-provider.mdx @@ -154,7 +154,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/context/workspace.mdx b/examples/context/workspace.mdx index cd810c767..e766f39a2 100644 --- a/examples/context/workspace.mdx +++ b/examples/context/workspace.mdx @@ -93,7 +93,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/integrations/a2a/basic-agent/basic-agent.mdx b/examples/integrations/a2a/basic-agent/basic-agent.mdx index 98bdf94b6..230bb8de7 100644 --- a/examples/integrations/a2a/basic-agent/basic-agent.mdx +++ b/examples/integrations/a2a/basic-agent/basic-agent.mdx @@ -93,7 +93,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/integrations/a2a/basic-agent/client.mdx b/examples/integrations/a2a/basic-agent/client.mdx index ed9dfcdfe..1a2dc2f68 100644 --- a/examples/integrations/a2a/basic-agent/client.mdx +++ b/examples/integrations/a2a/basic-agent/client.mdx @@ -93,7 +93,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/integrations/rag/agentic-rag-infinity-reranker.mdx b/examples/integrations/rag/agentic-rag-infinity-reranker.mdx index a72809e0d..0d4fe806e 100644 --- a/examples/integrations/rag/agentic-rag-infinity-reranker.mdx +++ b/examples/integrations/rag/agentic-rag-infinity-reranker.mdx @@ -6,6 +6,10 @@ source: cookbook/07_knowledge/05_integrations/rag/agentic_rag_infinity_reranker. Demonstrates agentic RAG with an Infinity reranker backend (relocated integration example). + + Anthropic retired `claude-3-7-sonnet-latest` on February 19, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python agentic_rag_infinity_reranker.py """ Agentic Rag Infinity Reranker @@ -155,6 +159,10 @@ if __name__ == "__main__": ``` + + Replace `claude-3-7-sonnet-latest` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `agentic_rag_infinity_reranker.py`, then run: ```bash @@ -163,4 +171,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/05_integrations/rag/agentic_rag_infinity_reranker.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/05_integrations/rag/agentic_rag_infinity_reranker.py) +Full source: [cookbook/07_knowledge/05_integrations/rag/agentic_rag_infinity_reranker.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/rag/agentic_rag_infinity_reranker.py) diff --git a/examples/integrations/rag/agentic-rag-with-lightrag.mdx b/examples/integrations/rag/agentic-rag-with-lightrag.mdx index 0c9a773df..c1d83d298 100644 --- a/examples/integrations/rag/agentic-rag-with-lightrag.mdx +++ b/examples/integrations/rag/agentic-rag-with-lightrag.mdx @@ -112,7 +112,7 @@ if __name__ == "__main__": Clone Agno and run the example from the repository root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno python cookbook/07_knowledge/05_integrations/rag/agentic_rag_with_lightrag.py ``` diff --git a/examples/integrations/surrealdb/custom-memory-instructions.mdx b/examples/integrations/surrealdb/custom-memory-instructions.mdx index f1a5cec93..37da0ef3b 100644 --- a/examples/integrations/surrealdb/custom-memory-instructions.mdx +++ b/examples/integrations/surrealdb/custom-memory-instructions.mdx @@ -4,6 +4,10 @@ description: "Scope what MemoryManager captures with custom instructions, storin source: cookbook/integrations/surrealdb/custom_memory_instructions.py --- + + Anthropic retired `claude-3-5-sonnet-latest` on October 28, 2025. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python custom_memory_instructions.py """ SurrealDB Custom Memory Instructions @@ -145,6 +149,10 @@ if __name__ == "__main__": ``` + + Replace `claude-3-5-sonnet-latest` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `custom_memory_instructions.py`, then run: ```bash diff --git a/examples/knowledge/building-blocks/agentic-filtering.mdx b/examples/knowledge/building-blocks/agentic-filtering.mdx index 001f47267..a2ed5fa41 100644 --- a/examples/knowledge/building-blocks/agentic-filtering.mdx +++ b/examples/knowledge/building-blocks/agentic-filtering.mdx @@ -128,7 +128,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/knowledge/getting-started/loading-content.mdx b/examples/knowledge/getting-started/loading-content.mdx index 44dc11ac5..48670b209 100644 --- a/examples/knowledge/getting-started/loading-content.mdx +++ b/examples/knowledge/getting-started/loading-content.mdx @@ -170,7 +170,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/knowledge/integrations/cloud/aws.mdx b/examples/knowledge/integrations/cloud/aws.mdx index 49659e03d..fc234a29d 100644 --- a/examples/knowledge/integrations/cloud/aws.mdx +++ b/examples/knowledge/integrations/cloud/aws.mdx @@ -128,6 +128,10 @@ if __name__ == "__main__": ``` + + Upload a readable PDF as `reports/quarterly-report.pdf` in `AWS_S3_BUCKET`, or update both hard-coded `reports/quarterly-report.pdf` and `reports/` paths in the saved file to match your bucket. + + Save the code above as `aws.py`, then run: ```bash diff --git a/examples/knowledge/integrations/cloud/azure.mdx b/examples/knowledge/integrations/cloud/azure.mdx index f4dab991f..ddf90559b 100644 --- a/examples/knowledge/integrations/cloud/azure.mdx +++ b/examples/knowledge/integrations/cloud/azure.mdx @@ -129,6 +129,10 @@ if __name__ == "__main__": ``` + + Upload a readable PDF as `reports/annual-report.pdf` and at least one supported file under `documents/` in `AZURE_CONTAINER_NAME`, or update both hard-coded paths in the saved file to match your container. + + Save the code above as `azure.py`, then run: ```bash diff --git a/examples/knowledge/integrations/rag/agentic-rag-infinity-reranker.mdx b/examples/knowledge/integrations/rag/agentic-rag-infinity-reranker.mdx index afb52aea3..0a1b7fbf8 100644 --- a/examples/knowledge/integrations/rag/agentic-rag-infinity-reranker.mdx +++ b/examples/knowledge/integrations/rag/agentic-rag-infinity-reranker.mdx @@ -6,6 +6,10 @@ source: cookbook/07_knowledge/05_integrations/rag/agentic_rag_infinity_reranker. Run agentic RAG over the Agno docs with LanceDB hybrid search, Cohere embeddings, and a local Infinity reranker on port 7997. + + Anthropic retired `claude-3-7-sonnet-latest` on February 19, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python agentic_rag_infinity_reranker.py """ Agentic Rag Infinity Reranker @@ -147,6 +151,10 @@ if __name__ == "__main__": + + Replace `claude-3-7-sonnet-latest` with `claude-sonnet-4-6` in the saved file. + + Install Infinity and start the reranker on port 7997: ```bash diff --git a/examples/knowledge/integrations/rag/agentic-rag-with-lightrag.mdx b/examples/knowledge/integrations/rag/agentic-rag-with-lightrag.mdx index b686915db..730864640 100644 --- a/examples/knowledge/integrations/rag/agentic-rag-with-lightrag.mdx +++ b/examples/knowledge/integrations/rag/agentic-rag-with-lightrag.mdx @@ -106,7 +106,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/knowledge/integrations/readers/docling/docling-audio.mdx b/examples/knowledge/integrations/readers/docling/docling-audio.mdx index 8db07b57c..6d78ea385 100644 --- a/examples/knowledge/integrations/readers/docling/docling-audio.mdx +++ b/examples/knowledge/integrations/readers/docling/docling-audio.mdx @@ -190,7 +190,7 @@ def get_agent(knowledge: Knowledge) -> Agent: Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/knowledge/integrations/readers/docling/docling-documents.mdx b/examples/knowledge/integrations/readers/docling/docling-documents.mdx index 38e4d2672..de61c8d1f 100644 --- a/examples/knowledge/integrations/readers/docling/docling-documents.mdx +++ b/examples/knowledge/integrations/readers/docling/docling-documents.mdx @@ -180,7 +180,7 @@ def get_agent(knowledge: Knowledge) -> Agent: Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/knowledge/integrations/readers/docling/docling-images.mdx b/examples/knowledge/integrations/readers/docling/docling-images.mdx index 9114d09fd..07a70f686 100644 --- a/examples/knowledge/integrations/readers/docling/docling-images.mdx +++ b/examples/knowledge/integrations/readers/docling/docling-images.mdx @@ -170,7 +170,7 @@ def get_agent(knowledge: Knowledge) -> Agent: Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/knowledge/integrations/readers/docling/docling-input-types.mdx b/examples/knowledge/integrations/readers/docling/docling-input-types.mdx index 80ea3bd01..e286da70b 100644 --- a/examples/knowledge/integrations/readers/docling/docling-input-types.mdx +++ b/examples/knowledge/integrations/readers/docling/docling-input-types.mdx @@ -90,7 +90,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/knowledge/integrations/readers/docling/docling-markup.mdx b/examples/knowledge/integrations/readers/docling/docling-markup.mdx index 23ffd2434..fef43f51e 100644 --- a/examples/knowledge/integrations/readers/docling/docling-markup.mdx +++ b/examples/knowledge/integrations/readers/docling/docling-markup.mdx @@ -182,7 +182,7 @@ def get_agent(knowledge: Knowledge) -> Agent: Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/knowledge/integrations/readers/docling/docling-pdf.mdx b/examples/knowledge/integrations/readers/docling/docling-pdf.mdx index 63509e50d..f30b0d01b 100644 --- a/examples/knowledge/integrations/readers/docling/docling-pdf.mdx +++ b/examples/knowledge/integrations/readers/docling/docling-pdf.mdx @@ -211,7 +211,7 @@ def get_agent(knowledge: Knowledge) -> Agent: Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/knowledge/integrations/readers/docling/docling-xlsx.mdx b/examples/knowledge/integrations/readers/docling/docling-xlsx.mdx index a0b06f021..256d0d4df 100644 --- a/examples/knowledge/integrations/readers/docling/docling-xlsx.mdx +++ b/examples/knowledge/integrations/readers/docling/docling-xlsx.mdx @@ -153,7 +153,7 @@ def get_agent(knowledge: Knowledge) -> Agent: Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/knowledge/integrations/readers/documents.mdx b/examples/knowledge/integrations/readers/documents.mdx index caa2f349f..81241b4ad 100644 --- a/examples/knowledge/integrations/readers/documents.mdx +++ b/examples/knowledge/integrations/readers/documents.mdx @@ -135,7 +135,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/knowledge/production/multi-source-rag.mdx b/examples/knowledge/production/multi-source-rag.mdx index 32ecae063..7f1ef8768 100644 --- a/examples/knowledge/production/multi-source-rag.mdx +++ b/examples/knowledge/production/multi-source-rag.mdx @@ -124,7 +124,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/learning/demo/agents.mdx b/examples/learning/demo/agents.mdx index d8484d301..702115900 100644 --- a/examples/learning/demo/agents.mdx +++ b/examples/learning/demo/agents.mdx @@ -112,7 +112,7 @@ ops_assistant = Agent( Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/models/anthropic/code-execution.mdx b/examples/models/anthropic/code-execution.mdx index 134b63d5f..51c5ab95e 100644 --- a/examples/models/anthropic/code-execution.mdx +++ b/examples/models/anthropic/code-execution.mdx @@ -4,6 +4,10 @@ description: "Compute statistics with Claude's server-side code execution tool v source: cookbook/90_models/anthropic/code_execution.py --- + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python code_execution.py """ Anthropic Code Execution @@ -69,6 +73,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `code_execution.py`, then run: ```bash diff --git a/examples/models/anthropic/csv-input.mdx b/examples/models/anthropic/csv-input.mdx index a2711f224..fbe275999 100644 --- a/examples/models/anthropic/csv-input.mdx +++ b/examples/models/anthropic/csv-input.mdx @@ -4,6 +4,10 @@ description: "Pass a downloaded IMDB CSV to Claude as a File attachment for box source: cookbook/90_models/anthropic/csv_input.py --- + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python csv_input.py """ Anthropic Csv Input @@ -75,6 +79,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `csv_input.py`, then run: ```bash diff --git a/examples/models/anthropic/db.mdx b/examples/models/anthropic/db.mdx index 40bbcb666..aab5e3a89 100644 --- a/examples/models/anthropic/db.mdx +++ b/examples/models/anthropic/db.mdx @@ -4,6 +4,10 @@ description: "Persist Claude chat history in Postgres so follow-up questions kee source: cookbook/90_models/anthropic/db.py --- + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python db.py """Run `uv pip install ddgs sqlalchemy anthropic` to install dependencies.""" @@ -62,6 +66,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `db.py`, then run: ```bash diff --git a/examples/models/anthropic/financial-analyst-thinking.mdx b/examples/models/anthropic/financial-analyst-thinking.mdx index 9c95decdf..955d7d67a 100644 --- a/examples/models/anthropic/financial-analyst-thinking.mdx +++ b/examples/models/anthropic/financial-analyst-thinking.mdx @@ -4,6 +4,10 @@ description: "Analyze a stock portfolio with interleaved thinking, calculator, a source: cookbook/90_models/anthropic/financial_analyst_thinking.py --- + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python financial_analyst_thinking.py """ Anthropic Financial Analyst Thinking @@ -82,6 +86,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `financial_analyst_thinking.py`, then run: ```bash diff --git a/examples/models/anthropic/image-input-bytes.mdx b/examples/models/anthropic/image-input-bytes.mdx index 106e9fb2b..6dc306ea0 100644 --- a/examples/models/anthropic/image-input-bytes.mdx +++ b/examples/models/anthropic/image-input-bytes.mdx @@ -4,6 +4,10 @@ description: "Send an image to Claude as raw bytes and search the web for relate source: cookbook/90_models/anthropic/image_input_bytes.py --- + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python image_input_bytes.py """ Anthropic Image Input Bytes @@ -79,6 +83,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Place a JPEG named `sample.jpg` in the same directory as the saved Python file. diff --git a/examples/models/anthropic/image-input-file-upload.mdx b/examples/models/anthropic/image-input-file-upload.mdx index ae2801343..12cb936f2 100644 --- a/examples/models/anthropic/image-input-file-upload.mdx +++ b/examples/models/anthropic/image-input-file-upload.mdx @@ -1,10 +1,14 @@ --- title: "Image Input File Upload" -description: "Upload a PNG to the Anthropic Files API and pass the file handle to Claude as an image input." +description: "Migrate the v2.7.4 Anthropic image upload example to a supported model and local image input." source: cookbook/90_models/anthropic/image_input_file_upload.py --- -Upload a PNG through the Anthropic Files API and pass the returned file handle to Claude as an image input. +Preserve the released Files API source, then apply the required model and image-input changes before running it. + + + The source passes an Anthropic uploaded `FileMetadata` object to `Image.content`, which accepts bytes in Agno v2.7.4. Use the downloaded local file path directly before running. Anthropic retired `claude-opus-4-20250514` on June 15, 2026. Replace it with `claude-opus-4-8` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + ```python image_input_file_upload.py """ @@ -84,6 +88,14 @@ if __name__ == "__main__": + + Replace `claude-opus-4-20250514` with `claude-opus-4-8` in the saved file. + + + + Remove the direct `Anthropic` client import and the Files API upload block. Replace `Image(content=uploaded_file)` with `Image(filepath=img_path)` and run the agent without the `if uploaded_file is not None` wrapper. + + Save the code above as `image_input_file_upload.py`, then run: ```bash diff --git a/examples/models/anthropic/image-input-local-file.mdx b/examples/models/anthropic/image-input-local-file.mdx index 5f37febcc..3bcf462af 100644 --- a/examples/models/anthropic/image-input-local-file.mdx +++ b/examples/models/anthropic/image-input-local-file.mdx @@ -6,6 +6,10 @@ source: cookbook/90_models/anthropic/image_input_local_file.py Download a PNG locally and pass its filepath to Claude as an image input. + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python image_input_local_file.py """ In this example, we upload a PDF file to Anthropic directly and then use it as an input to an agent. @@ -75,6 +79,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `image_input_local_file.py`, then run: ```bash diff --git a/examples/models/anthropic/image-input-url.mdx b/examples/models/anthropic/image-input-url.mdx index 41693a43f..aaaa370de 100644 --- a/examples/models/anthropic/image-input-url.mdx +++ b/examples/models/anthropic/image-input-url.mdx @@ -4,6 +4,10 @@ description: "Pass an image URL to Claude and combine vision with web search too source: cookbook/90_models/anthropic/image_input_url.py --- + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python image_input_url.py """ Anthropic Image Input Url @@ -68,6 +72,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `image_input_url.py`, then run: ```bash diff --git a/examples/models/anthropic/knowledge.mdx b/examples/models/anthropic/knowledge.mdx index 4dd522523..0b2a35834 100644 --- a/examples/models/anthropic/knowledge.mdx +++ b/examples/models/anthropic/knowledge.mdx @@ -4,6 +4,10 @@ description: "Give Claude a PgVector knowledge base built from a recipe PDF with source: cookbook/90_models/anthropic/knowledge.py --- + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python knowledge.py """Run `uv pip install ddgs sqlalchemy pgvector pypdf anthropic openai` to install dependencies.""" @@ -72,6 +76,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `knowledge.py`, then run: ```bash diff --git a/examples/models/anthropic/markdown-input.mdx b/examples/models/anthropic/markdown-input.mdx index 2ccaa427a..624c91a10 100644 --- a/examples/models/anthropic/markdown-input.mdx +++ b/examples/models/anthropic/markdown-input.mdx @@ -4,6 +4,10 @@ description: "Demonstrates passing markdown files to Claude using the correct te source: cookbook/90_models/anthropic/markdown_input.py --- + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python markdown_input.py """ Anthropic Markdown Input @@ -91,6 +95,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `markdown_input.py`, then run: ```bash diff --git a/examples/models/anthropic/mcp-connector.mdx b/examples/models/anthropic/mcp-connector.mdx index f8afae523..c91d76a6e 100644 --- a/examples/models/anthropic/mcp-connector.mdx +++ b/examples/models/anthropic/mcp-connector.mdx @@ -4,6 +4,10 @@ description: "Connect Claude to the DeepWiki MCP server with the native MCP conn source: cookbook/90_models/anthropic/mcp_connector.py --- + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python mcp_connector.py """ Anthropic Mcp Connector @@ -71,6 +75,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `mcp_connector.py`, then run: ```bash diff --git a/examples/models/anthropic/memory.mdx b/examples/models/anthropic/memory.mdx index 4154637e3..c72a448d3 100644 --- a/examples/models/anthropic/memory.mdx +++ b/examples/models/anthropic/memory.mdx @@ -5,7 +5,7 @@ source: cookbook/90_models/anthropic/memory.py --- - This example's source docstring names a removed cookbook path: `cookbook/92_models/anthropic/memory.py`. Follow the generated Run step below. + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). ```python memory.py @@ -85,6 +85,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `memory.py`, then run: ```bash diff --git a/examples/models/anthropic/pdf-input-bytes.mdx b/examples/models/anthropic/pdf-input-bytes.mdx index 2bf140405..f6fb5c735 100644 --- a/examples/models/anthropic/pdf-input-bytes.mdx +++ b/examples/models/anthropic/pdf-input-bytes.mdx @@ -4,6 +4,10 @@ description: "Send a PDF to Claude as raw bytes and read citations from the run source: cookbook/90_models/anthropic/pdf_input_bytes.py --- + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python pdf_input_bytes.py """ Anthropic Pdf Input Bytes @@ -78,6 +82,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `pdf_input_bytes.py`, then run: ```bash diff --git a/examples/models/anthropic/pdf-input-file-upload.mdx b/examples/models/anthropic/pdf-input-file-upload.mdx index b3375bcea..0c7f5fd79 100644 --- a/examples/models/anthropic/pdf-input-file-upload.mdx +++ b/examples/models/anthropic/pdf-input-file-upload.mdx @@ -6,6 +6,10 @@ source: cookbook/90_models/anthropic/pdf_input_file_upload.py In this example, we upload a PDF file to Anthropic directly and then use it as an input to an agent. + + Anthropic retired `claude-opus-4-20250514` on June 15, 2026. Replace it with `claude-opus-4-8` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python pdf_input_file_upload.py """ In this example, we upload a PDF file to Anthropic directly and then use it as an input to an agent. @@ -80,6 +84,10 @@ if __name__ == "__main__": + + Replace `claude-opus-4-20250514` with `claude-opus-4-8` in the saved file. + + Save the code above as `pdf_input_file_upload.py`, then run: ```bash diff --git a/examples/models/anthropic/pdf-input-local.mdx b/examples/models/anthropic/pdf-input-local.mdx index 825aa8e5f..04c543de8 100644 --- a/examples/models/anthropic/pdf-input-local.mdx +++ b/examples/models/anthropic/pdf-input-local.mdx @@ -4,6 +4,10 @@ description: "Attach a local PDF file to a Claude prompt and print the response source: cookbook/90_models/anthropic/pdf_input_local.py --- + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python pdf_input_local.py """ Anthropic Pdf Input Local @@ -78,6 +82,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `pdf_input_local.py`, then run: ```bash diff --git a/examples/models/anthropic/pdf-input-url.mdx b/examples/models/anthropic/pdf-input-url.mdx index 19e08daea..a1e8fc10f 100644 --- a/examples/models/anthropic/pdf-input-url.mdx +++ b/examples/models/anthropic/pdf-input-url.mdx @@ -4,6 +4,10 @@ description: "Summarize a PDF fetched from a URL by passing it to Claude as a Fi source: cookbook/90_models/anthropic/pdf_input_url.py --- + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python pdf_input_url.py """ Anthropic Pdf Input Url @@ -63,6 +67,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `pdf_input_url.py`, then run: ```bash diff --git a/examples/models/anthropic/prompt-caching.mdx b/examples/models/anthropic/prompt-caching.mdx index 3e2525464..803874bec 100644 --- a/examples/models/anthropic/prompt-caching.mdx +++ b/examples/models/anthropic/prompt-caching.mdx @@ -6,6 +6,10 @@ source: cookbook/90_models/anthropic/prompt_caching.py Use prompt caching with Anthropic agents to cache the system prompt passed to the model. + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python prompt_caching.py """ This cookbook shows how to use prompt caching with Agents using Anthropic models, to catch the system prompt passed to the model. @@ -88,6 +92,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `prompt_caching.py`, then run: ```bash diff --git a/examples/models/anthropic/pydantic-tool-input.mdx b/examples/models/anthropic/pydantic-tool-input.mdx index 78e3bc3e0..77ff09232 100644 --- a/examples/models/anthropic/pydantic-tool-input.mdx +++ b/examples/models/anthropic/pydantic-tool-input.mdx @@ -6,6 +6,10 @@ source: cookbook/90_models/anthropic/pydantic_tool_input.py Tests various pydantic model patterns as tool input parameters with Claude. Covers: nested models, Optional fields, Union types, List of models, and deeply nested models - all patterns that require additionalProperties: false on nested object schemas for Anthropic's API. + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python pydantic_tool_input.py """ Anthropic Pydantic Tool Input @@ -286,6 +290,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `pydantic_tool_input.py`, then run: ```bash diff --git a/examples/models/anthropic/skills/agent-with-excel.mdx b/examples/models/anthropic/skills/agent-with-excel.mdx index 8b5f27292..625059dd7 100644 --- a/examples/models/anthropic/skills/agent-with-excel.mdx +++ b/examples/models/anthropic/skills/agent-with-excel.mdx @@ -4,6 +4,10 @@ description: "Use Claude's xlsx skill to create Excel spreadsheets through Agno source: cookbook/90_models/anthropic/skills/agent_with_excel.py --- + + The pinned v2.7.4 source imports `file_download_helper`, but that module is absent from the released cookbook. The source cannot run as a single saved file. + + ```python agent_with_excel.py """ Agno Agent with Excel Skills. @@ -111,35 +115,8 @@ if __name__ == "__main__": print("=" * 60) ``` -## Run the Example - - - - - - ```bash - uv pip install -U agno anthropic - ``` - - - - - ```bash Mac/Linux - export ANTHROPIC_API_KEY="your_anthropic_api_key_here" - ``` - - ```bash Windows - $Env:ANTHROPIC_API_KEY="your_anthropic_api_key_here" - ``` - - - - - Save the code above as `agent_with_excel.py`, then run: - ```bash - python agent_with_excel.py - ``` - - +## Missing Source Helper + +Add a local `file_download_helper.py` that provides `download_skill_files`, or wait for the cookbook to include the helper before running this source. Full source: [cookbook/90_models/anthropic/skills/agent_with_excel.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/skills/agent_with_excel.py) diff --git a/examples/models/anthropic/skills/agent-with-powerpoint.mdx b/examples/models/anthropic/skills/agent-with-powerpoint.mdx index ed70dfbf4..cca61c12c 100644 --- a/examples/models/anthropic/skills/agent-with-powerpoint.mdx +++ b/examples/models/anthropic/skills/agent-with-powerpoint.mdx @@ -4,6 +4,10 @@ description: "Use Claude's pptx skill to create PowerPoint presentations through source: cookbook/90_models/anthropic/skills/agent_with_powerpoint.py --- + + The pinned v2.7.4 source imports `file_download_helper`, but that module is absent from the released cookbook. The source cannot run as a single saved file. + + ```python agent_with_powerpoint.py """ Agno Agent with PowerPoint Skills. @@ -104,35 +108,8 @@ if __name__ == "__main__": print("=" * 60) ``` -## Run the Example - - - - - - ```bash - uv pip install -U agno anthropic - ``` - - - - - ```bash Mac/Linux - export ANTHROPIC_API_KEY="your_anthropic_api_key_here" - ``` - - ```bash Windows - $Env:ANTHROPIC_API_KEY="your_anthropic_api_key_here" - ``` - - - - - Save the code above as `agent_with_powerpoint.py`, then run: - ```bash - python agent_with_powerpoint.py - ``` - - +## Missing Source Helper + +Add a local `file_download_helper.py` that provides `download_skill_files`, or wait for the cookbook to include the helper before running this source. Full source: [cookbook/90_models/anthropic/skills/agent_with_powerpoint.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/skills/agent_with_powerpoint.py) diff --git a/examples/models/anthropic/skills/multi-skill-agent.mdx b/examples/models/anthropic/skills/multi-skill-agent.mdx index 0b216da7f..3a90314cb 100644 --- a/examples/models/anthropic/skills/multi-skill-agent.mdx +++ b/examples/models/anthropic/skills/multi-skill-agent.mdx @@ -4,6 +4,10 @@ description: "Create an agent with multiple Claude Agent Skills that can create source: cookbook/90_models/anthropic/skills/multi_skill_agent.py --- + + The pinned v2.7.4 source imports `file_download_helper`, but that module is absent from the released cookbook. The source cannot run as a single saved file. + + ```python multi_skill_agent.py """ Multi-Skill Agent - PowerPoint, Excel, and Word. @@ -106,35 +110,8 @@ if __name__ == "__main__": print("=" * 60) ``` -## Run the Example - - - - - - ```bash - uv pip install -U agno anthropic - ``` - - - - - ```bash Mac/Linux - export ANTHROPIC_API_KEY="your_anthropic_api_key_here" - ``` - - ```bash Windows - $Env:ANTHROPIC_API_KEY="your_anthropic_api_key_here" - ``` - - - - - Save the code above as `multi_skill_agent.py`, then run: - ```bash - python multi_skill_agent.py - ``` - - +## Missing Source Helper + +Add a local `file_download_helper.py` that provides `download_skill_files`, or wait for the cookbook to include the helper before running this source. Full source: [cookbook/90_models/anthropic/skills/multi_skill_agent.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/anthropic/skills/multi_skill_agent.py) diff --git a/examples/models/anthropic/thinking.mdx b/examples/models/anthropic/thinking.mdx index c0553d609..12402c1be 100644 --- a/examples/models/anthropic/thinking.mdx +++ b/examples/models/anthropic/thinking.mdx @@ -4,6 +4,10 @@ description: "Enable Claude extended thinking with a token budget and stream the source: cookbook/90_models/anthropic/thinking.py --- + + Anthropic retired `claude-3-7-sonnet-20250219` on February 19, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python thinking.py """ Anthropic Thinking @@ -64,6 +68,10 @@ if __name__ == "__main__": + + Replace `claude-3-7-sonnet-20250219` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `thinking.py`, then run: ```bash diff --git a/examples/models/anthropic/tool-use.mdx b/examples/models/anthropic/tool-use.mdx index d47f61d93..864ecb188 100644 --- a/examples/models/anthropic/tool-use.mdx +++ b/examples/models/anthropic/tool-use.mdx @@ -4,6 +4,10 @@ description: "Call web search tools from Claude in sync, streaming, and async mo source: cookbook/90_models/anthropic/tool_use.py --- + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python tool_use.py """Run `uv pip install ddgs` to install dependencies.""" @@ -60,6 +64,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `tool_use.py`, then run: ```bash diff --git a/examples/models/anthropic/web-search.mdx b/examples/models/anthropic/web-search.mdx index 3cf30a942..a4239bdfc 100644 --- a/examples/models/anthropic/web-search.mdx +++ b/examples/models/anthropic/web-search.mdx @@ -4,6 +4,10 @@ description: "Use Anthropic's native web_search tool and inspect search metrics source: cookbook/90_models/anthropic/web_search.py --- + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python web_search.py """ Anthropic Web Search @@ -76,6 +80,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `web_search.py`, then run: ```bash diff --git a/examples/models/cometapi/multi-model.mdx b/examples/models/cometapi/multi-model.mdx index d57c9880c..b2b3d2eb1 100644 --- a/examples/models/cometapi/multi-model.mdx +++ b/examples/models/cometapi/multi-model.mdx @@ -4,6 +4,10 @@ description: "Test and compare different models available through CometAPI." source: cookbook/90_models/cometapi/multi_model.py --- + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python multi_model.py """Example showcasing different models available through CometAPI.""" @@ -91,6 +95,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `multi_model.py`, then run: ```bash diff --git a/examples/models/google/gemini-interactions/deep-research-mcp.mdx b/examples/models/google/gemini-interactions/deep-research-mcp.mdx index ac226c802..4c3eb1027 100644 --- a/examples/models/google/gemini-interactions/deep-research-mcp.mdx +++ b/examples/models/google/gemini-interactions/deep-research-mcp.mdx @@ -6,6 +6,10 @@ source: cookbook/90_models/google/gemini_interactions/deep_research_mcp.py Give the Deep Research agent access to external tools via remote MCP servers. Pass server configs through `mcp_servers`; `type: "mcp_server"` is added automatically. Only `url` is strictly required; `name`, `headers`, and `allowed_tools` are optional. + + This example uses the placeholder MCP host `mcp.example.com` and the placeholder bearer token `my-token`. It cannot contact a real MCP server unchanged. + + ```python deep_research_mcp.py """ Gemini Interactions - Deep Research with MCP servers @@ -68,6 +72,10 @@ if __name__ == "__main__": + + Replace `https://mcp.example.com/mcp` with your remote MCP endpoint and replace `Bearer my-token` with the credential that server expects. Remove the `headers` entry if the server does not require it. + + Save the code above as `deep_research_mcp.py`, then run: ```bash diff --git a/examples/models/google/gemini/audio-input-file-upload.mdx b/examples/models/google/gemini/audio-input-file-upload.mdx index d15c31919..38b63adfe 100644 --- a/examples/models/google/gemini/audio-input-file-upload.mdx +++ b/examples/models/google/gemini/audio-input-file-upload.mdx @@ -4,6 +4,10 @@ description: "Upload an MP3 through the Gemini Files API and reuse the remote fi source: cookbook/90_models/google/gemini/audio_input_file_upload.py --- + + The source passes a Google uploaded `File` object to `Audio.content`, which accepts bytes in Agno v2.7.4. Use the local file path directly before running. + + ```python audio_input_file_upload.py """ Google Audio Input File Upload @@ -87,6 +91,14 @@ if __name__ == "__main__": + + Remove the `UploadFileConfig` import and the remote file lookup and upload block. Replace `Audio(content=audio_file)` with `Audio(filepath=audio_path)`. + + + + Place an MP3 named `sample.mp3` next to the saved script, or update `audio_path` to point to your audio file. + + Save the code above as `audio_input_file_upload.py`, then run: ```bash diff --git a/examples/models/google/gemini/audio-input-local-file-upload.mdx b/examples/models/google/gemini/audio-input-local-file-upload.mdx index 1bc379c05..b9ccd787b 100644 --- a/examples/models/google/gemini/audio-input-local-file-upload.mdx +++ b/examples/models/google/gemini/audio-input-local-file-upload.mdx @@ -67,6 +67,10 @@ if __name__ == "__main__": + + Place an MP3 named `sample.mp3` next to the saved script, or update `audio_path` to point to your audio file. + + Save the code above as `audio_input_local_file_upload.py`, then run: ```bash diff --git a/examples/models/google/gemini/file-search-advanced.mdx b/examples/models/google/gemini/file-search-advanced.mdx index 53180b3cb..327252c53 100644 --- a/examples/models/google/gemini/file-search-advanced.mdx +++ b/examples/models/google/gemini/file-search-advanced.mdx @@ -230,7 +230,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/models/google/gemini/file-search-basic.mdx b/examples/models/google/gemini/file-search-basic.mdx index 4246627eb..04e88484c 100644 --- a/examples/models/google/gemini/file-search-basic.mdx +++ b/examples/models/google/gemini/file-search-basic.mdx @@ -136,7 +136,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/models/google/gemini/file-search-image-upload.mdx b/examples/models/google/gemini/file-search-image-upload.mdx index fcc37db45..5c47fccf8 100644 --- a/examples/models/google/gemini/file-search-image-upload.mdx +++ b/examples/models/google/gemini/file-search-image-upload.mdx @@ -170,6 +170,10 @@ if __name__ == "__main__": + + Replace `path/to/your/image.jpeg` in `IMAGE_PATH` with the path to a local JPEG or PNG file. + + Save the code above as `file_search_image_upload.py`, then run: ```bash diff --git a/examples/models/google/gemini/file-search-rag-pipeline.mdx b/examples/models/google/gemini/file-search-rag-pipeline.mdx index a664f449b..d72623453 100644 --- a/examples/models/google/gemini/file-search-rag-pipeline.mdx +++ b/examples/models/google/gemini/file-search-rag-pipeline.mdx @@ -277,7 +277,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/models/google/gemini/image-input-file-upload.mdx b/examples/models/google/gemini/image-input-file-upload.mdx index 743d93126..823bd9c23 100644 --- a/examples/models/google/gemini/image-input-file-upload.mdx +++ b/examples/models/google/gemini/image-input-file-upload.mdx @@ -4,6 +4,10 @@ description: "Upload an image through the Gemini Files API and combine it with w source: cookbook/90_models/google/gemini/image_input_file_upload.py --- + + Google has shut down `gemini-2.0-flash-exp`. The source also passes a legacy uploaded `File` object to `Image.content`, which accepts bytes in Agno v2.7.4. Apply both edits below before running. See [Gemini 2.0 Flash model status](https://ai.google.dev/gemini-api/docs/models/gemini-2.0-flash). + + ```python image_input_file_upload.py """ Google Image Input File Upload @@ -57,7 +61,7 @@ if __name__ == "__main__": ```bash - uv pip install -U agno ddgs google-genai google-generativeai + uv pip install -U agno ddgs google-genai ``` @@ -73,6 +77,21 @@ if __name__ == "__main__": + + Replace `gemini-2.0-flash-exp` with `gemini-3.5-flash` in the saved file. + + + + Remove `from google.generativeai import upload_file`, `from google.generativeai.types import file_types`, and the `image_file = upload_file(image_path)` assignment and print. Replace `Image(content=image_file)` with `Image(filepath=image_path)`. + + + + Download the image expected by the saved script: + ```bash + python -c "from urllib.request import urlretrieve; urlretrieve('https://upload.wikimedia.org/wikipedia/commons/b/bf/Krakow_-_Kosciol_Mariacki.jpg', 'Krakow_-_Kosciol_Mariacki.jpg')" + ``` + + Save the code above as `image_input_file_upload.py`, then run: ```bash diff --git a/examples/models/google/gemini/image-input.mdx b/examples/models/google/gemini/image-input.mdx index 17882162e..d79cdfb41 100644 --- a/examples/models/google/gemini/image-input.mdx +++ b/examples/models/google/gemini/image-input.mdx @@ -4,6 +4,10 @@ description: "Pass an image URL to a Gemini agent and fetch related news with we source: cookbook/90_models/google/gemini/image_input.py --- + + Google has shut down `gemini-2.0-flash-exp`. Replace it with `gemini-3.5-flash` before running. See [Gemini 2.0 Flash model status](https://ai.google.dev/gemini-api/docs/models/gemini-2.0-flash). + + ```python image_input.py """ Google Image Input @@ -67,6 +71,10 @@ if __name__ == "__main__": + + Replace `gemini-2.0-flash-exp` with `gemini-3.5-flash` in the saved file. + + Save the code above as `image_input.py`, then run: ```bash diff --git a/examples/models/google/gemini/pdf-input-file-upload.mdx b/examples/models/google/gemini/pdf-input-file-upload.mdx index 7e5e14988..ae42076df 100644 --- a/examples/models/google/gemini/pdf-input-file-upload.mdx +++ b/examples/models/google/gemini/pdf-input-file-upload.mdx @@ -98,6 +98,13 @@ if __name__ == "__main__": + + Download `ThaiRecipes.pdf` next to the saved script: + ```bash + python -c "from urllib.request import urlretrieve; urlretrieve('https://agno-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf', 'ThaiRecipes.pdf')" + ``` + + Save the code above as `pdf_input_file_upload.py`, then run: ```bash diff --git a/examples/models/google/gemini/video-input-file-upload.mdx b/examples/models/google/gemini/video-input-file-upload.mdx index 000edb9ed..8f8240e16 100644 --- a/examples/models/google/gemini/video-input-file-upload.mdx +++ b/examples/models/google/gemini/video-input-file-upload.mdx @@ -4,6 +4,10 @@ description: "Upload a video through the Gemini Files API and poll until it is r source: cookbook/90_models/google/gemini/video_input_file_upload.py --- + + The source passes a Google uploaded `File` object to `Video.content`, which accepts bytes in Agno v2.7.4. Use the local file path directly before running. + + ```python video_input_file_upload.py """ Google Video Input File Upload @@ -98,6 +102,17 @@ if __name__ == "__main__": + + Remove the `UploadFileConfig` import and the remote file lookup and upload block. Replace `Video(content=video_file)` with `Video(filepath=video_path)`. + + + + Download the video expected by the saved script: + ```bash + python -c "from urllib.request import urlretrieve; urlretrieve('https://storage.googleapis.com/generativeai-downloads/images/GreatRedSpot.mp4', 'GreatRedSpot.mp4')" + ``` + + Save the code above as `video_input_file_upload.py`, then run: ```bash diff --git a/examples/models/google/gemini/video-input-local-file-upload.mdx b/examples/models/google/gemini/video-input-local-file-upload.mdx index 4021f22db..f39c27447 100644 --- a/examples/models/google/gemini/video-input-local-file-upload.mdx +++ b/examples/models/google/gemini/video-input-local-file-upload.mdx @@ -63,6 +63,10 @@ if __name__ == "__main__": + + Place an MP4 named `sample_video.mp4` next to the saved script, or update `video_path` to point to your video file. + + Save the code above as `video_input_local_file_upload.py`, then run: ```bash diff --git a/examples/models/nexus/basic.mdx b/examples/models/nexus/basic.mdx index ee5a607b3..8759e7d79 100644 --- a/examples/models/nexus/basic.mdx +++ b/examples/models/nexus/basic.mdx @@ -4,6 +4,10 @@ description: "Run Claude Sonnet 4 through the Nexus gateway, sync and async, wit source: cookbook/90_models/nexus/basic.py --- + + The v2.7.4 source requests `claude-sonnet-4-20250514`, which Anthropic retired on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python basic.py """ Nexus Basic @@ -56,6 +60,22 @@ if __name__ == "__main__": ``` + + + ```bash Mac/Linux + export ANTHROPIC_API_KEY="your_anthropic_api_key_here" + ``` + + ```bash Windows + $Env:ANTHROPIC_API_KEY="your_anthropic_api_key_here" + ``` + + + + + Install and start Nexus on `http://localhost:8000` using the [Nexus setup guide](https://nexusrouter.com/docs). Configure its Anthropic provider with `ANTHROPIC_API_KEY` and explicitly register `claude-sonnet-4-6`. Replace `anthropic/claude-sonnet-4-20250514` in the saved file with `anthropic/claude-sonnet-4-6`. + + Save the code above as `basic.py`, then run: ```bash diff --git a/examples/models/nexus/tool-use.mdx b/examples/models/nexus/tool-use.mdx index 6f6c4f66e..177d62750 100644 --- a/examples/models/nexus/tool-use.mdx +++ b/examples/models/nexus/tool-use.mdx @@ -4,6 +4,10 @@ description: "Call WebSearchTools from Claude Sonnet 4 routed through the Nexus source: cookbook/90_models/nexus/tool_use.py --- + + The v2.7.4 source requests `claude-sonnet-4-20250514`, which Anthropic retired on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python tool_use.py """Run `uv pip install ddgs` to install dependencies.""" @@ -51,6 +55,22 @@ if __name__ == "__main__": ``` + + + ```bash Mac/Linux + export ANTHROPIC_API_KEY="your_anthropic_api_key_here" + ``` + + ```bash Windows + $Env:ANTHROPIC_API_KEY="your_anthropic_api_key_here" + ``` + + + + + Install and start Nexus on `http://localhost:8000` using the [Nexus setup guide](https://nexusrouter.com/docs). Configure its Anthropic provider with `ANTHROPIC_API_KEY` and explicitly register `claude-sonnet-4-6`. Replace `anthropic/claude-sonnet-4-20250514` in the saved file with `anthropic/claude-sonnet-4-6`. + + Save the code above as `tool_use.py`, then run: ```bash diff --git a/examples/models/openrouter/responses/structured-output.mdx b/examples/models/openrouter/responses/structured-output.mdx index b458bced5..2bb2690d8 100644 --- a/examples/models/openrouter/responses/structured-output.mdx +++ b/examples/models/openrouter/responses/structured-output.mdx @@ -59,8 +59,8 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git -cd agno/cookbook/90_models/openrouter/responses +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git +cd agno # Create and activate virtual environment ./scripts/demo_setup.sh @@ -69,5 +69,5 @@ source .venvs/demo/bin/activate # Export relevant API keys export OPENROUTER_API_KEY="***" -python structured_output.py +python cookbook/90_models/openrouter/responses/structured_output.py ``` diff --git a/examples/reasoning/agents/is-9-11-bigger-than-9-9.mdx b/examples/reasoning/agents/is-9-11-bigger-than-9-9.mdx index 924e01ab0..191560620 100644 --- a/examples/reasoning/agents/is-9-11-bigger-than-9-9.mdx +++ b/examples/reasoning/agents/is-9-11-bigger-than-9-9.mdx @@ -6,6 +6,10 @@ source: cookbook/10_reasoning/agents/is_9_11_bigger_than_9_9.py Demonstrates regular, built-in, and DeepSeek-backed reasoning for 9.11 vs 9.9. + + Anthropic retired `claude-3-5-sonnet-20241022` on October 28, 2025. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python is_9_11_bigger_than_9_9.py """ Decimal Comparison Reasoning @@ -96,6 +100,10 @@ if __name__ == "__main__": + + Replace `claude-3-5-sonnet-20241022` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `is_9_11_bigger_than_9_9.py`, then run: ```bash diff --git a/examples/reasoning/models/groq/deepseek-plus-claude.mdx b/examples/reasoning/models/groq/deepseek-plus-claude.mdx index 5abf989e2..a78096d11 100644 --- a/examples/reasoning/models/groq/deepseek-plus-claude.mdx +++ b/examples/reasoning/models/groq/deepseek-plus-claude.mdx @@ -5,7 +5,7 @@ source: cookbook/10_reasoning/models/groq/deepseek_plus_claude.py --- - Groq shut down `qwen/qwen3-32b` for free and developer tiers on July 17, 2026. Replace it with `qwen/qwen3.6-27b`. See [Groq deprecations](https://console.groq.com/docs/deprecations). + Anthropic retired `claude-3-7-sonnet-20250219` on February 19, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). Groq shut down `qwen/qwen3-32b` for free and developer tiers on July 17, 2026. Replace it with `qwen/qwen3.6-27b`. See [Groq deprecations](https://console.groq.com/docs/deprecations). ```python deepseek_plus_claude.py @@ -69,6 +69,10 @@ if __name__ == "__main__": + + Replace `claude-3-7-sonnet-20250219` with `claude-sonnet-4-6` in the saved file. + + Replace `qwen/qwen3-32b` with `qwen/qwen3.6-27b` in the saved file. diff --git a/examples/reasoning/tools/claude-reasoning-tools.mdx b/examples/reasoning/tools/claude-reasoning-tools.mdx index 38ccd8c71..b2ea62e29 100644 --- a/examples/reasoning/tools/claude-reasoning-tools.mdx +++ b/examples/reasoning/tools/claude-reasoning-tools.mdx @@ -4,6 +4,10 @@ description: "Claude Sonnet combines ReasoningTools and web search for a semicon source: cookbook/10_reasoning/tools/claude_reasoning_tools.py --- + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python claude_reasoning_tools.py """ Claude Reasoning Tools @@ -76,6 +80,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `claude_reasoning_tools.py`, then run: ```bash diff --git a/examples/storage/mongo/mongodb-for-agent.mdx b/examples/storage/mongo/mongodb-for-agent.mdx index eb565c01c..d28e4c3e7 100644 --- a/examples/storage/mongo/mongodb-for-agent.mdx +++ b/examples/storage/mongo/mongodb-for-agent.mdx @@ -52,12 +52,12 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git -cd agno/cookbook/06_storage/mongo +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git +cd agno # Create and activate virtual environment ./scripts/demo_setup.sh source .venvs/demo/bin/activate -python mongodb_for_agent.py +python cookbook/06_storage/mongo/mongodb_for_agent.py ``` diff --git a/examples/storage/mongo/mongodb-for-team.mdx b/examples/storage/mongo/mongodb-for-team.mdx index 768eb0cf0..c8b64f73c 100644 --- a/examples/storage/mongo/mongodb-for-team.mdx +++ b/examples/storage/mongo/mongodb-for-team.mdx @@ -99,7 +99,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/teams/fallback-models/basic-fallback.mdx b/examples/teams/fallback-models/basic-fallback.mdx index b4d857f54..8086d37ce 100644 --- a/examples/teams/fallback-models/basic-fallback.mdx +++ b/examples/teams/fallback-models/basic-fallback.mdx @@ -4,6 +4,10 @@ description: "When the team leader's primary model fails (after exhausting retri source: cookbook/03_teams/17_fallback_models/01_basic_fallback.py --- + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python basic_fallback.py """ Team Fallback Models — Basic @@ -71,6 +75,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `basic_fallback.py`, then run: ```bash diff --git a/examples/teams/fallback-models/error-specific-fallbacks.mdx b/examples/teams/fallback-models/error-specific-fallbacks.mdx index 80384e92d..7ecc7f7ae 100644 --- a/examples/teams/fallback-models/error-specific-fallbacks.mdx +++ b/examples/teams/fallback-models/error-specific-fallbacks.mdx @@ -4,6 +4,10 @@ description: "Use FallbackConfig for error-specific fallback routing on Teams." source: cookbook/03_teams/17_fallback_models/02_error_specific_fallbacks.py --- + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python error_specific_fallbacks.py """ Team Fallback Models — Error-Specific @@ -86,6 +90,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `error_specific_fallbacks.py`, then run: ```bash diff --git a/examples/teams/metrics/loop-team-and-member-metrics.mdx b/examples/teams/metrics/loop-team-and-member-metrics.mdx index 10c5c33a4..41742b693 100644 --- a/examples/teams/metrics/loop-team-and-member-metrics.mdx +++ b/examples/teams/metrics/loop-team-and-member-metrics.mdx @@ -4,6 +4,10 @@ description: "Walk the metrics surface on a TeamRunOutput." source: cookbook/03_teams/22_metrics/06_loop_team_and_member_metrics.py --- + + The v2.7.4 source uses the retired Azure model name `gpt-5-chat` for the leader and both members. Deploy a supported Azure chat model and update the IDs before running. See [Azure OpenAI model retirements](https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule?view=foundry-classic). + + ```python loop_team_and_member_metrics.py """ Loop Through Team Lead and Member Metrics @@ -158,18 +162,24 @@ if __name__ == "__main__": ``` - + ```bash Mac/Linux - export OPENAI_API_KEY="your_openai_api_key_here" + export AZURE_OPENAI_API_KEY="your_azure_openai_api_key_here" + export AZURE_OPENAI_ENDPOINT="your_azure_openai_endpoint_here" ``` ```bash Windows - $Env:OPENAI_API_KEY="your_openai_api_key_here" + $Env:AZURE_OPENAI_API_KEY="your_azure_openai_api_key_here" + $Env:AZURE_OPENAI_ENDPOINT="your_azure_openai_endpoint_here" ``` + + Deploy a current Azure chat model, then replace all three `id="gpt-5-chat"` values with that Azure deployment name. Microsoft lists `gpt-chat-latest` as the replacement for `gpt-5-chat`. + + Save the code above as `loop_team_and_member_metrics.py`, then run: ```bash diff --git a/examples/teams/other/sse-reconnect.mdx b/examples/teams/other/sse-reconnect.mdx index bab5103ab..8f0537a4f 100644 --- a/examples/teams/other/sse-reconnect.mdx +++ b/examples/teams/other/sse-reconnect.mdx @@ -248,7 +248,7 @@ if __name__ == "__main__": ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/teams/reasoning/reasoning-multi-purpose-team.mdx b/examples/teams/reasoning/reasoning-multi-purpose-team.mdx index 2a2dd700e..01b7de709 100644 --- a/examples/teams/reasoning/reasoning-multi-purpose-team.mdx +++ b/examples/teams/reasoning/reasoning-multi-purpose-team.mdx @@ -277,7 +277,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/teams/remote-agents/basic-remote-member.mdx b/examples/teams/remote-agents/basic-remote-member.mdx index 704d904eb..9ab71489f 100644 --- a/examples/teams/remote-agents/basic-remote-member.mdx +++ b/examples/teams/remote-agents/basic-remote-member.mdx @@ -101,6 +101,10 @@ if __name__ == "__main__": + + Start an AgentOS server that registers an agent you can call. Replace `http://localhost:7777` and `explorer` in the saved file with that server's base URL and agent ID. The v2.7.4 cookbook does not include a matching `explorer` server. + + Save the code above as `basic_remote_member.py`, then run: ```bash diff --git a/examples/teams/run-control/remote-team.mdx b/examples/teams/run-control/remote-team.mdx index f9e951470..ba3979ba3 100644 --- a/examples/teams/run-control/remote-team.mdx +++ b/examples/teams/run-control/remote-team.mdx @@ -86,14 +86,41 @@ if __name__ == "__main__": ```bash - uv pip install -U agno + uv pip install -U "agno[os]" chromadb ddgs openai + ``` + + + + + ```bash Mac/Linux + export OPENAI_API_KEY="your_openai_api_key_here" + ``` + + ```bash Windows + $Env:OPENAI_API_KEY="your_openai_api_key_here" + ``` + + + + + Clone the repository and run the remaining commands from its root: + ```bash + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git + cd agno + ``` + + + + In another terminal, start the [remote AgentOS server](/examples/agent-os/remote/server) on port 7778: + ```bash + python cookbook/05_agent_os/remote/server.py ``` - Save the code above as `remote_team.py`, then run: + Run the example from the repository root: ```bash - python remote_team.py + python cookbook/03_teams/14_run_control/remote_team.py ``` diff --git a/examples/teams/skills/basic-skills-team.mdx b/examples/teams/skills/basic-skills-team.mdx index 7c30e333a..806ea1482 100644 --- a/examples/teams/skills/basic-skills-team.mdx +++ b/examples/teams/skills/basic-skills-team.mdx @@ -99,7 +99,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/tools/agentql-tools.mdx b/examples/tools/agentql-tools.mdx index d8ea25226..063eb20b0 100644 --- a/examples/tools/agentql-tools.mdx +++ b/examples/tools/agentql-tools.mdx @@ -79,7 +79,7 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/airflow-tools.mdx b/examples/tools/airflow-tools.mdx index 52767ff06..8194108f2 100644 --- a/examples/tools/airflow-tools.mdx +++ b/examples/tools/airflow-tools.mdx @@ -130,7 +130,7 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/antigravity/antigravity-directory-tools.mdx b/examples/tools/antigravity/antigravity-directory-tools.mdx index 2e68cfb90..06bb5cee7 100644 --- a/examples/tools/antigravity/antigravity-directory-tools.mdx +++ b/examples/tools/antigravity/antigravity-directory-tools.mdx @@ -82,7 +82,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/tools/aws-lambda-tools.mdx b/examples/tools/aws-lambda-tools.mdx index f8f370fbf..d7ad16764 100644 --- a/examples/tools/aws-lambda-tools.mdx +++ b/examples/tools/aws-lambda-tools.mdx @@ -117,7 +117,7 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/aws-ses-tools.mdx b/examples/tools/aws-ses-tools.mdx index b9f303f28..94686d0c5 100644 --- a/examples/tools/aws-ses-tools.mdx +++ b/examples/tools/aws-ses-tools.mdx @@ -137,7 +137,7 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/bitbucket-tools.mdx b/examples/tools/bitbucket-tools.mdx index 71cba4921..dbfbf6abc 100644 --- a/examples/tools/bitbucket-tools.mdx +++ b/examples/tools/bitbucket-tools.mdx @@ -53,7 +53,7 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/brandfetch-tools.mdx b/examples/tools/brandfetch-tools.mdx index 1650ee9d5..507a21fb1 100644 --- a/examples/tools/brandfetch-tools.mdx +++ b/examples/tools/brandfetch-tools.mdx @@ -60,7 +60,7 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/cartesia-tools.mdx b/examples/tools/cartesia-tools.mdx index e55acc1a2..4d56bb353 100644 --- a/examples/tools/cartesia-tools.mdx +++ b/examples/tools/cartesia-tools.mdx @@ -49,7 +49,7 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/daytona-tools.mdx b/examples/tools/daytona-tools.mdx index 69a6dbff1..3124a33f4 100644 --- a/examples/tools/daytona-tools.mdx +++ b/examples/tools/daytona-tools.mdx @@ -61,7 +61,7 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/desi-vocal-tools.mdx b/examples/tools/desi-vocal-tools.mdx index 2e663e19a..f66513c2a 100644 --- a/examples/tools/desi-vocal-tools.mdx +++ b/examples/tools/desi-vocal-tools.mdx @@ -55,7 +55,7 @@ These commands apply only to accounts for which DesiVocal has arranged continued ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/docling-tools.mdx b/examples/tools/docling-tools.mdx index 796e4931d..4a1c3c98a 100644 --- a/examples/tools/docling-tools.mdx +++ b/examples/tools/docling-tools.mdx @@ -84,7 +84,7 @@ ocr_agent.print_response( ## Run the Example ```bash -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/docling-tools/basic-examples.mdx b/examples/tools/docling-tools/basic-examples.mdx index 15c138e98..419445c39 100644 --- a/examples/tools/docling-tools/basic-examples.mdx +++ b/examples/tools/docling-tools/basic-examples.mdx @@ -151,7 +151,7 @@ audio_video_path = get_test_resource_path("agno_description.mp4") Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/tools/docling-tools/ocr-example.mdx b/examples/tools/docling-tools/ocr-example.mdx index 4db408c6a..f31407bcc 100644 --- a/examples/tools/docling-tools/ocr-example.mdx +++ b/examples/tools/docling-tools/ocr-example.mdx @@ -84,7 +84,7 @@ audio_video_path = get_test_resource_path("agno_description.mp4") Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/tools/docling-tools/paths.mdx b/examples/tools/docling-tools/paths.mdx index 4aaa8a53c..5d0a79acd 100644 --- a/examples/tools/docling-tools/paths.mdx +++ b/examples/tools/docling-tools/paths.mdx @@ -34,7 +34,7 @@ audio_video_path = get_test_resource_path("agno_description.mp4") Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/tools/docling-tools/run.mdx b/examples/tools/docling-tools/run.mdx index adb26321b..5f51d7c70 100644 --- a/examples/tools/docling-tools/run.mdx +++ b/examples/tools/docling-tools/run.mdx @@ -190,7 +190,7 @@ audio_video_path = get_test_resource_path("agno_description.mp4") Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/tools/elevenlabs-tools.mdx b/examples/tools/elevenlabs-tools.mdx index 64cdec083..56747fe47 100644 --- a/examples/tools/elevenlabs-tools.mdx +++ b/examples/tools/elevenlabs-tools.mdx @@ -69,7 +69,7 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/evm-tools.mdx b/examples/tools/evm-tools.mdx index b2ab70b3e..aeb168765 100644 --- a/examples/tools/evm-tools.mdx +++ b/examples/tools/evm-tools.mdx @@ -63,7 +63,7 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/github-tools.mdx b/examples/tools/github-tools.mdx index 39ea47b8f..66908131e 100644 --- a/examples/tools/github-tools.mdx +++ b/examples/tools/github-tools.mdx @@ -246,7 +246,7 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/google-drive.mdx b/examples/tools/google-drive.mdx index 0924ab47c..0e0e62485 100644 --- a/examples/tools/google-drive.mdx +++ b/examples/tools/google-drive.mdx @@ -107,7 +107,7 @@ if __name__ == "__main__": ## Run the Example ```bash -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ./scripts/demo_setup.sh source .venvs/demo/bin/activate diff --git a/examples/tools/linear-tools.mdx b/examples/tools/linear-tools.mdx index 92f0db83a..c2ecedfdd 100644 --- a/examples/tools/linear-tools.mdx +++ b/examples/tools/linear-tools.mdx @@ -57,7 +57,7 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/mcp-tools.mdx b/examples/tools/mcp-tools.mdx index ca5d814cb..18acfe351 100644 --- a/examples/tools/mcp-tools.mdx +++ b/examples/tools/mcp-tools.mdx @@ -95,7 +95,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/tools/mcp/brave.mdx b/examples/tools/mcp/brave.mdx index 6ec5bc0ed..5df90f7a0 100644 --- a/examples/tools/mcp/brave.mdx +++ b/examples/tools/mcp/brave.mdx @@ -5,7 +5,7 @@ source: cookbook/91_tools/mcp/brave.py --- - This example uses the deprecated `@modelcontextprotocol/server-brave-search` package and `claude-sonnet-4-20250514`, which Anthropic retired on June 15, 2026. Apply both migrations below before running. See [Brave's maintained MCP server](https://github.com/brave/brave-search-mcp-server) and [Anthropic model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + This example uses the deprecated `@modelcontextprotocol/server-brave-search` package and `claude-sonnet-4-20250514`, which Anthropic retired on June 15, 2026. Apply both migrations below before running. See [Brave's maintained MCP server](https://github.com/brave/brave-search-mcp-server) and [Anthropic model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). ```python brave.py diff --git a/examples/tools/mcp/filesystem.mdx b/examples/tools/mcp/filesystem.mdx index a7b029752..482ebfe36 100644 --- a/examples/tools/mcp/filesystem.mdx +++ b/examples/tools/mcp/filesystem.mdx @@ -139,7 +139,7 @@ Documentation queries: Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/tools/mcp/groq-mcp.mdx b/examples/tools/mcp/groq-mcp.mdx index 753c1178d..9e4eadabc 100644 --- a/examples/tools/mcp/groq-mcp.mdx +++ b/examples/tools/mcp/groq-mcp.mdx @@ -165,7 +165,7 @@ Code analysis queries: Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/tools/mcp/include-tools.mdx b/examples/tools/mcp/include-tools.mdx index fa0f6c160..0b00b66dc 100644 --- a/examples/tools/mcp/include-tools.mdx +++ b/examples/tools/mcp/include-tools.mdx @@ -100,7 +100,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/tools/mcp/mcp-toolbox-demo/agent-os.mdx b/examples/tools/mcp/mcp-toolbox-demo/agent-os.mdx index d735cde2d..e02daa4f3 100644 --- a/examples/tools/mcp/mcp-toolbox-demo/agent-os.mdx +++ b/examples/tools/mcp/mcp-toolbox-demo/agent-os.mdx @@ -88,7 +88,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/tools/mcp/mcp-toolbox-demo/agent.mdx b/examples/tools/mcp/mcp-toolbox-demo/agent.mdx index 57b6e4eca..039b61da9 100644 --- a/examples/tools/mcp/mcp-toolbox-demo/agent.mdx +++ b/examples/tools/mcp/mcp-toolbox-demo/agent.mdx @@ -136,7 +136,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/tools/mcp/mcp-toolbox-demo/hotel-management-typesafe.mdx b/examples/tools/mcp/mcp-toolbox-demo/hotel-management-typesafe.mdx index f225d9a64..ee071a538 100644 --- a/examples/tools/mcp/mcp-toolbox-demo/hotel-management-typesafe.mdx +++ b/examples/tools/mcp/mcp-toolbox-demo/hotel-management-typesafe.mdx @@ -131,7 +131,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/tools/mcp/mcp-toolbox-demo/hotel-management-workflows.mdx b/examples/tools/mcp/mcp-toolbox-demo/hotel-management-workflows.mdx index 9de20266d..ee26f9efa 100644 --- a/examples/tools/mcp/mcp-toolbox-demo/hotel-management-workflows.mdx +++ b/examples/tools/mcp/mcp-toolbox-demo/hotel-management-workflows.mdx @@ -132,7 +132,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/tools/mcp/mcp-toolbox-for-db.mdx b/examples/tools/mcp/mcp-toolbox-for-db.mdx index 87d5f679d..8b02b8951 100644 --- a/examples/tools/mcp/mcp-toolbox-for-db.mdx +++ b/examples/tools/mcp/mcp-toolbox-for-db.mdx @@ -164,7 +164,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/tools/mcp/mem0.mdx b/examples/tools/mcp/mem0.mdx index bdc186665..b28f8f9c0 100644 --- a/examples/tools/mcp/mem0.mdx +++ b/examples/tools/mcp/mem0.mdx @@ -4,6 +4,10 @@ description: "Use Agno's MCP integration together with Mem0, to build a personal source: cookbook/91_tools/mcp/mem0.py --- + + The v2.7.4 source targets the archived local Mem0 MCP SSE server. Mem0's maintained service is an authenticated Streamable HTTP endpoint. Update the connection before running. See [Mem0 MCP](https://docs.mem0.ai/platform/mem0-mcp). + + ````python mem0.py """ ‍ Mem0 MCP - Personalized Code Reviewer @@ -92,18 +96,24 @@ result = process_data(items) ``` - + ```bash Mac/Linux + export MEM0_API_KEY="your_mem0_api_key_here" export OPENAI_API_KEY="your_openai_api_key_here" ``` ```bash Windows + $Env:MEM0_API_KEY="your_mem0_api_key_here" $Env:OPENAI_API_KEY="your_openai_api_key_here" ``` + + Add `import os`, set `mcp_server_url = "https://mcp.mem0.ai/mcp"`, change the `MCPTools` transport to `streamable-http`, and add `header_provider=lambda: {"Authorization": f"Bearer {os.environ['MEM0_API_KEY']}"}`. + + Save the code above as `mem0.py`, then run: ```bash diff --git a/examples/tools/mcp/parallel.mdx b/examples/tools/mcp/parallel.mdx index 66b3be315..30c782fe1 100644 --- a/examples/tools/mcp/parallel.mdx +++ b/examples/tools/mcp/parallel.mdx @@ -6,6 +6,10 @@ keywords: [mcp, parallel, web search, mcp server] Web search using Parallel's MCP server. API key is optional (keyless access is rate-limited). + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ## Example ```python @@ -54,7 +58,7 @@ if __name__ == "__main__": ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` @@ -73,6 +77,9 @@ if __name__ == "__main__": The Parallel API key is optional. Keyless access is rate-limited; setting a key raises the ceiling. + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + ```bash python cookbook/91_tools/mcp/parallel.py diff --git a/examples/tools/mcp/sse-transport/client.mdx b/examples/tools/mcp/sse-transport/client.mdx index fc32fdb08..dd7c7236e 100644 --- a/examples/tools/mcp/sse-transport/client.mdx +++ b/examples/tools/mcp/sse-transport/client.mdx @@ -110,7 +110,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/tools/mcp/streamable-http-transport/client.mdx b/examples/tools/mcp/streamable-http-transport/client.mdx index 81801bb04..61a2362ab 100644 --- a/examples/tools/mcp/streamable-http-transport/client.mdx +++ b/examples/tools/mcp/streamable-http-transport/client.mdx @@ -104,10 +104,25 @@ if __name__ == "__main__": + + Clone the repository and run the remaining commands from its root: + ```bash + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git + cd agno + ``` + + + + In another terminal, start the released sibling MCP server on port 8000: + ```bash + python cookbook/91_tools/mcp/streamable_http_transport/server.py + ``` + + - Save the code above as `client.py`, then run: + Run the example from the repository root: ```bash - python client.py + python cookbook/91_tools/mcp/streamable_http_transport/client.py ``` diff --git a/examples/tools/mcp/stripe.mdx b/examples/tools/mcp/stripe.mdx index a8efe00b5..8bd5154ee 100644 --- a/examples/tools/mcp/stripe.mdx +++ b/examples/tools/mcp/stripe.mdx @@ -121,7 +121,7 @@ Combined Tasks: ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/mem0-tools.mdx b/examples/tools/mem0-tools.mdx index 89dead146..6a3bf761e 100644 --- a/examples/tools/mem0-tools.mdx +++ b/examples/tools/mem0-tools.mdx @@ -140,7 +140,7 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/multiple-tools.mdx b/examples/tools/multiple-tools.mdx index f811e8368..d299723da 100644 --- a/examples/tools/multiple-tools.mdx +++ b/examples/tools/multiple-tools.mdx @@ -45,7 +45,7 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/nano-banana-tools.mdx b/examples/tools/nano-banana-tools.mdx index 53d5a621e..9dcdb6029 100644 --- a/examples/tools/nano-banana-tools.mdx +++ b/examples/tools/nano-banana-tools.mdx @@ -75,7 +75,7 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/neo4j-tools.mdx b/examples/tools/neo4j-tools.mdx index 3ee77811c..165045b20 100644 --- a/examples/tools/neo4j-tools.mdx +++ b/examples/tools/neo4j-tools.mdx @@ -156,7 +156,7 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/opencv-tools.mdx b/examples/tools/opencv-tools.mdx index e6329fd9d..f6f77e917 100644 --- a/examples/tools/opencv-tools.mdx +++ b/examples/tools/opencv-tools.mdx @@ -143,7 +143,7 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/openweather-tools.mdx b/examples/tools/openweather-tools.mdx index c05b2c18c..a1d01d9f2 100644 --- a/examples/tools/openweather-tools.mdx +++ b/examples/tools/openweather-tools.mdx @@ -113,7 +113,7 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/parallel-tools.mdx b/examples/tools/parallel-tools.mdx index 3b96f48f0..161485e40 100644 --- a/examples/tools/parallel-tools.mdx +++ b/examples/tools/parallel-tools.mdx @@ -100,7 +100,7 @@ agent.print_response("List my monitors and fetch recent events", stream=True) ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/tools/python-tools.mdx b/examples/tools/python-tools.mdx index e655de3b4..b31e6fdfb 100644 --- a/examples/tools/python-tools.mdx +++ b/examples/tools/python-tools.mdx @@ -73,7 +73,7 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/salesforce-tools.mdx b/examples/tools/salesforce-tools.mdx index 109f5aaab..33f60b48e 100644 --- a/examples/tools/salesforce-tools.mdx +++ b/examples/tools/salesforce-tools.mdx @@ -83,7 +83,7 @@ if __name__ == "__main__": ## Run the Example ```bash -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/seltz-tools.mdx b/examples/tools/seltz-tools.mdx index 4fff74faa..01632955e 100644 --- a/examples/tools/seltz-tools.mdx +++ b/examples/tools/seltz-tools.mdx @@ -43,7 +43,7 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/shopify-tools.mdx b/examples/tools/shopify-tools.mdx index d15b90780..29becba45 100644 --- a/examples/tools/shopify-tools.mdx +++ b/examples/tools/shopify-tools.mdx @@ -73,7 +73,7 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/spotify-tools.mdx b/examples/tools/spotify-tools.mdx index 7b0e33480..775ae1205 100644 --- a/examples/tools/spotify-tools.mdx +++ b/examples/tools/spotify-tools.mdx @@ -4,6 +4,10 @@ description: "Search tracks and create or update Spotify playlists with SpotifyT source: cookbook/91_tools/spotify_tools.py --- + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python spotify_tools.py """ Example: Using SpotifyTools with an Agno Agent @@ -97,6 +101,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Create a Spotify OAuth user access token with `user-read-private` and the playlist scopes required by your playlist visibility: `playlist-modify-public` and/or `playlist-modify-private`. See [Spotify authorization scopes](https://developer.spotify.com/documentation/web-api/concepts/scopes). diff --git a/examples/tools/superserve-tools.mdx b/examples/tools/superserve-tools.mdx index 210d11f19..4196918b6 100644 --- a/examples/tools/superserve-tools.mdx +++ b/examples/tools/superserve-tools.mdx @@ -67,14 +67,14 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git -cd agno/cookbook/91_tools +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git +cd agno # Create and activate virtual environment ./scripts/demo_setup.sh source .venvs/demo/bin/activate -python superserve_tools.py +python cookbook/91_tools/superserve_tools.py ``` -For details, see [Superserve cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/superserve_tools.py). +For details, see [Superserve cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/superserve_tools.py). diff --git a/examples/tools/unsplash-tools.mdx b/examples/tools/unsplash-tools.mdx index 24892b47c..8f8744bd6 100644 --- a/examples/tools/unsplash-tools.mdx +++ b/examples/tools/unsplash-tools.mdx @@ -112,7 +112,7 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/valyu-tools.mdx b/examples/tools/valyu-tools.mdx index fa44a660e..988904356 100644 --- a/examples/tools/valyu-tools.mdx +++ b/examples/tools/valyu-tools.mdx @@ -58,7 +58,7 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/visualization-tools.mdx b/examples/tools/visualization-tools.mdx index b423b2aac..03070b5cb 100644 --- a/examples/tools/visualization-tools.mdx +++ b/examples/tools/visualization-tools.mdx @@ -279,7 +279,7 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/webex-tools.mdx b/examples/tools/webex-tools.mdx index e9d746307..dc3cbca1d 100644 --- a/examples/tools/webex-tools.mdx +++ b/examples/tools/webex-tools.mdx @@ -49,7 +49,7 @@ if __name__ == "__main__": ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/x-tools.mdx b/examples/tools/x-tools.mdx index 506525c04..e8c183e12 100644 --- a/examples/tools/x-tools.mdx +++ b/examples/tools/x-tools.mdx @@ -101,7 +101,7 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/tools/x402scan-mcp-tools.mdx b/examples/tools/x402scan-mcp-tools.mdx index c32f00149..1afa4b3c1 100644 --- a/examples/tools/x402scan-mcp-tools.mdx +++ b/examples/tools/x402scan-mcp-tools.mdx @@ -6,6 +6,10 @@ source: cookbook/91_tools/x402scan_mcp_tools.py Give your agent money. Agents pay for APIs autonomously using USDC on Base. Access 100+ paid data sources: enrichment, scraping, maps, social media, media generation. + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python x402scan_mcp_tools.py """ x402scan MCP Tools @@ -128,6 +132,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `x402scan_mcp_tools.py`, then run: ```bash diff --git a/examples/tools/zep-tools.mdx b/examples/tools/zep-tools.mdx index 90b426cb8..b08b2d00c 100644 --- a/examples/tools/zep-tools.mdx +++ b/examples/tools/zep-tools.mdx @@ -107,7 +107,7 @@ if __name__ == "__main__": ## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate virtual environment diff --git a/examples/workflows/advanced-concepts/background-execution/websocket-client.mdx b/examples/workflows/advanced-concepts/background-execution/websocket-client.mdx index b1f9bd60c..77e297b80 100644 --- a/examples/workflows/advanced-concepts/background-execution/websocket-client.mdx +++ b/examples/workflows/advanced-concepts/background-execution/websocket-client.mdx @@ -524,7 +524,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/workflows/advanced-concepts/long-running/disruption-catchup.mdx b/examples/workflows/advanced-concepts/long-running/disruption-catchup.mdx index 1dbc548a1..728f04586 100644 --- a/examples/workflows/advanced-concepts/long-running/disruption-catchup.mdx +++ b/examples/workflows/advanced-concepts/long-running/disruption-catchup.mdx @@ -277,7 +277,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/workflows/advanced-concepts/long-running/events-replay.mdx b/examples/workflows/advanced-concepts/long-running/events-replay.mdx index 28cd59aa5..34c6719aa 100644 --- a/examples/workflows/advanced-concepts/long-running/events-replay.mdx +++ b/examples/workflows/advanced-concepts/long-running/events-replay.mdx @@ -251,7 +251,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/workflows/advanced-concepts/long-running/websocket-reconnect.mdx b/examples/workflows/advanced-concepts/long-running/websocket-reconnect.mdx index 695990dc0..f8f0515c0 100644 --- a/examples/workflows/advanced-concepts/long-running/websocket-reconnect.mdx +++ b/examples/workflows/advanced-concepts/long-running/websocket-reconnect.mdx @@ -307,7 +307,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/workflows/advanced-concepts/nested-workflows/nested-workflow-events.mdx b/examples/workflows/advanced-concepts/nested-workflows/nested-workflow-events.mdx index 5f9d30053..d69d709be 100644 --- a/examples/workflows/advanced-concepts/nested-workflows/nested-workflow-events.mdx +++ b/examples/workflows/advanced-concepts/nested-workflows/nested-workflow-events.mdx @@ -4,6 +4,10 @@ description: "Runs a nested workflow and prints every workflow/step event with f source: cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step/nested_workflow_events.py --- + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python nested_workflow_events.py """ Nested Workflow Example - Event Inspection @@ -180,6 +184,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `nested_workflow_events.py`, then run: ```bash diff --git a/examples/workflows/advanced-concepts/run-control/remote-workflow.mdx b/examples/workflows/advanced-concepts/run-control/remote-workflow.mdx index b2bff392d..d16fb7602 100644 --- a/examples/workflows/advanced-concepts/run-control/remote-workflow.mdx +++ b/examples/workflows/advanced-concepts/run-control/remote-workflow.mdx @@ -100,7 +100,7 @@ if __name__ == "__main__": Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` diff --git a/examples/workflows/basic-workflows/sequence-of-steps/workflow-with-file-input.mdx b/examples/workflows/basic-workflows/sequence-of-steps/workflow-with-file-input.mdx index 390120199..78f65514e 100644 --- a/examples/workflows/basic-workflows/sequence-of-steps/workflow-with-file-input.mdx +++ b/examples/workflows/basic-workflows/sequence-of-steps/workflow-with-file-input.mdx @@ -4,6 +4,10 @@ description: "Demonstrates passing file inputs through workflow steps for readin source: cookbook/04_workflows/01_basic_workflows/01_sequence_of_steps/workflow_with_file_input.py --- + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + ```python workflow_with_file_input.py """ Workflow With File Input @@ -101,6 +105,10 @@ if __name__ == "__main__": + + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + Save the code above as `workflow_with_file_input.py`, then run: ```bash diff --git a/other/cursor-rules.mdx b/other/cursor-rules.mdx index 18bc0c08f..66f9693dc 100644 --- a/other/cursor-rules.mdx +++ b/other/cursor-rules.mdx @@ -41,16 +41,16 @@ Copy the Agno `.cursorrules` file to your project root: ```bash # Download the .cursorrules file -curl -o .cursorrules https://raw.githubusercontent.com/agno-agi/agno/main/.cursorrules +curl -o .cursorrules https://raw.githubusercontent.com/agno-agi/agno/v2.7.4/.cursorrules # Or clone and copy -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cp agno/.cursorrules /path/to/your/project/ ``` Your AI assistant (Cursor, Windsurf, etc.) will automatically detect and use it. - + View the full .cursorrules file for building agents with Agno diff --git a/reference-api/openapi.json b/reference-api/openapi.json index 29733af1c..ec77e1faf 100644 --- a/reference-api/openapi.json +++ b/reference-api/openapi.json @@ -1 +1 @@ -{"openapi":"3.1.0","info":{"title":"Agno API Reference","description":"The all-in-one, private, secure agent platform that runs in your cloud.","version":"2.7.4"},"paths":{"/":{"get":{"tags":["Home"],"summary":"API Information","description":"Return the AgentOS instance name, ID, and version.","operationId":"get_api_info","responses":{"200":{"description":"API information retrieved successfully","content":{"application/json":{"schema":{"properties":{"name":{"type":"string","title":"Name"},"id":{"type":"string","title":"Id"},"version":{"type":"string","title":"Version"}},"type":"object","required":["name","id","version"],"title":"ApiInfoResponse"},"examples":{"home":{"summary":"Example home response","value":{"name":"AgentOS API","id":"demo-os","version":"1.0.0"}}}}}}}}},"/health":{"get":{"tags":["Health"],"summary":"Health Check","description":"Check the health status of the AgentOS API. Returns a simple status indicator.","operationId":"health_check","responses":{"200":{"description":"API is healthy and operational","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"},"example":{"status":"ok","instantiated_at":"2025-06-10T12:00:00Z"}}}}}}},"/info":{"get":{"tags":["Core"],"summary":"Get OS Info","description":"Return lightweight, unauthenticated metadata about this AgentOS instance.","operationId":"get_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoResponse"}}}}}}},"/config":{"get":{"tags":["Core"],"summary":"Get OS Configuration","description":"Retrieve the complete configuration of the AgentOS instance, including:\n\n- Available models and databases\n- Registered agents, teams, and workflows\n- Chat, session, memory, knowledge, and evaluation configurations\n- Available interfaces and their routes","operationId":"get_config","responses":{"200":{"description":"OS configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"},"example":{"description":"Example AgentOS configuration","available_models":[],"databases":["9c884dc4-9066-448c-9074-ef49ec7eb73c"],"session":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Sessions"}}]},"metrics":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Metrics"}}]},"memory":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Memory"}}]},"knowledge":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Knowledge"}}]},"evals":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Evals"}}]},"agents":[{"id":"main-agent","name":"Main Agent","db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c"}],"teams":[],"workflows":[],"interfaces":[],"os_id":"demo"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/models":{"get":{"tags":["Core"],"summary":"Get Available Models","description":"Retrieve a list of all unique models currently used by agents and teams in this OS instance. This includes the model ID and provider information for each model.","operationId":"get_models","responses":{"200":{"description":"List of models retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Response Get Models"},"example":[{"id":"gpt-4","provider":"openai"},{"id":"claude-3-sonnet","provider":"anthropic"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}/runs":{"post":{"tags":["Agents"],"summary":"Create Agent Run","description":"Execute an agent with a message and optional media files. Supports both streaming and non-streaming responses.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_agent_run"}}}},"responses":{"200":{"description":"Agent run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"examples":{"event_stream":{"summary":"Example event stream response","value":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Agents"],"summary":"List Agent Runs","description":"List runs for an agent within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_agent_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED","title":"Status"},"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RunSchema"},"type":"array","title":"Response List Agent Runs"}}}},"400":{"description":"Run listing is unavailable for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Agent resolution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/cancel":{"post":{"tags":["Agents"],"summary":"Cancel Agent Run","description":"Request cancellation for `run_id`. After any required ownership check, local and factory agents store cancellation intent keyed by run ID. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote agent.","operationId":"cancel_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.","title":"Session Id"},"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it."}],"responses":{"200":{"description":"Cancellation request accepted. The empty response does not confirm run existence or remote delivery.","content":{"application/json":{"schema":{}}}},"400":{"description":"A user-scoped caller omitted session_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found, or the run could not be verified in the caller's session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run cancellation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/continue":{"post":{"tags":["Agents"],"summary":"Continue Agent Run","description":"Advance a persisted agent run from its current state. Dispatches on the body shape and the persisted run state (see ADR-003 in specs/agno/features/checkpointing/decisions.md).\n\n**Variants:**\n- PAUSED + tools provided \u2192 apply HITL tool results, resume\n- PAUSED + resolved admin approval (empty tools) \u2192 apply resolution, resume\n- RUNNING / ERROR (no unresolved HITL requirements) \u2192 resume from last persisted state\n- COMPLETED + new tools \u2192 continue with appended messages\n\n**Tools Parameter:**\nJSON string containing array of tool execution objects with results. Optional \u2014 only required when the persisted run has unresolved HITL requirements.","operationId":"continue_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_agent_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid tools or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Agent run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run continuation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"503":{"description":"Remote agent is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/agents/{agent_id}/sessions/{session_id}/fork":{"post":{"tags":["Agents"],"summary":"Fork Agent Session","description":"Deep-copy a session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_agent_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents":{"get":{"tags":["Agents"],"summary":"List All Agents","description":"Retrieve a comprehensive list of all agents configured in this OS instance.\n\n**Returns:**\n- Agent metadata (ID, name, description)\n- Model configuration and capabilities\n- Available tools and their configurations\n- Session, knowledge, memory, and reasoning settings\n- Only meaningful (non-default) configurations are included","operationId":"get_agents","responses":{"200":{"description":"List of agents retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentResponse"},"type":"array","title":"Response Get Agents"},"example":[{"id":"main-agent","name":"Main Agent","db_id":"c6bf0644-feb8-4930-a305-380dae5ad6aa","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Details","description":"Retrieve detailed configuration and capabilities of a specific agent.\n\n**Returns comprehensive agent information including:**\n- Model configuration and provider details\n- Complete tool inventory and configurations\n- Session management settings\n- Knowledge base and memory configurations\n- Reasoning capabilities and settings\n- System prompts and response formatting options","operationId":"get_agent","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Agent details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"},"example":{"id":"main-agent","name":"Main Agent","db_id":"9e064c70-6821-4840-a333-ce6230908a70","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Run","description":"Retrieve the status and output of an agent run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Agents"],"summary":"List Agent Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_agent_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointListResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Agents"],"summary":"Get Agent Run Checkpoint Snapshot","description":"Return a derived run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_agent_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointSnapshotResponse"}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/resume":{"post":{"tags":["Agents"],"summary":"Resume Agent Run Stream","description":"Resume an SSE stream for an agent run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_agent_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_agent_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Not supported for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs":{"post":{"tags":["Teams"],"summary":"Create Team Run","description":"Execute a team collaboration with multiple agents working together on a task.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_team_run"}}}},"responses":{"200":{"description":"Team run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Teams"],"summary":"List Team Runs","description":"List runs for a team within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_team_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/cancel":{"post":{"tags":["Teams"],"summary":"Cancel Team Run","description":"Request cancellation for `run_id`. After any required ownership check, local and factory teams store cancellation intent keyed by run ID and mark known member runs for cancellation. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote team.","operationId":"cancel_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.","title":"Session Id"},"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it."}],"responses":{"200":{"description":"Cancellation request accepted. The empty response does not confirm run existence or remote delivery.","content":{"application/json":{"schema":{}}}},"400":{"description":"A user-scoped caller omitted session_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found, or the run could not be verified in the caller's session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel team run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/resume":{"post":{"tags":["Teams"],"summary":"Resume Team Run Stream","description":"Resume an SSE stream for a team run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_team_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_team_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory teams. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/continue":{"post":{"tags":["Teams"],"summary":"Continue Team Run","description":"Continue a paused or incomplete team run with updated requirements.\n\n**Use Cases:**\n- Resume execution after tool approval/rejection\n- Provide manual tool execution results\n- Resume after admin approval (requirements can be empty; resolution fetched from DB)\n\n**Requirements Parameter:**\nJSON string containing array of requirement objects with tool execution results.\nCan be empty when an admin-required approval has been resolved.","operationId":"continue_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_team_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid requirements or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Team run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Remote team is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/teams/{team_id}/sessions/{session_id}/fork":{"post":{"tags":["Teams"],"summary":"Fork Team Session","description":"Deep-copy a team session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_team_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams":{"get":{"tags":["Teams"],"summary":"List Accessible Teams","description":"Retrieve configured team metadata, models, members, knowledge, and memory settings. When authorization is enabled, in-memory team registrations are filtered by caller scopes. Database-loaded team components are also included.","operationId":"get_teams","responses":{"200":{"description":"List of teams retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamResponse"},"type":"array","title":"Response Get Teams"},"example":[{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"agno_memories","app_url":"/memory/1","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/teams/{team_id}":{"get":{"tags":["Teams"],"summary":"Get Team Details","description":"Retrieve detailed configuration and member information for a specific team.","operationId":"get_team","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"},"example":{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}":{"get":{"tags":["Teams"],"summary":"Get Team Run","description":"Retrieve the status and output of a team run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Teams"],"summary":"List Team Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored team run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_team_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointListResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Teams"],"summary":"Get Team Run Checkpoint Snapshot","description":"Return a derived team run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_team_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointSnapshotResponse"}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows":{"get":{"tags":["Workflows"],"summary":"List Workflows","description":"Return workflow ID, name, description, database ID, factory metadata, and Builder version metadata. When authorization is enabled, caller scopes filter in-memory workflow registrations. Database-loaded Builder workflows are appended separately.","operationId":"get_workflows","responses":{"200":{"description":"List of workflows retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Response Get Workflows"},"example":[{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/workflows/{workflow_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Details","description":"Retrieve detailed configuration and step information for a specific workflow.","operationId":"get_workflow","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Workflow version to retrieve","title":"Version"},"description":"Workflow version to retrieve"}],"responses":{"200":{"description":"Workflow details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"},"example":{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs":{"post":{"tags":["Workflows"],"summary":"Execute Workflow","description":"Execute a workflow with the provided input data. Workflows can run in streaming or batch mode.\n\n**Execution Modes:**\n- **Streaming (`stream=true`)**: Real-time step-by-step execution updates via SSE\n- **Non-Streaming (`stream=false`)**: Complete workflow execution with final result\n\n**Workflow Execution Process:**\n1. Input validation against workflow schema\n2. Sequential or parallel step execution based on workflow design\n3. Data flow between steps with transformation\n4. Error handling and automatic retries where configured\n5. Final result compilation and response\n\n**Session Management:**\nWorkflows support session continuity for stateful execution across multiple runs.","operationId":"create_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_run"}}}},"responses":{"200":{"description":"Workflow executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid input data or workflow configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Workflow execution error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"List Workflow Runs","description":"List runs for a workflow within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_workflow_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/continue":{"post":{"tags":["Workflows"],"summary":"Continue Workflow Run","description":"Continue a paused workflow run with resolved requirements.\n\n**Use Cases:**\n- Resume after step-level HITL (confirmation, user input, router selection)\n- Resume after executor-level HITL (agent/team tool confirmation within a step)\n\n**Requirements Parameter:**\nJSON string containing the resolved step requirements.","operationId":"continue_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_workflow_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: StepCompleted\ndata: {\"step_name\": \"step1\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid step requirements or factory input, missing required session ID, rejected input, or remote workflow continuation requested","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is not paused and cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/cancel":{"post":{"tags":["Workflows"],"summary":"Cancel Workflow Run","description":"Request cancellation for `run_id`. After any required ownership check, local and factory workflows store cancellation intent keyed by run ID and mark known agent or team executor runs for cancellation. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote workflow.","operationId":"cancel_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.","title":"Session Id"},"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it."}],"responses":{"200":{"description":"Cancellation request accepted. The empty response does not confirm run existence or remote delivery.","content":{"application/json":{"schema":{}}}},"400":{"description":"A user-scoped caller omitted session_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found, or the run could not be verified in the caller's session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel workflow run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/resume":{"post":{"tags":["Workflows"],"summary":"Resume Workflow Run Stream","description":"Resume an SSE stream for a workflow run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_workflow_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_workflow_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory workflows. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Run","description":"Retrieve the status and output of a workflow run. Use this to poll for run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/slack/events":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Receives incoming Slack events (messages, mentions, thread starts).\n\n**URL Verification:** On first setup, Slack sends a `url_verification` challenge. The endpoint echoes back the challenge string.\n\n**Event Processing:** Normal events are acknowledged immediately with `{\"status\": \"ok\"}` and processed in the background. This prevents Slack's 3-second retry timeout.\n\n**Retry Handling:** Events with `X-Slack-Retry-Num` header are duplicates and return 200 without reprocessing.\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Event Subscriptions > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for creating a Slack App or use the [manifest](/agent-os/interfaces/slack/setup#2-create-the-slack-app) for quick setup.\n","operationId":"slack_events_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SlackChallengeResponse"},{"$ref":"#/components/schemas/SlackEventResponse"}],"title":"Response Slack Events Simple Agent"}}}},"400":{"description":"Missing Slack headers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured, or the event body is not valid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number (present on retried events)"}]}},"/slack/interactions":{"post":{"tags":["Slack"],"summary":"Slack Interactions","description":"Handles Slack interactive components for Human-in-the-Loop (HITL) workflows.\n\n**Supported Actions:**\n- `row_approve` - Approve a pending tool call\n- `row_reject` - Reject a pending tool call\n- `submit_pause` - Submit form data for a paused workflow\n- `check_status` - Check an admin approval and resume an approved run\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Interactivity & Shortcuts > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for step-by-step instructions or the [HITL guide](/agent-os/interfaces/slack/hitl) for approval workflows.\n","operationId":"slack_interactions_simple_agent","responses":{"200":{"description":"Interaction accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackEventResponse"}}}},"400":{"description":"Missing Slack headers or malformed interaction payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number. Retried interactions return 200 without reprocessing."}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"URL-encoded JSON interaction payload (Slack sends interactive component data as a single form field)"}}}}}}}},"/whatsapp/status":{"get":{"tags":["Whatsapp"],"summary":"Status","operationId":"whatsapp_status_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"WhatsAppStatusResponse","example":{"status":"available"}}}}}}}},"/whatsapp/webhook":{"get":{"tags":["Whatsapp"],"summary":"Whatsapp Verify","description":"Handle WhatsApp webhook verification","operationId":"whatsapp_verify_simple_agent","responses":{"200":{"description":"Webhook challenge accepted","content":{"text/plain":{"schema":{"type":"string"},"example":"challenge-token"}}},"400":{"description":"No challenge was provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid verify token or mode","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Webhook verification is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"hub.mode","in":"query","required":true,"schema":{"type":"string"},"description":"Webhook verification mode. Meta sends `subscribe`."},{"name":"hub.verify_token","in":"query","required":true,"schema":{"type":"string"},"description":"Verification token configured for the WhatsApp interface."},{"name":"hub.challenge","in":"query","required":true,"schema":{"type":"string"},"description":"Challenge returned as plain text after successful verification."}]},"post":{"tags":["Whatsapp"],"summary":"Whatsapp Webhook","description":"Process incoming WhatsApp messages","operationId":"whatsapp_webhook_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppWebhookResponse"}}}},"403":{"description":"Invalid webhook signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Signature validation is not configured, or the JSON body is malformed or is not an object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Hub-Signature-256","in":"header","required":true,"schema":{"type":"string"},"description":"SHA-256 HMAC signature for the raw request body, prefixed with `sha256=`"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}},"/telegram/status":{"get":{"tags":["Telegram"],"summary":"Telegram Status","operationId":"telegram_status_simple-agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramStatusResponse"}}}}}}},"/telegram/webhook":{"post":{"tags":["Telegram"],"summary":"Telegram Webhook","operationId":"telegram_webhook_simple-agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramWebhookResponse"}}}},"403":{"description":"Invalid webhook secret token"}}}},"/agui":{"post":{"tags":["AGUI"],"summary":"Run Agent","operationId":"run_agent_agui_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentInput"}}},"required":true},"responses":{"200":{"description":"Server-sent event stream","content":{"text/event-stream":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/status":{"get":{"tags":["AGUI"],"summary":"Get Status","operationId":"get_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/a2a/agents/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Agent Card","operationId":"get_agent_card_a2a_agents__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/a2a/agents/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Agent","description":"Send a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"A2A is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/agents/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Agent Task","description":"Get the status and result of an agent task by ID. `params.contextId` identifies the session containing the task.","operationId":"get_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent task retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Missing task or context ID, or task polling requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"Task polling is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/get","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/agents/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Agent Task","description":"Cancel a running agent task. Scoped non-admin callers must identify the task's session with `params.contextId`.","operationId":"cancel_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent task canceled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"canceled"}}}}}},"400":{"description":"Missing task or required context ID, or task cancellation requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"Task cancellation is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/cancel","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/agents/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Agent","description":"Stream a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/teams/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Team Card","operationId":"get_team_card_a2a_teams__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/a2a/teams/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Team","description":"Send a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/teams/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Team Task","description":"Get the status and result of a team task by ID. `params.contextId` identifies the session containing the task.","operationId":"get_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team task retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Missing task or context ID, or task polling requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/get","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/teams/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Team Task","description":"Cancel a running team task. Scoped non-admin callers must identify the task's session with `params.contextId`.","operationId":"cancel_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team task canceled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"canceled"}}}}}},"400":{"description":"Missing task or required context ID, or task cancellation requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/cancel","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/teams/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Team","description":"Stream a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/workflows/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Workflow Card","operationId":"get_workflow_card_a2a_workflows__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Workflow card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/a2a/workflows/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Workflow","description":"Send a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/workflows/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Workflow","description":"Stream a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/message/send":{"post":{"tags":["A2A"],"summary":"Send Message","description":"[DEPRECATED] Send a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"send_message","responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request or unsupported method","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, team, or workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"deprecated":true,"security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"X-Agent-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Target agent, team, or workflow ID when `params.message.agentId` is omitted."},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/message/stream":{"post":{"tags":["A2A"],"summary":"Stream Message","description":"[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as Server-Sent Events (SSE).","operationId":"stream_message","responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request or unsupported method","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, team, or workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"deprecated":true,"security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"X-Agent-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Target agent, team, or workflow ID when `params.message.agentId` is omitted."},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/sessions":{"get":{"tags":["Sessions"],"summary":"List Sessions","description":"Retrieve paginated list of sessions with filtering and sorting options. Supports filtering by session type (agent, team, workflow), component, user, and name. Sessions represent conversation histories and execution contexts.","operationId":"get_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types.","title":"Type"},"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types."},{"name":"component_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by component ID (agent/team/workflow ID)","title":"Component Id"},"description":"Filter sessions by component ID (agent/team/workflow ID)"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by user ID","title":"User Id"},"description":"Filter sessions by user ID"},{"name":"session_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by name (partial match)","title":"Session Name"},"description":"Filter sessions by name (partial match)"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of sessions to return per page","default":20,"title":"Limit"},"description":"Number of sessions to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort sessions by","default":"created_at","title":"Sort By"},"description":"Field to sort sessions by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query sessions from","title":"Db Id"},"description":"Database ID to query sessions from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Sessions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_SessionSchema_"},"example":{"session_example":{"summary":"Example session response","value":{"data":[{"session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_state":{},"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}]}}}}}},"400":{"description":"Invalid session type or filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in query parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Sessions"],"summary":"Create New Session","description":"Create a new empty session with optional configuration. Useful for pre-creating sessions with specific session_state, metadata, or other properties before running any agent/team/workflow interactions. The session can later be used by providing its session_id in run requests.","operationId":"create_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SessionType","description":"Type of session to create (agent, team, or workflow)","default":"agent"},"description":"Type of session to create (agent, team, or workflow)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to create session in","title":"Db Id"},"description":"Database ID to create session in"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest","description":"Session configuration data","default":{}}}}},"responses":{"201":{"description":"Session created successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Create Session"},"examples":{"agent_session_example":{"summary":"Example created agent session","value":{"user_id":"user-123","agent_session_id":"new-session-id","session_id":"new-session-id","session_name":"New Session","session_state":{"key":"value"},"metadata":{"key":"value"},"agent_id":"agent-1","created_at":"2025-10-21T12:00:00Z","updated_at":"2025-10-21T12:00:00Z"}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A session with the supplied session_id already exists"},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Multiple Sessions","description":"Delete multiple sessions by their IDs in a single operation. This action cannot be undone and will permanently remove all specified sessions and their runs.","operationId":"delete_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSessionRequest"}}}},"responses":{"204":{"description":"Sessions deleted successfully"},"400":{"description":"Invalid request - session IDs and types length mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["Sessions"],"summary":"Get Session by ID","description":"Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow).","operationId":"get_session_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to retrieve","title":"Session Id"},"description":"Session ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query session from","title":"User Id"},"description":"User ID to query session from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query session from","title":"Db Id"},"description":"Database ID to query session from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query session from","title":"Table"},"description":"Table to query session from"}],"responses":{"200":{"description":"Session details retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Get Session By Id"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Session","description":"Permanently delete a specific session and all its associated runs. This action cannot be undone and will remove all conversation history.","operationId":"delete_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to delete","title":"Session Id"},"description":"Session ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Sessions"],"summary":"Update Session","description":"Update session properties such as session_name, session_state, metadata, or summary. Use this endpoint to modify the session name, update state, add metadata, or update the session summary.","operationId":"update_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to update","title":"Session Id"},"description":"Session ID to update"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID","title":"User Id"},"description":"User ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update operation","title":"Db Id"},"description":"Database ID to use for update operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update operation","title":"Table"},"description":"Table to use for update operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest","description":"Session update data"}}}},"responses":{"200":{"description":"Session updated successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Update Session"},"examples":{"update_summary":{"summary":"Update session summary","value":{"summary":{"summary":"The user discussed project planning with the agent.","updated_at":"2025-10-21T14:30:00Z"}}},"update_metadata":{"summary":"Update session metadata","value":{"metadata":{"tags":["planning","project"],"priority":"high"}}},"update_session_name":{"summary":"Update session name","value":{"session_name":"Updated Session Name"}},"update_session_state":{"summary":"Update session state","value":{"session_state":{"step":"completed","context":"Project planning finished","progress":100}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs":{"get":{"tags":["Sessions"],"summary":"Get Session Runs","description":"Retrieve all runs (executions) for a specific session with optional timestamp filtering. Runs represent individual interactions or executions within a session. Response schema varies based on session type.","operationId":"get_session_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get runs from","title":"Session Id"},"description":"Session ID to get runs from"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query runs from","title":"User Id"},"description":"User ID to query runs from"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created after this Unix timestamp (epoch time in seconds)","title":"Created After"},"description":"Filter runs created after this Unix timestamp (epoch time in seconds)"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created before this Unix timestamp (epoch time in seconds)","title":"Created Before"},"description":"Filter runs created before this Unix timestamp (epoch time in seconds)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query runs from","title":"Db Id"},"description":"Database ID to query runs from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query runs from","title":"Table"},"description":"Table to query runs from"}],"responses":{"200":{"description":"Session runs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}]},"title":"Response Get Session Runs"},"examples":{"completed_run":{"summary":"Example completed run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"","run_input":"Which tools do you have access to?","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","run_response_format":"text","reasoning_content":"","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069},"messages":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-08 17:52:10.101003.\n\n\nYou have the capability to retain memories from previous interactions with the user, but have not had any interactions with the user yet.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757346730},{"content":"Which tools do you have access to?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757346730},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138},"created_at":1757346730}],"events":[{"created_at":1757346730,"event":"RunStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","model":"gpt-4o","model_provider":"OpenAI"},{"created_at":1757346733,"event":"MemoryUpdateStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"MemoryUpdateCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"RunCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","content_type":"str","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069}}],"created_at":"2025-09-08T15:52:10Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found or has no runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs/{run_id}":{"get":{"tags":["Sessions"],"summary":"Get Run by ID","description":"Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run).","operationId":"get_session_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get run from","title":"Session Id"},"description":"Session ID to get run from"},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","description":"Run ID to retrieve","title":"Run Id"},"description":"Run ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query run from","title":"User Id"},"description":"User ID to query run from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query run from","title":"Db Id"},"description":"Database ID to query run from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query run from","title":"Table"},"description":"Table to query run from"}],"responses":{"200":{"description":"Run retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}],"title":"Response Get Session Run"},"examples":{"agent_run":{"summary":"Example agent run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"user_123","run_input":"Which tools do you have access to?","content":"I don't have access to external tools.","created_at":1728499200}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/rename":{"post":{"tags":["Sessions"],"summary":"Rename Session","description":"Update the name of an existing session. Useful for organizing and categorizing sessions with meaningful names for better identification and management.","operationId":"rename_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to rename","title":"Session Id"},"description":"Session ID to rename"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope rename to","title":"User Id"},"description":"User ID to scope rename to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for rename operation","title":"Db Id"},"description":"Database ID to use for rename operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_rename_session"}}}},"responses":{"200":{"description":"Session renamed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Rename Session"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Invalid session name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type or validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories":{"post":{"tags":["Memory"],"summary":"Create Memory","description":"Create a new user memory with content and associated topics. Memories are used to store contextual information for users across conversations.","operationId":"create_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for memory storage","title":"Db Id"},"description":"Database ID to use for memory storage"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for memory storage","title":"Table"},"description":"Table to use for memory storage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"mem-123","memory":"User prefers technical explanations with code examples","topics":["preferences","communication_style","technical"],"user_id":"user-456","created_at":"2024-01-15T10:30:00Z","updated_at":"2024-01-15T10:30:00Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Memory"],"summary":"Delete Multiple Memories","description":"Delete multiple user memories by their IDs in a single operation. This action cannot be undone and all specified memories will be permanently removed.","operationId":"delete_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMemoriesRequest"}}}},"responses":{"204":{"description":"Memories deleted successfully"},"400":{"description":"Invalid request - empty memory_ids list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"List Memories","description":"Retrieve paginated list of user memories with filtering and search capabilities. Filter by user, agent, team, topics, or search within memory content.","operationId":"get_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by user ID","title":"User Id"},"description":"Filter memories by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by agent ID","title":"Agent Id"},"description":"Filter memories by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by team ID","title":"Team Id"},"description":"Filter memories by team ID"},{"name":"search_content","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fuzzy search within memory content","title":"Search Content"},"description":"Fuzzy search within memory content"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of memories to return per page","default":20,"title":"Limit"},"description":"Number of memories to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort memories by","default":"updated_at","title":"Sort By"},"description":"Field to sort memories by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memories from","title":"Db Id"},"description":"Database ID to query memories from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Comma-separated list of topics to filter by","examples":["preferences,technical,communication_style"],"title":"Topics"},"description":"Comma-separated list of topics to filter by"}],"responses":{"200":{"description":"Memories retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserMemorySchema_"},"example":{"data":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories/{memory_id}":{"delete":{"tags":["Memory"],"summary":"Delete Memory","description":"Permanently delete a specific user memory. This action cannot be undone.","operationId":"delete_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to delete","title":"Memory Id"},"description":"Memory ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to delete memory for","title":"User Id"},"description":"User ID to delete memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Memory deleted successfully"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"Get Memory by ID","description":"Retrieve detailed information about a specific user memory by its ID.","operationId":"get_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to retrieve","title":"Memory Id"},"description":"Memory ID to retrieve"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query memory for","title":"User Id"},"description":"User ID to query memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memory from","title":"Db Id"},"description":"Database ID to query memory from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query memory from","title":"Table"},"description":"Table to query memory from"}],"responses":{"200":{"description":"Memory retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Memory"],"summary":"Update Memory","description":"Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values.","operationId":"update_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to update","title":"Memory Id"},"description":"Memory ID to update"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update","title":"Db Id"},"description":"Database ID to use for update"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update","title":"Table"},"description":"Table to use for update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memory_topics":{"get":{"tags":["Memory"],"summary":"Get Memory Topics","description":"Retrieve all unique topics associated with memories in the system. Useful for filtering and categorizing memories by topic.","operationId":"get_memory_topics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter topics for","title":"User Id"},"description":"User ID to filter topics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query topics from","title":"Db Id"},"description":"Database ID to query topics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query topics from","title":"Table"},"description":"Table to query topics from"}],"responses":{"200":{"description":"Memory topics retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Get Memory Topics"},"example":["preferences","communication_style","technical","industry","compliance","code_examples","requirements","healthcare","finance"]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/user_memory_stats":{"get":{"tags":["Memory"],"summary":"Get User Memory Statistics","description":"Retrieve paginated statistics about memory usage by user. Provides insights into user engagement and memory distribution across users.","operationId":"get_user_memory_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of user statistics to return per page","default":20,"title":"Limit"},"description":"Number of user statistics to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter statistics for","title":"User Id"},"description":"User ID to filter statistics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query statistics from","title":"Table"},"description":"Table to query statistics from"}],"responses":{"200":{"description":"User memory statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserStatsSchema_"},"example":{"data":[{"user_id":"123","total_memories":3,"last_memory_updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve user statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/optimize-memories":{"post":{"tags":["Memory"],"summary":"Optimize User Memories","description":"Optimize all memories for a user with the summarize strategy. The operation combines the user's memories into one summary. Set `apply=false` to preview the result without saving it. Specify a custom model as `provider:model_id`, for example `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, or `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`.","operationId":"optimize_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for optimization","title":"Db Id"},"description":"Database ID to use for optimization"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for optimization","title":"Table"},"description":"Table to use for optimization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesRequest"}}}},"responses":{"200":{"description":"Memories optimized successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesResponse"},"example":{"memories":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User has a 3-year-old golden retriever named Max who loves fetch and walks. Lives in San Francisco's Mission district, works as a product manager in tech. Enjoys hiking Bay Area trails, trying new restaurants (especially Japanese, Thai, Mexican), and learning piano for 1.5 years.","topics":["pets","location","work","hobbies","food_preferences"],"user_id":"user2","updated_at":"2025-11-18T10:30:00Z"}],"memories_before":4,"memories_after":1,"tokens_before":450,"tokens_after":180,"tokens_saved":270,"reduction_percentage":60.0}}}},"400":{"description":"Bad request - User ID is required or invalid model string format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No memories found for user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to optimize memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings":{"get":{"tags":["Learnings"],"summary":"List Learnings","description":"List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) \u2014 this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`).","operationId":"list_learnings","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by learning type","title":"Learning Type"},"description":"Filter by learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"namespace","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by namespace","title":"Namespace"},"description":"Filter by namespace"},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity ID","title":"Entity Id"},"description":"Filter by entity ID"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity type","title":"Entity Type"},"description":"Filter by entity type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":100,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used).","title":"Sort By"},"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used)."},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"post":{"tags":["Learnings"],"summary":"Create Learning","description":"Create a new learning record. For the identity-keyed learning types (`user_profile`, `user_memory`, `session_context`, `entity_memory`) the record id is derived deterministically from the identity fields so it reconciles with what the agent reads/writes \u2014 provide those fields (else 422), and if a record already exists the request is rejected with 409 (use PATCH to update it). Other types get a generated id. For a scoped (non-admin) caller, the body's `user_id` must be omitted/null or match the caller (mismatch \u2192 403); admins and unscoped callers may set any `user_id`.","operationId":"create_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"An identity-keyed learning already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/users":{"get":{"tags":["Learnings"],"summary":"List Learning Users","description":"List the users that own learning records, with a per-user count and last-updated timestamp. Intended as the entry point for a per-user view: list users here, then drill into a single user's learnings via `GET /learnings?user_id=...`. Records with no owner (`user_id IS NULL`) are excluded. Pass `learning_type` to restrict the grouping to a single store (e.g. `user_profile` or `user_memory`). For a scoped (non-admin) caller results are bound to that user; an explicit `user_id` that differs is rejected with 403. Admins and unscoped callers list all users. Sortable by `user_id` or `last_learning_updated_at` (the default).","operationId":"list_learning_users","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the grouping to a single learning type","title":"Learning Type"},"description":"Restrict the grouping to a single learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the result to a single user","title":"User Id"},"description":"Restrict the result to a single user"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by: user_id or last_learning_updated_at (the default)","title":"Sort By"},"description":"Field to sort by: user_id or last_learning_updated_at (the default)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningUserStats_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/users/{user_id}":{"delete":{"tags":["Learnings"],"summary":"Delete Learning User","description":"Delete the learning records owned by a user. By default removes every learning type backed by the agno_learnings table (user_profile, user_memory, and any user-scoped entity records); pass `learning_type` to restrict deletion to a single store. Records with no owner (`user_id IS NULL`) are not affected. For a scoped (non-admin) caller, only their own learnings may be deleted; a different `user_id` is rejected with 403. Admins and unscoped callers may delete any user's learnings. Returns 204 even if the user had no matching records.","operationId":"delete_learning_user","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The user whose learnings should be deleted","title":"User Id"},"description":"The user whose learnings should be deleted"},{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings","title":"Learning Type"},"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/{learning_id}":{"get":{"tags":["Learnings"],"summary":"Get Learning","description":"Retrieve a single learning record by its ID.","operationId":"get_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"patch":{"tags":["Learnings"],"summary":"Update Learning","description":"Update a learning record. Only `content` and `metadata` may be modified; identity fields (user_id, agent_id, team_id, etc.) are immutable. Provided fields fully replace the existing values. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) are readable by any caller but may only be modified by an admin.","operationId":"update_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"delete":{"tags":["Learnings"],"summary":"Delete Learning","description":"Permanently delete a learning record by its ID. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) may only be deleted by an admin.","operationId":"delete_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/eval-runs":{"get":{"tags":["Evals"],"summary":"List Evaluation Runs","description":"Retrieve paginated evaluation runs with filtering and sorting options. Filter by agent, team, workflow, model, or evaluation type.","operationId":"get_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Workflow ID","title":"Workflow Id"},"description":"Workflow ID"},{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model ID","title":"Model Id"},"description":"Model ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EvalFilterType"},{"type":"null"}],"description":"Filter type","title":"Type"},"description":"Filter type"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of eval runs to return","default":20,"title":"Limit"},"description":"Number of eval runs to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"eval_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)","examples":["accuracy,agent_as_judge,performance,reliability"],"title":"Eval Types"},"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)"}],"responses":{"200":{"description":"Evaluation runs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_EvalSchema_"},"example":{"data":[{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Evals"],"summary":"Delete Evaluation Runs","description":"Delete multiple evaluation runs by their IDs. This action cannot be undone.","operationId":"delete_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvalRunsRequest"}}}},"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Deletion failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Evals"],"summary":"Execute Evaluation","description":"Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both.","operationId":"run_eval","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for evaluation","title":"Db Id"},"description":"Database ID to use for evaluation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for evaluation","title":"Table"},"description":"Table to use for evaluation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRunInput"}}}},"responses":{"200":{"description":"Evaluation executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"f2b2d72f-e9e2-4f0e-8810-0a7e1ff58614","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Invalid request - provide either agent_id or team_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs/{eval_run_id}":{"get":{"tags":["Evals"],"summary":"Get Evaluation Run","description":"Retrieve detailed results and metrics for a specific evaluation run.","operationId":"get_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query eval run from","title":"Table"},"description":"Table to query eval run from"}],"responses":{"200":{"description":"Evaluation run details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Evals"],"summary":"Update Evaluation Run","description":"Update the name or other properties of an existing evaluation run.","operationId":"update_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvalRunRequest"}}}},"responses":{"200":{"description":"Evaluation run updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update evaluation run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics":{"get":{"tags":["Metrics"],"summary":"Get AgentOS Metrics","description":"Retrieve AgentOS metrics and analytics data for a specified date range. If no date range is specified, returns all available metrics.","operationId":"get_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"starting_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Starting date for metrics range (YYYY-MM-DD format)","title":"Starting Date"},"description":"Starting date for metrics range (YYYY-MM-DD format)"},{"name":"ending_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Ending date for metrics range (YYYY-MM-DD format)","title":"Ending Date"},"description":"Ending date for metrics range (YYYY-MM-DD format)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query metrics from","title":"Db Id"},"description":"Database ID to query metrics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Metrics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"},"example":{"metrics":[{"id":"7bf39658-a00a-484c-8a28-67fd8a9ddb2a","agent_runs_count":5,"agent_sessions_count":5,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":448,"output_tokens":148,"total_tokens":596,"audio_tokens":0,"input_audio_tokens":0,"output_audio_tokens":0,"cached_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":5}],"date":"2025-07-31T00:00:00Z","created_at":"2025-07-31T12:38:52Z","updated_at":"2025-07-31T12:49:01Z"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Metrics retrieval failed. In Agno 2.7.4, invalid or ambiguous database selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics/refresh":{"post":{"tags":["Metrics"],"summary":"Refresh Metrics","description":"Manually trigger recalculation of system metrics from raw data. This operation analyzes system activity logs and regenerates aggregated metrics. Useful for ensuring metrics are up-to-date or after system maintenance.","operationId":"refresh_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for metrics calculation","title":"Db Id"},"description":"Database ID to use for metrics calculation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for metrics calculation","title":"Table"},"description":"Table to use for metrics calculation"}],"responses":{"200":{"description":"Metrics refreshed successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"title":"Response Refresh Metrics"},"example":[{"id":"e77c9531-818b-47a5-99cd-59fed61e5403","agent_runs_count":2,"agent_sessions_count":2,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":256,"output_tokens":441,"total_tokens":697,"audio_total_tokens":0,"audio_input_tokens":0,"audio_output_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":2}],"date":"2025-08-12T00:00:00Z","created_at":"2025-08-12T08:01:47Z","updated_at":"2025-08-12T08:01:47Z"}]}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Refresh failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content":{"post":{"tags":["Knowledge"],"summary":"Upload Content","description":"Upload content to the knowledge base. Supports file uploads, text content, or URLs. Content is processed asynchronously in the background. Supports custom readers and chunking strategies.","operationId":"upload_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_content"}}}},"responses":{"202":{"description":"Content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-123","name":"example-document.pdf","description":"Sample document for processing","metadata":{"category":"documentation","priority":"high"},"status":"processing"}}}},"400":{"description":"Invalid request - malformed metadata or missing content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in form data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"List Content","description":"Return a paginated, sorted list of content for the selected knowledge base. Use `limit`, `page`, `sort_by`, and `sort_order` to control the result. Agno 2.7.4 exposes no status, content type, or metadata filter parameters on this endpoint. Named local knowledge instances scope rows by the stored `linked_to` value.","operationId":"get_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of content entries to return","default":20,"title":"Limit"},"description":"Number of content entries to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ContentResponseSchema_"},"example":{"data":[{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":null,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z","linked_to":null}],"meta":{"page":1,"limit":20,"total_pages":1,"total_count":2}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete All Content","description":"Permanently remove all content from the knowledge base. This is a destructive operation that cannot be undone. Use with extreme caution.","operationId":"delete_all_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete all content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/remote-content":{"post":{"tags":["Knowledge"],"summary":"Upload Remote Content","description":"Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.","operationId":"upload_remote_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_upload_remote_content"}}}},"responses":{"202":{"description":"Remote content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-456","name":"reports/q1-2024.pdf","description":"Q1 Report from S3","metadata":{"source":"s3-docs"},"status":"processing"}}}},"400":{"description":"Invalid request - unknown config or missing path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Remote content upload is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/knowledge/content/{content_id}":{"patch":{"tags":["Knowledge"],"summary":"Update Content","description":"Update content name, description, or metadata without re-uploading it. In Agno 2.7.4, this endpoint accepts `reader_id`. Local knowledge validates the value, but the content patch does not apply or persist the reader change.","operationId":"update_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","description":"Content ID","title":"Content Id"},"description":"Content ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_update_content"}}}},"responses":{"200":{"description":"Content updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":null,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z","linked_to":null}}}},"400":{"description":"Invalid request - malformed metadata or invalid reader_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"Get Content by ID","description":"Retrieve detailed information about a specific content item including processing status and metadata.","operationId":"get_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":null,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z","linked_to":null}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete Content by ID","description":"Permanently remove a specific content item from the knowledge base. This action cannot be undone.","operationId":"delete_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}/status":{"get":{"tags":["Knowledge"],"summary":"Get Content Status","description":"Return the processing status for a content ID. For local knowledge in Agno 2.7.4, an unknown content ID returns HTTP 200 with `status=\"failed\"` and `status_message=\"Content not found\"`.","operationId":"get_content_status","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content status returned. An unknown local content ID is represented by status \"failed\".","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentStatusResponse"},"examples":{"completed":{"summary":"Completed content","value":{"id":"content-123","status":"completed","status_message":""}},"content_not_found":{"summary":"Unknown local content ID","value":{"id":"missing-content","status":"failed","status_message":"Content not found"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Selected knowledge base or database ID not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/search":{"post":{"tags":["Knowledge"],"summary":"Search Knowledge","description":"Search the knowledge base for relevant documents using query, filters and search type.","operationId":"search_knowledge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VectorSearchRequestSchema"}}},"required":true},"responses":{"200":{"description":"Search results retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_VectorSearchResult_"},"example":{"data":[{"id":"doc_123","content":"Jordan Mitchell - Software Engineer with skills in JavaScript, React, Python","name":"cv_1","meta_data":{"page":1,"chunk":1},"usage":{"total_tokens":14},"reranking_score":0.95,"content_id":"content_456"}],"meta":{"page":1,"limit":20,"total_pages":2,"total_count":35}}}}},"400":{"description":"Invalid search parameters"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No documents found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/knowledge/config":{"get":{"tags":["Knowledge"],"summary":"Get Config","description":"Retrieve available readers, chunkers, and configuration options for content processing. This endpoint provides metadata about supported file types, processing strategies, and filters.","operationId":"get_knowledge_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Knowledge configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponseSchema"},"example":{"readers":{"website":{"id":"website","name":"WebsiteReader","description":"Reads website files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"firecrawl":{"id":"firecrawl","name":"FirecrawlReader","description":"Reads firecrawl files","chunkers":["SemanticChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"youtube":{"id":"youtube","name":"YoutubeReader","description":"Reads youtube files","chunkers":["RecursiveChunker","AgenticChunker","DocumentChunker","SemanticChunker","FixedSizeChunker"]},"web_search":{"id":"web_search","name":"WebSearchReader","description":"Reads web_search files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"arxiv":{"id":"arxiv","name":"ArxivReader","description":"Reads arxiv files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"csv":{"id":"csv","name":"CsvReader","description":"Reads csv files","chunkers":["RowChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"docling":{"id":"docling","name":"DoclingReader","description":"Converts multiple document formats like PDF, DOCX, PPTX, images, HTML, etc. using IBM's Docling library","chunkers":["AgenticChunker","CodeChunker","DocumentChunker","FixedSizeChunker","RecursiveChunker","SemanticChunker"]},"docx":{"id":"docx","name":"DocxReader","description":"Reads docx files","chunkers":["DocumentChunker","FixedSizeChunker","SemanticChunker","AgenticChunker","RecursiveChunker"]},"gcs":{"id":"gcs","name":"GcsReader","description":"Reads gcs files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"json":{"id":"json","name":"JsonReader","description":"Reads json files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"markdown":{"id":"markdown","name":"MarkdownReader","description":"Reads markdown files","chunkers":["MarkdownChunker","DocumentChunker","AgenticChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"pdf":{"id":"pdf","name":"PdfReader","description":"Reads pdf files","chunkers":["DocumentChunker","FixedSizeChunker","AgenticChunker","SemanticChunker","RecursiveChunker"]},"text":{"id":"text","name":"TextReader","description":"Reads text files","chunkers":["CodeChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]}},"readersForType":{"url":["url","website","firecrawl","youtube","web_search","gcs"],"youtube":["youtube"],"text":["web_search"],"topic":["arxiv"],"file":["csv","gcs"],".csv":["csv","field_labeled_csv","docling"],".xlsx":["excel","docling"],".xls":["excel"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["excel"],"application/vnd.ms-excel":["excel"],".docx":["docx","docling"],".dotx":["docling"],".docm":["docling"],".dotm":["docling"],".pptx":["docling","pptx"],".potx":["docling"],".ppsx":["docling"],".pptm":["docling"],".ppsm":["docling"],".potm":["docling"],".doc":["docx"],".json":["json"],".md":["markdown","docling"],".pdf":["pdf","docling"],".txt":["text"],".html":["docling"],".htm":["docling"],".xhtml":["docling"],".xml":["docling"],".nxml":["docling"],".xbrl":["docling"],".adoc":["docling"],".asciidoc":["docling"],".asc":["docling"],".xlsm":["docling"],".tex":["docling"],".latex":["docling"],".tar.gz":["docling"],".vtt":["docling"],".png":["docling"],".jpeg":["docling"],".jpg":["docling"],".tiff":["docling"],".tif":["docling"],".bmp":["docling"],".webp":["docling"],".wav":["docling"],".mp3":["docling"],".m4a":["docling"],".aac":["docling"],".ogg":["docling"],".flac":["docling"],".mp4":["docling"],".avi":["docling"],".mov":["docling"]},"chunkers":{"AgenticChunker":{"key":"AgenticChunker","name":"AgenticChunker","description":"Chunking strategy that uses an LLM to determine natural breakpoints in the text","metadata":{"chunk_size":5000}},"CodeChunker":{"key":"CodeChunker","name":"CodeChunker","description":"The CodeChunker splits code into chunks based on its structure, leveraging Abstract Syntax Trees (ASTs) to create contextually relevant segments","metadata":{"chunk_size":2048}},"DocumentChunker":{"key":"DocumentChunker","name":"DocumentChunker","description":"A chunking strategy that splits text based on document structure like paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"FixedSizeChunker":{"key":"FixedSizeChunker","name":"FixedSizeChunker","description":"Chunking strategy that splits text into fixed-size chunks with optional overlap","metadata":{"chunk_size":5000,"chunk_overlap":0}},"MarkdownChunker":{"key":"MarkdownChunker","name":"MarkdownChunker","description":"A chunking strategy that splits markdown based on structure like headers, paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RecursiveChunker":{"key":"RecursiveChunker","name":"RecursiveChunker","description":"Chunking strategy that recursively splits text into chunks by finding natural break points","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RowChunker":{"key":"RowChunker","name":"RowChunker","description":"RowChunking chunking strategy","metadata":{}},"SemanticChunker":{"key":"SemanticChunker","name":"SemanticChunker","description":"Chunking strategy that splits text into semantic chunks using chonkie","metadata":{"chunk_size":5000}}},"vector_dbs":[{"id":"vector_db_1","name":"Vector DB 1","description":"Vector DB 1 description","search_types":["vector","keyword","hybrid"]}],"filters":["filter_tag_1","filter_tag2"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources":{"get":{"tags":["Knowledge"],"summary":"List Content Sources","description":"List all registered content sources (S3, GCS, SharePoint, GitHub) for the knowledge base.","operationId":"list_content_sources","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Content sources retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"title":"Response List Content Sources"},"example":[{"id":"company-s3","name":"Company Documents","type":"s3","prefix":"documents/"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Content source listing is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/knowledge/{knowledge_id}/sources/{source_id}/files":{"get":{"tags":["Knowledge"],"summary":"List Files in Source","description":"List available files and folders in a specific content source. Supports pagination and folder navigation.","operationId":"list_source_files","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the content source","title":"Source Id"},"description":"ID of the content source"},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Path prefix to filter files","title":"Prefix"},"description":"Path prefix to filter files"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of files per page","default":100,"title":"Limit"},"description":"Number of files per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"delimiter","in":"query","required":false,"schema":{"type":"string","description":"Folder delimiter (enables folder grouping)","default":"/","title":"Delimiter"},"description":"Folder delimiter (enables folder grouping)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Files listed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceFilesResponseSchema"},"example":{"source_id":"company-s3","source_name":"Company Documents","prefix":"reports/","folders":[{"prefix":"reports/2024/","name":"2024","is_empty":false}],"files":[{"key":"reports/annual-summary.pdf","name":"annual-summary.pdf","size":102400,"last_modified":"2024-01-15T10:30:00Z","content_type":"application/pdf"}],"meta":{"page":1,"limit":100,"total_pages":1,"total_count":1}}}}},"400":{"description":"Unsupported source type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base or content source not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Source file listing is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/traces":{"get":{"tags":["Traces","Traces"],"summary":"List Traces","description":"Retrieve a paginated list of execution traces with optional filtering.\n\n**Traces provide observability into:**\n- Agent execution flows\n- Model invocations and token usage\n- Tool calls and their results\n- Errors and performance bottlenecks\n\n**Filtering Options:**\n- By run, session, user, or agent ID\n- By status (OK, ERROR)\n- By time range\n\n**Pagination:**\n- Use `page` (1-indexed) and `limit` parameters\n- Response includes pagination metadata (total_pages, total_count, etc.)\n\n**Response Format:**\nReturns summary information for each trace. Use GET `/traces/{trace_id}` for detailed hierarchy.","operationId":"get_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run ID","title":"Run Id"},"description":"Filter by run ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status (OK, ERROR)","title":"Status"},"description":"Filter by status (OK, ERROR)"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of traces per page","default":20,"title":"Limit"},"description":"Number of traces per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"responses":{"200":{"description":"List of traces retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSummary_"},"example":{"data":[{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","total_spans":4,"error_count":0,"input":"What is the stock price of NVDA?","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"agent_stock","created_at":"2025-11-19T10:30:00+00:00"}],"meta":{"page":1,"limit":20,"total_pages":5,"total_count":95}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/filter-schema":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Filter Schema","description":"Returns the available filterable fields, their types, valid operators, and enum values.\n\nThe frontend uses this to dynamically build the filter bar UI:\n- Field dropdown populated from `fields[].key`\n- Operator dropdown changes per field type\n- Value input shows autocomplete for enum fields (e.g., status)\n- Logical operators (AND, OR) for combining clauses","operationId":"get_traces_filter_schema","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterSchemaResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/traces/{trace_id}":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace or Span Detail","description":"Retrieve detailed trace information with hierarchical span tree, or a specific span within the trace.\n\n**Without span_id parameter:**\nReturns the full trace with hierarchical span tree:\n- Trace metadata (ID, status, duration, context)\n- Hierarchical tree of all spans\n- Each span includes timing, status, and type-specific metadata\n\n**With span_id parameter:**\nReturns details for a specific span within the trace:\n- Span metadata (ID, name, type, timing)\n- Status and error information\n- Type-specific attributes (model, tokens, tool params, etc.)\n\n**Span Hierarchy (full trace):**\nThe `tree` field contains root spans, each with potential `children`.\nThis recursive structure represents the execution flow:\n```\nAgent.run (root)\n \u251c\u2500 LLM.invoke\n \u251c\u2500 Tool.execute\n \u2502 \u2514\u2500 LLM.invoke (nested)\n \u2514\u2500 LLM.invoke\n```\n\n**Span Types:**\n- `AGENT`: Agent execution with input/output\n- `LLM`: Model invocations with tokens and prompts\n- `TOOL`: Tool calls with parameters and results","operationId":"get_trace","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}},{"name":"span_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Span ID to retrieve specific span","title":"Span Id"},"description":"Optional: Span ID to retrieve specific span"},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Run ID to retrieve trace for","title":"Run Id"},"description":"Optional: Run ID to retrieve trace for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query trace from","title":"Db Id"},"description":"Database ID to query trace from"}],"responses":{"200":{"description":"Trace or span detail retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TraceDetail"},{"$ref":"#/components/schemas/TraceNode"}],"title":"Response Get Trace"},"examples":{"full_trace":{"summary":"Full trace with hierarchy (no span_id)","value":{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","end_time":"2025-11-19T10:30:01.200000+00:00","total_spans":4,"error_count":0,"input":"What is Tesla stock price?","output":"The current price of Tesla (TSLA) is $245.67.","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"stock_agent","created_at":"2025-11-19T10:30:00+00:00","tree":[{"id":"span1","name":"Stock_Price_Agent.run","type":"AGENT","duration":"1.2s","status":"OK","spans":[]}]}},"single_span":{"summary":"Single span detail (with span_id)","value":{"id":"span2","name":"gpt-4o-mini.invoke","type":"LLM","duration":"800ms","status":"OK","metadata":{"model":"gpt-4o-mini","input_tokens":120}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Trace or span not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/trace_session_stats":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Statistics by Session","description":"Retrieve aggregated trace statistics grouped by session ID with pagination.\n\n**Provides insights into:**\n- Total traces per session\n- First and last trace timestamps per session\n- Associated user and agent information\n\n**Filtering Options:**\n- By user ID\n- By agent ID\n\n**Use Cases:**\n- Monitor session-level activity\n- Track conversation flows\n- Identify high-activity sessions\n- Analyze user engagement patterns","operationId":"get_trace_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of sessions per page","default":20,"title":"Limit"},"description":"Number of sessions per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"}],"responses":{"200":{"description":"Trace statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"},"example":{"data":[{"session_id":"37029bc6-1794-4ba8-a629-1efedc53dcad","user_id":"kaustubh@agno.com","agent_id":"hackernews-agent","total_traces":5,"first_trace_at":"2025-11-19T10:15:16+00:00","last_trace_at":"2025-11-19T10:21:30+00:00"}],"meta":{"page":1,"limit":20,"total_pages":3,"total_count":45}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/search":{"post":{"tags":["Traces","Traces"],"summary":"Search Traces with Advanced Filters","description":"Search traces using the FilterExpr DSL for complex, composable queries.\n\n**Group By Mode:**\n- `run` (default): Returns `PaginatedResponse[TraceDetail]` with full span trees\n- `session`: Returns `PaginatedResponse[TraceSessionStats]` with aggregated session stats\n\n**Supported Operators:**\n- Comparison: `EQ`, `NEQ`, `GT`, `GTE`, `LT`, `LTE`\n- Inclusion: `IN`\n- String matching: `CONTAINS` (case-insensitive substring), `STARTSWITH` (prefix)\n- Logical: `AND`, `OR`, `NOT`\n\n**Filterable Fields:**\ntrace_id, name, status, start_time, end_time, duration_ms, run_id, session_id, user_id, agent_id, team_id, workflow_id, created_at\n\n**Example Request Body (runs):**\n```json\n{\n \"filter\": {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n}\n```\n\n**Example Request Body (sessions):**\n```json\n{\n \"filter\": {\"op\": \"CONTAINS\", \"key\": \"agent_id\", \"value\": \"stock\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n}\n```","operationId":"search_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PaginatedResponse_TraceDetail_"},{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"}],"title":"Response Search Traces"}}}},"400":{"description":"Invalid filter expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/all/migrate":{"post":{"tags":["Database"],"summary":"Migrate All Databases","description":"Migrate all database schemas to the given target version. If a target version is not provided, all databases will be migrated to the latest version.","operationId":"migrate_all_databases","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"All databases migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"All databases migrated successfully to version 3.0.0"}}}},"207":{"description":"Some database migrations failed","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"},"failed":{"type":"object","additionalProperties":{"type":"string"},"title":"Failed"}},"type":"object","required":["message","failed"],"title":"PartialMigrationResponse"},"example":{"message":"Migrated 2/3 databases to latest version","failed":{"archive-db":"Migration failed"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/{db_id}/migrate":{"post":{"tags":["Database"],"summary":"Migrate Database","description":"Migrate the given database schema to the given target version. If a target version is not provided, the database will be migrated to the latest version.","operationId":"migrate_database","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"Database migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"Database migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Database not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components":{"get":{"tags":["Components"],"summary":"List Components","description":"Retrieve a paginated list of components with optional filtering by type.","operationId":"list_components","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ComponentType"},{"type":"null"}],"description":"Filter by type: agent, team, workflow","title":"Component Type"},"description":"Filter by type: agent, team, workflow"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ComponentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Component","description":"Create a new component (agent, team, or workflow) with initial config.","operationId":"create_component","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}":{"get":{"tags":["Components"],"summary":"Get Component","description":"Retrieve a component by ID.","operationId":"get_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Components"],"summary":"Update Component","description":"Partially update a component by ID.","operationId":"update_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentUpdate","description":"Component fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Component","description":"Soft-delete a component by ID. Component configs and links remain stored.","operationId":"delete_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs":{"get":{"tags":["Components"],"summary":"List Configs","description":"List all configs for a component.","operationId":"list_configs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"include_config","in":"query","required":false,"schema":{"type":"boolean","description":"Include full config blob","default":true,"title":"Include Config"},"description":"Include full config blob"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComponentConfigResponse"},"title":"Response List Configs"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Config Version","description":"Create a new config version for a component.","operationId":"create_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigCreate","description":"Config data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}":{"patch":{"tags":["Components"],"summary":"Update Draft Config","description":"Update an existing draft config. Cannot update published configs.","operationId":"update_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigUpdate","description":"Config fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Components"],"summary":"Get Config Version","description":"Get a specific config version by number.","operationId":"get_config_version","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Config Version","description":"Delete a specific config version. Agno v2.7.4 rejects the current version. Synchronous SQLite and PostgreSQL storage allow deletion of a published non-current version.","operationId":"delete_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/current":{"get":{"tags":["Components"],"summary":"Get Current Config","description":"Get the current config version for a component.","operationId":"get_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}/set-current":{"post":{"tags":["Components"],"summary":"Set Current Config Version","description":"Set a published config version as current (for rollback).","operationId":"set_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/schedules":{"get":{"tags":["Schedules"],"summary":"List Schedules","operationId":"list_schedules_schedules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"post":{"tags":["Schedules"],"summary":"Create Schedule","operationId":"create_schedule_schedules_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule","operationId":"get_schedule_schedules__schedule_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"patch":{"tags":["Schedules"],"summary":"Update Schedule","operationId":"update_schedule_schedules__schedule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Schedules"],"summary":"Delete Schedule","operationId":"delete_schedule_schedules__schedule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/enable":{"post":{"tags":["Schedules"],"summary":"Enable Schedule","operationId":"enable_schedule_schedules__schedule_id__enable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/disable":{"post":{"tags":["Schedules"],"summary":"Disable Schedule","operationId":"disable_schedule_schedules__schedule_id__disable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/trigger":{"post":{"tags":["Schedules"],"summary":"Trigger Schedule","operationId":"trigger_schedule_schedules__schedule_id__trigger_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Schedule is disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler is not running or storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs":{"get":{"tags":["Schedules"],"summary":"List Schedule Runs","operationId":"list_schedule_runs_schedules__schedule_id__runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleRunResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs/{run_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule Run","operationId":"get_schedule_run_schedules__schedule_id__runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals":{"get":{"tags":["Approvals"],"summary":"List Approvals","operationId":"list_approvals_approvals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","approved","rejected","expired","cancelled"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"source_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"}},{"name":"approval_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["required","audit"],"type":"string"},{"type":"null"}],"title":"Approval Type"}},{"name":"pause_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"schedule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"}},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ApprovalResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approvals could not be listed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/count":{"get":{"tags":["Approvals"],"summary":"Get Approval Count","operationId":"get_approval_count_approvals_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalCountResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval count could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/status":{"get":{"tags":["Approvals"],"summary":"Get Approval Status","operationId":"get_approval_status_approvals__approval_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalStatusResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval status could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}":{"get":{"tags":["Approvals"],"summary":"Get Approval","operationId":"get_approval_approvals__approval_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Approvals"],"summary":"Delete Approval","operationId":"delete_approval_approvals__approval_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval is not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/resolve":{"post":{"tags":["Approvals"],"summary":"Resolve Approval","operationId":"resolve_approval_approvals__approval_id__resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResolve"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Approval has already been resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts":{"post":{"tags":["Service Accounts"],"summary":"Create Service Account","description":"Mint a service account token. The plaintext token is returned exactly once.","operationId":"create_service_account_service_accounts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreateResponse"}}}},"400":{"description":"Requested scopes are invalid, or privileged scopes were not explicitly allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"An active service account with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"get":{"tags":["Service Accounts"],"summary":"List Service Accounts","description":"List service accounts. Returns metadata and display prefixes only - never hashes or plaintext.","operationId":"list_service_accounts_service_accounts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Revoked"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ServiceAccountResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts/{service_account_id}":{"delete":{"tags":["Service Accounts"],"summary":"Revoke Service Account","description":"Revoke an existing service account.\n\nTakes effect immediately on this worker (the local verification cache entry is evicted) and within the cache TTL on other workers.","operationId":"revoke_service_account_service_accounts__service_account_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"service_account_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Service account not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/registry":{"get":{"tags":["Registry"],"summary":"List Registry","description":"List all resources in the registry with optional filtering.","operationId":"list_registry","security":[{"HTTPBearer":[]}],"parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RegistryResourceType"},{"type":"null"}],"description":"Filter by resource type","title":"Resource Type"},"description":"Filter by resource type"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (partial match)","title":"Name"},"description":"Filter by name (partial match)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_RegistryContentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}}},"components":{"schemas":{"A2ACard_APIKeySecurityScheme":{"description":"Defines a security scheme using an API key.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"in":{"$ref":"#/components/schemas/A2ACard_In"},"name":{"title":"Name","type":"string"},"type":{"const":"apiKey","default":"apiKey","title":"Type","type":"string"}},"required":["in","name"],"title":"APIKeySecurityScheme","type":"object"},"A2ACard_AgentCapabilities":{"description":"Defines optional capabilities supported by an agent.","properties":{"extensions":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentExtension"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"pushNotifications":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Pushnotifications"},"stateTransitionHistory":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Statetransitionhistory"},"streaming":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Streaming"}},"title":"AgentCapabilities","type":"object"},"A2ACard_AgentCardSignature":{"description":"AgentCardSignature represents a JWS signature of an AgentCard.\nThis follows the JSON format of an RFC 7515 JSON Web Signature (JWS).","properties":{"header":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Header"},"protected":{"title":"Protected","type":"string"},"signature":{"title":"Signature","type":"string"}},"required":["protected","signature"],"title":"AgentCardSignature","type":"object"},"A2ACard_AgentExtension":{"description":"A declaration of a protocol extension supported by an Agent.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"params":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Params"},"required":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Required"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"AgentExtension","type":"object"},"A2ACard_AgentInterface":{"description":"Declares a combination of a target URL and a transport protocol for interacting with the agent.\nThis allows agents to expose the same functionality over multiple transport mechanisms.","properties":{"transport":{"examples":["JSONRPC","GRPC","HTTP+JSON"],"title":"Transport","type":"string"},"url":{"examples":["https://api.example.com/a2a/v1","https://grpc.example.com/a2a","https://rest.example.com/v1"],"title":"Url","type":"string"}},"required":["transport","url"],"title":"AgentInterface","type":"object"},"A2ACard_AgentProvider":{"description":"Represents the service provider of an agent.","properties":{"organization":{"title":"Organization","type":"string"},"url":{"title":"Url","type":"string"}},"required":["organization","url"],"title":"AgentProvider","type":"object"},"A2ACard_AgentSkill":{"description":"Represents a distinct capability or function that an agent can perform.","properties":{"description":{"title":"Description","type":"string"},"examples":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"examples":[["I need a recipe for bread"]],"title":"Examples"},"id":{"title":"Id","type":"string"},"inputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Inputmodes"},"name":{"title":"Name","type":"string"},"outputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Outputmodes"},"security":{"anyOf":[{"items":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},"type":"array"},{"type":"null"}],"default":null,"examples":[[{"google":["oidc"]}]],"title":"Security"},"tags":{"examples":[["cooking","customer support","billing"]],"items":{"type":"string"},"title":"Tags","type":"array"}},"required":["description","id","name","tags"],"title":"AgentSkill","type":"object"},"A2ACard_AuthorizationCodeOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Authorization Code flow.","properties":{"authorizationUrl":{"title":"Authorizationurl","type":"string"},"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["authorizationUrl","scopes","tokenUrl"],"title":"AuthorizationCodeOAuthFlow","type":"object"},"A2ACard_ClientCredentialsOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Client Credentials flow.","properties":{"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["scopes","tokenUrl"],"title":"ClientCredentialsOAuthFlow","type":"object"},"A2ACard_HTTPAuthSecurityScheme":{"description":"Defines a security scheme using HTTP authentication.","properties":{"bearerFormat":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Bearerformat"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"scheme":{"title":"Scheme","type":"string"},"type":{"const":"http","default":"http","title":"Type","type":"string"}},"required":["scheme"],"title":"HTTPAuthSecurityScheme","type":"object"},"A2ACard_ImplicitOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Implicit flow.","properties":{"authorizationUrl":{"title":"Authorizationurl","type":"string"},"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"}},"required":["authorizationUrl","scopes"],"title":"ImplicitOAuthFlow","type":"object"},"A2ACard_In":{"description":"The location of the API key.","enum":["cookie","header","query"],"title":"In","type":"string"},"A2ACard_MutualTLSSecurityScheme":{"description":"Defines a security scheme using mTLS authentication.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"type":{"const":"mutualTLS","default":"mutualTLS","title":"Type","type":"string"}},"title":"MutualTLSSecurityScheme","type":"object"},"A2ACard_OAuth2SecurityScheme":{"description":"Defines a security scheme using OAuth 2.0.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"flows":{"$ref":"#/components/schemas/A2ACard_OAuthFlows"},"oauth2MetadataUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Oauth2Metadataurl"},"type":{"const":"oauth2","default":"oauth2","title":"Type","type":"string"}},"required":["flows"],"title":"OAuth2SecurityScheme","type":"object"},"A2ACard_OAuthFlows":{"description":"Defines the configuration for the supported OAuth 2.0 flows.","properties":{"authorizationCode":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_AuthorizationCodeOAuthFlow"},{"type":"null"}],"default":null},"clientCredentials":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_ClientCredentialsOAuthFlow"},{"type":"null"}],"default":null},"implicit":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_ImplicitOAuthFlow"},{"type":"null"}],"default":null},"password":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_PasswordOAuthFlow"},{"type":"null"}],"default":null}},"title":"OAuthFlows","type":"object"},"A2ACard_OpenIdConnectSecurityScheme":{"description":"Defines a security scheme using OpenID Connect.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"openIdConnectUrl":{"title":"Openidconnecturl","type":"string"},"type":{"const":"openIdConnect","default":"openIdConnect","title":"Type","type":"string"}},"required":["openIdConnectUrl"],"title":"OpenIdConnectSecurityScheme","type":"object"},"A2ACard_PasswordOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Resource Owner Password flow.","properties":{"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["scopes","tokenUrl"],"title":"PasswordOAuthFlow","type":"object"},"A2ACard_SecurityScheme":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_APIKeySecurityScheme"},{"$ref":"#/components/schemas/A2ACard_HTTPAuthSecurityScheme"},{"$ref":"#/components/schemas/A2ACard_OAuth2SecurityScheme"},{"$ref":"#/components/schemas/A2ACard_OpenIdConnectSecurityScheme"},{"$ref":"#/components/schemas/A2ACard_MutualTLSSecurityScheme"}],"title":"SecurityScheme"},"A2ARequest_DataPart":{"description":"Represents a structured data segment (e.g., JSON) within a message or artifact.","properties":{"data":{"additionalProperties":true,"title":"Data","type":"object"},"kind":{"const":"data","default":"data","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["data"],"title":"DataPart","type":"object"},"A2ARequest_FilePart":{"description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI.","properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_FileWithBytes"},{"$ref":"#/components/schemas/A2ARequest_FileWithUri"}],"title":"File"},"kind":{"const":"file","default":"file","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["file"],"title":"FilePart","type":"object"},"A2ARequest_FileWithBytes":{"description":"Represents a file with its content provided directly as a base64-encoded string.","properties":{"bytes":{"title":"Bytes","type":"string"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"}},"required":["bytes"],"title":"FileWithBytes","type":"object"},"A2ARequest_FileWithUri":{"description":"Represents a file with its content located at a specific URI.","properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"FileWithUri","type":"object"},"A2ARequest_Message":{"description":"Represents a single message in the conversation between a user and an agent.","properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"kind":{"const":"message","default":"message","title":"Kind","type":"string"},"messageId":{"title":"Messageid","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/A2ARequest_Part"},"title":"Parts","type":"array"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/A2ARequest_Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Taskid"},"agentId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Agent ID","description":"Target agent, team, or workflow ID for deprecated dynamic-dispatch endpoints."}},"required":["messageId","parts","role"],"title":"Message","type":"object"},"A2ARequest_MessageSendConfiguration":{"description":"Defines configuration options for a `message/send` or `message/stream` request.","properties":{"acceptedOutputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Acceptedoutputmodes"},"blocking":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Blocking"},"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"pushNotificationConfig":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationConfig"},{"type":"null"}],"default":null}},"title":"MessageSendConfiguration","type":"object"},"A2ARequest_MessageSendParams":{"description":"Defines the parameters for a request to send a message to an agent. This can be used\nto create a new task, continue an existing one, or restart a task.","properties":{"configuration":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_MessageSendConfiguration"},{"type":"null"}],"default":null},"message":{"$ref":"#/components/schemas/A2ARequest_Message"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["message"],"title":"MessageSendParams","type":"object"},"A2ARequest_Part":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_TextPart"},{"$ref":"#/components/schemas/A2ARequest_FilePart"},{"$ref":"#/components/schemas/A2ARequest_DataPart"}],"title":"Part"},"A2ARequest_PushNotificationAuthenticationInfo":{"description":"Defines authentication details for a push notification endpoint.","properties":{"credentials":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Credentials"},"schemes":{"items":{"type":"string"},"title":"Schemes","type":"array"}},"required":["schemes"],"title":"PushNotificationAuthenticationInfo","type":"object"},"A2ARequest_PushNotificationConfig":{"description":"Defines the configuration for setting up push notifications for task updates.","properties":{"authentication":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationAuthenticationInfo"},{"type":"null"}],"default":null},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Id"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Token"},"url":{"title":"Url","type":"string"}},"required":["url"],"title":"PushNotificationConfig","type":"object"},"A2ARequest_Role":{"description":"Identifies the sender of the message. `user` for the client, `agent` for the service.","enum":["agent","user"],"title":"Role","type":"string"},"A2ARequest_TaskIdParams":{"description":"Defines parameters containing a task ID, used for simple task operations.","properties":{"id":{"title":"Id","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"contextId":{"type":"string","title":"Context ID","description":"Agno session ID containing the task."}},"required":["id"],"title":"TaskIdParams","type":"object"},"A2ARequest_TaskQueryParams":{"description":"Defines parameters for querying a task, with an option to limit history length.","properties":{"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"id":{"title":"Id","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"contextId":{"type":"string","title":"Context ID","description":"Agno session ID containing the task."}},"required":["id","contextId"],"title":"TaskQueryParams","type":"object"},"A2ARequest_TextPart":{"description":"Represents a text segment within a message or artifact.","properties":{"kind":{"const":"text","default":"text","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"text":{"title":"Text","type":"string"}},"required":["text"],"title":"TextPart","type":"object"},"ActivityMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"activity","title":"Role","default":"activity"},"activityType":{"type":"string","title":"Activitytype"},"content":{"additionalProperties":true,"type":"object","title":"Content"}},"additionalProperties":true,"type":"object","required":["id","activityType","content"],"title":"ActivityMessage","description":"An activity progress message emitted between chat messages."},"AgentCard":{"description":"The AgentCard is a self-describing manifest for an agent. It provides essential\nmetadata including the agent's identity, capabilities, skills, supported\ncommunication methods, and security requirements.","properties":{"additionalInterfaces":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentInterface"},"type":"array"},{"type":"null"}],"default":null,"title":"Additionalinterfaces"},"capabilities":{"$ref":"#/components/schemas/A2ACard_AgentCapabilities"},"defaultInputModes":{"items":{"type":"string"},"title":"Defaultinputmodes","type":"array"},"defaultOutputModes":{"items":{"type":"string"},"title":"Defaultoutputmodes","type":"array"},"description":{"examples":["Agent that helps users with recipes and cooking."],"title":"Description","type":"string"},"documentationUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Documentationurl"},"iconUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Iconurl"},"name":{"examples":["Recipe Agent"],"title":"Name","type":"string"},"preferredTransport":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"JSONRPC","examples":["JSONRPC","GRPC","HTTP+JSON"],"title":"Preferredtransport"},"protocolVersion":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"0.3.0","title":"Protocolversion"},"provider":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_AgentProvider"},{"type":"null"}],"default":null},"security":{"anyOf":[{"items":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},"type":"array"},{"type":"null"}],"default":null,"examples":[[{"oauth":["read"]},{"api-key":[],"mtls":[]}]],"title":"Security"},"securitySchemes":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/A2ACard_SecurityScheme"},"type":"object"},{"type":"null"}],"default":null,"title":"Securityschemes"},"signatures":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentCardSignature"},"type":"array"},{"type":"null"}],"default":null,"title":"Signatures"},"skills":{"items":{"$ref":"#/components/schemas/A2ACard_AgentSkill"},"title":"Skills","type":"array"},"supportsAuthenticatedExtendedCard":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Supportsauthenticatedextendedcard"},"url":{"examples":["https://api.example.com/a2a/v1"],"title":"Url","type":"string"},"version":{"examples":["1.0.0"],"title":"Version","type":"string"}},"required":["capabilities","defaultInputModes","defaultOutputModes","description","name","skills","url","version"],"title":"AgentCard","type":"object"},"AgentResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"extra_messages":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Messages"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"AgentResponse"},"AgentSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_session_id":{"type":"string","title":"Agent Session Id","description":"Unique agent session identifier"},"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID used in this session"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"agent_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Data","description":"Agent-specific data"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["agent_session_id","session_id","session_name"],"title":"AgentSessionDetailSchema"},"AgentSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the agent"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the agent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the agent"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the agent"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","title":"AgentSummaryResponse"},"ApprovalCountResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"ApprovalCountResponse","description":"Response model for pending approval count."},"ApprovalResolve":{"properties":{"status":{"type":"string","pattern":"^(approved|rejected)$","title":"Status"},"resolved_by":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Resolved By"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"}},"type":"object","required":["status"],"title":"ApprovalResolve","description":"Request body for resolving (approve/reject) an approval."},"ApprovalResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"},"source_type":{"type":"string","title":"Source Type"},"approval_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Type"},"pause_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Args"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"},"schedule_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Run Id"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"},"run_status":{"anyOf":[{"$ref":"#/components/schemas/RunStatus"},{"type":"null"}]}},"type":"object","required":["id","run_id","session_id","status","source_type"],"title":"ApprovalResponse","description":"Response model for a single approval."},"ApprovalStatusResponse":{"properties":{"approval_id":{"type":"string","title":"Approval Id"},"status":{"type":"string","title":"Status"},"run_id":{"type":"string","title":"Run Id"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"}},"type":"object","required":["approval_id","status","run_id"],"title":"ApprovalStatusResponse","description":"Lightweight response model for polling approval status."},"Artifact":{"properties":{"artifactId":{"type":"string","title":"Artifactid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"}},"type":"object","required":["artifactId","parts"],"title":"Artifact","description":"Represents a file, data structure, or other resource generated by an agent during a task."},"AssistantMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"assistant","title":"Role","default":"assistant"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"},"toolCalls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},{"type":"null"}],"title":"Toolcalls"}},"additionalProperties":true,"type":"object","required":["id"],"title":"AssistantMessage","description":"An assistant message."},"AudioInputContent":{"properties":{"type":{"type":"string","const":"audio","title":"Type","default":"audio"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"AudioInputContent","description":"An audio input content fragment."},"BackgroundRunResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the background run."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the background run."},"status":{"type":"string","title":"Status","description":"Initial run status."}},"type":"object","required":["run_id","session_id","status"],"title":"BackgroundRunResponse"},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"BadRequestResponse","example":{"detail":"Bad request","error_code":"BAD_REQUEST"}},"BinaryInputContent":{"properties":{"type":{"type":"string","const":"binary","title":"Type","default":"binary"},"mimeType":{"type":"string","title":"Mimetype"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"additionalProperties":true,"type":"object","required":["mimeType"],"title":"BinaryInputContent","description":"A deprecated binary payload reference in a multimodal user message."},"Body_continue_agent_run":{"properties":{"tools":{"type":"string","title":"Tools","description":"JSON string of tool call results to continue the paused run","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Optional new user-message text to append to the run before resuming. Use for continuing a COMPLETED run with a follow-up, or adding context to a RUNNING/ERROR resume."},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","description":"When true, clone the run with a new ``run_id`` before resuming. The original is untouched; the clone becomes a sibling within the same session, with ``forked_from_run_id`` set.","default":false},"regenerate":{"type":"boolean","title":"Regenerate","description":"Sugar: regenerate the last response of this run. Auto-computes ``continue_from='last_user'`` to land just after the last user message. Pair with ``additional_instructions`` to steer the new output. By default the original response is hidden from history (replaced); pass ``replace_original=false`` to keep both the original and the regenerated response visible side by side.","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original","description":"Only valid with ``regenerate=true``. Controls history visibility of the original response; the original run is always retained in storage. Defaults to true: the original is marked REGENERATED and hidden from history so the new response replaces it. Pass false to keep both the original and regenerated responses visible."},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions","description":"Only valid with ``regenerate=true``: extra guidance appended as a user message before re-generation. Friendly alias for ``input``."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run continue in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false}},"type":"object","title":"Body_continue_agent_run"},"Body_continue_team_run":{"properties":{"requirements":{"type":"string","title":"Requirements","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input"},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","default":false},"regenerate":{"type":"boolean","title":"Regenerate","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original"},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"stream":{"type":"boolean","title":"Stream","default":true},"background":{"type":"boolean","title":"Background","default":false}},"type":"object","title":"Body_continue_team_run"},"Body_continue_workflow_run":{"properties":{"step_requirements":{"type":"string","title":"Step Requirements","description":"JSON string of step requirement objects with resolution status","default":""},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}},"type":"object","title":"Body_continue_workflow_run"},"Body_create_agent_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the agent"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Agent version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic agent construction"}},"type":"object","required":["message"],"title":"Body_create_agent_run"},"Body_create_team_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the team"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"monitor":{"type":"boolean","title":"Monitor","description":"Enable monitoring and logging for this run","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Team version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic team construction"}},"type":"object","required":["message"],"title":"Body_create_team_run"},"Body_create_workflow_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the workflow"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run workflow in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Workflow version to use for this run"},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow construction"}},"type":"object","required":["message"],"title":"Body_create_workflow_run"},"Body_rename_session":{"properties":{"session_name":{"type":"string","title":"Session Name","description":"New name for the session"}},"type":"object","required":["session_name"],"title":"Body_rename_session"},"Body_resume_agent_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_agent_run_stream"},"Body_resume_team_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_team_run_stream"},"Body_resume_workflow_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_workflow_run_stream"},"Body_update_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"Content metadata as JSON string"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"Reader ID. In Agno 2.7.4, local knowledge validates the value, but the content patch does not apply or persist the reader change."}},"type":"object","title":"Body_update_content"},"Body_upload_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated from file/URL if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description for context"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"URL to fetch content from (JSON array or single URL string)"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object for additional content properties"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File","description":"File to upload for processing"},"text_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Content","description":"Raw text content to process"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for content processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply during processing"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size to use for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap to use for processing"}},"type":"object","title":"Body_upload_content"},"Body_upload_remote_content":{"properties":{"config_id":{"type":"string","title":"Config Id","description":"ID of the configured remote content source (from /knowledge/config)"},"path":{"type":"string","title":"Path","description":"Path to file or folder in the remote source"},"source_params":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Params","description":"JSON object of per-request parameters forwarded to the source's factory. Used for provider-specific routing that shouldn't be baked into the config. Currently supported keys: GitHub accepts 'repo' ('owner/repo'), letting one configured GitHub source serve multiple repositories the credentials can access."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap for processing"}},"type":"object","required":["config_id","path"],"title":"Body_upload_remote_content"},"CancelTaskRequest":{"description":"Represents a JSON-RPC request for the `tasks/cancel` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"tasks/cancel","default":"tasks/cancel","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_TaskIdParams"}},"required":["id","params"],"title":"CancelTaskRequest","type":"object"},"CancelTaskSuccessResponse":{"description":"Represents a successful JSON-RPC response for the `tasks/cancel` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"default":null,"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"result":{"$ref":"#/components/schemas/Task"}},"required":["result"],"title":"CancelTaskSuccessResponse","type":"object"},"ChatConfig":{"properties":{"quick_prompts":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Quick Prompts"}},"type":"object","required":["quick_prompts"],"title":"ChatConfig","description":"Configuration for the Chat page of the AgentOS"},"ChunkerSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["key"],"title":"ChunkerSchema"},"ComponentConfigResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"version":{"type":"integer","title":"Version"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"type":"string","title":"Stage"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","version","stage","config","created_at"],"title":"ComponentConfigResponse"},"ComponentCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Display name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id","description":"Unique identifier for the entity. Auto-generated from name if not provided."},"component_type":{"$ref":"#/components/schemas/ComponentType","description":"Type of entity: agent, team, or workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config","description":"Optional configuration"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["name","component_type"],"title":"ComponentCreate"},"ComponentResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"component_type":{"$ref":"#/components/schemas/ComponentType"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","component_type","created_at"],"title":"ComponentResponse"},"ComponentType":{"type":"string","enum":["agent","team","workflow"],"title":"ComponentType"},"ComponentUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"component_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"}},"type":"object","title":"ComponentUpdate"},"ConfigCreate":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config","description":"The configuration data"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Optional version number"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links","description":"Optional links to child components"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["config"],"title":"ConfigCreate"},"ConfigResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the OS instance"},"available_models":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Models","description":"List of available models"},"os_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Database","description":"ID of the database used for the OS instance"},"databases":{"items":{"type":"string"},"type":"array","title":"Databases","description":"List of database IDs used by the components of the OS instance"},"chat":{"anyOf":[{"$ref":"#/components/schemas/ChatConfig"},{"type":"null"}],"description":"Chat configuration"},"manifest":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Manifest"},"type":"object"},{"type":"null"}],"title":"Manifest","description":"Per-entity UI metadata keyed by agent/team/workflow id"},"session":{"anyOf":[{"$ref":"#/components/schemas/SessionConfig"},{"type":"null"}],"description":"Session configuration"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/MetricsConfig"},{"type":"null"}],"description":"Metrics configuration"},"memory":{"anyOf":[{"$ref":"#/components/schemas/MemoryConfig"},{"type":"null"}],"description":"Memory configuration"},"learning":{"anyOf":[{"$ref":"#/components/schemas/LearningConfig"},{"type":"null"}],"description":"Learning configuration"},"knowledge":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeConfig"},{"type":"null"}],"description":"Knowledge configuration"},"evals":{"anyOf":[{"$ref":"#/components/schemas/EvalsConfig"},{"type":"null"}],"description":"Evaluations configuration"},"traces":{"anyOf":[{"$ref":"#/components/schemas/TracesConfig"},{"type":"null"}],"description":"Traces configuration"},"agents":{"items":{"$ref":"#/components/schemas/AgentSummaryResponse"},"type":"array","title":"Agents","description":"List of registered agents"},"teams":{"items":{"$ref":"#/components/schemas/TeamSummaryResponse"},"type":"array","title":"Teams","description":"List of registered teams"},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Workflows","description":"List of registered workflows"},"interfaces":{"items":{"$ref":"#/components/schemas/InterfaceResponse"},"type":"array","title":"Interfaces","description":"List of available interfaces"}},"type":"object","required":["os_id","databases","agents","teams","workflows","interfaces"],"title":"ConfigResponse","description":"Response schema for the general config endpoint"},"ConfigResponseSchema":{"properties":{"readers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ReaderSchema"},"type":"object"},{"type":"null"}],"title":"Readers","description":"Available content readers"},"readersForType":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Readersfortype","description":"Mapping of content types to reader IDs"},"chunkers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ChunkerSchema"},"type":"object"},{"type":"null"}],"title":"Chunkers","description":"Available chunking strategies"},"filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filters","description":"Available filter tags"},"vector_dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/VectorDbSchema"},"type":"array"},{"type":"null"}],"title":"Vector Dbs","description":"Configured vector databases"},"remote_content_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"type":"array"},{"type":"null"}],"title":"Remote Content Sources","description":"Configured remote content sources (S3, GCS, SharePoint, GitHub)"}},"type":"object","title":"ConfigResponseSchema"},"ConfigUpdate":{"properties":{"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","title":"ConfigUpdate"},"ConflictResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ConflictResponse","example":{"detail":"Resource conflict"}},"ContentResponseSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the content"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"MIME type of the content"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"},"linked_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linked To","description":"Knowledge instance name used for content isolation. Local Agno 2.7.4 responses return null because response conversion does not propagate the stored value."},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata as key-value pairs"},"access_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Access Count","description":"Stored access count. Local Agno 2.7.4 responses return null because response conversion does not propagate the stored value."},"status":{"anyOf":[{"$ref":"#/components/schemas/ContentStatus"},{"type":"null"}],"description":"Processing status of the content"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message","description":"Status message or error details"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when content was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when content was last updated"}},"type":"object","required":["id"],"title":"ContentResponseSchema"},"ContentStatus":{"type":"string","enum":["processing","completed","failed"],"title":"ContentStatus","description":"Enumeration of possible content processing statuses."},"ContentStatusResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Content ID"},"status":{"$ref":"#/components/schemas/ContentStatus","description":"Current processing status of the content"},"status_message":{"type":"string","title":"Status Message","description":"Status message or error details","default":""}},"type":"object","required":["status"],"title":"ContentStatusResponse","description":"Response model for content status endpoint."},"Context":{"properties":{"description":{"type":"string","title":"Description"},"value":{"type":"string","title":"Value"}},"additionalProperties":true,"type":"object","required":["description","value"],"title":"Context","description":"Additional context for the agent."},"CreateSessionRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session ID (generated if not provided)"},"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Initial session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"}},"type":"object","title":"CreateSessionRequest"},"DataPart":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data"},"kind":{"type":"string","const":"data","title":"Kind","default":"data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["data"],"title":"DataPart","description":"Represents a structured data segment (e.g., JSON) within a message or artifact."},"DatabaseConfig_EvalsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/EvalsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[EvalsDomainConfig]"},"DatabaseConfig_LearningDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/LearningDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[LearningDomainConfig]"},"DatabaseConfig_MemoryDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MemoryDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MemoryDomainConfig]"},"DatabaseConfig_MetricsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MetricsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MetricsDomainConfig]"},"DatabaseConfig_SessionDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/SessionDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[SessionDomainConfig]"},"DatabaseConfig_TracesDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/TracesDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[TracesDomainConfig]"},"DayAggregatedMetrics":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the metrics record"},"agent_runs_count":{"type":"integer","minimum":0.0,"title":"Agent Runs Count","description":"Total number of agent runs"},"agent_sessions_count":{"type":"integer","minimum":0.0,"title":"Agent Sessions Count","description":"Total number of agent sessions"},"team_runs_count":{"type":"integer","minimum":0.0,"title":"Team Runs Count","description":"Total number of team runs"},"team_sessions_count":{"type":"integer","minimum":0.0,"title":"Team Sessions Count","description":"Total number of team sessions"},"workflow_runs_count":{"type":"integer","minimum":0.0,"title":"Workflow Runs Count","description":"Total number of workflow runs"},"workflow_sessions_count":{"type":"integer","minimum":0.0,"title":"Workflow Sessions Count","description":"Total number of workflow sessions"},"users_count":{"type":"integer","minimum":0.0,"title":"Users Count","description":"Total number of unique users"},"token_metrics":{"additionalProperties":true,"type":"object","title":"Token Metrics","description":"Token usage metrics (input, output, cached, etc.)"},"model_metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Model Metrics","description":"Metrics grouped by model (model_id, provider, count)"},"date":{"type":"string","format":"date-time","title":"Date","description":"Date for which these metrics are aggregated"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when metrics were created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when metrics were last updated"}},"type":"object","required":["id","agent_runs_count","agent_sessions_count","team_runs_count","team_sessions_count","workflow_runs_count","workflow_sessions_count","users_count","token_metrics","model_metrics","date","created_at","updated_at"],"title":"DayAggregatedMetrics","description":"Aggregated metrics for a given day"},"DeleteEvalRunsRequest":{"properties":{"eval_run_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Eval Run Ids","description":"List of evaluation run IDs to delete"}},"type":"object","required":["eval_run_ids"],"title":"DeleteEvalRunsRequest"},"DeleteMemoriesRequest":{"properties":{"memory_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Memory Ids","description":"List of memory IDs to delete"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID to filter memories for deletion"}},"type":"object","required":["memory_ids"],"title":"DeleteMemoriesRequest"},"DeleteSessionRequest":{"properties":{"session_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Session Ids","description":"List of session IDs to delete"},"session_types":{"items":{"$ref":"#/components/schemas/SessionType"},"type":"array","minItems":1,"title":"Session Types","description":"Types of sessions to delete"}},"type":"object","required":["session_ids","session_types"],"title":"DeleteSessionRequest"},"DeveloperMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"developer","title":"Role","default":"developer"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"DeveloperMessage","description":"A developer message."},"DocumentInputContent":{"properties":{"type":{"type":"string","const":"document","title":"Type","default":"document"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"DocumentInputContent","description":"A document input content fragment."},"EvalFilterType":{"type":"string","enum":["agent","team","workflow"],"title":"EvalFilterType"},"EvalRunInput":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID to evaluate"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID to evaluate"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID to use for evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation to run (accuracy, performance, or reliability)"},"input":{"type":"string","minLength":1,"title":"Input","description":"Input text/query for the evaluation"},"additional_guidelines":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Guidelines","description":"Additional guidelines for the evaluation"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for the evaluation"},"num_iterations":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Num Iterations","description":"Number of times to run the evaluation","default":1},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for this evaluation run"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output","description":"Expected output for accuracy evaluation"},"criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criteria","description":"Evaluation criteria for agent-as-judge evaluation"},"scoring_strategy":{"anyOf":[{"type":"string","enum":["numeric","binary"]},{"type":"null"}],"title":"Scoring Strategy","description":"Scoring strategy: 'numeric' (1-10 with threshold) or 'binary' (PASS/FAIL)","default":"binary"},"threshold":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Threshold","description":"Score threshold for pass/fail (1-10), only used with numeric scoring","default":7},"warmup_runs":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Warmup Runs","description":"Number of warmup runs before measuring performance","default":0},"expected_tool_calls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expected Tool Calls","description":"Expected tool calls for reliability evaluation"},"allow_additional_tool_calls":{"type":"boolean","title":"Allow Additional Tool Calls","description":"When True, tool calls not in expected_tool_calls are allowed (subset matching)","default":false},"expected_tool_call_arguments":{"anyOf":[{"additionalProperties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Expected Tool Call Arguments","description":"Expected arguments for specific tool calls, e.g. {\"tool_name\": {\"arg_name\": \"expected_value\"}} or {\"tool_name\": [{\"arg_name\": \"val1\"}, {\"arg_name\": \"val2\"}]}"}},"type":"object","required":["eval_type","input"],"title":"EvalRunInput"},"EvalSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the evaluation run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that was evaluated"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID used in evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that was evaluated"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was evaluated"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the evaluation run"},"evaluated_component_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluated Component Name","description":"Name of the evaluated component"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation (accuracy, performance, or reliability)"},"eval_data":{"additionalProperties":true,"type":"object","title":"Eval Data","description":"Evaluation results and metrics"},"eval_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eval Input","description":"Input parameters used for the evaluation"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when evaluation was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when evaluation was last updated"}},"type":"object","required":["id","eval_type","eval_data"],"title":"EvalSchema"},"EvalType":{"type":"string","enum":["accuracy","agent_as_judge","performance","reliability"],"title":"EvalType"},"EvalsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_EvalsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"EvalsConfig","description":"Configuration for the Evals domain of the AgentOS"},"EvalsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"EvalsDomainConfig","description":"Configuration for the Evals domain of the AgentOS"},"FilePart":{"properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/FileWithBytes"},{"$ref":"#/components/schemas/FileWithUri"}],"title":"File"},"kind":{"type":"string","const":"file","title":"Kind","default":"file"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["file"],"title":"FilePart","description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI."},"FileWithBytes":{"properties":{"bytes":{"type":"string","title":"Bytes"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["bytes"],"title":"FileWithBytes","description":"Represents a file with its content provided directly as a base64-encoded string."},"FileWithUri":{"properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uri":{"type":"string","title":"Uri"}},"type":"object","required":["uri"],"title":"FileWithUri","description":"Represents a file with its content located at a specific URI."},"FilterFieldSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Column/field name used in filter expressions"},"label":{"type":"string","title":"Label","description":"Human-readable display label for the UI"},"type":{"type":"string","title":"Type","description":"Field data type: string, number, datetime, enum"},"operators":{"items":{"type":"string"},"type":"array","title":"Operators","description":"List of valid filter operators for this field"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values","description":"Allowed enum values (for autocomplete/dropdown)"}},"type":"object","required":["key","label","type","operators"],"title":"FilterFieldSchema","description":"Schema describing a single filterable field for the frontend filter bar."},"FilterSchemaResponse":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FilterFieldSchema"},"type":"array","title":"Fields","description":"Available filterable fields"},"logical_operators":{"items":{"type":"string"},"type":"array","title":"Logical Operators","description":"Logical operators for combining filter clauses","default":["AND","OR"]}},"type":"object","required":["fields"],"title":"FilterSchemaResponse","description":"Response for the filter schema endpoint. Tells the FE what fields, operators, and values are available."},"ForbiddenResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ForbiddenResponse","example":{"detail":"Insufficient permissions"}},"FunctionCall":{"properties":{"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"additionalProperties":true,"type":"object","required":["name","arguments"],"title":"FunctionCall","description":"Name and arguments of a function call."},"GetTaskRequest":{"description":"Represents a JSON-RPC request for the `tasks/get` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"tasks/get","default":"tasks/get","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_TaskQueryParams"}},"required":["id","params"],"title":"GetTaskRequest","type":"object"},"GetTaskSuccessResponse":{"description":"Represents a successful JSON-RPC response for the `tasks/get` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"default":null,"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"result":{"$ref":"#/components/schemas/Task"}},"required":["result"],"title":"GetTaskSuccessResponse","type":"object"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Health status of the service"},"instantiated_at":{"type":"string","format":"date-time","title":"Instantiated At","description":"Timestamp when service was instantiated"}},"type":"object","required":["status","instantiated_at"],"title":"HealthResponse","example":{"instantiated_at":"2025-06-10T12:00:00Z","status":"ok"}},"ImageInputContent":{"properties":{"type":{"type":"string","const":"image","title":"Type","default":"image"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"ImageInputContent","description":"An image input content fragment."},"InfoResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"agno_version":{"type":"string","title":"Agno Version","description":"Version of the agno framework"},"agent_count":{"type":"integer","title":"Agent Count","description":"Number of agents registered in the OS","default":0},"team_count":{"type":"integer","title":"Team Count","description":"Number of teams registered in the OS","default":0},"workflow_count":{"type":"integer","title":"Workflow Count","description":"Number of workflows registered in the OS","default":0},"mcp":{"$ref":"#/components/schemas/McpInfo","description":"MCP server availability for this OS instance"},"auth_mode":{"type":"string","enum":["none","security_key","jwt"],"title":"Auth Mode","description":"Authentication mode enforced on the REST/WS plane of this OS instance. MCP OAuth, when enabled, is described separately under `mcp.oauth`.","default":"none"}},"type":"object","required":["os_id","agno_version"],"title":"InfoResponse","description":"Response schema for the /info endpoint returning lightweight OS metadata."},"InputContentDataSource":{"properties":{"type":{"type":"string","const":"data","title":"Type","default":"data"},"value":{"type":"string","title":"Value"},"mimeType":{"type":"string","title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value","mimeType"],"title":"InputContentDataSource","description":"Inline base64-encoded source."},"InputContentUrlSource":{"properties":{"type":{"type":"string","const":"url","title":"Type","default":"url"},"value":{"type":"string","title":"Value"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value"],"title":"InputContentUrlSource","description":"URL-referenced source."},"InterfaceResponse":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the interface"},"version":{"type":"string","title":"Version","description":"Version of the interface"},"route":{"type":"string","title":"Route","description":"API route path"}},"type":"object","required":["type","version","route"],"title":"InterfaceResponse"},"InternalServerErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"InternalServerErrorResponse","example":{"detail":"Internal server error","error_code":"INTERNAL_SERVER_ERROR"}},"KnowledgeConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeDatabaseConfig"},"type":"array"},{"type":"null"}],"title":"Dbs"},"knowledge_instances":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeInstanceConfig"},"type":"array"},{"type":"null"}],"title":"Knowledge Instances"}},"type":"object","title":"KnowledgeConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeDatabaseConfig":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeDomainConfig"},{"type":"null"}]},"tables":{"items":{"type":"string"},"type":"array","title":"Tables","default":[]}},"type":"object","required":["db_id"],"title":"KnowledgeDatabaseConfig","description":"Configuration for a knowledge database with its tables"},"KnowledgeDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"KnowledgeDomainConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeInstanceConfig":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"db_id":{"type":"string","title":"Db Id"},"table":{"type":"string","title":"Table"}},"type":"object","required":["id","name","db_id","table"],"title":"KnowledgeInstanceConfig","description":"Configuration for a single knowledge instance"},"LearningConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_LearningDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"LearningConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningCreate":{"properties":{"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"content":{"additionalProperties":true,"type":"object","title":"Content","description":"The learning content payload"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID. When the request is authenticated, must match the JWT subject or be omitted/null (which creates a global / non-user-scoped record)."},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"}},"type":"object","required":["learning_type","content"],"title":"LearningCreate","description":"Request body for creating a learning record."},"LearningDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"LearningDomainConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningResponse":{"properties":{"learning_id":{"type":"string","title":"Learning Id","description":"Unique identifier for the learning record"},"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID (for entity-specific learnings)"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type (e.g. 'person', 'company')"},"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"The learning content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Creation timestamp (Unix epoch seconds)"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp (Unix epoch seconds)"}},"type":"object","required":["learning_id","learning_type"],"title":"LearningResponse","description":"A single learning record as returned by the API."},"LearningUpdate":{"properties":{"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Replacement content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Replacement metadata"}},"type":"object","title":"LearningUpdate","description":"Request body for updating a learning record. Identity fields are immutable."},"LearningUserStats":{"properties":{"user_id":{"type":"string","title":"User Id","description":"The user ID"},"last_learning_updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Learning Updated At","description":"Most recent learning update for this user (Unix epoch seconds)"}},"type":"object","required":["user_id"],"title":"LearningUserStats","description":"A user that owns learning records, with their most recent activity.\n\nUsed as a lightweight index for the per-user view: list users here, then drill into a\nsingle user's records via ``GET /learnings?user_id=...``. No per-user count is returned\n-- the user-scoped stores (``user_profile``, ``user_memory``) keep a single record per\nuser, so a record count would always be 1; the actual memory count lives in that\nrecord's ``content``."},"Manifest":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"},"quick_prompts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quick Prompts"}},"type":"object","title":"Manifest","description":"OS-level UI metadata for an agent/team/workflow.\n\nFields here are AgentOS UI metadata only. ``description`` is unrelated to\n``Agent.description`` / ``Team.description`` / ``Workflow.description``,\nwhich are sent to the model.\n\nRendering surfaces:\n- ``description``, ``labels``: home/landing card\n- ``quick_prompts``: chat page"},"McpInfo":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the MCP server is enabled on this OS instance","default":false},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Path where the MCP server is mounted, null when disabled"},"oauth":{"anyOf":[{"$ref":"#/components/schemas/McpOAuthInfo"},{"type":"null"}],"description":"OAuth discovery details when the MCP endpoint is OAuth-protected, null otherwise"}},"type":"object","title":"McpInfo","description":"MCP server availability for the /info endpoint."},"McpOAuthInfo":{"properties":{"authorization_servers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorization Servers","description":"Issuer URL(s) of the authorization server(s) protecting the MCP endpoint"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource","description":"RFC 9728 resource URL advertised for the MCP endpoint"}},"type":"object","title":"McpOAuthInfo","description":"OAuth discovery details for an MCP endpoint protected by ``AgentOS(mcp_auth=...)``."},"MemoryConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MemoryDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MemoryConfig","description":"Configuration for the Memory domain of the AgentOS"},"MemoryDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MemoryDomainConfig","description":"Configuration for the Memory domain of the AgentOS"},"Message":{"properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"kind":{"type":"string","const":"message","title":"Kind","default":"message"},"messageId":{"type":"string","title":"Messageid"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taskid"}},"type":"object","required":["messageId","parts","role"],"title":"Message","description":"Represents a single message in the conversation between a user and an agent."},"Meta":{"properties":{"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of results per page","default":20},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number","default":1}},"type":"object","title":"Meta","description":"Inline metadata schema for pagination."},"MetricsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MetricsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MetricsConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MetricsDomainConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsResponse":{"properties":{"metrics":{"items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"type":"array","title":"Metrics","description":"List of daily aggregated metrics"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp of the most recent metrics update"}},"type":"object","required":["metrics"],"title":"MetricsResponse"},"Model":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"Model"},"ModelResponse":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the model"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"ModelResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"NotFoundResponse","example":{"detail":"Not found","error_code":"NOT_FOUND"}},"NotImplementedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"NotImplementedResponse","example":{"detail":"Operation not supported for this resource type"}},"OptimizeMemoriesRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID to optimize memories for"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model in `provider:model_id` format. Current examples include `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, and `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`."},"apply":{"type":"boolean","title":"Apply","description":"If True, apply optimization changes to database. If False, return preview only without saving.","default":true}},"type":"object","required":["user_id"],"title":"OptimizeMemoriesRequest","description":"Schema for memory optimization request"},"OptimizeMemoriesResponse":{"properties":{"memories":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Memories","description":"List of optimized memory objects"},"memories_before":{"type":"integer","minimum":0.0,"title":"Memories Before","description":"Number of memories before optimization"},"memories_after":{"type":"integer","minimum":0.0,"title":"Memories After","description":"Number of memories after optimization"},"tokens_before":{"type":"integer","minimum":0.0,"title":"Tokens Before","description":"Token count before optimization"},"tokens_after":{"type":"integer","minimum":0.0,"title":"Tokens After","description":"Token count after optimization"},"tokens_saved":{"type":"integer","minimum":0.0,"title":"Tokens Saved","description":"Number of tokens saved through optimization"},"reduction_percentage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Reduction Percentage","description":"Percentage of token reduction achieved"}},"type":"object","required":["memories","memories_before","memories_after","tokens_before","tokens_after","tokens_saved","reduction_percentage"],"title":"OptimizeMemoriesResponse","description":"Schema for memory optimization response"},"PaginatedResponse_ApprovalResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ApprovalResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ApprovalResponse]"},"PaginatedResponse_ComponentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ComponentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ComponentResponse]"},"PaginatedResponse_ContentResponseSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentResponseSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ContentResponseSchema]"},"PaginatedResponse_EvalSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EvalSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[EvalSchema]"},"PaginatedResponse_LearningResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningResponse]"},"PaginatedResponse_LearningUserStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningUserStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningUserStats]"},"PaginatedResponse_RegistryContentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RegistryContentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[RegistryContentResponse]"},"PaginatedResponse_ScheduleResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleResponse]"},"PaginatedResponse_ScheduleRunResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleRunResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleRunResponse]"},"PaginatedResponse_ServiceAccountResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ServiceAccountResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ServiceAccountResponse]"},"PaginatedResponse_SessionSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SessionSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[SessionSchema]"},"PaginatedResponse_TraceDetail_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceDetail"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceDetail]"},"PaginatedResponse_TraceSessionStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSessionStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSessionStats]"},"PaginatedResponse_TraceSummary_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSummary"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSummary]"},"PaginatedResponse_UserMemorySchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserMemorySchema]"},"PaginatedResponse_UserStatsSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserStatsSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserStatsSchema]"},"PaginatedResponse_VectorSearchResult_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VectorSearchResult"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[VectorSearchResult]"},"PaginationInfo":{"properties":{"page":{"type":"integer","minimum":0.0,"title":"Page","description":"Page value returned by the endpoint. AgentOS paginated routes use 1-based page numbers. Some Agno 2.7.4 routes accept and echo 0 even though their pagination implementation is 1-based.","default":0},"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of items per page","default":20},"total_pages":{"type":"integer","minimum":0.0,"title":"Total Pages","description":"Total number of pages","default":0},"total_count":{"type":"integer","minimum":0.0,"title":"Total Count","description":"Total count of items","default":0},"search_time_ms":{"type":"number","minimum":0.0,"title":"Search Time Ms","description":"Search execution time in milliseconds","default":0}},"type":"object","title":"PaginationInfo"},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/DataPart"}],"title":"Part"},"ReaderSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the reader"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the reader"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the reader's capabilities"},"chunkers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chunkers","description":"List of supported chunking strategies"}},"type":"object","required":["id"],"title":"ReaderSchema"},"ReasoningMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"reasoning","title":"Role","default":"reasoning"},"content":{"type":"string","title":"Content"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"ReasoningMessage","description":"A reasoning message containing the agent's internal reasoning process."},"RegistryContentResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/RegistryResourceType"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name","type"],"title":"RegistryContentResponse"},"RegistryResourceType":{"type":"string","enum":["tool","model","db","vector_db","schema","function","agent","team","knowledge","memory_manager","session_summary_manager"],"title":"RegistryResourceType","description":"Types of resources that can be stored in a registry."},"RemoteContentSourceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content source"},"name":{"type":"string","title":"Name","description":"Display name for the content source"},"type":{"type":"string","title":"Type","description":"Type of content source (s3, gcs, sharepoint, github, azureblob)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Default path prefix for this source"}},"type":"object","required":["id","name","type"],"title":"RemoteContentSourceSchema","description":"Schema for remote content source configuration."},"ResumeEntry":{"properties":{"interruptId":{"type":"string","title":"Interruptid"},"status":{"type":"string","enum":["resolved","cancelled"],"title":"Status"},"payload":{"anyOf":[{},{"type":"null"}],"title":"Payload"}},"additionalProperties":true,"type":"object","required":["interruptId","status"],"title":"ResumeEntry","description":"A per-interrupt response in the resume array of a RunAgentInput."},"Role":{"type":"string","enum":["agent","user"],"title":"Role","description":"Identifies the sender of the message. `user` for the client, `agent` for the service."},"RunAgentInput":{"properties":{"threadId":{"type":"string","title":"Threadid"},"runId":{"type":"string","title":"Runid"},"parentRunId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentrunid"},"state":{"title":"State"},"messages":{"items":{"oneOf":[{"$ref":"#/components/schemas/DeveloperMessage"},{"$ref":"#/components/schemas/SystemMessage"},{"$ref":"#/components/schemas/AssistantMessage"},{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/ToolMessage"},{"$ref":"#/components/schemas/ActivityMessage"},{"$ref":"#/components/schemas/ReasoningMessage"}],"discriminator":{"propertyName":"role","mapping":{"activity":"#/components/schemas/ActivityMessage","assistant":"#/components/schemas/AssistantMessage","developer":"#/components/schemas/DeveloperMessage","reasoning":"#/components/schemas/ReasoningMessage","system":"#/components/schemas/SystemMessage","tool":"#/components/schemas/ToolMessage","user":"#/components/schemas/UserMessage"}}},"type":"array","title":"Messages"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","title":"Tools"},"context":{"items":{"$ref":"#/components/schemas/Context"},"type":"array","title":"Context"},"forwardedProps":{"title":"Forwardedprops"},"resume":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResumeEntry"},"type":"array"},{"type":"null"}],"title":"Resume"}},"additionalProperties":true,"type":"object","required":["threadId","runId","state","messages","tools","context","forwardedProps"],"title":"RunAgentInput","description":"Input for running an agent."},"RunCheckpointEntry":{"properties":{"checkpoint_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Checkpoint Id","description":"One-based display ID, or null when the requested boundary is not on the checkpoint timeline."},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Run that contains the checkpoint."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session that contains the run."},"message_index":{"type":"integer","minimum":0,"title":"Message Index","description":"Message boundary represented by the checkpoint."},"continue_from":{"type":"integer","minimum":0,"title":"Continue From","description":"Value to send as continue_from when continuing the run."},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Checkpoint status or current run status."},"reason":{"type":"string","title":"Reason","description":"Why this boundary was returned."},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Unix timestamp for the checkpoint or run."},"message_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Id","description":"Message ID at the checkpoint boundary."},"message_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Role","description":"Role of the message at the checkpoint boundary."},"message_preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Preview","description":"Truncated message content at the checkpoint boundary."},"is_latest":{"type":"boolean","title":"Is Latest","description":"Whether this is the final message boundary in the stored run."}},"type":"object","required":["checkpoint_id","run_id","session_id","message_index","continue_from","status","reason","created_at","message_id","message_role","message_preview","is_latest"],"title":"RunCheckpointEntry","description":"A continuation boundary derived from a stored run transcript."},"RunCheckpointListResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Run whose checkpoints were listed."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the run."},"checkpoints":{"type":"array","items":{"$ref":"#/components/schemas/RunCheckpointEntry"},"title":"Checkpoints","description":"Checkpoint boundaries in message order."}},"type":"object","required":["run_id","session_id","checkpoints"],"title":"RunCheckpointListResponse"},"RunCheckpointSnapshotResponse":{"properties":{"checkpoint":{"$ref":"#/components/schemas/RunCheckpointEntry"},"snapshot":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"}],"title":"Snapshot","description":"Agent or team run serialized at the requested message boundary."}},"type":"object","required":["checkpoint","snapshot"],"title":"RunCheckpointSnapshotResponse"},"RunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that executed this run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"RunSchema"},"RunStatus":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","PAUSED","CANCELLED","ERROR","REGENERATED"],"title":"RunStatus","description":"State of the main run response"},"ScheduleCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"cron_expr":{"type":"string","maxLength":128,"title":"Cron Expr"},"endpoint":{"type":"string","maxLength":512,"title":"Endpoint"},"method":{"type":"string","maxLength":10,"title":"Method","default":"POST"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"type":"string","maxLength":64,"title":"Timezone","default":"UTC"},"timeout_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Timeout Seconds","default":3600},"max_retries":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Max Retries","default":0},"retry_delay_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Retry Delay Seconds","default":60}},"type":"object","required":["name","cron_expr","endpoint"],"title":"ScheduleCreate"},"ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"cron_expr":{"type":"string","title":"Cron Expr"},"timezone":{"type":"string","title":"Timezone"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"max_retries":{"type":"integer","title":"Max Retries"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","method","endpoint","cron_expr","timezone","timeout_seconds","max_retries","retry_delay_seconds","enabled"],"title":"ScheduleResponse"},"ScheduleRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"schedule_id":{"type":"string","title":"Schedule Id"},"attempt":{"type":"integer","title":"Attempt"},"triggered_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triggered At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"status":{"type":"string","title":"Status"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","schedule_id","attempt","status"],"title":"ScheduleRunResponse"},"ScheduleStateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","enabled"],"title":"ScheduleStateResponse","description":"Trimmed response for state-changing operations (enable/disable)."},"ScheduleUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"cron_expr":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Cron Expr"},"endpoint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Endpoint"},"method":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Method"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Timezone"},"timeout_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":1.0},{"type":"null"}],"title":"Timeout Seconds"},"max_retries":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Max Retries"},"retry_delay_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":1.0},{"type":"null"}],"title":"Retry Delay Seconds"}},"type":"object","title":"ScheduleUpdate"},"ScopeItem":{"properties":{"scope":{"type":"string","title":"Scope","description":"Scope string, e.g. 'agents:*:run'"},"effect":{"type":"string","enum":["allow","deny"],"title":"Effect","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["scope"],"title":"ScopeItem","description":"Write shape for one scope grant \u2014 the canonical RBAC payload for every scope-bearing API.\n\nEndpoints that take scopes accept these objects only (a bare string is a validation\nerror). ``effect`` is constrained here so every consumer rejects typos at the model\nlayer; whether ``deny`` is *semantically* legal stays per-endpoint (roles support\ndeny rules, service-account tokens are pure grants and reject it)."},"ScopeSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Scope id (always null here; kept for shape parity with the cloud RBAC API, which addresses scopes individually)"},"raw":{"type":"string","title":"Raw","description":"Original scope string, e.g. 'agents:*:run'"},"namespace":{"type":"string","title":"Namespace","description":"Resource namespace, e.g. 'agents'"},"sub_namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Namespace","description":"Specific resource id or wildcard '*'"},"permission":{"type":"string","title":"Permission","description":"Action, e.g. 'read' / 'run' / 'write'"},"value":{"type":"string","title":"Value","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["raw","namespace","permission"],"title":"ScopeSchema","description":"Read shape for one scope \u2014 the parsed RBAC payload shared by every scope-bearing API.\n\nMirrors the cloud RBAC scope shape ({raw, namespace, sub_namespace, permission, value})\nso a frontend renders scopes from any AgentOS API with one integration."},"SendMessageRequest":{"description":"Represents a JSON-RPC request for the `message/send` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/send","default":"message/send","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendMessageRequest","type":"object"},"SendMessageSuccessResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id"},"jsonrpc":{"type":"string","const":"2.0","title":"Jsonrpc","default":"2.0"},"result":{"anyOf":[{"$ref":"#/components/schemas/Task"},{"$ref":"#/components/schemas/Message"}],"title":"Result"}},"type":"object","required":["result"],"title":"SendMessageSuccessResponse","description":"Represents a successful JSON-RPC response for the `message/send` method."},"SendStreamingMessageRequest":{"description":"Represents a JSON-RPC request for the `message/stream` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/stream","default":"message/stream","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendStreamingMessageRequest","type":"object"},"ServiceAccountCreate":{"properties":{"name":{"type":"string","maxLength":63,"title":"Name","description":"Machine identity name (lowercase slug), e.g. 'claude-code' or 'github-actions'"},"scopes":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScopeItem"},"type":"array"},{"type":"null"}],"title":"Scopes","description":"Scopes granted to the token, as {scope, effect} objects (the shared RBAC write shape; token scopes are grants, so only effect='allow' is accepted). Defaults to run and read scopes: agents:run, teams:run, workflows:run, sessions:read"},"expires_in_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Expires In Days","description":"Days until the token expires (default: 90)","default":90},"never_expires":{"type":"boolean","title":"Never Expires","description":"Mint a non-expiring token. Must be set explicitly; overrides expires_in_days.","default":false},"allow_privileged_scopes":{"type":"boolean","title":"Allow Privileged Scopes","description":"Required to grant privileged scopes: any write or delete action, the admin scope, or any service_accounts scope. Privileged tokens must be deliberate, never accidental.","default":false}},"type":"object","required":["name"],"title":"ServiceAccountCreate"},"ServiceAccountCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"token":{"type":"string","title":"Token","description":"The plaintext token. Shown exactly once - store it securely now."}},"type":"object","required":["id","name","principal","token_prefix","created_at","token"],"title":"ServiceAccountCreateResponse","description":"Returned once, at creation. The token is never retrievable again."},"ServiceAccountResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","name","principal","token_prefix","created_at"],"title":"ServiceAccountResponse","description":"Service account metadata. Never includes the token hash or plaintext."},"ServiceUnavailableResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ServiceUnavailableResponse","example":{"detail":"Feature not supported by the configured service"}},"SessionConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_SessionDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"SessionConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"SessionDomainConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier for the session"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state data of the session"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when session was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when session was last updated"},"session_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type","description":"Type of session: agent, team, or workflow"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["session_id","session_name"],"title":"SessionSchema"},"SessionType":{"type":"string","enum":["agent","team","workflow"],"title":"SessionType"},"SlackChallengeResponse":{"properties":{"challenge":{"type":"string","title":"Challenge","description":"Challenge string to echo back to Slack"}},"type":"object","required":["challenge"],"title":"SlackChallengeResponse"},"SlackEventResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"}},"type":"object","title":"SlackEventResponse"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"SourceFileSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Full path/key of the file"},"name":{"type":"string","title":"Name","description":"Display name (filename)"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"File size in bytes"},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified","description":"ISO 8601 timestamp of last modification"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"MIME type of the file"}},"type":"object","required":["key","name"],"title":"SourceFileSchema","description":"Schema for a file in a content source."},"SourceFilesResponseSchema":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"ID of the content source"},"source_name":{"type":"string","title":"Source Name","description":"Name of the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Prefix filter that was applied"},"folders":{"items":{"$ref":"#/components/schemas/SourceFolderSchema"},"type":"array","title":"Folders","description":"Subfolders at this level"},"files":{"items":{"$ref":"#/components/schemas/SourceFileSchema"},"type":"array","title":"Files","description":"List of files at this level"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["source_id","source_name","meta"],"title":"SourceFilesResponseSchema","description":"Response schema for listing files in a content source."},"SourceFolderSchema":{"properties":{"prefix":{"type":"string","title":"Prefix","description":"Full prefix to use for navigating into this folder"},"name":{"type":"string","title":"Name","description":"Display name of the folder"},"is_empty":{"type":"boolean","title":"Is Empty","description":"Whether the folder contains any files","default":false}},"type":"object","required":["prefix","name"],"title":"SourceFolderSchema","description":"Schema for a folder in a content source."},"SystemMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"system","title":"Role","default":"system"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"SystemMessage","description":"A system message."},"Task":{"properties":{"artifacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Artifact"},"type":"array"},{"type":"null"}],"title":"Artifacts"},"contextId":{"type":"string","title":"Contextid"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"History"},"id":{"type":"string","title":"Id"},"kind":{"type":"string","const":"task","title":"Kind","default":"task"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"status":{"$ref":"#/components/schemas/TaskStatus"}},"type":"object","required":["contextId","id","status"],"title":"Task","description":"Represents a single, stateful operation or conversation between a client and an agent."},"TaskState":{"type":"string","enum":["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"],"title":"TaskState","description":"Defines the lifecycle states of a Task."},"TaskStatus":{"properties":{"message":{"anyOf":[{"$ref":"#/components/schemas/Message"},{"type":"null"}]},"state":{"$ref":"#/components/schemas/TaskState"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp","examples":["2023-10-27T10:00:00Z"]}},"type":"object","required":["state"],"title":"TaskStatus","description":"Represents the status of a task at a specific point in time."},"TeamResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"members":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"$ref":"#/components/schemas/TeamResponse"}]},"type":"array"},{"type":"null"}],"title":"Members"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"TeamResponse"},"TeamRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the team run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that executed this run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the team run"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this team run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this team run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this team run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this team run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"TeamRunSchema"},"TeamSessionDetailSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID used in this session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of team interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"team_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Team Data","description":"Team-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"}},"type":"object","required":["session_id","session_name"],"title":"TeamSessionDetailSchema"},"TeamSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the team"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the team"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the team"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Team execution mode (coordinate, route, broadcast, tasks)"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the team leader"}},"type":"object","title":"TeamSummaryResponse"},"TelegramStatusResponse":{"properties":{"status":{"type":"string","title":"Status","default":"available"}},"type":"object","title":"TelegramStatusResponse"},"TelegramWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status"}},"type":"object","required":["status"],"title":"TelegramWebhookResponse"},"TextInputContent":{"properties":{"type":{"type":"string","const":"text","title":"Type","default":"text"},"text":{"type":"string","title":"Text"}},"additionalProperties":true,"type":"object","required":["text"],"title":"TextInputContent","description":"A text fragment in a multimodal user message."},"TextPart":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"TextPart","description":"Represents a text segment within a message or artifact."},"Tool":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{},{"type":"null"}],"title":"Parameters"}},"additionalProperties":true,"type":"object","required":["name","description"],"title":"Tool","description":"A tool definition."},"ToolCall":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/FunctionCall"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","function"],"title":"ToolCall","description":"A tool call, modelled after OpenAI tool calls."},"ToolMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"tool","title":"Role","default":"tool"},"content":{"type":"string","title":"Content"},"toolCallId":{"type":"string","title":"Toolcallid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content","toolCallId"],"title":"ToolMessage","description":"A tool result message."},"TraceDetail":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent/workflow"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the agent/workflow"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"},"tree":{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array","title":"Tree","description":"Hierarchical tree of spans (root nodes)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at","tree"],"title":"TraceDetail","description":"Detailed trace information with hierarchical span tree"},"TraceNode":{"properties":{"id":{"type":"string","title":"Id","description":"Span ID"},"name":{"type":"string","title":"Name","description":"Span name (e.g., 'agent.run', 'llm.invoke')"},"type":{"type":"string","title":"Type","description":"Span kind (AGENT, TEAM, WORKFLOW, LLM, TOOL)"},"duration":{"type":"string","title":"Duration","description":"Human-readable duration (e.g., '123ms', '1.5s')"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"End time (Pydantic auto-serializes to ISO 8601)"},"status":{"type":"string","title":"Status","description":"Status code (OK, ERROR)"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the span"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the span"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"spans":{"anyOf":[{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array"},{"type":"null"}],"title":"Spans","description":"Child spans in the trace hierarchy"},"step_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Type","description":"Workflow step type (Step, Condition, function, Agent, Team)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional span attributes and data"},"extra_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Data","description":"Flexible field for custom attributes and additional data"}},"type":"object","required":["id","name","type","duration","start_time","end_time","status"],"title":"TraceNode","description":"Recursive node structure for rendering trace hierarchy in the frontend"},"TraceSearchGroupBy":{"type":"string","enum":["run","session"],"title":"TraceSearchGroupBy","description":"Grouping options for trace search results."},"TraceSearchRequest":{"properties":{"filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter","description":"FilterExpr DSL as JSON dict. Supports operators: EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH, AND, OR, NOT."},"group_by":{"$ref":"#/components/schemas/TraceSearchGroupBy","description":"Grouping mode: 'run' returns individual TraceDetail, 'session' returns aggregated TraceSessionStats.","default":"run"},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number (1-indexed)","default":1},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"Number of traces per page (max 100)","default":20}},"type":"object","title":"TraceSearchRequest","description":"Request body for POST /traces/search with advanced filtering.\n\nThe filter field accepts a FilterExpr DSL dict supporting composable queries\nwith AND/OR/NOT logic and operators like EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH.\n\nExample for run grouping (default):\n {\n \"filter\": {\n \"op\": \"AND\",\n \"conditions\": [\n {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n {\"op\": \"CONTAINS\", \"key\": \"user_id\", \"value\": \"admin\"}\n ]\n },\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n }\n\nExample for session grouping:\n {\n \"filter\": {\"op\": \"EQ\", \"key\": \"agent_id\", \"value\": \"my-agent\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n }"},"TraceSessionStats":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID(s) used in the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID associated with the session"},"total_traces":{"type":"integer","title":"Total Traces","description":"Total number of traces in this session"},"first_trace_at":{"type":"string","format":"date-time","title":"First Trace At","description":"Time of first trace (Pydantic auto-serializes to ISO 8601)"},"last_trace_at":{"type":"string","format":"date-time","title":"Last Trace At","description":"Time of last trace (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["session_id","total_traces","first_trace_at","last_trace_at"],"title":"TraceSessionStats","description":"Aggregated trace statistics grouped by session"},"TraceSummary":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR, UNSET)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at"],"title":"TraceSummary","description":"Summary information for trace list view"},"TracesConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_TracesDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"TracesConfig","description":"Configuration for the Traces domain of the AgentOS"},"TracesDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"TracesDomainConfig","description":"Configuration for the Traces domain of the AgentOS"},"UnauthenticatedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"UnauthenticatedResponse","example":{"detail":"Unauthenticated access","error_code":"UNAUTHENTICATED"}},"UpdateEvalRunRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"New name for the evaluation run"}},"type":"object","required":["name"],"title":"UpdateEvalRunRequest"},"UpdateSessionRequest":{"properties":{"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Updated session name"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Updated session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Updated metadata"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary","description":"Session summary"}},"type":"object","title":"UpdateSessionRequest"},"UserMemoryCreateSchema":{"properties":{"memory":{"type":"string","maxLength":5000,"minLength":1,"title":"Memory","description":"Memory content text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags to categorize the memory"}},"type":"object","required":["memory"],"title":"UserMemoryCreateSchema","description":"Define the payload expected for creating a new user memory"},"UserMemorySchema":{"properties":{"memory_id":{"type":"string","title":"Memory Id","description":"Unique identifier for the memory"},"memory":{"type":"string","title":"Memory","description":"Memory content text"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags associated with the memory"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID associated with this memory"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with this memory"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when memory was last updated"}},"type":"object","required":["memory_id","memory"],"title":"UserMemorySchema"},"UserMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"user","title":"Role","default":"user"},"content":{"anyOf":[{"type":"string"},{"items":{"oneOf":[{"$ref":"#/components/schemas/TextInputContent"},{"$ref":"#/components/schemas/ImageInputContent"},{"$ref":"#/components/schemas/AudioInputContent"},{"$ref":"#/components/schemas/VideoInputContent"},{"$ref":"#/components/schemas/DocumentInputContent"},{"$ref":"#/components/schemas/BinaryInputContent"}],"discriminator":{"propertyName":"type","mapping":{"audio":"#/components/schemas/AudioInputContent","binary":"#/components/schemas/BinaryInputContent","document":"#/components/schemas/DocumentInputContent","image":"#/components/schemas/ImageInputContent","text":"#/components/schemas/TextInputContent","video":"#/components/schemas/VideoInputContent"}}},"type":"array"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"UserMessage","description":"A user message supporting text or multimodal content."},"UserStatsSchema":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"total_memories":{"type":"integer","minimum":0.0,"title":"Total Memories","description":"Total number of memories for this user"},"last_memory_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Memory Updated At","description":"Timestamp of the most recent memory update"}},"type":"object","required":["user_id","total_memories"],"title":"UserStatsSchema","description":"Schema for user memory statistics"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"ValidationErrorResponse","example":{"detail":"Validation error","error_code":"VALIDATION_ERROR"}},"VectorDbSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the vector database"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the vector database"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the vector database"},"search_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Search Types","description":"List of supported search types (vector, keyword, hybrid)"}},"type":"object","required":["id"],"title":"VectorDbSchema"},"VectorSearchRequestSchema":{"properties":{"query":{"type":"string","title":"Query","description":"The search query text"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database ID to search in"},"knowledge_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledge Id","description":"Knowledge base ID to search in"},"vector_db_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vector Db Ids","description":"List of vector database IDs to search in"},"search_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Type","description":"The type of search to perform (vector, keyword, hybrid)"},"max_results":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Max Results","description":"The maximum number of results to return"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Filters to apply to the search results"},"meta":{"anyOf":[{"$ref":"#/components/schemas/Meta"},{"type":"null"}],"description":"Pagination metadata. Limit and page number to return a subset of results."}},"type":"object","required":["query"],"title":"VectorSearchRequestSchema","description":"Schema for vector search request."},"VectorSearchResult":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the search result document"},"content":{"type":"string","title":"Content","description":"Content text of the document"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the document"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Metadata associated with the document"},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"Usage statistics (e.g., token counts)"},"reranking_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reranking Score","description":"Reranking score for relevance"},"content_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Id","description":"ID of the source content"},"content_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Origin","description":"Origin URL or source of the content"},"size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"}},"type":"object","required":["id","content"],"title":"VectorSearchResult","description":"Schema for search result documents."},"VideoInputContent":{"properties":{"type":{"type":"string","const":"video","title":"Type","default":"video"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"VideoInputContent","description":"A video input content fragment."},"WhatsAppWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status","default":"ok"}},"type":"object","title":"WhatsAppWebhookResponse"},"WorkflowResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema","description":"Input schema for the workflow"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps","description":"List of workflow steps"},"agent":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"type":"null"}],"description":"Agent configuration if used"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamResponse"},{"type":"null"}],"description":"Team configuration if used"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"workflow_agent":{"type":"boolean","title":"Workflow Agent","description":"Whether this workflow uses a WorkflowAgent","default":false},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowResponse"},"WorkflowRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the workflow run"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the workflow"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was executed"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the workflow"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"Type of content returned"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status of the workflow run"},"step_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Results","description":"Results from each workflow step"},"step_executor_runs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Executor Runs","description":"Executor runs for each step"},"step_requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Requirements","description":"HITL step requirements (resolved state for historical display)"},"pause_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Kind","description":"Kind of HITL pause: 'step' or 'executor'"},"paused_step_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Step Name","description":"Name of the step that caused the pause"},"paused_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Paused Step Index","description":"Index of the step that caused the pause"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the workflow"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the workflow"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the workflow"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the workflow"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the workflow"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"}},"type":"object","required":["run_id"],"title":"WorkflowRunSchema"},"WorkflowSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID used in this session"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name","description":"Name of the workflow"},"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Data","description":"Complete session data"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current workflow state"},"workflow_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Data","description":"Workflow-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["session_id","session_name"],"title":"WorkflowSessionDetailSchema"},"WorkflowSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowSummaryResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} +{"openapi":"3.1.0","info":{"title":"Agno API Reference","description":"The all-in-one, private, secure agent platform that runs in your cloud.","version":"2.7.4"},"paths":{"/":{"get":{"tags":["Home"],"summary":"API Information","description":"Return the AgentOS instance name, ID, and version.","operationId":"get_api_info","responses":{"200":{"description":"API information retrieved successfully","content":{"application/json":{"schema":{"properties":{"name":{"type":"string","title":"Name"},"id":{"type":"string","title":"Id"},"version":{"type":"string","title":"Version"}},"type":"object","required":["name","id","version"],"title":"ApiInfoResponse"},"examples":{"home":{"summary":"Example home response","value":{"name":"AgentOS API","id":"demo-os","version":"1.0.0"}}}}}}}}},"/health":{"get":{"tags":["Health"],"summary":"Health Check","description":"Check the health status of the AgentOS API. Returns a simple status indicator.","operationId":"health_check","responses":{"200":{"description":"API is healthy and operational","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"},"example":{"status":"ok","instantiated_at":"2025-06-10T12:00:00Z"}}}}}}},"/info":{"get":{"tags":["Core"],"summary":"Get OS Info","description":"Return lightweight, unauthenticated metadata about this AgentOS instance.","operationId":"get_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoResponse"}}}}}}},"/config":{"get":{"tags":["Core"],"summary":"Get OS Configuration","description":"Retrieve the complete configuration of the AgentOS instance, including:\n\n- Available models and databases\n- Registered agents, teams, and workflows\n- Chat, session, memory, knowledge, and evaluation configurations\n- Available interfaces and their routes","operationId":"get_config","responses":{"200":{"description":"OS configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"},"example":{"description":"Example AgentOS configuration","available_models":[],"databases":["9c884dc4-9066-448c-9074-ef49ec7eb73c"],"session":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Sessions"}}]},"metrics":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Metrics"}}]},"memory":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Memory"}}]},"knowledge":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Knowledge"}}]},"evals":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Evals"}}]},"agents":[{"id":"main-agent","name":"Main Agent","db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c"}],"teams":[],"workflows":[],"interfaces":[],"os_id":"demo"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/models":{"get":{"tags":["Core"],"summary":"Get Available Models","description":"Retrieve a list of all unique models currently used by agents and teams in this OS instance. This includes the model ID and provider information for each model.","operationId":"get_models","responses":{"200":{"description":"List of models retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Response Get Models"},"example":[{"id":"gpt-4","provider":"openai"},{"id":"claude-3-sonnet","provider":"anthropic"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}/runs":{"post":{"tags":["Agents"],"summary":"Create Agent Run","description":"Execute an agent with a message and optional media files. Supports both streaming and non-streaming responses.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_agent_run"}}}},"responses":{"200":{"description":"Agent run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"examples":{"event_stream":{"summary":"Example event stream response","value":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Agents"],"summary":"List Agent Runs","description":"List runs for an agent within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_agent_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED","title":"Status"},"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RunSchema"},"type":"array","title":"Response List Agent Runs"}}}},"400":{"description":"Run listing is unavailable for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Agent resolution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/cancel":{"post":{"tags":["Agents"],"summary":"Cancel Agent Run","description":"Request cancellation for `run_id`. After any required ownership check, local and factory agents store cancellation intent keyed by run ID. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote agent.","operationId":"cancel_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.","title":"Session Id"},"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it."}],"responses":{"200":{"description":"Cancellation request accepted. The empty response does not confirm run existence or remote delivery.","content":{"application/json":{"schema":{}}}},"400":{"description":"A user-scoped caller omitted session_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found, or the run could not be verified in the caller's session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run cancellation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/continue":{"post":{"tags":["Agents"],"summary":"Continue Agent Run","description":"Advance a persisted agent run from its current state. Dispatches on the body shape and the persisted run state (see ADR-003 in specs/agno/features/checkpointing/decisions.md).\n\n**Variants:**\n- PAUSED + tools provided \u2192 apply HITL tool results, resume\n- PAUSED + resolved admin approval (empty tools) \u2192 apply resolution, resume\n- RUNNING / ERROR (no unresolved HITL requirements) \u2192 resume from last persisted state\n- COMPLETED + new tools \u2192 continue with appended messages\n\n**Tools Parameter:**\nJSON string containing array of tool execution objects with results. Optional \u2014 only required when the persisted run has unresolved HITL requirements.","operationId":"continue_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_agent_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid tools or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Agent run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run continuation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"503":{"description":"Remote agent is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/agents/{agent_id}/sessions/{session_id}/fork":{"post":{"tags":["Agents"],"summary":"Fork Agent Session","description":"Deep-copy a session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_agent_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents":{"get":{"tags":["Agents"],"summary":"List All Agents","description":"Retrieve a comprehensive list of all agents configured in this OS instance.\n\n**Returns:**\n- Agent metadata (ID, name, description)\n- Model configuration and capabilities\n- Available tools and their configurations\n- Session, knowledge, memory, and reasoning settings\n- Only meaningful (non-default) configurations are included","operationId":"get_agents","responses":{"200":{"description":"List of agents retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentResponse"},"type":"array","title":"Response Get Agents"},"example":[{"id":"main-agent","name":"Main Agent","db_id":"c6bf0644-feb8-4930-a305-380dae5ad6aa","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Details","description":"Retrieve detailed configuration and capabilities of a specific agent.\n\n**Returns comprehensive agent information including:**\n- Model configuration and provider details\n- Complete tool inventory and configurations\n- Session management settings\n- Knowledge base and memory configurations\n- Reasoning capabilities and settings\n- System prompts and response formatting options","operationId":"get_agent","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Agent details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"},"example":{"id":"main-agent","name":"Main Agent","db_id":"9e064c70-6821-4840-a333-ce6230908a70","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Run","description":"Retrieve the status and output of an agent run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Agents"],"summary":"List Agent Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_agent_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointListResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Agents"],"summary":"Get Agent Run Checkpoint Snapshot","description":"Return a derived run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_agent_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointSnapshotResponse"}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/resume":{"post":{"tags":["Agents"],"summary":"Resume Agent Run Stream","description":"Resume an SSE stream for an agent run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_agent_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_agent_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Not supported for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs":{"post":{"tags":["Teams"],"summary":"Create Team Run","description":"Execute a team collaboration with multiple agents working together on a task.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_team_run"}}}},"responses":{"200":{"description":"Team run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Teams"],"summary":"List Team Runs","description":"List runs for a team within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_team_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/cancel":{"post":{"tags":["Teams"],"summary":"Cancel Team Run","description":"Request cancellation for `run_id`. After any required ownership check, local and factory teams store cancellation intent keyed by run ID and mark known member runs for cancellation. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote team.","operationId":"cancel_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.","title":"Session Id"},"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it."}],"responses":{"200":{"description":"Cancellation request accepted. The empty response does not confirm run existence or remote delivery.","content":{"application/json":{"schema":{}}}},"400":{"description":"A user-scoped caller omitted session_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found, or the run could not be verified in the caller's session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel team run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/resume":{"post":{"tags":["Teams"],"summary":"Resume Team Run Stream","description":"Resume an SSE stream for a team run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_team_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_team_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory teams. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/continue":{"post":{"tags":["Teams"],"summary":"Continue Team Run","description":"Continue a paused or incomplete team run with updated requirements.\n\n**Use Cases:**\n- Resume execution after tool approval/rejection\n- Provide manual tool execution results\n- Resume after admin approval (requirements can be empty; resolution fetched from DB)\n\n**Requirements Parameter:**\nJSON string containing array of requirement objects with tool execution results.\nCan be empty when an admin-required approval has been resolved.","operationId":"continue_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_team_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid requirements or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Team run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Remote team is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/teams/{team_id}/sessions/{session_id}/fork":{"post":{"tags":["Teams"],"summary":"Fork Team Session","description":"Deep-copy a team session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_team_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams":{"get":{"tags":["Teams"],"summary":"List Accessible Teams","description":"Retrieve configured team metadata, models, members, knowledge, and memory settings. When authorization is enabled, in-memory team registrations are filtered by caller scopes. Database-loaded team components are also included.","operationId":"get_teams","responses":{"200":{"description":"List of teams retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamResponse"},"type":"array","title":"Response Get Teams"},"example":[{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"agno_memories","app_url":"/memory/1","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/teams/{team_id}":{"get":{"tags":["Teams"],"summary":"Get Team Details","description":"Retrieve detailed configuration and member information for a specific team.","operationId":"get_team","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"},"example":{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}":{"get":{"tags":["Teams"],"summary":"Get Team Run","description":"Retrieve the status and output of a team run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Teams"],"summary":"List Team Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored team run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_team_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointListResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Teams"],"summary":"Get Team Run Checkpoint Snapshot","description":"Return a derived team run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_team_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointSnapshotResponse"}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows":{"get":{"tags":["Workflows"],"summary":"List Workflows","description":"Return workflow ID, name, description, database ID, factory metadata, and Builder version metadata. When authorization is enabled, caller scopes filter in-memory workflow registrations. Database-loaded Builder workflows are appended separately.","operationId":"get_workflows","responses":{"200":{"description":"List of workflows retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Response Get Workflows"},"example":[{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/workflows/{workflow_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Details","description":"Retrieve detailed configuration and step information for a specific workflow.","operationId":"get_workflow","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Workflow version to retrieve","title":"Version"},"description":"Workflow version to retrieve"}],"responses":{"200":{"description":"Workflow details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"},"example":{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs":{"post":{"tags":["Workflows"],"summary":"Execute Workflow","description":"Execute a workflow with the provided input data. Workflows can run in streaming or batch mode.\n\n**Execution Modes:**\n- **Streaming (`stream=true`)**: Real-time step-by-step execution updates via SSE\n- **Non-Streaming (`stream=false`)**: Complete workflow execution with final result\n\n**Workflow Execution Process:**\n1. Input validation against workflow schema\n2. Sequential or parallel step execution based on workflow design\n3. Data flow between steps with transformation\n4. Error handling and automatic retries where configured\n5. Final result compilation and response\n\n**Session Management:**\nWorkflows support session continuity for stateful execution across multiple runs.","operationId":"create_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_run"}}}},"responses":{"200":{"description":"Workflow executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid input data or workflow configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Workflow execution error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"List Workflow Runs","description":"List runs for a workflow within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_workflow_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/continue":{"post":{"tags":["Workflows"],"summary":"Continue Workflow Run","description":"Continue a paused workflow run with resolved requirements.\n\n**Use Cases:**\n- Resume after step-level HITL (confirmation, user input, router selection)\n- Resume after executor-level HITL (agent/team tool confirmation within a step)\n\n**Requirements Parameter:**\nJSON string containing the resolved step requirements.","operationId":"continue_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_workflow_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: StepCompleted\ndata: {\"step_name\": \"step1\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid step requirements or factory input, missing required session ID, rejected input, or remote workflow continuation requested","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is not paused and cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/cancel":{"post":{"tags":["Workflows"],"summary":"Cancel Workflow Run","description":"Request cancellation for `run_id`. After any required ownership check, local and factory workflows store cancellation intent keyed by run ID and mark known agent or team executor runs for cancellation. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote workflow.","operationId":"cancel_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.","title":"Session Id"},"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it."}],"responses":{"200":{"description":"Cancellation request accepted. The empty response does not confirm run existence or remote delivery.","content":{"application/json":{"schema":{}}}},"400":{"description":"A user-scoped caller omitted session_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found, or the run could not be verified in the caller's session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel workflow run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/resume":{"post":{"tags":["Workflows"],"summary":"Resume Workflow Run Stream","description":"Resume an SSE stream for a workflow run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_workflow_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_workflow_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory workflows. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Run","description":"Retrieve the status and output of a workflow run. Use this to poll for run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/slack/events":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Receives incoming Slack events (messages, mentions, thread starts).\n\n**URL Verification:** On first setup, Slack sends a `url_verification` challenge. The endpoint echoes back the challenge string.\n\n**Event Processing:** Normal events are acknowledged immediately with `{\"status\": \"ok\"}` and processed in the background. This prevents Slack's 3-second retry timeout.\n\n**Retry Handling:** Events with `X-Slack-Retry-Num` header are duplicates and return 200 without reprocessing.\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Event Subscriptions > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for creating a Slack App or use the [manifest](/agent-os/interfaces/slack/setup#2-create-the-slack-app) for quick setup.\n","operationId":"slack_events_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SlackChallengeResponse"},{"$ref":"#/components/schemas/SlackEventResponse"}],"title":"Response Slack Events Simple Agent"}}}},"400":{"description":"Missing Slack headers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured, or the event body is not valid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number (present on retried events)"}]}},"/slack/interactions":{"post":{"tags":["Slack"],"summary":"Slack Interactions","description":"Handles Slack interactive components for Human-in-the-Loop (HITL) workflows.\n\n**Supported Actions:**\n- `row_approve` - Approve a pending tool call\n- `row_reject` - Reject a pending tool call\n- `submit_pause` - Submit form data for a paused workflow\n- `check_status` - Check an admin approval and resume an approved run\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Interactivity & Shortcuts > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for step-by-step instructions or the [HITL guide](/agent-os/interfaces/slack/hitl) for approval workflows.\n","operationId":"slack_interactions_simple_agent","responses":{"200":{"description":"Interaction accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackEventResponse"}}}},"400":{"description":"Missing Slack headers or malformed interaction payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number. Retried interactions return 200 without reprocessing."}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"URL-encoded JSON interaction payload (Slack sends interactive component data as a single form field)"}}}}}}}},"/whatsapp/status":{"get":{"tags":["Whatsapp"],"summary":"Status","operationId":"whatsapp_status_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"WhatsAppStatusResponse","example":{"status":"available"}}}}}}}},"/whatsapp/webhook":{"get":{"tags":["Whatsapp"],"summary":"Whatsapp Verify","description":"Handle WhatsApp webhook verification","operationId":"whatsapp_verify_simple_agent","responses":{"200":{"description":"Webhook challenge accepted","content":{"text/plain":{"schema":{"type":"string"},"example":"challenge-token"}}},"400":{"description":"No challenge was provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid verify token or mode","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Webhook verification is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"hub.mode","in":"query","required":true,"schema":{"type":"string"},"description":"Webhook verification mode. Meta sends `subscribe`."},{"name":"hub.verify_token","in":"query","required":true,"schema":{"type":"string"},"description":"Verification token configured for the WhatsApp interface."},{"name":"hub.challenge","in":"query","required":true,"schema":{"type":"string"},"description":"Challenge returned as plain text after successful verification."}]},"post":{"tags":["Whatsapp"],"summary":"Whatsapp Webhook","description":"Process incoming WhatsApp messages","operationId":"whatsapp_webhook_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppWebhookResponse"}}}},"403":{"description":"Invalid webhook signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Signature validation is not configured, or the JSON body is malformed or is not an object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Hub-Signature-256","in":"header","required":true,"schema":{"type":"string"},"description":"SHA-256 HMAC signature for the raw request body, prefixed with `sha256=`"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}},"/telegram/status":{"get":{"tags":["Telegram"],"summary":"Telegram Status","operationId":"telegram_status_simple-agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramStatusResponse"}}}}}}},"/telegram/webhook":{"post":{"tags":["Telegram"],"summary":"Telegram Webhook","operationId":"telegram_webhook_simple-agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramWebhookResponse"}}}},"403":{"description":"Invalid webhook secret token"}}}},"/agui":{"post":{"tags":["AGUI"],"summary":"Run Agent","operationId":"run_agent_agui_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentInput"}}},"required":true},"responses":{"200":{"description":"Server-sent event stream","content":{"text/event-stream":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/status":{"get":{"tags":["AGUI"],"summary":"Get Status","operationId":"get_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/a2a/agents/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Agent Card","operationId":"get_agent_card_a2a_agents__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/a2a/agents/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Agent","description":"Send a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"A2A is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/agents/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Agent Task","description":"Get the status and result of an agent task by ID. `params.contextId` identifies the session containing the task.","operationId":"get_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent task retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Missing task or context ID, or task polling requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"Task polling is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/get","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/agents/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Agent Task","description":"Cancel a running agent task. Scoped non-admin callers must identify the task's session with `params.contextId`.","operationId":"cancel_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent task canceled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"canceled"}}}}}},"400":{"description":"Missing task or required context ID, or task cancellation requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"Task cancellation is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/cancel","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/agents/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Agent","description":"Stream a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/teams/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Team Card","operationId":"get_team_card_a2a_teams__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/a2a/teams/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Team","description":"Send a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/teams/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Team Task","description":"Get the status and result of a team task by ID. `params.contextId` identifies the session containing the task.","operationId":"get_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team task retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Missing task or context ID, or task polling requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/get","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/teams/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Team Task","description":"Cancel a running team task. Scoped non-admin callers must identify the task's session with `params.contextId`.","operationId":"cancel_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team task canceled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"canceled"}}}}}},"400":{"description":"Missing task or required context ID, or task cancellation requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/cancel","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/teams/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Team","description":"Stream a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/workflows/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Workflow Card","operationId":"get_workflow_card_a2a_workflows__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Workflow card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/a2a/workflows/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Workflow","description":"Send a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/workflows/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Workflow","description":"Stream a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/message/send":{"post":{"tags":["A2A"],"summary":"Send Message","description":"[DEPRECATED] Send a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"send_message","responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request or unsupported method","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, team, or workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"deprecated":true,"security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"X-Agent-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Target agent, team, or workflow ID when `params.message.agentId` is omitted."},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/message/stream":{"post":{"tags":["A2A"],"summary":"Stream Message","description":"[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as Server-Sent Events (SSE).","operationId":"stream_message","responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request or unsupported method","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, team, or workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"deprecated":true,"security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"X-Agent-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Target agent, team, or workflow ID when `params.message.agentId` is omitted."},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/sessions":{"get":{"tags":["Sessions"],"summary":"List Sessions","description":"Retrieve paginated list of sessions with filtering and sorting options. Supports filtering by session type (agent, team, workflow), component, user, and name. Sessions represent conversation histories and execution contexts.","operationId":"get_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types.","title":"Type"},"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types."},{"name":"component_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by component ID (agent/team/workflow ID)","title":"Component Id"},"description":"Filter sessions by component ID (agent/team/workflow ID)"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by user ID","title":"User Id"},"description":"Filter sessions by user ID"},{"name":"session_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by name (partial match)","title":"Session Name"},"description":"Filter sessions by name (partial match)"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of sessions to return per page","default":20,"title":"Limit"},"description":"Number of sessions to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort sessions by","default":"created_at","title":"Sort By"},"description":"Field to sort sessions by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query sessions from","title":"Db Id"},"description":"Database ID to query sessions from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Sessions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_SessionSchema_"},"example":{"session_example":{"summary":"Example session response","value":{"data":[{"session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_state":{},"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}]}}}}}},"400":{"description":"Invalid session type or filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in query parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Sessions"],"summary":"Create New Session","description":"Create a new empty session with optional configuration. Useful for pre-creating sessions with specific session_state, metadata, or other properties before running any agent/team/workflow interactions. The session can later be used by providing its session_id in run requests.","operationId":"create_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SessionType","description":"Type of session to create (agent, team, or workflow)","default":"agent"},"description":"Type of session to create (agent, team, or workflow)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to create session in","title":"Db Id"},"description":"Database ID to create session in"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest","description":"Session configuration data","default":{}}}}},"responses":{"201":{"description":"Session created successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Create Session"},"examples":{"agent_session_example":{"summary":"Example created agent session","value":{"user_id":"user-123","agent_session_id":"new-session-id","session_id":"new-session-id","session_name":"New Session","session_state":{"key":"value"},"metadata":{"key":"value"},"agent_id":"agent-1","created_at":"2025-10-21T12:00:00Z","updated_at":"2025-10-21T12:00:00Z"}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A session with the supplied session_id already exists"},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Multiple Sessions","description":"Delete multiple sessions by their IDs in a single operation. This action cannot be undone and will permanently remove all specified sessions and their runs.","operationId":"delete_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSessionRequest"}}}},"responses":{"204":{"description":"Sessions deleted successfully"},"400":{"description":"Invalid request - session IDs and types length mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["Sessions"],"summary":"Get Session by ID","description":"Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow).","operationId":"get_session_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to retrieve","title":"Session Id"},"description":"Session ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query session from","title":"User Id"},"description":"User ID to query session from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query session from","title":"Db Id"},"description":"Database ID to query session from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query session from","title":"Table"},"description":"Table to query session from"}],"responses":{"200":{"description":"Session details retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Get Session By Id"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Session","description":"Permanently delete a specific session and all its associated runs. This action cannot be undone and will remove all conversation history.","operationId":"delete_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to delete","title":"Session Id"},"description":"Session ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Sessions"],"summary":"Update Session","description":"Update session properties such as session_name, session_state, metadata, or summary. Use this endpoint to modify the session name, update state, add metadata, or update the session summary.","operationId":"update_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to update","title":"Session Id"},"description":"Session ID to update"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID","title":"User Id"},"description":"User ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update operation","title":"Db Id"},"description":"Database ID to use for update operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update operation","title":"Table"},"description":"Table to use for update operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest","description":"Session update data"}}}},"responses":{"200":{"description":"Session updated successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Update Session"},"examples":{"update_summary":{"summary":"Update session summary","value":{"summary":{"summary":"The user discussed project planning with the agent.","updated_at":"2025-10-21T14:30:00Z"}}},"update_metadata":{"summary":"Update session metadata","value":{"metadata":{"tags":["planning","project"],"priority":"high"}}},"update_session_name":{"summary":"Update session name","value":{"session_name":"Updated Session Name"}},"update_session_state":{"summary":"Update session state","value":{"session_state":{"step":"completed","context":"Project planning finished","progress":100}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs":{"get":{"tags":["Sessions"],"summary":"Get Session Runs","description":"Retrieve all runs (executions) for a specific session with optional timestamp filtering. Runs represent individual interactions or executions within a session. Response schema varies based on session type.","operationId":"get_session_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get runs from","title":"Session Id"},"description":"Session ID to get runs from"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query runs from","title":"User Id"},"description":"User ID to query runs from"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created after this Unix timestamp (epoch time in seconds)","title":"Created After"},"description":"Filter runs created after this Unix timestamp (epoch time in seconds)"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created before this Unix timestamp (epoch time in seconds)","title":"Created Before"},"description":"Filter runs created before this Unix timestamp (epoch time in seconds)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query runs from","title":"Db Id"},"description":"Database ID to query runs from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query runs from","title":"Table"},"description":"Table to query runs from"}],"responses":{"200":{"description":"Session runs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}]},"title":"Response Get Session Runs"},"examples":{"completed_run":{"summary":"Example completed run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"","run_input":"Which tools do you have access to?","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","run_response_format":"text","reasoning_content":"","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069},"messages":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-08 17:52:10.101003.\n\n\nYou have the capability to retain memories from previous interactions with the user, but have not had any interactions with the user yet.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757346730},{"content":"Which tools do you have access to?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757346730},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138},"created_at":1757346730}],"events":[{"created_at":1757346730,"event":"RunStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","model":"gpt-4o","model_provider":"OpenAI"},{"created_at":1757346733,"event":"MemoryUpdateStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"MemoryUpdateCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"RunCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","content_type":"str","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069}}],"created_at":"2025-09-08T15:52:10Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found or has no runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs/{run_id}":{"get":{"tags":["Sessions"],"summary":"Get Run by ID","description":"Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run).","operationId":"get_session_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get run from","title":"Session Id"},"description":"Session ID to get run from"},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","description":"Run ID to retrieve","title":"Run Id"},"description":"Run ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query run from","title":"User Id"},"description":"User ID to query run from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query run from","title":"Db Id"},"description":"Database ID to query run from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query run from","title":"Table"},"description":"Table to query run from"}],"responses":{"200":{"description":"Run retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}],"title":"Response Get Session Run"},"examples":{"agent_run":{"summary":"Example agent run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"user_123","run_input":"Which tools do you have access to?","content":"I don't have access to external tools.","created_at":1728499200}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/rename":{"post":{"tags":["Sessions"],"summary":"Rename Session","description":"Update the name of an existing session. Useful for organizing and categorizing sessions with meaningful names for better identification and management.","operationId":"rename_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to rename","title":"Session Id"},"description":"Session ID to rename"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope rename to","title":"User Id"},"description":"User ID to scope rename to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for rename operation","title":"Db Id"},"description":"Database ID to use for rename operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_rename_session"}}}},"responses":{"200":{"description":"Session renamed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Rename Session"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Invalid session name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type or validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories":{"post":{"tags":["Memory"],"summary":"Create Memory","description":"Create a new user memory with content and associated topics. Memories are used to store contextual information for users across conversations.","operationId":"create_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for memory storage","title":"Db Id"},"description":"Database ID to use for memory storage"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for memory storage","title":"Table"},"description":"Table to use for memory storage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"mem-123","memory":"User prefers technical explanations with code examples","topics":["preferences","communication_style","technical"],"user_id":"user-456","created_at":"2024-01-15T10:30:00Z","updated_at":"2024-01-15T10:30:00Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Memory"],"summary":"Delete Multiple Memories","description":"Delete multiple user memories by their IDs in a single operation. This action cannot be undone and all specified memories will be permanently removed.","operationId":"delete_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMemoriesRequest"}}}},"responses":{"204":{"description":"Memories deleted successfully"},"400":{"description":"Invalid request - empty memory_ids list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"List Memories","description":"Retrieve paginated list of user memories with filtering and search capabilities. Filter by user, agent, team, topics, or search within memory content.","operationId":"get_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by user ID","title":"User Id"},"description":"Filter memories by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by agent ID","title":"Agent Id"},"description":"Filter memories by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by team ID","title":"Team Id"},"description":"Filter memories by team ID"},{"name":"search_content","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fuzzy search within memory content","title":"Search Content"},"description":"Fuzzy search within memory content"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of memories to return per page","default":20,"title":"Limit"},"description":"Number of memories to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort memories by","default":"updated_at","title":"Sort By"},"description":"Field to sort memories by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memories from","title":"Db Id"},"description":"Database ID to query memories from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Comma-separated list of topics to filter by","examples":["preferences,technical,communication_style"],"title":"Topics"},"description":"Comma-separated list of topics to filter by"}],"responses":{"200":{"description":"Memories retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserMemorySchema_"},"example":{"data":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories/{memory_id}":{"delete":{"tags":["Memory"],"summary":"Delete Memory","description":"Permanently delete a specific user memory. This action cannot be undone.","operationId":"delete_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to delete","title":"Memory Id"},"description":"Memory ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to delete memory for","title":"User Id"},"description":"User ID to delete memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Memory deleted successfully"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"Get Memory by ID","description":"Retrieve detailed information about a specific user memory by its ID.","operationId":"get_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to retrieve","title":"Memory Id"},"description":"Memory ID to retrieve"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query memory for","title":"User Id"},"description":"User ID to query memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memory from","title":"Db Id"},"description":"Database ID to query memory from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query memory from","title":"Table"},"description":"Table to query memory from"}],"responses":{"200":{"description":"Memory retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Memory"],"summary":"Update Memory","description":"Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values.","operationId":"update_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to update","title":"Memory Id"},"description":"Memory ID to update"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update","title":"Db Id"},"description":"Database ID to use for update"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update","title":"Table"},"description":"Table to use for update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memory_topics":{"get":{"tags":["Memory"],"summary":"Get Memory Topics","description":"Retrieve all unique topics associated with memories in the system. Useful for filtering and categorizing memories by topic.","operationId":"get_memory_topics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter topics for","title":"User Id"},"description":"User ID to filter topics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query topics from","title":"Db Id"},"description":"Database ID to query topics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query topics from","title":"Table"},"description":"Table to query topics from"}],"responses":{"200":{"description":"Memory topics retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Get Memory Topics"},"example":["preferences","communication_style","technical","industry","compliance","code_examples","requirements","healthcare","finance"]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/user_memory_stats":{"get":{"tags":["Memory"],"summary":"Get User Memory Statistics","description":"Retrieve paginated statistics about memory usage by user. Provides insights into user engagement and memory distribution across users.","operationId":"get_user_memory_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of user statistics to return per page","default":20,"title":"Limit"},"description":"Number of user statistics to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter statistics for","title":"User Id"},"description":"User ID to filter statistics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query statistics from","title":"Table"},"description":"Table to query statistics from"}],"responses":{"200":{"description":"User memory statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserStatsSchema_"},"example":{"data":[{"user_id":"123","total_memories":3,"last_memory_updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve user statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/optimize-memories":{"post":{"tags":["Memory"],"summary":"Optimize User Memories","description":"Optimize all memories for a user with the summarize strategy. The operation combines the user's memories into one summary. Set `apply=false` to preview the result without saving it. Specify a custom model as `provider:model_id`, for example `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, or `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`.","operationId":"optimize_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for optimization","title":"Db Id"},"description":"Database ID to use for optimization"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for optimization","title":"Table"},"description":"Table to use for optimization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesRequest"}}}},"responses":{"200":{"description":"Memories optimized successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesResponse"},"example":{"memories":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User has a 3-year-old golden retriever named Max who loves fetch and walks. Lives in San Francisco's Mission district, works as a product manager in tech. Enjoys hiking Bay Area trails, trying new restaurants (especially Japanese, Thai, Mexican), and learning piano for 1.5 years.","topics":["pets","location","work","hobbies","food_preferences"],"user_id":"user2","updated_at":"2025-11-18T10:30:00Z"}],"memories_before":4,"memories_after":1,"tokens_before":450,"tokens_after":180,"tokens_saved":270,"reduction_percentage":60.0}}}},"400":{"description":"Bad request - User ID is required or invalid model string format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No memories found for user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to optimize memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings":{"get":{"tags":["Learnings"],"summary":"List Learnings","description":"List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) \u2014 this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`).","operationId":"list_learnings","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by learning type","title":"Learning Type"},"description":"Filter by learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"namespace","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by namespace","title":"Namespace"},"description":"Filter by namespace"},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity ID","title":"Entity Id"},"description":"Filter by entity ID"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity type","title":"Entity Type"},"description":"Filter by entity type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":100,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used).","title":"Sort By"},"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used)."},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"post":{"tags":["Learnings"],"summary":"Create Learning","description":"Create a new learning record. For the identity-keyed learning types (`user_profile`, `user_memory`, `session_context`, `entity_memory`) the record id is derived deterministically from the identity fields so it reconciles with what the agent reads/writes \u2014 provide those fields (else 422), and if a record already exists the request is rejected with 409 (use PATCH to update it). Other types get a generated id. For a scoped (non-admin) caller, the body's `user_id` must be omitted/null or match the caller (mismatch \u2192 403); admins and unscoped callers may set any `user_id`.","operationId":"create_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"An identity-keyed learning already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/users":{"get":{"tags":["Learnings"],"summary":"List Learning Users","description":"List the users that own learning records, with a per-user count and last-updated timestamp. Intended as the entry point for a per-user view: list users here, then drill into a single user's learnings via `GET /learnings?user_id=...`. Records with no owner (`user_id IS NULL`) are excluded. Pass `learning_type` to restrict the grouping to a single store (e.g. `user_profile` or `user_memory`). For a scoped (non-admin) caller results are bound to that user; an explicit `user_id` that differs is rejected with 403. Admins and unscoped callers list all users. Sortable by `user_id` or `last_learning_updated_at` (the default).","operationId":"list_learning_users","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the grouping to a single learning type","title":"Learning Type"},"description":"Restrict the grouping to a single learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the result to a single user","title":"User Id"},"description":"Restrict the result to a single user"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by: user_id or last_learning_updated_at (the default)","title":"Sort By"},"description":"Field to sort by: user_id or last_learning_updated_at (the default)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningUserStats_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/users/{user_id}":{"delete":{"tags":["Learnings"],"summary":"Delete Learning User","description":"Delete the learning records owned by a user. By default removes every learning type backed by the agno_learnings table (user_profile, user_memory, and any user-scoped entity records); pass `learning_type` to restrict deletion to a single store. Records with no owner (`user_id IS NULL`) are not affected. For a scoped (non-admin) caller, only their own learnings may be deleted; a different `user_id` is rejected with 403. Admins and unscoped callers may delete any user's learnings. Returns 204 even if the user had no matching records.","operationId":"delete_learning_user","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The user whose learnings should be deleted","title":"User Id"},"description":"The user whose learnings should be deleted"},{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings","title":"Learning Type"},"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/{learning_id}":{"get":{"tags":["Learnings"],"summary":"Get Learning","description":"Retrieve a single learning record by its ID.","operationId":"get_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"patch":{"tags":["Learnings"],"summary":"Update Learning","description":"Update a learning record. Only `content` and `metadata` may be modified; identity fields (user_id, agent_id, team_id, etc.) are immutable. Provided fields fully replace the existing values. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) are readable by any caller but may only be modified by an admin.","operationId":"update_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"delete":{"tags":["Learnings"],"summary":"Delete Learning","description":"Permanently delete a learning record by its ID. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) may only be deleted by an admin.","operationId":"delete_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/eval-runs":{"get":{"tags":["Evals"],"summary":"List Evaluation Runs","description":"Retrieve paginated evaluation runs with filtering and sorting options. Filter by agent, team, workflow, model, or evaluation type.","operationId":"get_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Workflow ID","title":"Workflow Id"},"description":"Workflow ID"},{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model ID","title":"Model Id"},"description":"Model ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EvalFilterType"},{"type":"null"}],"description":"Filter type","title":"Type"},"description":"Filter type"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of eval runs to return","default":20,"title":"Limit"},"description":"Number of eval runs to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"eval_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)","examples":["accuracy,agent_as_judge,performance,reliability"],"title":"Eval Types"},"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)"}],"responses":{"200":{"description":"Evaluation runs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_EvalSchema_"},"example":{"data":[{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Evals"],"summary":"Delete Evaluation Runs","description":"Delete multiple evaluation runs by their IDs. This action cannot be undone.","operationId":"delete_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvalRunsRequest"}}}},"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Deletion failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Evals"],"summary":"Execute Evaluation","description":"Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both.","operationId":"run_eval","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for evaluation","title":"Db Id"},"description":"Database ID to use for evaluation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for evaluation","title":"Table"},"description":"Table to use for evaluation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRunInput"}}}},"responses":{"200":{"description":"Evaluation executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"f2b2d72f-e9e2-4f0e-8810-0a7e1ff58614","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Invalid request - provide either agent_id or team_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs/{eval_run_id}":{"get":{"tags":["Evals"],"summary":"Get Evaluation Run","description":"Retrieve detailed results and metrics for a specific evaluation run.","operationId":"get_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query eval run from","title":"Table"},"description":"Table to query eval run from"}],"responses":{"200":{"description":"Evaluation run details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Evals"],"summary":"Update Evaluation Run","description":"Update the name or other properties of an existing evaluation run.","operationId":"update_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvalRunRequest"}}}},"responses":{"200":{"description":"Evaluation run updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update evaluation run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics":{"get":{"tags":["Metrics"],"summary":"Get AgentOS Metrics","description":"Retrieve AgentOS metrics and analytics data for a specified date range. If no date range is specified, returns all available metrics.","operationId":"get_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"starting_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Starting date for metrics range (YYYY-MM-DD format)","title":"Starting Date"},"description":"Starting date for metrics range (YYYY-MM-DD format)"},{"name":"ending_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Ending date for metrics range (YYYY-MM-DD format)","title":"Ending Date"},"description":"Ending date for metrics range (YYYY-MM-DD format)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query metrics from","title":"Db Id"},"description":"Database ID to query metrics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Metrics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"},"example":{"metrics":[{"id":"7bf39658-a00a-484c-8a28-67fd8a9ddb2a","agent_runs_count":5,"agent_sessions_count":5,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":448,"output_tokens":148,"total_tokens":596,"audio_tokens":0,"input_audio_tokens":0,"output_audio_tokens":0,"cached_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":5}],"date":"2025-07-31T00:00:00Z","created_at":"2025-07-31T12:38:52Z","updated_at":"2025-07-31T12:49:01Z"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Metrics retrieval failed. In Agno 2.7.4, invalid or ambiguous database selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics/refresh":{"post":{"tags":["Metrics"],"summary":"Refresh Metrics","description":"Manually trigger recalculation of system metrics from raw data. This operation analyzes system activity logs and regenerates aggregated metrics. Useful for ensuring metrics are up-to-date or after system maintenance.","operationId":"refresh_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for metrics calculation","title":"Db Id"},"description":"Database ID to use for metrics calculation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for metrics calculation","title":"Table"},"description":"Table to use for metrics calculation"}],"responses":{"200":{"description":"Metrics refreshed successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"title":"Response Refresh Metrics"},"example":[{"id":"e77c9531-818b-47a5-99cd-59fed61e5403","agent_runs_count":2,"agent_sessions_count":2,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":256,"output_tokens":441,"total_tokens":697,"audio_total_tokens":0,"audio_input_tokens":0,"audio_output_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":2}],"date":"2025-08-12T00:00:00Z","created_at":"2025-08-12T08:01:47Z","updated_at":"2025-08-12T08:01:47Z"}]}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Refresh failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content":{"post":{"tags":["Knowledge"],"summary":"Upload Content","description":"Upload content to the knowledge base. Supports file uploads, text content, or URLs. Content is processed asynchronously in the background. Supports custom readers and chunking strategies.","operationId":"upload_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_content"}}}},"responses":{"202":{"description":"Content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-123","name":"example-document.pdf","description":"Sample document for processing","metadata":{"category":"documentation","priority":"high"},"status":"processing"}}}},"400":{"description":"Invalid request - malformed metadata or missing content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in form data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"List Content","description":"Return a paginated, sorted list of content for the selected knowledge base. Use `limit`, `page`, `sort_by`, and `sort_order` to control the result. Agno 2.7.4 exposes no status, content type, or metadata filter parameters on this endpoint. Named local knowledge instances scope rows by the stored `linked_to` value.","operationId":"get_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of content entries to return","default":20,"title":"Limit"},"description":"Number of content entries to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ContentResponseSchema_"},"example":{"data":[{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":null,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z","linked_to":null}],"meta":{"page":1,"limit":20,"total_pages":1,"total_count":2}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete All Content","description":"Permanently remove all content from the knowledge base. This is a destructive operation that cannot be undone. Use with extreme caution.","operationId":"delete_all_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete all content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/remote-content":{"post":{"tags":["Knowledge"],"summary":"Upload Remote Content","description":"Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.","operationId":"upload_remote_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_upload_remote_content"}}}},"responses":{"202":{"description":"Remote content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-456","name":"reports/q1-2024.pdf","description":"Q1 Report from S3","metadata":{"source":"s3-docs"},"status":"processing"}}}},"400":{"description":"Invalid request - unknown config or missing path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Remote content upload is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/knowledge/content/{content_id}":{"patch":{"tags":["Knowledge"],"summary":"Update Content","description":"Update content name, description, or metadata without re-uploading it. In Agno 2.7.4, this endpoint accepts `reader_id`. Local knowledge validates the value, but the content patch does not apply or persist the reader change.","operationId":"update_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","description":"Content ID","title":"Content Id"},"description":"Content ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_update_content"}}}},"responses":{"200":{"description":"Content updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":null,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z","linked_to":null}}}},"400":{"description":"Invalid request - malformed metadata or invalid reader_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"Get Content by ID","description":"Retrieve detailed information about a specific content item including processing status and metadata.","operationId":"get_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":null,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z","linked_to":null}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete Content by ID","description":"Permanently remove a specific content item from the knowledge base. This action cannot be undone.","operationId":"delete_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}/status":{"get":{"tags":["Knowledge"],"summary":"Get Content Status","description":"Return the processing status for a content ID. For local knowledge in Agno 2.7.4, an unknown content ID returns HTTP 200 with `status=\"failed\"` and `status_message=\"Content not found\"`.","operationId":"get_content_status","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content status returned. An unknown local content ID is represented by status \"failed\".","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentStatusResponse"},"examples":{"completed":{"summary":"Completed content","value":{"id":"content-123","status":"completed","status_message":""}},"content_not_found":{"summary":"Unknown local content ID","value":{"id":"missing-content","status":"failed","status_message":"Content not found"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Selected knowledge base or database ID not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/search":{"post":{"tags":["Knowledge"],"summary":"Search Knowledge","description":"Search the knowledge base for relevant documents using query, filters and search type.","operationId":"search_knowledge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VectorSearchRequestSchema"}}},"required":true},"responses":{"200":{"description":"Search results retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_VectorSearchResult_"},"example":{"data":[{"id":"doc_123","content":"Jordan Mitchell - Software Engineer with skills in JavaScript, React, Python","name":"cv_1","meta_data":{"page":1,"chunk":1},"usage":{"total_tokens":14},"reranking_score":0.95,"content_id":"content_456"}],"meta":{"page":1,"limit":20,"total_pages":2,"total_count":35}}}}},"400":{"description":"Invalid search parameters"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No documents found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/knowledge/config":{"get":{"tags":["Knowledge"],"summary":"Get Config","description":"Retrieve available readers, chunkers, and configuration options for content processing. This endpoint provides metadata about supported file types, processing strategies, and filters.","operationId":"get_knowledge_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Knowledge configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponseSchema"},"example":{"readers":{"website":{"id":"website","name":"WebsiteReader","description":"Reads website files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"firecrawl":{"id":"firecrawl","name":"FirecrawlReader","description":"Reads firecrawl files","chunkers":["SemanticChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"youtube":{"id":"youtube","name":"YoutubeReader","description":"Reads youtube files","chunkers":["RecursiveChunker","AgenticChunker","DocumentChunker","SemanticChunker","FixedSizeChunker"]},"web_search":{"id":"web_search","name":"WebSearchReader","description":"Reads web_search files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"arxiv":{"id":"arxiv","name":"ArxivReader","description":"Reads arxiv files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"csv":{"id":"csv","name":"CsvReader","description":"Reads csv files","chunkers":["RowChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"docling":{"id":"docling","name":"DoclingReader","description":"Converts multiple document formats like PDF, DOCX, PPTX, images, HTML, etc. using IBM's Docling library","chunkers":["AgenticChunker","CodeChunker","DocumentChunker","FixedSizeChunker","RecursiveChunker","SemanticChunker"]},"docx":{"id":"docx","name":"DocxReader","description":"Reads docx files","chunkers":["DocumentChunker","FixedSizeChunker","SemanticChunker","AgenticChunker","RecursiveChunker"]},"gcs":{"id":"gcs","name":"GcsReader","description":"Reads gcs files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"json":{"id":"json","name":"JsonReader","description":"Reads json files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"markdown":{"id":"markdown","name":"MarkdownReader","description":"Reads markdown files","chunkers":["MarkdownChunker","DocumentChunker","AgenticChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"pdf":{"id":"pdf","name":"PdfReader","description":"Reads pdf files","chunkers":["DocumentChunker","FixedSizeChunker","AgenticChunker","SemanticChunker","RecursiveChunker"]},"text":{"id":"text","name":"TextReader","description":"Reads text files","chunkers":["CodeChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]}},"readersForType":{"url":["url","website","firecrawl","youtube","web_search","gcs"],"youtube":["youtube"],"text":["web_search"],"topic":["arxiv"],"file":["csv","gcs"],".csv":["csv","field_labeled_csv","docling"],".xlsx":["excel","docling"],".xls":["excel"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["excel"],"application/vnd.ms-excel":["excel"],".docx":["docx","docling"],".dotx":["docling"],".docm":["docling"],".dotm":["docling"],".pptx":["docling","pptx"],".potx":["docling"],".ppsx":["docling"],".pptm":["docling"],".ppsm":["docling"],".potm":["docling"],".doc":["docx"],".json":["json"],".md":["markdown","docling"],".pdf":["pdf","docling"],".txt":["text"],".html":["docling"],".htm":["docling"],".xhtml":["docling"],".xml":["docling"],".nxml":["docling"],".xbrl":["docling"],".adoc":["docling"],".asciidoc":["docling"],".asc":["docling"],".xlsm":["docling"],".tex":["docling"],".latex":["docling"],".tar.gz":["docling"],".vtt":["docling"],".png":["docling"],".jpeg":["docling"],".jpg":["docling"],".tiff":["docling"],".tif":["docling"],".bmp":["docling"],".webp":["docling"],".wav":["docling"],".mp3":["docling"],".m4a":["docling"],".aac":["docling"],".ogg":["docling"],".flac":["docling"],".mp4":["docling"],".avi":["docling"],".mov":["docling"]},"chunkers":{"AgenticChunker":{"key":"AgenticChunker","name":"AgenticChunker","description":"Chunking strategy that uses an LLM to determine natural breakpoints in the text","metadata":{"chunk_size":5000}},"CodeChunker":{"key":"CodeChunker","name":"CodeChunker","description":"The CodeChunker splits code into chunks based on its structure, leveraging Abstract Syntax Trees (ASTs) to create contextually relevant segments","metadata":{"chunk_size":2048}},"DocumentChunker":{"key":"DocumentChunker","name":"DocumentChunker","description":"A chunking strategy that splits text based on document structure like paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"FixedSizeChunker":{"key":"FixedSizeChunker","name":"FixedSizeChunker","description":"Chunking strategy that splits text into fixed-size chunks with optional overlap","metadata":{"chunk_size":5000,"chunk_overlap":0}},"MarkdownChunker":{"key":"MarkdownChunker","name":"MarkdownChunker","description":"A chunking strategy that splits markdown based on structure like headers, paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RecursiveChunker":{"key":"RecursiveChunker","name":"RecursiveChunker","description":"Chunking strategy that recursively splits text into chunks by finding natural break points","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RowChunker":{"key":"RowChunker","name":"RowChunker","description":"RowChunking chunking strategy","metadata":{}},"SemanticChunker":{"key":"SemanticChunker","name":"SemanticChunker","description":"Chunking strategy that splits text into semantic chunks using chonkie","metadata":{"chunk_size":5000}}},"vector_dbs":[{"id":"vector_db_1","name":"Vector DB 1","description":"Vector DB 1 description","search_types":["vector","keyword","hybrid"]}],"filters":["filter_tag_1","filter_tag2"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources":{"get":{"tags":["Knowledge"],"summary":"List Content Sources","description":"List all registered content sources (S3, GCS, SharePoint, GitHub) for the knowledge base.","operationId":"list_content_sources","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Content sources retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"title":"Response List Content Sources"},"example":[{"id":"company-s3","name":"Company Documents","type":"s3","prefix":"documents/"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Content source listing is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/knowledge/{knowledge_id}/sources/{source_id}/files":{"get":{"tags":["Knowledge"],"summary":"List Files in Source","description":"List available files and folders in a specific content source. Supports pagination and folder navigation.","operationId":"list_source_files","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the content source","title":"Source Id"},"description":"ID of the content source"},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Path prefix to filter files","title":"Prefix"},"description":"Path prefix to filter files"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of files per page","default":100,"title":"Limit"},"description":"Number of files per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"delimiter","in":"query","required":false,"schema":{"type":"string","description":"Folder delimiter (enables folder grouping)","default":"/","title":"Delimiter"},"description":"Folder delimiter (enables folder grouping)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Files listed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceFilesResponseSchema"},"example":{"source_id":"company-s3","source_name":"Company Documents","prefix":"reports/","folders":[{"prefix":"reports/2024/","name":"2024","is_empty":false}],"files":[{"key":"reports/annual-summary.pdf","name":"annual-summary.pdf","size":102400,"last_modified":"2024-01-15T10:30:00Z","content_type":"application/pdf"}],"meta":{"page":1,"limit":100,"total_pages":1,"total_count":1}}}}},"400":{"description":"Unsupported source type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base or content source not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Source file listing is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/traces":{"get":{"tags":["Traces","Traces"],"summary":"List Traces","description":"Retrieve a paginated list of execution traces with optional filtering.\n\n**Traces provide observability into:**\n- Agent execution flows\n- Model invocations and token usage\n- Tool calls and their results\n- Errors and performance bottlenecks\n\n**Filtering Options:**\n- By run, session, user, or agent ID\n- By status (OK, ERROR)\n- By time range\n\n**Pagination:**\n- Use `page` (1-indexed) and `limit` parameters\n- Response includes pagination metadata (total_pages, total_count, etc.)\n\n**Response Format:**\nReturns summary information for each trace. Use GET `/traces/{trace_id}` for detailed hierarchy.","operationId":"get_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run ID","title":"Run Id"},"description":"Filter by run ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status (OK, ERROR)","title":"Status"},"description":"Filter by status (OK, ERROR)"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of traces per page","default":20,"title":"Limit"},"description":"Number of traces per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"responses":{"200":{"description":"List of traces retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSummary_"},"example":{"data":[{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","total_spans":4,"error_count":0,"input":"What is the stock price of NVDA?","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"agent_stock","created_at":"2025-11-19T10:30:00+00:00"}],"meta":{"page":1,"limit":20,"total_pages":5,"total_count":95}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/filter-schema":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Filter Schema","description":"Returns the available filterable fields, their types, valid operators, and enum values.\n\nThe frontend uses this to dynamically build the filter bar UI:\n- Field dropdown populated from `fields[].key`\n- Operator dropdown changes per field type\n- Value input shows autocomplete for enum fields (e.g., status)\n- Logical operators (AND, OR) for combining clauses","operationId":"get_traces_filter_schema","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterSchemaResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/traces/{trace_id}":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace or Span Detail","description":"Retrieve detailed trace information with hierarchical span tree, or a specific span within the trace.\n\n**Without span_id parameter:**\nReturns the full trace with hierarchical span tree:\n- Trace metadata (ID, status, duration, context)\n- Hierarchical tree of all spans\n- Each span includes timing, status, and type-specific metadata\n\n**With span_id parameter:**\nReturns details for a specific span within the trace:\n- Span metadata (ID, name, type, timing)\n- Status and error information\n- Type-specific attributes (model, tokens, tool params, etc.)\n\n**Span Hierarchy (full trace):**\nThe `tree` field contains root spans, each with potential `children`.\nThis recursive structure represents the execution flow:\n```\nAgent.run (root)\n \u251c\u2500 LLM.invoke\n \u251c\u2500 Tool.execute\n \u2502 \u2514\u2500 LLM.invoke (nested)\n \u2514\u2500 LLM.invoke\n```\n\n**Span Types:**\n- `AGENT`: Agent execution with input/output\n- `LLM`: Model invocations with tokens and prompts\n- `TOOL`: Tool calls with parameters and results","operationId":"get_trace","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}},{"name":"span_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Span ID to retrieve specific span","title":"Span Id"},"description":"Optional: Span ID to retrieve specific span"},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Run ID to retrieve trace for","title":"Run Id"},"description":"Optional: Run ID to retrieve trace for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query trace from","title":"Db Id"},"description":"Database ID to query trace from"}],"responses":{"200":{"description":"Trace or span detail retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TraceDetail"},{"$ref":"#/components/schemas/TraceNode"}],"title":"Response Get Trace"},"examples":{"full_trace":{"summary":"Full trace with hierarchy (no span_id)","value":{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","end_time":"2025-11-19T10:30:01.200000+00:00","total_spans":4,"error_count":0,"input":"What is Tesla stock price?","output":"The current price of Tesla (TSLA) is $245.67.","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"stock_agent","created_at":"2025-11-19T10:30:00+00:00","tree":[{"id":"span1","name":"Stock_Price_Agent.run","type":"AGENT","duration":"1.2s","status":"OK","spans":[]}]}},"single_span":{"summary":"Single span detail (with span_id)","value":{"id":"span2","name":"gpt-4o-mini.invoke","type":"LLM","duration":"800ms","status":"OK","metadata":{"model":"gpt-4o-mini","input_tokens":120}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Trace or span not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/trace_session_stats":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Statistics by Session","description":"Retrieve aggregated trace statistics grouped by session ID with pagination.\n\n**Provides insights into:**\n- Total traces per session\n- First and last trace timestamps per session\n- Associated user and agent information\n\n**Filtering Options:**\n- By user ID\n- By agent ID\n\n**Use Cases:**\n- Monitor session-level activity\n- Track conversation flows\n- Identify high-activity sessions\n- Analyze user engagement patterns","operationId":"get_trace_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of sessions per page","default":20,"title":"Limit"},"description":"Number of sessions per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"}],"responses":{"200":{"description":"Trace statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"},"example":{"data":[{"session_id":"37029bc6-1794-4ba8-a629-1efedc53dcad","user_id":"kaustubh@agno.com","agent_id":"hackernews-agent","total_traces":5,"first_trace_at":"2025-11-19T10:15:16+00:00","last_trace_at":"2025-11-19T10:21:30+00:00"}],"meta":{"page":1,"limit":20,"total_pages":3,"total_count":45}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/search":{"post":{"tags":["Traces","Traces"],"summary":"Search Traces with Advanced Filters","description":"Search traces using the FilterExpr DSL for complex, composable queries.\n\n**Group By Mode:**\n- `run` (default): Returns `PaginatedResponse[TraceDetail]` with full span trees\n- `session`: Returns `PaginatedResponse[TraceSessionStats]` with aggregated session stats\n\n**Supported Operators:**\n- Comparison: `EQ`, `NEQ`, `GT`, `GTE`, `LT`, `LTE`\n- Inclusion: `IN`\n- String matching: `CONTAINS` (case-insensitive substring), `STARTSWITH` (prefix)\n- Logical: `AND`, `OR`, `NOT`\n\n**Filterable Fields:**\ntrace_id, name, status, start_time, end_time, duration_ms, run_id, session_id, user_id, agent_id, team_id, workflow_id, created_at\n\n**Example Request Body (runs):**\n```json\n{\n \"filter\": {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n}\n```\n\n**Example Request Body (sessions):**\n```json\n{\n \"filter\": {\"op\": \"CONTAINS\", \"key\": \"agent_id\", \"value\": \"stock\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n}\n```","operationId":"search_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PaginatedResponse_TraceDetail_"},{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"}],"title":"Response Search Traces"}}}},"400":{"description":"Invalid filter expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/all/migrate":{"post":{"tags":["Database"],"summary":"Migrate All Databases","description":"Migrate all database schemas to the given target version. If a target version is not provided, all databases will be migrated to the latest version.","operationId":"migrate_all_databases","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"All databases migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"All databases migrated successfully to version 3.0.0"}}}},"207":{"description":"Some database migrations failed","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"},"failed":{"type":"object","additionalProperties":{"type":"string"},"title":"Failed"}},"type":"object","required":["message","failed"],"title":"PartialMigrationResponse"},"example":{"message":"Migrated 2/3 databases to latest version","failed":{"archive-db":"Migration failed"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/{db_id}/migrate":{"post":{"tags":["Database"],"summary":"Migrate Database","description":"Migrate the given database schema to the given target version. If a target version is not provided, the database will be migrated to the latest version.","operationId":"migrate_database","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"Database migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"Database migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Database not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components":{"get":{"tags":["Components"],"summary":"List Components","description":"Retrieve a paginated list of components with optional filtering by type.","operationId":"list_components","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ComponentType"},{"type":"null"}],"description":"Filter by type: agent, team, workflow","title":"Component Type"},"description":"Filter by type: agent, team, workflow"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ComponentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Component","description":"Create a new component (agent, team, or workflow) with initial config.","operationId":"create_component","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}":{"get":{"tags":["Components"],"summary":"Get Component","description":"Retrieve a component by ID.","operationId":"get_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Components"],"summary":"Update Component","description":"Partially update a component by ID.","operationId":"update_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentUpdate","description":"Component fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Component","description":"Soft-delete a component by ID. Component configs and links remain stored.","operationId":"delete_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs":{"get":{"tags":["Components"],"summary":"List Configs","description":"List all configs for a component.","operationId":"list_configs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"include_config","in":"query","required":false,"schema":{"type":"boolean","description":"Include full config blob","default":true,"title":"Include Config"},"description":"Include full config blob"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComponentConfigResponse"},"title":"Response List Configs"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Config Version","description":"Create a new config version for a component.","operationId":"create_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigCreate","description":"Config data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}":{"patch":{"tags":["Components"],"summary":"Update Draft Config","description":"Update an existing draft config. Cannot update published configs.","operationId":"update_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigUpdate","description":"Config fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Components"],"summary":"Get Config Version","description":"Get a specific config version by number.","operationId":"get_config_version","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Config Version","description":"Delete a specific config version. Agno v2.7.4 rejects the current version. Synchronous SQLite and PostgreSQL storage allow deletion of a published non-current version.","operationId":"delete_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/current":{"get":{"tags":["Components"],"summary":"Get Current Config","description":"Get the current config version for a component.","operationId":"get_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}/set-current":{"post":{"tags":["Components"],"summary":"Set Current Config Version","description":"Set a published config version as current (for rollback).","operationId":"set_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/schedules":{"get":{"tags":["Schedules"],"summary":"List Schedules","operationId":"list_schedules_schedules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"post":{"tags":["Schedules"],"summary":"Create Schedule","operationId":"create_schedule_schedules_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule","operationId":"get_schedule_schedules__schedule_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"patch":{"tags":["Schedules"],"summary":"Update Schedule","operationId":"update_schedule_schedules__schedule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Schedules"],"summary":"Delete Schedule","operationId":"delete_schedule_schedules__schedule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/enable":{"post":{"tags":["Schedules"],"summary":"Enable Schedule","operationId":"enable_schedule_schedules__schedule_id__enable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/disable":{"post":{"tags":["Schedules"],"summary":"Disable Schedule","operationId":"disable_schedule_schedules__schedule_id__disable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/trigger":{"post":{"tags":["Schedules"],"summary":"Trigger Schedule","operationId":"trigger_schedule_schedules__schedule_id__trigger_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Schedule is disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler is not running or storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs":{"get":{"tags":["Schedules"],"summary":"List Schedule Runs","operationId":"list_schedule_runs_schedules__schedule_id__runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleRunResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs/{run_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule Run","operationId":"get_schedule_run_schedules__schedule_id__runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals":{"get":{"tags":["Approvals"],"summary":"List Approvals","operationId":"list_approvals_approvals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","approved","rejected","expired","cancelled"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"source_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"}},{"name":"approval_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["required","audit"],"type":"string"},{"type":"null"}],"title":"Approval Type"}},{"name":"pause_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"schedule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"}},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ApprovalResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approvals could not be listed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/count":{"get":{"tags":["Approvals"],"summary":"Get Approval Count","operationId":"get_approval_count_approvals_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalCountResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval count could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/status":{"get":{"tags":["Approvals"],"summary":"Get Approval Status","operationId":"get_approval_status_approvals__approval_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalStatusResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval status could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}":{"get":{"tags":["Approvals"],"summary":"Get Approval","operationId":"get_approval_approvals__approval_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Approvals"],"summary":"Delete Approval","operationId":"delete_approval_approvals__approval_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval is not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/resolve":{"post":{"tags":["Approvals"],"summary":"Resolve Approval","operationId":"resolve_approval_approvals__approval_id__resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResolve"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Approval has already been resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts":{"post":{"tags":["Service Accounts"],"summary":"Create Service Account","description":"Mint a service account token. The plaintext token is returned exactly once.","operationId":"create_service_account_service_accounts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreateResponse"}}}},"400":{"description":"Requested scopes are invalid, or privileged scopes were not explicitly allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"An active service account with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"get":{"tags":["Service Accounts"],"summary":"List Service Accounts","description":"List service accounts. Returns metadata and display prefixes only - never hashes or plaintext.","operationId":"list_service_accounts_service_accounts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Revoked"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ServiceAccountResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts/{service_account_id}":{"delete":{"tags":["Service Accounts"],"summary":"Revoke Service Account","description":"Revoke an existing service account.\n\nTakes effect immediately on this worker (the local verification cache entry is evicted) and within the cache TTL on other workers.","operationId":"revoke_service_account_service_accounts__service_account_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"service_account_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Service account not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/registry":{"get":{"tags":["Registry"],"summary":"List Registry","description":"List all resources in the registry with optional filtering.","operationId":"list_registry","security":[{"HTTPBearer":[]}],"parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RegistryResourceType"},{"type":"null"}],"description":"Filter by resource type","title":"Resource Type"},"description":"Filter by resource type"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (partial match)","title":"Name"},"description":"Filter by name (partial match)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_RegistryContentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}}},"components":{"schemas":{"A2ACard_APIKeySecurityScheme":{"description":"Defines a security scheme using an API key.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"in":{"$ref":"#/components/schemas/A2ACard_In"},"name":{"title":"Name","type":"string"},"type":{"const":"apiKey","default":"apiKey","title":"Type","type":"string"}},"required":["in","name"],"title":"APIKeySecurityScheme","type":"object"},"A2ACard_AgentCapabilities":{"description":"Defines optional capabilities supported by an agent.","properties":{"extensions":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentExtension"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"pushNotifications":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Pushnotifications"},"stateTransitionHistory":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Statetransitionhistory"},"streaming":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Streaming"}},"title":"AgentCapabilities","type":"object"},"A2ACard_AgentCardSignature":{"description":"AgentCardSignature represents a JWS signature of an AgentCard.\nThis follows the JSON format of an RFC 7515 JSON Web Signature (JWS).","properties":{"header":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Header"},"protected":{"title":"Protected","type":"string"},"signature":{"title":"Signature","type":"string"}},"required":["protected","signature"],"title":"AgentCardSignature","type":"object"},"A2ACard_AgentExtension":{"description":"A declaration of a protocol extension supported by an Agent.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"params":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Params"},"required":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Required"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"AgentExtension","type":"object"},"A2ACard_AgentInterface":{"description":"Declares a combination of a target URL and a transport protocol for interacting with the agent.\nThis allows agents to expose the same functionality over multiple transport mechanisms.","properties":{"transport":{"examples":["JSONRPC","GRPC","HTTP+JSON"],"title":"Transport","type":"string"},"url":{"examples":["https://api.example.com/a2a/v1","https://grpc.example.com/a2a","https://rest.example.com/v1"],"title":"Url","type":"string"}},"required":["transport","url"],"title":"AgentInterface","type":"object"},"A2ACard_AgentProvider":{"description":"Represents the service provider of an agent.","properties":{"organization":{"title":"Organization","type":"string"},"url":{"title":"Url","type":"string"}},"required":["organization","url"],"title":"AgentProvider","type":"object"},"A2ACard_AgentSkill":{"description":"Represents a distinct capability or function that an agent can perform.","properties":{"description":{"title":"Description","type":"string"},"examples":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"examples":[["I need a recipe for bread"]],"title":"Examples"},"id":{"title":"Id","type":"string"},"inputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Inputmodes"},"name":{"title":"Name","type":"string"},"outputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Outputmodes"},"security":{"anyOf":[{"items":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},"type":"array"},{"type":"null"}],"default":null,"examples":[[{"google":["oidc"]}]],"title":"Security"},"tags":{"examples":[["cooking","customer support","billing"]],"items":{"type":"string"},"title":"Tags","type":"array"}},"required":["description","id","name","tags"],"title":"AgentSkill","type":"object"},"A2ACard_AuthorizationCodeOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Authorization Code flow.","properties":{"authorizationUrl":{"title":"Authorizationurl","type":"string"},"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["authorizationUrl","scopes","tokenUrl"],"title":"AuthorizationCodeOAuthFlow","type":"object"},"A2ACard_ClientCredentialsOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Client Credentials flow.","properties":{"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["scopes","tokenUrl"],"title":"ClientCredentialsOAuthFlow","type":"object"},"A2ACard_HTTPAuthSecurityScheme":{"description":"Defines a security scheme using HTTP authentication.","properties":{"bearerFormat":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Bearerformat"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"scheme":{"title":"Scheme","type":"string"},"type":{"const":"http","default":"http","title":"Type","type":"string"}},"required":["scheme"],"title":"HTTPAuthSecurityScheme","type":"object"},"A2ACard_ImplicitOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Implicit flow.","properties":{"authorizationUrl":{"title":"Authorizationurl","type":"string"},"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"}},"required":["authorizationUrl","scopes"],"title":"ImplicitOAuthFlow","type":"object"},"A2ACard_In":{"description":"The location of the API key.","enum":["cookie","header","query"],"title":"In","type":"string"},"A2ACard_MutualTLSSecurityScheme":{"description":"Defines a security scheme using mTLS authentication.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"type":{"const":"mutualTLS","default":"mutualTLS","title":"Type","type":"string"}},"title":"MutualTLSSecurityScheme","type":"object"},"A2ACard_OAuth2SecurityScheme":{"description":"Defines a security scheme using OAuth 2.0.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"flows":{"$ref":"#/components/schemas/A2ACard_OAuthFlows"},"oauth2MetadataUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Oauth2Metadataurl"},"type":{"const":"oauth2","default":"oauth2","title":"Type","type":"string"}},"required":["flows"],"title":"OAuth2SecurityScheme","type":"object"},"A2ACard_OAuthFlows":{"description":"Defines the configuration for the supported OAuth 2.0 flows.","properties":{"authorizationCode":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_AuthorizationCodeOAuthFlow"},{"type":"null"}],"default":null},"clientCredentials":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_ClientCredentialsOAuthFlow"},{"type":"null"}],"default":null},"implicit":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_ImplicitOAuthFlow"},{"type":"null"}],"default":null},"password":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_PasswordOAuthFlow"},{"type":"null"}],"default":null}},"title":"OAuthFlows","type":"object"},"A2ACard_OpenIdConnectSecurityScheme":{"description":"Defines a security scheme using OpenID Connect.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"openIdConnectUrl":{"title":"Openidconnecturl","type":"string"},"type":{"const":"openIdConnect","default":"openIdConnect","title":"Type","type":"string"}},"required":["openIdConnectUrl"],"title":"OpenIdConnectSecurityScheme","type":"object"},"A2ACard_PasswordOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Resource Owner Password flow.","properties":{"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["scopes","tokenUrl"],"title":"PasswordOAuthFlow","type":"object"},"A2ACard_SecurityScheme":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_APIKeySecurityScheme"},{"$ref":"#/components/schemas/A2ACard_HTTPAuthSecurityScheme"},{"$ref":"#/components/schemas/A2ACard_OAuth2SecurityScheme"},{"$ref":"#/components/schemas/A2ACard_OpenIdConnectSecurityScheme"},{"$ref":"#/components/schemas/A2ACard_MutualTLSSecurityScheme"}],"title":"SecurityScheme"},"A2ARequest_DataPart":{"description":"Represents a structured data segment (e.g., JSON) within a message or artifact.","properties":{"data":{"additionalProperties":true,"title":"Data","type":"object"},"kind":{"const":"data","default":"data","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["data"],"title":"DataPart","type":"object"},"A2ARequest_FilePart":{"description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI.","properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_FileWithBytes"},{"$ref":"#/components/schemas/A2ARequest_FileWithUri"}],"title":"File"},"kind":{"const":"file","default":"file","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["file"],"title":"FilePart","type":"object"},"A2ARequest_FileWithBytes":{"description":"Represents a file with its content provided directly as a base64-encoded string.","properties":{"bytes":{"title":"Bytes","type":"string"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"}},"required":["bytes"],"title":"FileWithBytes","type":"object"},"A2ARequest_FileWithUri":{"description":"Represents a file with its content located at a specific URI.","properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"FileWithUri","type":"object"},"A2ARequest_Message":{"description":"Represents a single message in the conversation between a user and an agent.","properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"kind":{"const":"message","default":"message","title":"Kind","type":"string"},"messageId":{"title":"Messageid","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/A2ARequest_Part"},"title":"Parts","type":"array"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/A2ARequest_Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Taskid"},"agentId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Agent ID","description":"Target agent, team, or workflow ID for deprecated dynamic-dispatch endpoints."}},"required":["messageId","parts","role"],"title":"Message","type":"object"},"A2ARequest_MessageSendConfiguration":{"description":"Defines configuration options for a `message/send` or `message/stream` request.","properties":{"acceptedOutputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Acceptedoutputmodes"},"blocking":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Blocking"},"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"pushNotificationConfig":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationConfig"},{"type":"null"}],"default":null}},"title":"MessageSendConfiguration","type":"object"},"A2ARequest_MessageSendParams":{"description":"Defines the parameters for a request to send a message to an agent. This can be used\nto create a new task, continue an existing one, or restart a task.","properties":{"configuration":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_MessageSendConfiguration"},{"type":"null"}],"default":null},"message":{"$ref":"#/components/schemas/A2ARequest_Message"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["message"],"title":"MessageSendParams","type":"object"},"A2ARequest_Part":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_TextPart"},{"$ref":"#/components/schemas/A2ARequest_FilePart"},{"$ref":"#/components/schemas/A2ARequest_DataPart"}],"title":"Part"},"A2ARequest_PushNotificationAuthenticationInfo":{"description":"Defines authentication details for a push notification endpoint.","properties":{"credentials":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Credentials"},"schemes":{"items":{"type":"string"},"title":"Schemes","type":"array"}},"required":["schemes"],"title":"PushNotificationAuthenticationInfo","type":"object"},"A2ARequest_PushNotificationConfig":{"description":"Defines the configuration for setting up push notifications for task updates.","properties":{"authentication":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationAuthenticationInfo"},{"type":"null"}],"default":null},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Id"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Token"},"url":{"title":"Url","type":"string"}},"required":["url"],"title":"PushNotificationConfig","type":"object"},"A2ARequest_Role":{"description":"Identifies the sender of the message. `user` for the client, `agent` for the service.","enum":["agent","user"],"title":"Role","type":"string"},"A2ARequest_TaskIdParams":{"description":"Defines parameters containing a task ID, used for simple task operations.","properties":{"id":{"title":"Id","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"contextId":{"type":"string","title":"Context ID","description":"Agno session ID containing the task."}},"required":["id"],"title":"TaskIdParams","type":"object"},"A2ARequest_TaskQueryParams":{"description":"Defines parameters for querying a task, with an option to limit history length.","properties":{"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"id":{"title":"Id","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"contextId":{"type":"string","title":"Context ID","description":"Agno session ID containing the task."}},"required":["id","contextId"],"title":"TaskQueryParams","type":"object"},"A2ARequest_TextPart":{"description":"Represents a text segment within a message or artifact.","properties":{"kind":{"const":"text","default":"text","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"text":{"title":"Text","type":"string"}},"required":["text"],"title":"TextPart","type":"object"},"ActivityMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"activity","title":"Role","default":"activity"},"activityType":{"type":"string","title":"Activitytype"},"content":{"additionalProperties":true,"type":"object","title":"Content"}},"additionalProperties":true,"type":"object","required":["id","activityType","content"],"title":"ActivityMessage","description":"An activity progress message emitted between chat messages."},"AgentCard":{"description":"The AgentCard is a self-describing manifest for an agent. It provides essential\nmetadata including the agent's identity, capabilities, skills, supported\ncommunication methods, and security requirements.","properties":{"additionalInterfaces":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentInterface"},"type":"array"},{"type":"null"}],"default":null,"title":"Additionalinterfaces"},"capabilities":{"$ref":"#/components/schemas/A2ACard_AgentCapabilities"},"defaultInputModes":{"items":{"type":"string"},"title":"Defaultinputmodes","type":"array"},"defaultOutputModes":{"items":{"type":"string"},"title":"Defaultoutputmodes","type":"array"},"description":{"examples":["Agent that helps users with recipes and cooking."],"title":"Description","type":"string"},"documentationUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Documentationurl"},"iconUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Iconurl"},"name":{"examples":["Recipe Agent"],"title":"Name","type":"string"},"preferredTransport":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"JSONRPC","examples":["JSONRPC","GRPC","HTTP+JSON"],"title":"Preferredtransport"},"protocolVersion":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"0.3.0","title":"Protocolversion"},"provider":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_AgentProvider"},{"type":"null"}],"default":null},"security":{"anyOf":[{"items":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},"type":"array"},{"type":"null"}],"default":null,"examples":[[{"oauth":["read"]},{"api-key":[],"mtls":[]}]],"title":"Security"},"securitySchemes":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/A2ACard_SecurityScheme"},"type":"object"},{"type":"null"}],"default":null,"title":"Securityschemes"},"signatures":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentCardSignature"},"type":"array"},{"type":"null"}],"default":null,"title":"Signatures"},"skills":{"items":{"$ref":"#/components/schemas/A2ACard_AgentSkill"},"title":"Skills","type":"array"},"supportsAuthenticatedExtendedCard":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Supportsauthenticatedextendedcard"},"url":{"examples":["https://api.example.com/a2a/v1"],"title":"Url","type":"string"},"version":{"examples":["1.0.0"],"title":"Version","type":"string"}},"required":["capabilities","defaultInputModes","defaultOutputModes","description","name","skills","url","version"],"title":"AgentCard","type":"object"},"AgentResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"extra_messages":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Messages"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"AgentResponse"},"AgentSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_session_id":{"type":"string","title":"Agent Session Id","description":"Unique agent session identifier"},"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID used in this session"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"agent_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Data","description":"Agent-specific data"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["agent_session_id","session_id","session_name"],"title":"AgentSessionDetailSchema"},"AgentSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the agent"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the agent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the agent"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the agent"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","title":"AgentSummaryResponse"},"ApprovalCountResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"ApprovalCountResponse","description":"Response model for pending approval count."},"ApprovalResolve":{"properties":{"status":{"type":"string","pattern":"^(approved|rejected)$","title":"Status"},"resolved_by":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Resolved By"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"}},"type":"object","required":["status"],"title":"ApprovalResolve","description":"Request body for resolving (approve/reject) an approval."},"ApprovalResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"},"source_type":{"type":"string","title":"Source Type"},"approval_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Type"},"pause_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Args"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"},"schedule_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Run Id"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"},"run_status":{"anyOf":[{"$ref":"#/components/schemas/RunStatus"},{"type":"null"}]}},"type":"object","required":["id","run_id","session_id","status","source_type"],"title":"ApprovalResponse","description":"Response model for a single approval."},"ApprovalStatusResponse":{"properties":{"approval_id":{"type":"string","title":"Approval Id"},"status":{"type":"string","title":"Status"},"run_id":{"type":"string","title":"Run Id"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"}},"type":"object","required":["approval_id","status","run_id"],"title":"ApprovalStatusResponse","description":"Lightweight response model for polling approval status."},"Artifact":{"properties":{"artifactId":{"type":"string","title":"Artifactid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"}},"type":"object","required":["artifactId","parts"],"title":"Artifact","description":"Represents a file, data structure, or other resource generated by an agent during a task."},"AssistantMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"assistant","title":"Role","default":"assistant"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"},"toolCalls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},{"type":"null"}],"title":"Toolcalls"}},"additionalProperties":true,"type":"object","required":["id"],"title":"AssistantMessage","description":"An assistant message."},"AudioInputContent":{"properties":{"type":{"type":"string","const":"audio","title":"Type","default":"audio"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"AudioInputContent","description":"An audio input content fragment."},"BackgroundRunResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the background run."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the background run."},"status":{"type":"string","title":"Status","description":"Initial run status."}},"type":"object","required":["run_id","session_id","status"],"title":"BackgroundRunResponse"},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"BadRequestResponse","example":{"detail":"Bad request","error_code":"BAD_REQUEST"}},"BinaryInputContent":{"properties":{"type":{"type":"string","const":"binary","title":"Type","default":"binary"},"mimeType":{"type":"string","title":"Mimetype"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"additionalProperties":true,"type":"object","required":["mimeType"],"title":"BinaryInputContent","description":"A deprecated binary payload reference in a multimodal user message."},"Body_continue_agent_run":{"properties":{"tools":{"type":"string","title":"Tools","description":"JSON string of tool call results to continue the paused run","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Optional new user-message text to append to the run before resuming. Use for continuing a COMPLETED run with a follow-up, or adding context to a RUNNING/ERROR resume."},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","description":"When true, clone the run with a new ``run_id`` before resuming. The original is untouched; the clone becomes a sibling within the same session, with ``forked_from_run_id`` set.","default":false},"regenerate":{"type":"boolean","title":"Regenerate","description":"Sugar: regenerate the last response of this run. Auto-computes ``continue_from='last_user'`` to land just after the last user message. Pair with ``additional_instructions`` to steer the new output. By default the original response is hidden from history (replaced); pass ``replace_original=false`` to keep both the original and the regenerated response visible side by side.","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original","description":"Only valid with ``regenerate=true``. Controls history visibility of the original response; the original run is always retained in storage. Defaults to true: the original is marked REGENERATED and hidden from history so the new response replaces it. Pass false to keep both the original and regenerated responses visible."},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions","description":"Only valid with ``regenerate=true``: extra guidance appended as a user message before re-generation. Friendly alias for ``input``."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run continue in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false}},"type":"object","title":"Body_continue_agent_run"},"Body_continue_team_run":{"properties":{"requirements":{"type":"string","title":"Requirements","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input"},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","default":false},"regenerate":{"type":"boolean","title":"Regenerate","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original"},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"stream":{"type":"boolean","title":"Stream","default":true},"background":{"type":"boolean","title":"Background","default":false}},"type":"object","title":"Body_continue_team_run"},"Body_continue_workflow_run":{"properties":{"step_requirements":{"type":"string","title":"Step Requirements","description":"JSON string of step requirement objects with resolution status","default":""},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}},"type":"object","title":"Body_continue_workflow_run"},"Body_create_agent_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the agent"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Agent version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic agent construction"}},"type":"object","required":["message"],"title":"Body_create_agent_run"},"Body_create_team_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the team"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"monitor":{"type":"boolean","title":"Monitor","description":"Enable monitoring and logging for this run","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Team version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic team construction"}},"type":"object","required":["message"],"title":"Body_create_team_run"},"Body_create_workflow_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the workflow"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run workflow in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Workflow version to use for this run"},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow construction"}},"type":"object","required":["message"],"title":"Body_create_workflow_run"},"Body_rename_session":{"properties":{"session_name":{"type":"string","title":"Session Name","description":"New name for the session"}},"type":"object","required":["session_name"],"title":"Body_rename_session"},"Body_resume_agent_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_agent_run_stream"},"Body_resume_team_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_team_run_stream"},"Body_resume_workflow_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_workflow_run_stream"},"Body_update_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"Content metadata as JSON string"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"Reader ID. In Agno 2.7.4, local knowledge validates the value, but the content patch does not apply or persist the reader change."}},"type":"object","title":"Body_update_content"},"Body_upload_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated from file/URL if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description for context"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"URL to fetch content from (JSON array or single URL string)"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object for additional content properties"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File","description":"File to upload for processing"},"text_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Content","description":"Raw text content to process"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for content processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply during processing"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size to use for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap to use for processing"}},"type":"object","title":"Body_upload_content"},"Body_upload_remote_content":{"properties":{"config_id":{"type":"string","title":"Config Id","description":"ID of the configured remote content source (from /knowledge/config)"},"path":{"type":"string","title":"Path","description":"Path to file or folder in the remote source"},"source_params":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Params","description":"JSON object of per-request parameters forwarded to the source's factory. Used for provider-specific routing that shouldn't be baked into the config. Currently supported keys: GitHub accepts 'repo' ('owner/repo'), letting one configured GitHub source serve multiple repositories the credentials can access."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap for processing"}},"type":"object","required":["config_id","path"],"title":"Body_upload_remote_content"},"CancelTaskRequest":{"description":"Represents a JSON-RPC request for the `tasks/cancel` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"tasks/cancel","default":"tasks/cancel","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_TaskIdParams"}},"required":["id","params"],"title":"CancelTaskRequest","type":"object"},"CancelTaskSuccessResponse":{"description":"Represents a successful JSON-RPC response for the `tasks/cancel` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"default":null,"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"result":{"$ref":"#/components/schemas/Task"}},"required":["result"],"title":"CancelTaskSuccessResponse","type":"object"},"ChatConfig":{"properties":{"quick_prompts":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Quick Prompts"}},"type":"object","required":["quick_prompts"],"title":"ChatConfig","description":"Configuration for the Chat page of the AgentOS"},"ChunkerSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["key"],"title":"ChunkerSchema"},"ComponentConfigResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"version":{"type":"integer","title":"Version"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"type":"string","title":"Stage"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","version","stage","config","created_at"],"title":"ComponentConfigResponse"},"ComponentCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Display name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id","description":"Unique identifier for the entity. Auto-generated from name if not provided."},"component_type":{"$ref":"#/components/schemas/ComponentType","description":"Type of entity: agent, team, or workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config","description":"Optional configuration"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["name","component_type"],"title":"ComponentCreate"},"ComponentResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"component_type":{"$ref":"#/components/schemas/ComponentType"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","component_type","created_at"],"title":"ComponentResponse"},"ComponentType":{"type":"string","enum":["agent","team","workflow"],"title":"ComponentType"},"ComponentUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"component_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"}},"type":"object","title":"ComponentUpdate"},"ConfigCreate":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config","description":"The configuration data"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Optional version number"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links","description":"Optional links to child components"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["config"],"title":"ConfigCreate"},"ConfigResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the OS instance"},"available_models":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Models","description":"List of available models"},"os_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Database","description":"ID of the database used for the OS instance"},"databases":{"items":{"type":"string"},"type":"array","title":"Databases","description":"List of database IDs used by the components of the OS instance"},"chat":{"anyOf":[{"$ref":"#/components/schemas/ChatConfig"},{"type":"null"}],"description":"Chat configuration"},"manifest":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Manifest"},"type":"object"},{"type":"null"}],"title":"Manifest","description":"Per-entity UI metadata keyed by agent/team/workflow id"},"session":{"anyOf":[{"$ref":"#/components/schemas/SessionConfig"},{"type":"null"}],"description":"Session configuration"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/MetricsConfig"},{"type":"null"}],"description":"Metrics configuration"},"memory":{"anyOf":[{"$ref":"#/components/schemas/MemoryConfig"},{"type":"null"}],"description":"Memory configuration"},"learning":{"anyOf":[{"$ref":"#/components/schemas/LearningConfig"},{"type":"null"}],"description":"Learning configuration"},"knowledge":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeConfig"},{"type":"null"}],"description":"Knowledge configuration"},"evals":{"anyOf":[{"$ref":"#/components/schemas/EvalsConfig"},{"type":"null"}],"description":"Evaluations configuration"},"traces":{"anyOf":[{"$ref":"#/components/schemas/TracesConfig"},{"type":"null"}],"description":"Traces configuration"},"agents":{"items":{"$ref":"#/components/schemas/AgentSummaryResponse"},"type":"array","title":"Agents","description":"List of registered agents"},"teams":{"items":{"$ref":"#/components/schemas/TeamSummaryResponse"},"type":"array","title":"Teams","description":"List of registered teams"},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Workflows","description":"List of registered workflows"},"interfaces":{"items":{"$ref":"#/components/schemas/InterfaceResponse"},"type":"array","title":"Interfaces","description":"List of available interfaces"}},"type":"object","required":["os_id","databases","agents","teams","workflows","interfaces"],"title":"ConfigResponse","description":"Response schema for the general config endpoint"},"ConfigResponseSchema":{"properties":{"readers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ReaderSchema"},"type":"object"},{"type":"null"}],"title":"Readers","description":"Available content readers"},"readersForType":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Readersfortype","description":"Mapping of content types to reader IDs"},"chunkers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ChunkerSchema"},"type":"object"},{"type":"null"}],"title":"Chunkers","description":"Available chunking strategies"},"filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filters","description":"Available filter tags"},"vector_dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/VectorDbSchema"},"type":"array"},{"type":"null"}],"title":"Vector Dbs","description":"Configured vector databases"},"remote_content_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"type":"array"},{"type":"null"}],"title":"Remote Content Sources","description":"Configured remote content sources (S3, GCS, SharePoint, GitHub)"}},"type":"object","title":"ConfigResponseSchema"},"ConfigUpdate":{"properties":{"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","title":"ConfigUpdate"},"ConflictResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ConflictResponse","example":{"detail":"Resource conflict"}},"ContentResponseSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the content"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"MIME type of the content"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"},"linked_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linked To","description":"Knowledge instance name used for content isolation. Local Agno 2.7.4 responses return null because response conversion does not propagate the stored value."},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata as key-value pairs"},"access_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Access Count","description":"Stored access count. Local Agno 2.7.4 responses return null because response conversion does not propagate the stored value."},"status":{"anyOf":[{"$ref":"#/components/schemas/ContentStatus"},{"type":"null"}],"description":"Processing status of the content"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message","description":"Status message or error details"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when content was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when content was last updated"}},"type":"object","required":["id"],"title":"ContentResponseSchema"},"ContentStatus":{"type":"string","enum":["processing","completed","failed"],"title":"ContentStatus","description":"Enumeration of possible content processing statuses."},"ContentStatusResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Content ID"},"status":{"$ref":"#/components/schemas/ContentStatus","description":"Current processing status of the content"},"status_message":{"type":"string","title":"Status Message","description":"Status message or error details","default":""}},"type":"object","required":["status"],"title":"ContentStatusResponse","description":"Response model for content status endpoint."},"Context":{"properties":{"description":{"type":"string","title":"Description"},"value":{"type":"string","title":"Value"}},"additionalProperties":true,"type":"object","required":["description","value"],"title":"Context","description":"Additional context for the agent."},"CreateSessionRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session ID (generated if not provided)"},"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Initial session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"}},"type":"object","title":"CreateSessionRequest"},"DataPart":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data"},"kind":{"type":"string","const":"data","title":"Kind","default":"data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["data"],"title":"DataPart","description":"Represents a structured data segment (e.g., JSON) within a message or artifact."},"DatabaseConfig_EvalsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/EvalsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[EvalsDomainConfig]"},"DatabaseConfig_LearningDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/LearningDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[LearningDomainConfig]"},"DatabaseConfig_MemoryDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MemoryDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MemoryDomainConfig]"},"DatabaseConfig_MetricsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MetricsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MetricsDomainConfig]"},"DatabaseConfig_SessionDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/SessionDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[SessionDomainConfig]"},"DatabaseConfig_TracesDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/TracesDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[TracesDomainConfig]"},"DayAggregatedMetrics":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the metrics record"},"agent_runs_count":{"type":"integer","minimum":0.0,"title":"Agent Runs Count","description":"Total number of agent runs"},"agent_sessions_count":{"type":"integer","minimum":0.0,"title":"Agent Sessions Count","description":"Total number of agent sessions"},"team_runs_count":{"type":"integer","minimum":0.0,"title":"Team Runs Count","description":"Total number of team runs"},"team_sessions_count":{"type":"integer","minimum":0.0,"title":"Team Sessions Count","description":"Total number of team sessions"},"workflow_runs_count":{"type":"integer","minimum":0.0,"title":"Workflow Runs Count","description":"Total number of workflow runs"},"workflow_sessions_count":{"type":"integer","minimum":0.0,"title":"Workflow Sessions Count","description":"Total number of workflow sessions"},"users_count":{"type":"integer","minimum":0.0,"title":"Users Count","description":"Total number of unique users"},"token_metrics":{"additionalProperties":true,"type":"object","title":"Token Metrics","description":"Token usage metrics (input, output, cached, etc.)"},"model_metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Model Metrics","description":"Metrics grouped by model (model_id, provider, count)"},"date":{"type":"string","format":"date-time","title":"Date","description":"Date for which these metrics are aggregated"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when metrics were created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when metrics were last updated"}},"type":"object","required":["id","agent_runs_count","agent_sessions_count","team_runs_count","team_sessions_count","workflow_runs_count","workflow_sessions_count","users_count","token_metrics","model_metrics","date","created_at","updated_at"],"title":"DayAggregatedMetrics","description":"Aggregated metrics for a given day"},"DeleteEvalRunsRequest":{"properties":{"eval_run_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Eval Run Ids","description":"List of evaluation run IDs to delete"}},"type":"object","required":["eval_run_ids"],"title":"DeleteEvalRunsRequest"},"DeleteMemoriesRequest":{"properties":{"memory_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Memory Ids","description":"List of memory IDs to delete"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID to filter memories for deletion"}},"type":"object","required":["memory_ids"],"title":"DeleteMemoriesRequest"},"DeleteSessionRequest":{"properties":{"session_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Session Ids","description":"List of session IDs to delete"},"session_types":{"items":{"$ref":"#/components/schemas/SessionType"},"type":"array","minItems":1,"title":"Session Types","description":"Types of sessions to delete"}},"type":"object","required":["session_ids","session_types"],"title":"DeleteSessionRequest"},"DeveloperMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"developer","title":"Role","default":"developer"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"DeveloperMessage","description":"A developer message."},"DocumentInputContent":{"properties":{"type":{"type":"string","const":"document","title":"Type","default":"document"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"DocumentInputContent","description":"A document input content fragment."},"EvalFilterType":{"type":"string","enum":["agent","team","workflow"],"title":"EvalFilterType"},"EvalRunInput":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID to evaluate"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID to evaluate"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID to use for evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation to run (accuracy, performance, or reliability)"},"input":{"type":"string","minLength":1,"title":"Input","description":"Input text/query for the evaluation"},"additional_guidelines":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Guidelines","description":"Additional guidelines for the evaluation"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for the evaluation"},"num_iterations":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Num Iterations","description":"Number of times to run the evaluation","default":1},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for this evaluation run"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output","description":"Expected output for accuracy evaluation"},"criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criteria","description":"Evaluation criteria for agent-as-judge evaluation"},"scoring_strategy":{"anyOf":[{"type":"string","enum":["numeric","binary"]},{"type":"null"}],"title":"Scoring Strategy","description":"Scoring strategy: 'numeric' (1-10 with threshold) or 'binary' (PASS/FAIL)","default":"binary"},"threshold":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Threshold","description":"Score threshold for pass/fail (1-10), only used with numeric scoring","default":7},"warmup_runs":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Warmup Runs","description":"Number of warmup runs before measuring performance","default":0},"expected_tool_calls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expected Tool Calls","description":"Expected tool calls for reliability evaluation"},"allow_additional_tool_calls":{"type":"boolean","title":"Allow Additional Tool Calls","description":"When True, tool calls not in expected_tool_calls are allowed (subset matching)","default":false},"expected_tool_call_arguments":{"anyOf":[{"additionalProperties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Expected Tool Call Arguments","description":"Expected arguments for specific tool calls, e.g. {\"tool_name\": {\"arg_name\": \"expected_value\"}} or {\"tool_name\": [{\"arg_name\": \"val1\"}, {\"arg_name\": \"val2\"}]}"}},"type":"object","required":["eval_type","input"],"title":"EvalRunInput"},"EvalSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the evaluation run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that was evaluated"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID used in evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that was evaluated"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was evaluated"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the evaluation run"},"evaluated_component_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluated Component Name","description":"Name of the evaluated component"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation (accuracy, performance, or reliability)"},"eval_data":{"additionalProperties":true,"type":"object","title":"Eval Data","description":"Evaluation results and metrics"},"eval_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eval Input","description":"Input parameters used for the evaluation"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when evaluation was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when evaluation was last updated"}},"type":"object","required":["id","eval_type","eval_data"],"title":"EvalSchema"},"EvalType":{"type":"string","enum":["accuracy","agent_as_judge","performance","reliability"],"title":"EvalType"},"EvalsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_EvalsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"EvalsConfig","description":"Configuration for the Evals domain of the AgentOS"},"EvalsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"EvalsDomainConfig","description":"Configuration for the Evals domain of the AgentOS"},"FilePart":{"properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/FileWithBytes"},{"$ref":"#/components/schemas/FileWithUri"}],"title":"File"},"kind":{"type":"string","const":"file","title":"Kind","default":"file"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["file"],"title":"FilePart","description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI."},"FileWithBytes":{"properties":{"bytes":{"type":"string","title":"Bytes"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["bytes"],"title":"FileWithBytes","description":"Represents a file with its content provided directly as a base64-encoded string."},"FileWithUri":{"properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uri":{"type":"string","title":"Uri"}},"type":"object","required":["uri"],"title":"FileWithUri","description":"Represents a file with its content located at a specific URI."},"FilterFieldSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Column/field name used in filter expressions"},"label":{"type":"string","title":"Label","description":"Human-readable display label for the UI"},"type":{"type":"string","title":"Type","description":"Field data type: string, number, datetime, enum"},"operators":{"items":{"type":"string"},"type":"array","title":"Operators","description":"List of valid filter operators for this field"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values","description":"Allowed enum values (for autocomplete/dropdown)"}},"type":"object","required":["key","label","type","operators"],"title":"FilterFieldSchema","description":"Schema describing a single filterable field for the frontend filter bar."},"FilterSchemaResponse":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FilterFieldSchema"},"type":"array","title":"Fields","description":"Available filterable fields"},"logical_operators":{"items":{"type":"string"},"type":"array","title":"Logical Operators","description":"Logical operators for combining filter clauses","default":["AND","OR"]}},"type":"object","required":["fields"],"title":"FilterSchemaResponse","description":"Response for the filter schema endpoint. Tells the FE what fields, operators, and values are available."},"ForbiddenResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ForbiddenResponse","example":{"detail":"Insufficient permissions"}},"FunctionCall":{"properties":{"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"additionalProperties":true,"type":"object","required":["name","arguments"],"title":"FunctionCall","description":"Name and arguments of a function call."},"GetTaskRequest":{"description":"Represents a JSON-RPC request for the `tasks/get` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"tasks/get","default":"tasks/get","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_TaskQueryParams"}},"required":["id","params"],"title":"GetTaskRequest","type":"object"},"GetTaskSuccessResponse":{"description":"Represents a successful JSON-RPC response for the `tasks/get` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"default":null,"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"result":{"$ref":"#/components/schemas/Task"}},"required":["result"],"title":"GetTaskSuccessResponse","type":"object"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Health status of the service"},"instantiated_at":{"type":"string","format":"date-time","title":"Instantiated At","description":"Timestamp when service was instantiated"}},"type":"object","required":["status","instantiated_at"],"title":"HealthResponse","example":{"instantiated_at":"2025-06-10T12:00:00Z","status":"ok"}},"ImageInputContent":{"properties":{"type":{"type":"string","const":"image","title":"Type","default":"image"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"ImageInputContent","description":"An image input content fragment."},"InfoResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"agno_version":{"type":"string","title":"Agno Version","description":"Version of the agno framework"},"agent_count":{"type":"integer","title":"Agent Count","description":"Number of agents registered in the OS","default":0},"team_count":{"type":"integer","title":"Team Count","description":"Number of teams registered in the OS","default":0},"workflow_count":{"type":"integer","title":"Workflow Count","description":"Number of workflows registered in the OS","default":0},"mcp":{"$ref":"#/components/schemas/McpInfo","description":"MCP server availability for this OS instance"},"auth_mode":{"type":"string","enum":["none","security_key","jwt"],"title":"Auth Mode","description":"Authentication mode enforced on the REST/WS plane of this OS instance. MCP OAuth, when enabled, is described separately under `mcp.oauth`.","default":"none"}},"type":"object","required":["os_id","agno_version"],"title":"InfoResponse","description":"Response schema for the /info endpoint returning lightweight OS metadata."},"InputContentDataSource":{"properties":{"type":{"type":"string","const":"data","title":"Type","default":"data"},"value":{"type":"string","title":"Value"},"mimeType":{"type":"string","title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value","mimeType"],"title":"InputContentDataSource","description":"Inline base64-encoded source."},"InputContentUrlSource":{"properties":{"type":{"type":"string","const":"url","title":"Type","default":"url"},"value":{"type":"string","title":"Value"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value"],"title":"InputContentUrlSource","description":"URL-referenced source."},"InterfaceResponse":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the interface"},"version":{"type":"string","title":"Version","description":"Version of the interface"},"route":{"type":"string","title":"Route","description":"API route path"}},"type":"object","required":["type","version","route"],"title":"InterfaceResponse"},"InternalServerErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"InternalServerErrorResponse","example":{"detail":"Internal server error","error_code":"INTERNAL_SERVER_ERROR"}},"KnowledgeConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeDatabaseConfig"},"type":"array"},{"type":"null"}],"title":"Dbs"},"knowledge_instances":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeInstanceConfig"},"type":"array"},{"type":"null"}],"title":"Knowledge Instances"}},"type":"object","title":"KnowledgeConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeDatabaseConfig":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeDomainConfig"},{"type":"null"}]},"tables":{"items":{"type":"string"},"type":"array","title":"Tables","default":[]}},"type":"object","required":["db_id"],"title":"KnowledgeDatabaseConfig","description":"Configuration for a knowledge database with its tables"},"KnowledgeDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"KnowledgeDomainConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeInstanceConfig":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"db_id":{"type":"string","title":"Db Id"},"table":{"type":"string","title":"Table"}},"type":"object","required":["id","name","db_id","table"],"title":"KnowledgeInstanceConfig","description":"Configuration for a single knowledge instance"},"LearningConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_LearningDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"LearningConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningCreate":{"properties":{"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"content":{"additionalProperties":true,"type":"object","title":"Content","description":"The learning content payload"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID. When the request is authenticated, must match the JWT subject or be omitted/null (which creates a global / non-user-scoped record)."},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"}},"type":"object","required":["learning_type","content"],"title":"LearningCreate","description":"Request body for creating a learning record."},"LearningDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"LearningDomainConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningResponse":{"properties":{"learning_id":{"type":"string","title":"Learning Id","description":"Unique identifier for the learning record"},"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID (for entity-specific learnings)"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type (e.g. 'person', 'company')"},"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"The learning content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Creation timestamp (Unix epoch seconds)"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp (Unix epoch seconds)"}},"type":"object","required":["learning_id","learning_type"],"title":"LearningResponse","description":"A single learning record as returned by the API."},"LearningUpdate":{"properties":{"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Replacement content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Replacement metadata"}},"type":"object","title":"LearningUpdate","description":"Request body for updating a learning record. Identity fields are immutable."},"LearningUserStats":{"properties":{"user_id":{"type":"string","title":"User Id","description":"The user ID"},"last_learning_updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Learning Updated At","description":"Most recent learning update for this user (Unix epoch seconds)"}},"type":"object","required":["user_id"],"title":"LearningUserStats","description":"A user that owns learning records, with their most recent activity.\n\nUsed as a lightweight index for the per-user view: list users here, then drill into a\nsingle user's records via ``GET /learnings?user_id=...``. No per-user count is returned\n-- the user-scoped stores (``user_profile``, ``user_memory``) keep a single record per\nuser, so a record count would always be 1; the actual memory count lives in that\nrecord's ``content``."},"Manifest":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"},"quick_prompts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quick Prompts"}},"type":"object","title":"Manifest","description":"OS-level UI metadata for an agent/team/workflow.\n\nFields here are AgentOS UI metadata only. ``description`` is unrelated to\n``Agent.description`` / ``Team.description`` / ``Workflow.description``,\nwhich are sent to the model.\n\nRendering surfaces:\n- ``description``, ``labels``: home/landing card\n- ``quick_prompts``: chat page"},"McpInfo":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the MCP server is enabled on this OS instance","default":false},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Path where the MCP server is mounted, null when disabled"},"oauth":{"anyOf":[{"$ref":"#/components/schemas/McpOAuthInfo"},{"type":"null"}],"description":"OAuth discovery details when the MCP endpoint is OAuth-protected, null otherwise"}},"type":"object","title":"McpInfo","description":"MCP server availability for the /info endpoint."},"McpOAuthInfo":{"properties":{"authorization_servers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorization Servers","description":"Issuer URL(s) of the authorization server(s) protecting the MCP endpoint"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource","description":"RFC 9728 resource URL advertised for the MCP endpoint"}},"type":"object","title":"McpOAuthInfo","description":"OAuth discovery details for an MCP endpoint protected by ``AgentOS(mcp_auth=...)``."},"MemoryConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MemoryDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MemoryConfig","description":"Configuration for the Memory domain of the AgentOS"},"MemoryDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MemoryDomainConfig","description":"Configuration for the Memory domain of the AgentOS"},"Message":{"properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"kind":{"type":"string","const":"message","title":"Kind","default":"message"},"messageId":{"type":"string","title":"Messageid"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taskid"}},"type":"object","required":["messageId","parts","role"],"title":"Message","description":"Represents a single message in the conversation between a user and an agent."},"Meta":{"properties":{"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of results per page","default":20},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number","default":1}},"type":"object","title":"Meta","description":"Inline metadata schema for pagination."},"MetricsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MetricsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MetricsConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MetricsDomainConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsResponse":{"properties":{"metrics":{"items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"type":"array","title":"Metrics","description":"List of daily aggregated metrics"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp of the most recent metrics update"}},"type":"object","required":["metrics"],"title":"MetricsResponse"},"Model":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"Model"},"ModelResponse":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the model"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"ModelResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"NotFoundResponse","example":{"detail":"Not found","error_code":"NOT_FOUND"}},"NotImplementedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"NotImplementedResponse","example":{"detail":"Operation not supported for this resource type"}},"OptimizeMemoriesRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID to optimize memories for"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model in `provider:model_id` format. Current examples include `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, and `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`."},"apply":{"type":"boolean","title":"Apply","description":"If True, apply optimization changes to database. If False, return preview only without saving.","default":true}},"type":"object","required":["user_id"],"title":"OptimizeMemoriesRequest","description":"Schema for memory optimization request"},"OptimizeMemoriesResponse":{"properties":{"memories":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Memories","description":"List of optimized memory objects"},"memories_before":{"type":"integer","minimum":0.0,"title":"Memories Before","description":"Number of memories before optimization"},"memories_after":{"type":"integer","minimum":0.0,"title":"Memories After","description":"Number of memories after optimization"},"tokens_before":{"type":"integer","minimum":0.0,"title":"Tokens Before","description":"Token count before optimization"},"tokens_after":{"type":"integer","minimum":0.0,"title":"Tokens After","description":"Token count after optimization"},"tokens_saved":{"type":"integer","minimum":0.0,"title":"Tokens Saved","description":"Number of tokens saved through optimization"},"reduction_percentage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Reduction Percentage","description":"Percentage of token reduction achieved"}},"type":"object","required":["memories","memories_before","memories_after","tokens_before","tokens_after","tokens_saved","reduction_percentage"],"title":"OptimizeMemoriesResponse","description":"Schema for memory optimization response"},"PaginatedResponse_ApprovalResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ApprovalResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ApprovalResponse]"},"PaginatedResponse_ComponentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ComponentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ComponentResponse]"},"PaginatedResponse_ContentResponseSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentResponseSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ContentResponseSchema]"},"PaginatedResponse_EvalSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EvalSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[EvalSchema]"},"PaginatedResponse_LearningResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningResponse]"},"PaginatedResponse_LearningUserStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningUserStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningUserStats]"},"PaginatedResponse_RegistryContentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RegistryContentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[RegistryContentResponse]"},"PaginatedResponse_ScheduleResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleResponse]"},"PaginatedResponse_ScheduleRunResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleRunResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleRunResponse]"},"PaginatedResponse_ServiceAccountResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ServiceAccountResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ServiceAccountResponse]"},"PaginatedResponse_SessionSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SessionSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[SessionSchema]"},"PaginatedResponse_TraceDetail_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceDetail"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceDetail]"},"PaginatedResponse_TraceSessionStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSessionStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSessionStats]"},"PaginatedResponse_TraceSummary_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSummary"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSummary]"},"PaginatedResponse_UserMemorySchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserMemorySchema]"},"PaginatedResponse_UserStatsSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserStatsSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserStatsSchema]"},"PaginatedResponse_VectorSearchResult_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VectorSearchResult"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[VectorSearchResult]"},"PaginationInfo":{"properties":{"page":{"type":"integer","minimum":0.0,"title":"Page","description":"Page value returned by the endpoint. AgentOS paginated routes use 1-based page numbers. Some Agno 2.7.4 routes accept and echo 0 even though their pagination implementation is 1-based.","default":0},"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of items per page","default":20},"total_pages":{"type":"integer","minimum":0.0,"title":"Total Pages","description":"Total number of pages","default":0},"total_count":{"type":"integer","minimum":0.0,"title":"Total Count","description":"Total count of items","default":0},"search_time_ms":{"type":"number","minimum":0.0,"title":"Search Time Ms","description":"Search execution time in milliseconds","default":0}},"type":"object","title":"PaginationInfo"},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/DataPart"}],"title":"Part"},"ReaderSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the reader"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the reader"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the reader's capabilities"},"chunkers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chunkers","description":"List of supported chunking strategies"}},"type":"object","required":["id"],"title":"ReaderSchema"},"ReasoningMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"reasoning","title":"Role","default":"reasoning"},"content":{"type":"string","title":"Content"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"ReasoningMessage","description":"A reasoning message containing the agent's internal reasoning process."},"RegistryContentResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/RegistryResourceType"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name","type"],"title":"RegistryContentResponse"},"RegistryResourceType":{"type":"string","enum":["tool","model","db","vector_db","schema","function","agent","team","knowledge","memory_manager","session_summary_manager"],"title":"RegistryResourceType","description":"Types of resources that can be stored in a registry."},"RemoteContentSourceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content source"},"name":{"type":"string","title":"Name","description":"Display name for the content source"},"type":{"type":"string","title":"Type","description":"Type of content source (s3, gcs, sharepoint, github, azureblob)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Default path prefix for this source"}},"type":"object","required":["id","name","type"],"title":"RemoteContentSourceSchema","description":"Schema for remote content source configuration."},"ResumeEntry":{"properties":{"interruptId":{"type":"string","title":"Interruptid"},"status":{"type":"string","enum":["resolved","cancelled"],"title":"Status"},"payload":{"anyOf":[{},{"type":"null"}],"title":"Payload"}},"additionalProperties":true,"type":"object","required":["interruptId","status"],"title":"ResumeEntry","description":"A per-interrupt response in the resume array of a RunAgentInput."},"Role":{"type":"string","enum":["agent","user"],"title":"Role","description":"Identifies the sender of the message. `user` for the client, `agent` for the service."},"RunAgentInput":{"properties":{"threadId":{"type":"string","title":"Threadid"},"runId":{"type":"string","title":"Runid"},"parentRunId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentrunid"},"state":{"title":"State"},"messages":{"items":{"oneOf":[{"$ref":"#/components/schemas/DeveloperMessage"},{"$ref":"#/components/schemas/SystemMessage"},{"$ref":"#/components/schemas/AssistantMessage"},{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/ToolMessage"},{"$ref":"#/components/schemas/ActivityMessage"},{"$ref":"#/components/schemas/ReasoningMessage"}],"discriminator":{"propertyName":"role","mapping":{"activity":"#/components/schemas/ActivityMessage","assistant":"#/components/schemas/AssistantMessage","developer":"#/components/schemas/DeveloperMessage","reasoning":"#/components/schemas/ReasoningMessage","system":"#/components/schemas/SystemMessage","tool":"#/components/schemas/ToolMessage","user":"#/components/schemas/UserMessage"}}},"type":"array","title":"Messages"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","title":"Tools"},"context":{"items":{"$ref":"#/components/schemas/Context"},"type":"array","title":"Context"},"forwardedProps":{"title":"Forwardedprops"},"resume":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResumeEntry"},"type":"array"},{"type":"null"}],"title":"Resume"}},"additionalProperties":true,"type":"object","required":["threadId","runId","state","messages","tools","context","forwardedProps"],"title":"RunAgentInput","description":"Input for running an agent."},"RunCheckpointEntry":{"properties":{"checkpoint_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Checkpoint Id","description":"One-based display ID, or null when the requested boundary is not on the checkpoint timeline."},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Run that contains the checkpoint."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session that contains the run."},"message_index":{"type":"integer","minimum":0,"title":"Message Index","description":"Message boundary represented by the checkpoint."},"continue_from":{"type":"integer","minimum":0,"title":"Continue From","description":"Value to send as continue_from when continuing the run."},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Checkpoint status or current run status."},"reason":{"type":"string","title":"Reason","description":"Why this boundary was returned."},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Unix timestamp for the checkpoint or run."},"message_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Id","description":"Message ID at the checkpoint boundary."},"message_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Role","description":"Role of the message at the checkpoint boundary."},"message_preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Preview","description":"Truncated message content at the checkpoint boundary."},"is_latest":{"type":"boolean","title":"Is Latest","description":"Whether this is the final message boundary in the stored run."}},"type":"object","required":["checkpoint_id","run_id","session_id","message_index","continue_from","status","reason","created_at","message_id","message_role","message_preview","is_latest"],"title":"RunCheckpointEntry","description":"A continuation boundary derived from a stored run transcript."},"RunCheckpointListResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Run whose checkpoints were listed."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the run."},"checkpoints":{"type":"array","items":{"$ref":"#/components/schemas/RunCheckpointEntry"},"title":"Checkpoints","description":"Checkpoint boundaries in message order."}},"type":"object","required":["run_id","session_id","checkpoints"],"title":"RunCheckpointListResponse"},"RunCheckpointSnapshotResponse":{"properties":{"checkpoint":{"$ref":"#/components/schemas/RunCheckpointEntry"},"snapshot":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"}],"title":"Snapshot","description":"Agent or team run serialized at the requested message boundary."}},"type":"object","required":["checkpoint","snapshot"],"title":"RunCheckpointSnapshotResponse"},"RunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that executed this run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"RunSchema"},"RunStatus":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","PAUSED","CANCELLED","ERROR","REGENERATED"],"title":"RunStatus","description":"State of the main run response"},"ScheduleCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"cron_expr":{"type":"string","maxLength":128,"title":"Cron Expr"},"endpoint":{"type":"string","maxLength":512,"title":"Endpoint"},"method":{"type":"string","maxLength":10,"title":"Method","default":"POST"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"type":"string","maxLength":64,"title":"Timezone","default":"UTC"},"timeout_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Timeout Seconds","default":3600},"max_retries":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Max Retries","default":0},"retry_delay_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Retry Delay Seconds","default":60}},"type":"object","required":["name","cron_expr","endpoint"],"title":"ScheduleCreate"},"ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"cron_expr":{"type":"string","title":"Cron Expr"},"timezone":{"type":"string","title":"Timezone"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"max_retries":{"type":"integer","title":"Max Retries"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","method","endpoint","cron_expr","timezone","timeout_seconds","max_retries","retry_delay_seconds","enabled"],"title":"ScheduleResponse"},"ScheduleRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"schedule_id":{"type":"string","title":"Schedule Id"},"attempt":{"type":"integer","title":"Attempt"},"triggered_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triggered At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"status":{"type":"string","title":"Status"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","schedule_id","attempt","status"],"title":"ScheduleRunResponse"},"ScheduleStateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","enabled"],"title":"ScheduleStateResponse","description":"Trimmed response for state-changing operations (enable/disable)."},"ScheduleUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"cron_expr":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Cron Expr"},"endpoint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Endpoint"},"method":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Method"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Timezone"},"timeout_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":1.0},{"type":"null"}],"title":"Timeout Seconds"},"max_retries":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Max Retries"},"retry_delay_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":1.0},{"type":"null"}],"title":"Retry Delay Seconds"}},"type":"object","title":"ScheduleUpdate"},"ScopeItem":{"properties":{"scope":{"type":"string","title":"Scope","description":"Scope string, e.g. 'agents:*:run'"},"effect":{"type":"string","enum":["allow","deny"],"title":"Effect","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["scope"],"title":"ScopeItem","description":"Write shape for one scope grant \u2014 the canonical RBAC payload for every scope-bearing API.\n\nEndpoints that take scopes accept these objects only (a bare string is a validation\nerror). ``effect`` is constrained here so every consumer rejects typos at the model\nlayer; whether ``deny`` is *semantically* legal stays per-endpoint (roles support\ndeny rules, service-account tokens are pure grants and reject it)."},"ScopeSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Scope id (always null here; kept for shape parity with the cloud RBAC API, which addresses scopes individually)"},"raw":{"type":"string","title":"Raw","description":"Original scope string, e.g. 'agents:*:run'"},"namespace":{"type":"string","title":"Namespace","description":"Resource namespace, e.g. 'agents'"},"sub_namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Namespace","description":"Specific resource id or wildcard '*'"},"permission":{"type":"string","title":"Permission","description":"Action, e.g. 'read' / 'run' / 'write'"},"value":{"type":"string","title":"Value","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["raw","namespace","permission"],"title":"ScopeSchema","description":"Read shape for one scope \u2014 the parsed RBAC payload shared by every scope-bearing API.\n\nMirrors the cloud RBAC scope shape ({raw, namespace, sub_namespace, permission, value})\nso a frontend renders scopes from any AgentOS API with one integration."},"SendMessageRequest":{"description":"Represents a JSON-RPC request for the `message/send` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/send","default":"message/send","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendMessageRequest","type":"object"},"SendMessageSuccessResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id"},"jsonrpc":{"type":"string","const":"2.0","title":"Jsonrpc","default":"2.0"},"result":{"anyOf":[{"$ref":"#/components/schemas/Task"},{"$ref":"#/components/schemas/Message"}],"title":"Result"}},"type":"object","required":["result"],"title":"SendMessageSuccessResponse","description":"Represents a successful JSON-RPC response for the `message/send` method."},"SendStreamingMessageRequest":{"description":"Represents a JSON-RPC request for the `message/stream` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/stream","default":"message/stream","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendStreamingMessageRequest","type":"object"},"ServiceAccountCreate":{"properties":{"name":{"type":"string","maxLength":63,"title":"Name","description":"Machine identity name (lowercase slug), e.g. 'claude-code' or 'github-actions'"},"scopes":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScopeItem"},"type":"array"},{"type":"null"}],"title":"Scopes","description":"Scopes granted to the token, as {scope, effect} objects (the shared RBAC write shape; token scopes are grants, so only effect='allow' is accepted). Defaults to run and read scopes: agents:run, teams:run, workflows:run, sessions:read"},"expires_in_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Expires In Days","description":"Days until the token expires (default: 90)","default":90},"never_expires":{"type":"boolean","title":"Never Expires","description":"Mint a non-expiring token. Must be set explicitly; overrides expires_in_days.","default":false},"allow_privileged_scopes":{"type":"boolean","title":"Allow Privileged Scopes","description":"Required to grant privileged scopes: any write or delete action, the admin scope, or any service_accounts scope. Privileged tokens must be deliberate, never accidental.","default":false}},"type":"object","required":["name"],"title":"ServiceAccountCreate"},"ServiceAccountCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"token":{"type":"string","title":"Token","description":"The plaintext token. Shown exactly once - store it securely now."}},"type":"object","required":["id","name","principal","token_prefix","created_at","token"],"title":"ServiceAccountCreateResponse","description":"Returned once, at creation. The token is never retrievable again."},"ServiceAccountResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","name","principal","token_prefix","created_at"],"title":"ServiceAccountResponse","description":"Service account metadata. Never includes the token hash or plaintext."},"ServiceUnavailableResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ServiceUnavailableResponse","example":{"detail":"Feature not supported by the configured service"}},"SessionConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_SessionDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"SessionConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"SessionDomainConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier for the session"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state data of the session"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when session was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when session was last updated"},"session_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type","description":"Type of session: agent, team, or workflow"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["session_id","session_name"],"title":"SessionSchema"},"SessionType":{"type":"string","enum":["agent","team","workflow"],"title":"SessionType"},"SlackChallengeResponse":{"properties":{"challenge":{"type":"string","title":"Challenge","description":"Challenge string to echo back to Slack"}},"type":"object","required":["challenge"],"title":"SlackChallengeResponse"},"SlackEventResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"}},"type":"object","title":"SlackEventResponse"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"SourceFileSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Full path/key of the file"},"name":{"type":"string","title":"Name","description":"Display name (filename)"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"File size in bytes"},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified","description":"ISO 8601 timestamp of last modification"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"MIME type of the file"}},"type":"object","required":["key","name"],"title":"SourceFileSchema","description":"Schema for a file in a content source."},"SourceFilesResponseSchema":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"ID of the content source"},"source_name":{"type":"string","title":"Source Name","description":"Name of the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Prefix filter that was applied"},"folders":{"items":{"$ref":"#/components/schemas/SourceFolderSchema"},"type":"array","title":"Folders","description":"Subfolders at this level"},"files":{"items":{"$ref":"#/components/schemas/SourceFileSchema"},"type":"array","title":"Files","description":"List of files at this level"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["source_id","source_name","meta"],"title":"SourceFilesResponseSchema","description":"Response schema for listing files in a content source."},"SourceFolderSchema":{"properties":{"prefix":{"type":"string","title":"Prefix","description":"Full prefix to use for navigating into this folder"},"name":{"type":"string","title":"Name","description":"Display name of the folder"},"is_empty":{"type":"boolean","title":"Is Empty","description":"Whether the folder contains any files","default":false}},"type":"object","required":["prefix","name"],"title":"SourceFolderSchema","description":"Schema for a folder in a content source."},"SystemMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"system","title":"Role","default":"system"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"SystemMessage","description":"A system message."},"Task":{"properties":{"artifacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Artifact"},"type":"array"},{"type":"null"}],"title":"Artifacts"},"contextId":{"type":"string","title":"Contextid"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"History"},"id":{"type":"string","title":"Id"},"kind":{"type":"string","const":"task","title":"Kind","default":"task"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"status":{"$ref":"#/components/schemas/TaskStatus"}},"type":"object","required":["contextId","id","status"],"title":"Task","description":"Represents a single, stateful operation or conversation between a client and an agent."},"TaskState":{"type":"string","enum":["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"],"title":"TaskState","description":"Defines the lifecycle states of a Task."},"TaskStatus":{"properties":{"message":{"anyOf":[{"$ref":"#/components/schemas/Message"},{"type":"null"}]},"state":{"$ref":"#/components/schemas/TaskState"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp","examples":["2023-10-27T10:00:00Z"]}},"type":"object","required":["state"],"title":"TaskStatus","description":"Represents the status of a task at a specific point in time."},"TeamResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"members":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"$ref":"#/components/schemas/TeamResponse"}]},"type":"array"},{"type":"null"}],"title":"Members"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"TeamResponse"},"TeamRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the team run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that executed this run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the team run"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this team run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this team run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this team run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this team run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"TeamRunSchema"},"TeamSessionDetailSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID used in this session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of team interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"team_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Team Data","description":"Team-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"}},"type":"object","required":["session_id","session_name"],"title":"TeamSessionDetailSchema"},"TeamSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the team"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the team"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the team"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Team execution mode (coordinate, route, broadcast, tasks)"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the team leader"}},"type":"object","title":"TeamSummaryResponse"},"TelegramStatusResponse":{"properties":{"status":{"type":"string","title":"Status","default":"available"}},"type":"object","title":"TelegramStatusResponse"},"TelegramWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status"}},"type":"object","required":["status"],"title":"TelegramWebhookResponse"},"TextInputContent":{"properties":{"type":{"type":"string","const":"text","title":"Type","default":"text"},"text":{"type":"string","title":"Text"}},"additionalProperties":true,"type":"object","required":["text"],"title":"TextInputContent","description":"A text fragment in a multimodal user message."},"TextPart":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"TextPart","description":"Represents a text segment within a message or artifact."},"Tool":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{},{"type":"null"}],"title":"Parameters"}},"additionalProperties":true,"type":"object","required":["name","description"],"title":"Tool","description":"A tool definition."},"ToolCall":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/FunctionCall"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","function"],"title":"ToolCall","description":"A tool call, modelled after OpenAI tool calls."},"ToolMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"tool","title":"Role","default":"tool"},"content":{"type":"string","title":"Content"},"toolCallId":{"type":"string","title":"Toolcallid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content","toolCallId"],"title":"ToolMessage","description":"A tool result message."},"TraceDetail":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent/workflow"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the agent/workflow"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"},"tree":{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array","title":"Tree","description":"Hierarchical tree of spans (root nodes)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at","tree"],"title":"TraceDetail","description":"Detailed trace information with hierarchical span tree"},"TraceNode":{"properties":{"id":{"type":"string","title":"Id","description":"Span ID"},"name":{"type":"string","title":"Name","description":"Span name (e.g., 'agent.run', 'llm.invoke')"},"type":{"type":"string","title":"Type","description":"Span kind (AGENT, TEAM, WORKFLOW, LLM, TOOL)"},"duration":{"type":"string","title":"Duration","description":"Human-readable duration (e.g., '123ms', '1.5s')"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"End time (Pydantic auto-serializes to ISO 8601)"},"status":{"type":"string","title":"Status","description":"Status code (OK, ERROR)"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the span"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the span"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"spans":{"anyOf":[{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array"},{"type":"null"}],"title":"Spans","description":"Child spans in the trace hierarchy"},"step_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Type","description":"Workflow step type (Step, Condition, function, Agent, Team)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional span attributes and data"},"extra_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Data","description":"Flexible field for custom attributes and additional data"}},"type":"object","required":["id","name","type","duration","start_time","end_time","status"],"title":"TraceNode","description":"Recursive node structure for rendering trace hierarchy in the frontend"},"TraceSearchGroupBy":{"type":"string","enum":["run","session"],"title":"TraceSearchGroupBy","description":"Grouping options for trace search results."},"TraceSearchRequest":{"properties":{"filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter","description":"FilterExpr DSL as JSON dict. Supports operators: EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH, AND, OR, NOT."},"group_by":{"$ref":"#/components/schemas/TraceSearchGroupBy","description":"Grouping mode: 'run' returns individual TraceDetail, 'session' returns aggregated TraceSessionStats.","default":"run"},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number (1-indexed)","default":1},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"Number of traces per page (max 100)","default":20}},"type":"object","title":"TraceSearchRequest","description":"Request body for POST /traces/search with advanced filtering.\n\nThe filter field accepts a FilterExpr DSL dict supporting composable queries\nwith AND/OR/NOT logic and operators like EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH.\n\nExample for run grouping (default):\n {\n \"filter\": {\n \"op\": \"AND\",\n \"conditions\": [\n {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n {\"op\": \"CONTAINS\", \"key\": \"user_id\", \"value\": \"admin\"}\n ]\n },\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n }\n\nExample for session grouping:\n {\n \"filter\": {\"op\": \"EQ\", \"key\": \"agent_id\", \"value\": \"my-agent\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n }"},"TraceSessionStats":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID(s) used in the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID associated with the session"},"total_traces":{"type":"integer","title":"Total Traces","description":"Total number of traces in this session"},"first_trace_at":{"type":"string","format":"date-time","title":"First Trace At","description":"Time of first trace (Pydantic auto-serializes to ISO 8601)"},"last_trace_at":{"type":"string","format":"date-time","title":"Last Trace At","description":"Time of last trace (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["session_id","total_traces","first_trace_at","last_trace_at"],"title":"TraceSessionStats","description":"Aggregated trace statistics grouped by session"},"TraceSummary":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR, UNSET)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at"],"title":"TraceSummary","description":"Summary information for trace list view"},"TracesConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_TracesDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"TracesConfig","description":"Configuration for the Traces domain of the AgentOS"},"TracesDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"TracesDomainConfig","description":"Configuration for the Traces domain of the AgentOS"},"UnauthenticatedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"UnauthenticatedResponse","example":{"detail":"Unauthenticated access","error_code":"UNAUTHENTICATED"}},"UpdateEvalRunRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"New name for the evaluation run"}},"type":"object","required":["name"],"title":"UpdateEvalRunRequest"},"UpdateSessionRequest":{"properties":{"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Updated session name"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Updated session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Updated metadata"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary","description":"Session summary"}},"type":"object","title":"UpdateSessionRequest"},"UserMemoryCreateSchema":{"properties":{"memory":{"type":"string","maxLength":5000,"minLength":1,"title":"Memory","description":"Memory content text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags to categorize the memory"}},"type":"object","required":["memory"],"title":"UserMemoryCreateSchema","description":"Define the payload expected for creating a new user memory"},"UserMemorySchema":{"properties":{"memory_id":{"type":"string","title":"Memory Id","description":"Unique identifier for the memory"},"memory":{"type":"string","title":"Memory","description":"Memory content text"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags associated with the memory"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID associated with this memory"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with this memory"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when memory was last updated"}},"type":"object","required":["memory_id","memory"],"title":"UserMemorySchema"},"UserMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"user","title":"Role","default":"user"},"content":{"anyOf":[{"type":"string"},{"items":{"oneOf":[{"$ref":"#/components/schemas/TextInputContent"},{"$ref":"#/components/schemas/ImageInputContent"},{"$ref":"#/components/schemas/AudioInputContent"},{"$ref":"#/components/schemas/VideoInputContent"},{"$ref":"#/components/schemas/DocumentInputContent"},{"$ref":"#/components/schemas/BinaryInputContent"}],"discriminator":{"propertyName":"type","mapping":{"audio":"#/components/schemas/AudioInputContent","binary":"#/components/schemas/BinaryInputContent","document":"#/components/schemas/DocumentInputContent","image":"#/components/schemas/ImageInputContent","text":"#/components/schemas/TextInputContent","video":"#/components/schemas/VideoInputContent"}}},"type":"array"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"UserMessage","description":"A user message supporting text or multimodal content."},"UserStatsSchema":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"total_memories":{"type":"integer","minimum":0.0,"title":"Total Memories","description":"Total number of memories for this user"},"last_memory_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Memory Updated At","description":"Timestamp of the most recent memory update"}},"type":"object","required":["user_id","total_memories"],"title":"UserStatsSchema","description":"Schema for user memory statistics"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"ValidationErrorResponse","example":{"detail":"Validation error","error_code":"VALIDATION_ERROR"}},"VectorDbSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the vector database"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the vector database"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the vector database"},"search_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Search Types","description":"List of supported search types (vector, keyword, hybrid)"}},"type":"object","required":["id"],"title":"VectorDbSchema"},"VectorSearchRequestSchema":{"properties":{"query":{"type":"string","title":"Query","description":"The search query text"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database ID to search in"},"knowledge_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledge Id","description":"Knowledge base ID to search in"},"vector_db_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vector Db Ids","description":"List of vector database IDs to search in"},"search_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Type","description":"The type of search to perform (vector, keyword, hybrid)"},"max_results":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Max Results","description":"The maximum number of results to return"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Filters to apply to the search results"},"meta":{"anyOf":[{"$ref":"#/components/schemas/Meta"},{"type":"null"}],"description":"Pagination metadata. Limit and page number to return a subset of results."}},"type":"object","required":["query"],"title":"VectorSearchRequestSchema","description":"Schema for vector search request."},"VectorSearchResult":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the search result document"},"content":{"type":"string","title":"Content","description":"Content text of the document"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the document"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Metadata associated with the document"},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"Usage statistics (e.g., token counts)"},"reranking_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reranking Score","description":"Reranking score for relevance"},"content_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Id","description":"ID of the source content"},"content_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Origin","description":"Origin URL or source of the content"},"size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"}},"type":"object","required":["id","content"],"title":"VectorSearchResult","description":"Schema for search result documents."},"VideoInputContent":{"properties":{"type":{"type":"string","const":"video","title":"Type","default":"video"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"VideoInputContent","description":"A video input content fragment."},"WhatsAppWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status","default":"ok"}},"type":"object","title":"WhatsAppWebhookResponse"},"WorkflowResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema","description":"Input schema for the workflow"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps","description":"List of workflow steps"},"agent":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"type":"null"}],"description":"Agent configuration if used"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamResponse"},{"type":"null"}],"description":"Team configuration if used"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"workflow_agent":{"type":"boolean","title":"Workflow Agent","description":"Whether this workflow uses a WorkflowAgent","default":false},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowResponse"},"WorkflowRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the workflow run"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the workflow"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was executed"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the workflow"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"Type of content returned"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status of the workflow run"},"step_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Results","description":"Results from each workflow step"},"step_executor_runs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Executor Runs","description":"Executor runs for each step"},"step_requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Requirements","description":"HITL step requirements (resolved state for historical display)"},"pause_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Kind","description":"Kind of HITL pause: 'step' or 'executor'"},"paused_step_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Step Name","description":"Name of the step that caused the pause"},"paused_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Paused Step Index","description":"Index of the step that caused the pause"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the workflow"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the workflow"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the workflow"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the workflow"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the workflow"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"}},"type":"object","required":["run_id"],"title":"WorkflowRunSchema"},"WorkflowSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID used in this session"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name","description":"Name of the workflow"},"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Data","description":"Complete session data"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current workflow state"},"workflow_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Data","description":"Workflow-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["session_id","session_name"],"title":"WorkflowSessionDetailSchema"},"WorkflowSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowSummaryResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} diff --git a/reference-api/openapi.yaml b/reference-api/openapi.yaml index a5277a7f8..a2c32281b 100644 --- a/reference-api/openapi.yaml +++ b/reference-api/openapi.yaml @@ -3078,6 +3078,7 @@ paths: schema: $ref: '#/components/schemas/HTTPValidationError' security: + - {} - HTTPBearer: [] /status: get: @@ -3091,6 +3092,15 @@ paths: content: application/json: schema: {} + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/UnauthenticatedResponse' + security: + - {} + - HTTPBearer: [] /a2a/agents/{id}/.well-known/agent-card.json: get: tags: diff --git a/scripts/examples_sync/apply_oneoffs.py b/scripts/examples_sync/apply_oneoffs.py index 507ce7c55..36ebb0006 100644 --- a/scripts/examples_sync/apply_oneoffs.py +++ b/scripts/examples_sync/apply_oneoffs.py @@ -16,6 +16,7 @@ import argparse import json import re +import subprocess import sys from pathlib import Path @@ -1338,6 +1339,37 @@ def normalize_terminal_newlines(path: str, count: int = 1) -> None: print(f" normalized terminal newlines: {path}") +def pin_agno_clone_commands() -> None: + """Pin tracked MDX clone commands to the sealed docs source tag.""" + global would_apply + old = "git clone https://github.com/agno-agi/agno.git" + new = "git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git" + result = subprocess.run( + ["git", "-C", str(ROOT), "ls-files", "*.mdx"], + check=True, + capture_output=True, + text=True, + ) + matches: list[tuple[Path, int]] = [] + for relative_path in result.stdout.splitlines(): + path = ROOT / relative_path + text = path.read_text(encoding="utf-8") + count = text.count(old) + if count: + matches.append((path, count)) + if not CHECK: + path.write_text(text.replace(old, new), encoding="utf-8") + if not matches: + print(" Agno clone commands already pinned to v2.7.4") + return + total = sum(count for _, count in matches) + if CHECK: + would_apply += len(matches) + print(f" would pin {total} Agno clone commands in {len(matches)} files") + else: + print(f" pinned {total} Agno clone commands in {len(matches)} files") + + def docs_path(slug: str) -> Path: assert slug.startswith("examples/"), f"not an example slug: {slug}" return ROOT / f"{slug}.mdx" @@ -1809,6 +1841,52 @@ def main() -> None: CHECK = ap.parse_args().check # Source-backed corrections identified by the generated-example review. + pin_agno_clone_commands() + sub( + "tools/mcp/parallel.mdx", + "Web search using Parallel's MCP server. API key is optional (keyless access is rate-limited).", + """Web search using Parallel's MCP server. API key is optional (keyless access is rate-limited). + + + Anthropic retired `claude-sonnet-4-20250514` on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). +""", + ) + sub( + "tools/mcp/parallel.mdx", + """ + ```bash + python cookbook/91_tools/mcp/parallel.py""", + """ + Replace `claude-sonnet-4-20250514` with `claude-sonnet-4-6` in the saved file. + + + ```bash + python cookbook/91_tools/mcp/parallel.py""", + ) + sub( + "agent-os/factories/agent/jwt-role-factory.mdx", + "---\n\n```python 03_jwt_role_factory.py", + """--- + + + The pinned source reads authorization decisions from `ctx.trusted.claims` while `JWTMiddleware(validate=False)` disables signature verification. A caller can forge the role claim until validation is enabled. + + +```python 03_jwt_role_factory.py""", + ) + sub( + "agent-os/factories/agent/jwt-role-factory.mdx", + """ + + """, + """ + + + Change `validate=False` to `validate=True`. Replace the hard-coded `JWT_SECRET` assignment with `JWT_SECRET = os.environ["JWT_VERIFICATION_KEY"]`, add `import os`, and export a unique 32-byte secret before starting the server. + + + """, + ) sub( "reasoning/models/vertex-ai/basic-reasoning-stream.mdx", 'title: "Basic Reasoning Stream"', @@ -2498,7 +2576,7 @@ def main() -> None: """## Run the Example ```bash # Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno/cookbook/06_storage/mongo # Create and activate virtual environment @@ -2513,7 +2591,7 @@ def main() -> None: Clone the repository and run the remaining commands from its root: ```bash - git clone https://github.com/agno-agi/agno.git + git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno ``` @@ -2756,7 +2834,7 @@ def main() -> None: sub( "agents/approvals/approval-team.mdx", """# Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno/cookbook/02_agents/11_approvals # Create and activate virtual environment @@ -2765,7 +2843,7 @@ def main() -> None: python team_level_approval.py""", """# Clone and set up the repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate the demo virtual environment @@ -2779,7 +2857,7 @@ def main() -> None: sub( "agents/approvals/approval-team.mdx", """# Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno/cookbook/02_agents/11_approvals # Create and activate virtual environment @@ -2788,7 +2866,7 @@ def main() -> None: python member_agent_level_approval.py""", """# Clone and set up the repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate the demo virtual environment @@ -2802,7 +2880,7 @@ def main() -> None: sub( "agents/approvals/approval-team.mdx", """# Clone and setup repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno/cookbook/02_agents/11_approvals # Create and activate virtual environment @@ -2811,7 +2889,7 @@ def main() -> None: python team_and_member_agent_both_level_approval.py""", """# Clone and set up the repo -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno # Create and activate the demo virtual environment @@ -2903,6 +2981,107 @@ def main() -> None: """, ) + sub( + "integrations/rag/agentic-rag-infinity-reranker.mdx", + """Demonstrates agentic RAG with an Infinity reranker backend (relocated integration example). + +```python agentic_rag_infinity_reranker.py""", + """Demonstrates agentic RAG with an Infinity reranker backend (relocated integration example). + + + Anthropic retired `claude-3-7-sonnet-latest` on February 19, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations). + + +```python agentic_rag_infinity_reranker.py""", + ) + sub( + "integrations/rag/agentic-rag-infinity-reranker.mdx", + """ + Save the code above as `agentic_rag_infinity_reranker.py`, then run:""", + """ + Replace `claude-3-7-sonnet-latest` with `claude-sonnet-4-6` in the saved file. + + + + Save the code above as `agentic_rag_infinity_reranker.py`, then run:""", + ) + sub( + "integrations/rag/agentic-rag-infinity-reranker.mdx", + "https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/05_integrations/rag/agentic_rag_infinity_reranker.py", + "https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/rag/agentic_rag_infinity_reranker.py", + ) + sub( + "models/openrouter/responses/structured-output.mdx", + """cd agno/cookbook/90_models/openrouter/responses + +# Create and activate virtual environment +./scripts/demo_setup.sh +source .venvs/demo/bin/activate + +# Export relevant API keys +export OPENROUTER_API_KEY="***" + +python structured_output.py""", + """cd agno + +# Create and activate virtual environment +./scripts/demo_setup.sh +source .venvs/demo/bin/activate + +# Export relevant API keys +export OPENROUTER_API_KEY="***" + +python cookbook/90_models/openrouter/responses/structured_output.py""", + ) + sub( + "storage/mongo/mongodb-for-agent.mdx", + """cd agno/cookbook/06_storage/mongo + +# Create and activate virtual environment +./scripts/demo_setup.sh +source .venvs/demo/bin/activate + +python mongodb_for_agent.py""", + """cd agno + +# Create and activate virtual environment +./scripts/demo_setup.sh +source .venvs/demo/bin/activate + +python cookbook/06_storage/mongo/mongodb_for_agent.py""", + ) + sub( + "tools/superserve-tools.mdx", + """cd agno/cookbook/91_tools + +# Create and activate virtual environment +./scripts/demo_setup.sh +source .venvs/demo/bin/activate + +python superserve_tools.py""", + """cd agno + +# Create and activate virtual environment +./scripts/demo_setup.sh +source .venvs/demo/bin/activate + +python cookbook/91_tools/superserve_tools.py""", + ) + sub( + "tools/superserve-tools.mdx", + "https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/superserve_tools.py", + "https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/superserve_tools.py", + ) + root_sub( + "other/cursor-rules.mdx", + "https://raw.githubusercontent.com/agno-agi/agno/main/.cursorrules", + "https://raw.githubusercontent.com/agno-agi/agno/v2.7.4/.cursorrules", + ) + root_sub( + "other/cursor-rules.mdx", + "https://github.com/agno-agi/agno/blob/main/.cursorrules", + "https://github.com/agno-agi/agno/blob/v2.7.4/.cursorrules", + ) root_sub( "state/agent/last-n-session-messages.mdx", diff --git a/scripts/examples_sync/generate.py b/scripts/examples_sync/generate.py index ed1ab139b..87b69a582 100644 --- a/scripts/examples_sync/generate.py +++ b/scripts/examples_sync/generate.py @@ -721,6 +721,16 @@ "In another terminal, start the [client example server](/examples/agent-os/client/server) on port 7777:", "python cookbook/05_agent_os/client/server.py", ) +A2A_CLIENT_SERVER_STEP = ( + "Start the A2A server", + "In another terminal, start the [Agno A2A server](/examples/agent-os/client-a2a/servers/agno-server) on port 7003:", + "python cookbook/05_agent_os/client_a2a/servers/agno_server.py", +) +REMOTE_AGENTOS_SERVER_STEP = ( + "Start the remote AgentOS", + "In another terminal, start the [remote AgentOS server](/examples/agent-os/remote/server) on port 7778:", + "python cookbook/05_agent_os/remote/server.py", +) AUTHENTICATED_MONGODB_STEP = ( "Run MongoDB", None, @@ -961,14 +971,38 @@ "env_remove": {"LANCEDB_API_KEY"}, }, "03_teams/22_metrics/06_loop_team_and_member_metrics.py": { - # The Azure endpoint and key are optional OpenAI-compatible overrides. - "env_remove": {"AZURE_OPENAI_API_KEY", "AZURE_OPENAI_ENDPOINT"}, + "env_add": {"AZURE_OPENAI_API_KEY", "AZURE_OPENAI_ENDPOINT"}, + "env_remove": {"OPENAI_API_KEY"}, + "pre_code_warning": "The v2.7.4 source uses the retired Azure model name `gpt-5-chat` for the leader and both members. Deploy a supported Azure chat model and update the IDs before running. See [Azure OpenAI model retirements](https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule?view=foundry-classic).", + "pre_run_steps": [ + ( + "Select a supported Azure deployment", + "Deploy a current Azure chat model, then replace all three `id=\"gpt-5-chat\"` values with that Azure deployment name. Microsoft lists `gpt-chat-latest` as the replacement for `gpt-5-chat`.", + None, + ) + ], + }, + "03_teams/14_run_control/remote_team.py": { + "repo_layout": True, + "extra_add": {"os"}, + "package_add": {"chromadb", "ddgs", "openai", "sqlalchemy"}, + "env_add": {"OPENAI_API_KEY"}, + "pre_run_steps": [REMOTE_AGENTOS_SERVER_STEP], }, "03_teams/23_checkpointing/01_crash_recovery.py": { # CRASH_DB is an internal parent-to-worker handoff with a default. "env_remove": {"CRASH_DB"}, "suppress_intro": True, }, + "03_teams/23_remote_agents/01_basic_remote_member.py": { + "pre_run_steps": [ + ( + "Configure the remote agent", + "Start an AgentOS server that registers an agent you can call. Replace `http://localhost:7777` and `explorer` in the saved file with that server's base URL and agent ID. The v2.7.4 cookbook does not include a matching `explorer` server.", + None, + ) + ], + }, "03_teams/25_time_travel/01_continue_from.py": { "intro_override": "Continue a completed team run from a selected message boundary with `acontinue_run()`.", }, @@ -1374,19 +1408,21 @@ "env_add": {"LITELLM_API_KEY", "OPENAI_API_KEY"}, "pre_run_steps": [LITELLM_STEP], }, + "05_agent_os/remote/01_remote_agent.py": { + "repo_layout": True, + "extra_add": {"os"}, + "package_add": {"chromadb", "ddgs", "openai", "sqlalchemy"}, + "env_add": {"OPENAI_API_KEY"}, + "pre_code_warning": "The pinned source docstring names removed `agent_os_setup.py` and `AgentOSRunner`. Start `server.py` in the generated Run step below; this example uses `RemoteAgent`.", + "pre_run_steps": [REMOTE_AGENTOS_SERVER_STEP], + }, "05_agent_os/remote/02_remote_team.py": { "repo_layout": True, "extra_add": {"os"}, "package_add": {"chromadb", "ddgs", "openai", "sqlalchemy"}, "env_add": {"OPENAI_API_KEY"}, "pre_code_warning": "The pinned source docstring names removed `agent_os_setup.py` and `AgentOSRunner`. Start `server.py` in the generated Run step below; this example uses `RemoteTeam`.", - "pre_run_steps": [ - ( - "Start the remote AgentOS", - "In another terminal, start the server on port 7778:", - "python cookbook/05_agent_os/remote/server.py", - ) - ], + "pre_run_steps": [REMOTE_AGENTOS_SERVER_STEP], }, "05_agent_os/remote/06_remote_agent_as_team_member.py": { "repo_layout": True, @@ -1734,6 +1770,22 @@ }, "07_knowledge/05_integrations/cloud/01_aws.py": { "env_add": {"AWS_S3_BUCKET"}, + "pre_run_steps": [ + ( + "Add the S3 report", + "Upload a readable PDF as `reports/quarterly-report.pdf` in `AWS_S3_BUCKET`, or update both hard-coded `reports/quarterly-report.pdf` and `reports/` paths in the saved file to match your bucket.", + None, + ) + ], + }, + "07_knowledge/05_integrations/cloud/02_azure.py": { + "pre_run_steps": [ + ( + "Add the Blob Storage documents", + "Upload a readable PDF as `reports/annual-report.pdf` and at least one supported file under `documents/` in `AZURE_CONTAINER_NAME`, or update both hard-coded paths in the saved file to match your container.", + None, + ) + ], }, "07_knowledge/05_integrations/cloud/05_github_dynamic_repo.py": { "env_remove": {"GITHUB_TOKEN"}, @@ -1763,7 +1815,16 @@ "intro_override": "Download a PNG locally and pass its filepath to Claude as an image input.", }, "90_models/anthropic/image_input_file_upload.py": { - "intro_override": "Upload a PNG through the Anthropic Files API and pass the returned file handle to Claude as an image input.", + "description_override": "Migrate the v2.7.4 Anthropic image upload example to a supported model and local image input.", + "intro_override": "Preserve the released Files API source, then apply the required model and image-input changes before running it.", + "pre_code_warning": "The source passes an Anthropic uploaded `FileMetadata` object to `Image.content`, which accepts bytes in Agno v2.7.4. Use the downloaded local file path directly before running.", + "pre_run_steps": [ + ( + "Use the local image directly", + "Remove the direct `Anthropic` client import and the Files API upload block. Replace `Image(content=uploaded_file)` with `Image(filepath=img_path)` and run the agent without the `if uploaded_file is not None` wrapper.", + None, + ) + ], }, "90_models/anthropic/skills/agent_with_documents.py": { "pre_code_warning": "The pinned v2.7.4 source imports `file_download_helper`, but that module is absent from the released cookbook. The source cannot run as a single saved file.", @@ -1771,6 +1832,121 @@ "replacement_heading": "Missing Source Helper", "run_replacement": "Add a local `file_download_helper.py` that provides `download_skill_files`, or wait for the cookbook to include the helper before running this source.", }, + "90_models/anthropic/skills/agent_with_excel.py": { + "pre_code_warning": "The pinned v2.7.4 source imports `file_download_helper`, but that module is absent from the released cookbook. The source cannot run as a single saved file.", + "replacement_only": True, + "replacement_heading": "Missing Source Helper", + "run_replacement": "Add a local `file_download_helper.py` that provides `download_skill_files`, or wait for the cookbook to include the helper before running this source.", + }, + "90_models/anthropic/skills/agent_with_powerpoint.py": { + "pre_code_warning": "The pinned v2.7.4 source imports `file_download_helper`, but that module is absent from the released cookbook. The source cannot run as a single saved file.", + "replacement_only": True, + "replacement_heading": "Missing Source Helper", + "run_replacement": "Add a local `file_download_helper.py` that provides `download_skill_files`, or wait for the cookbook to include the helper before running this source.", + }, + "90_models/anthropic/skills/multi_skill_agent.py": { + "pre_code_warning": "The pinned v2.7.4 source imports `file_download_helper`, but that module is absent from the released cookbook. The source cannot run as a single saved file.", + "replacement_only": True, + "replacement_heading": "Missing Source Helper", + "run_replacement": "Add a local `file_download_helper.py` that provides `download_skill_files`, or wait for the cookbook to include the helper before running this source.", + }, + "90_models/google/gemini/audio_input_file_upload.py": { + "pre_code_warning": "The source passes a Google uploaded `File` object to `Audio.content`, which accepts bytes in Agno v2.7.4. Use the local file path directly before running.", + "pre_run_steps": [ + ( + "Use the local audio directly", + "Remove the `UploadFileConfig` import and the remote file lookup and upload block. Replace `Audio(content=audio_file)` with `Audio(filepath=audio_path)`.", + None, + ), + ( + "Add the sample audio", + "Place an MP3 named `sample.mp3` next to the saved script, or update `audio_path` to point to your audio file.", + None, + ) + ], + }, + "90_models/google/gemini/audio_input_local_file_upload.py": { + "pre_run_steps": [ + ( + "Add the sample audio", + "Place an MP3 named `sample.mp3` next to the saved script, or update `audio_path` to point to your audio file.", + None, + ) + ], + }, + "90_models/google/gemini/image_input_file_upload.py": { + "package_remove": {"google-generativeai"}, + "pre_code_warning": "Google has shut down `gemini-2.0-flash-exp`. The source also passes a legacy uploaded `File` object to `Image.content`, which accepts bytes in Agno v2.7.4. Apply both edits below before running. See [Gemini 2.0 Flash model status](https://ai.google.dev/gemini-api/docs/models/gemini-2.0-flash).", + "pre_run_steps": [ + ( + "Update the Gemini model", + "Replace `gemini-2.0-flash-exp` with `gemini-3.5-flash` in the saved file.", + None, + ), + ( + "Use the local image directly", + "Remove `from google.generativeai import upload_file`, `from google.generativeai.types import file_types`, and the `image_file = upload_file(image_path)` assignment and print. Replace `Image(content=image_file)` with `Image(filepath=image_path)`.", + None, + ), + ( + "Download the sample image", + "Download the image expected by the saved script:", + "python -c \"from urllib.request import urlretrieve; urlretrieve('https://upload.wikimedia.org/wikipedia/commons/b/bf/Krakow_-_Kosciol_Mariacki.jpg', 'Krakow_-_Kosciol_Mariacki.jpg')\"", + ) + ], + }, + "90_models/google/gemini/image_input.py": { + "pre_code_warning": "Google has shut down `gemini-2.0-flash-exp`. Replace it with `gemini-3.5-flash` before running. See [Gemini 2.0 Flash model status](https://ai.google.dev/gemini-api/docs/models/gemini-2.0-flash).", + "pre_run_steps": [ + ( + "Update the Gemini model", + "Replace `gemini-2.0-flash-exp` with `gemini-3.5-flash` in the saved file.", + None, + ) + ], + }, + "90_models/google/gemini/pdf_input_file_upload.py": { + "pre_run_steps": [ + ( + "Download the sample PDF", + "Download `ThaiRecipes.pdf` next to the saved script:", + "python -c \"from urllib.request import urlretrieve; urlretrieve('https://agno-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf', 'ThaiRecipes.pdf')\"", + ) + ], + }, + "90_models/google/gemini/video_input_file_upload.py": { + "pre_code_warning": "The source passes a Google uploaded `File` object to `Video.content`, which accepts bytes in Agno v2.7.4. Use the local file path directly before running.", + "pre_run_steps": [ + ( + "Use the local video directly", + "Remove the `UploadFileConfig` import and the remote file lookup and upload block. Replace `Video(content=video_file)` with `Video(filepath=video_path)`.", + None, + ), + ( + "Download the sample video", + "Download the video expected by the saved script:", + "python -c \"from urllib.request import urlretrieve; urlretrieve('https://storage.googleapis.com/generativeai-downloads/images/GreatRedSpot.mp4', 'GreatRedSpot.mp4')\"", + ) + ], + }, + "90_models/google/gemini/video_input_local_file_upload.py": { + "pre_run_steps": [ + ( + "Add the sample video", + "Place an MP4 named `sample_video.mp4` next to the saved script, or update `video_path` to point to your video file.", + None, + ) + ], + }, + "90_models/google/gemini/file_search_image_upload.py": { + "pre_run_steps": [ + ( + "Set the image path", + "Replace `path/to/your/image.jpeg` in `IMAGE_PATH` with the path to a local JPEG or PNG file.", + None, + ) + ], + }, "90_models/google/gemini/storage_and_memory.py": { "pre_code_warning": "The pinned v2.7.4 source imports `PDFUrlKnowledgeBase`, which is not exported or defined in the release. The source fails at import time.", "replacement_only": True, @@ -1856,6 +2032,16 @@ ) ], }, + "90_models/google/gemini_interactions/deep_research_mcp.py": { + "pre_code_warning": "The pinned source uses the placeholder MCP host `mcp.example.com` and the placeholder bearer token `my-token`. It cannot contact a real MCP server unchanged.", + "pre_run_steps": [ + ( + "Configure the MCP server", + "Replace `https://mcp.example.com/mcp` with your remote MCP endpoint and replace `Bearer my-token` with the credential that server expects. Remove the `headers` entry if the server does not require it.", + None, + ) + ], + }, "12_context/02_web_exa_mcp.py": { "intro_override": "Use Exa's keyless MCP endpoint for web research. For direct SDK access, see [Exa Web Context](/examples/context/web-exa).", }, @@ -2169,6 +2355,22 @@ "05_agent_os/mcp_demo/oauth_builtin_example.py": { "intro_override": "Run AgentOS as its own OAuth authorization server for the MCP endpoint. Connecting requires the deployer secret on a consent page.", }, + "05_agent_os/tracing/dbs/basic_agent_with_sqlite.py": { + "pre_code_warning": "The pinned source tells Uvicorn to import `basic_agent_with_postgresdb:app`, but the saved module is `basic_agent_with_sqlite.py`. Replace the module name before running.", + "pre_run_steps": [ + ( + "Fix the application module", + "Replace `basic_agent_with_postgresdb:app` with `basic_agent_with_sqlite:app` in the saved file.", + None, + ) + ], + }, + "05_agent_os/mcp_demo/custom_mcp_tool_example.py": { + "pre_code_warning": "The pinned source defines an owner-only `authorize` callback without configuring JWT or MCP OAuth. Agno v2.7.4 therefore supplies `user_id=None` and rejects every MCP tool call.", + "replacement_only": True, + "replacement_heading": "Add MCP Authentication", + "run_replacement": "Start with [Built-in OAuth](/examples/agent-os/mcp-demo/oauth-builtin-example) or [WorkOS AuthKit OAuth](/examples/agent-os/mcp-demo/oauth-authkit-example). Add this source's custom `tools`, `enable_builtin_tools=False`, and `authorize` settings only after the MCP auth provider supplies a verified caller ID that matches `OWNER_IDS`.", + }, "05_agent_os/os_config/basic.py": { "pre_run_steps": [ ( @@ -2751,10 +2953,11 @@ }, "05_agent_os/rbac/asymmetric/workos_byot.py": { "env_add": {"WORKOS_API_KEY", "WORKOS_CLIENT_ID"}, + "pre_code_warning": "Run this source only in an isolated WorkOS environment. It overwrites the permissions for the generic `admin`, `member`, and `viewer` roles. It also creates or reuses three fixed demo email addresses and resets their passwords to a published demo value.", "pre_run_steps": [ ( - "Configure WorkOS", - "In the WorkOS dashboard, enable RBAC and Email + Password authentication. Use `WORKOS_API_KEY` and `WORKOS_CLIENT_ID` from the same WorkOS environment.", + "Configure an isolated WorkOS environment", + "Use a disposable environment that contains no shared roles or users. Enable RBAC and Email + Password authentication, then use `WORKOS_API_KEY` and `WORKOS_CLIENT_ID` from that same environment.", None, ) ], @@ -3181,6 +3384,27 @@ ) ], }, + "91_tools/mcp/mem0.py": { + "env_add": {"MEM0_API_KEY"}, + "pre_code_warning": "The v2.7.4 source targets the archived local Mem0 MCP SSE server. Mem0's maintained service is an authenticated Streamable HTTP endpoint. Update the connection before running. See [Mem0 MCP](https://docs.mem0.ai/platform/mem0-mcp).", + "pre_run_steps": [ + ( + "Use the maintained Mem0 MCP endpoint", + "Add `import os`, set `mcp_server_url = \"https://mcp.mem0.ai/mcp\"`, change the `MCPTools` transport to `streamable-http`, and add `header_provider=lambda: {\"Authorization\": f\"Bearer {os.environ['MEM0_API_KEY']}\"}`.", + None, + ) + ], + }, + "91_tools/mcp/streamable_http_transport/client.py": { + "repo_layout": True, + "pre_run_steps": [ + ( + "Start the Streamable HTTP server", + "In another terminal, start the released sibling MCP server on port 8000:", + "python cookbook/91_tools/mcp/streamable_http_transport/server.py", + ) + ], + }, "91_tools/crawl4ai_tools.py": { "description_override": "Define three Crawl4aiTools configurations and execute the two pruning configurations.", "intro_override": "The source defines three Crawl4aiTools agents. It runs the default pruning agent and the explicit `enable_crawl` agent; the raw no-pruning agent is configured but not executed.", @@ -3200,12 +3424,62 @@ }, } +for _trusted_claims_example in ( + "05_agent_os/factories/agent/04_tiered_model_factory.py", + "05_agent_os/factories/team/02_tiered_team_factory.py", + "05_agent_os/factories/workflow/02_tiered_workflow_factory.py", +): + SOURCE_RENDER_OVERRIDES[_trusted_claims_example] = { + "pre_code_warning": "The pinned source reads authorization decisions from `ctx.trusted.claims` while `JWTMiddleware(validate=False)` disables signature verification. A caller can forge the role or tier claim until validation is enabled.", + "env_add": {"JWT_VERIFICATION_KEY"}, + "pre_run_steps": [ + ( + "Enable JWT signature verification", + "Change `validate=False` to `validate=True`. Replace the hard-coded `JWT_SECRET` assignment with `JWT_SECRET = os.environ[\"JWT_VERIFICATION_KEY\"]`, add `import os`, and export a unique 32-byte secret before starting the server.", + None, + ) + ], + } + +for _nexus_example in ("basic.py", "tool_use.py"): + SOURCE_RENDER_OVERRIDES[f"90_models/nexus/{_nexus_example}"] = { + "env_add": {"ANTHROPIC_API_KEY"}, + "env_title": "Export your Anthropic API key", + "pre_code_warning": "The v2.7.4 source requests `claude-sonnet-4-20250514`, which Anthropic retired on June 15, 2026. Replace it with `claude-sonnet-4-6` before running. See [Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations).", + "pre_run_steps": [ + ( + "Start the Nexus gateway", + "Install and start Nexus on `http://localhost:8000` using the [Nexus setup guide](https://nexusrouter.com/docs). Configure its Anthropic provider with `ANTHROPIC_API_KEY` and explicitly register `claude-sonnet-4-6`. Replace `anthropic/claude-sonnet-4-20250514` in the saved file with `anthropic/claude-sonnet-4-6`.", + None, + ) + ], + } + +for _a2a_client_example in ( + "01_basic_messaging.py", + "02_streaming.py", + "03_multi_turn.py", + "04_error_handling.py", +): + SOURCE_RENDER_OVERRIDES[f"05_agent_os/client_a2a/{_a2a_client_example}"] = { + "repo_layout": True, + "needs_agno": True, + "extra_add": {"a2a", "os"}, + "package_add": {"openai", "uvicorn"}, + "env_add": {"OPENAI_API_KEY"}, + "pre_run_steps": [A2A_CLIENT_SERVER_STEP], + } + for _client_example in ( "01_basic_client.py", + "02_run_agents.py", "03_memory_operations.py", "04_session_management.py", "05_knowledge_search.py", + "06_run_teams.py", + "07_run_workflows.py", "08_run_evals.py", + "09_upload_content.py", "10_sse_reconnect.py", "11_team_sse_reconnect.py", "13_workflow_sse_reconnect.py", @@ -4639,6 +4913,47 @@ def apply_source_render_override( """Apply reviewed source-specific metadata and return rendering controls.""" rel = cookbook_rel.removeprefix("cookbook/") override = dict(SOURCE_RENDER_OVERRIDES.get(rel, {})) + if any( + 'os.getenv("JWT_VERIFICATION_KEY", "your-secret-key-at-least-256-bits-long")' + in source + for source in srcs + ): + override.setdefault( + "run_warning", + "The source falls back to a public demonstration secret. Local demos can use it, but before exposing this server set `JWT_VERIFICATION_KEY` to a private random value of at least 32 bytes and use the same value to sign tokens.", + ) + retired_claude_models = ( + ("claude-sonnet-4-20250514", "claude-sonnet-4-6", "June 15, 2026"), + ("claude-opus-4-20250514", "claude-opus-4-8", "June 15, 2026"), + ("claude-3-7-sonnet-20250219", "claude-sonnet-4-6", "February 19, 2026"), + ("claude-3-7-sonnet-latest", "claude-sonnet-4-6", "February 19, 2026"), + ("claude-3-5-sonnet-20241022", "claude-sonnet-4-6", "October 28, 2025"), + ("claude-3-5-sonnet-latest", "claude-sonnet-4-6", "October 28, 2025"), + ) + for retired_model, replacement_model, retirement_date in retired_claude_models: + if not any(retired_model in source for source in srcs): + continue + retired_claude_warning = ( + f"Anthropic retired `{retired_model}` on {retirement_date}. " + f"Replace it with `{replacement_model}` before running. See " + "[Claude model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations)." + ) + current_warning = override.get("pre_code_warning") + if not current_warning: + override["pre_code_warning"] = retired_claude_warning + elif replacement_model not in str(current_warning): + override["pre_code_warning"] = f"{current_warning} {retired_claude_warning}" + current_steps = list(override.get("pre_run_steps", [])) + if not any(replacement_model in str(step) for step in current_steps): + current_steps.insert( + 0, + ( + "Update the Claude model", + f"Replace `{retired_model}` with `{replacement_model}` in the saved file.", + None, + ), + ) + override["pre_run_steps"] = current_steps sample_image_match = re.search( r'\.joinpath\(["\'](sample\.jpe?g)["\']\)', srcs[0], @@ -4869,8 +5184,10 @@ def apply_source_render_override( return override -def source_link(cookbook_rel: str, render_override: dict[str, object], agno_root: Path) -> str: - """Build a source link, optionally pinned to the exact Agno source tag.""" +def source_link( + cookbook_rel: str, render_override: dict[str, object], agno_root: Path +) -> tuple[str, str]: + """Build a source link and return its validated Agno revision.""" ref = render_override.get("source_link_ref", "pinned-tag") assert isinstance(ref, str), f"{cookbook_rel}: source_link_ref must be a string" if ref == "pinned-tag": @@ -4887,7 +5204,7 @@ def source_link(cookbook_rel: str, render_override: dict[str, object], agno_root assert re.fullmatch(r"[A-Za-z0-9][A-Za-z0-9._/-]*", ref), ( f"{cookbook_rel}: invalid source link ref {ref!r}" ) - return f"https://github.com/agno-agi/agno/blob/{ref}/{cookbook_rel}" + return f"https://github.com/agno-agi/agno/blob/{ref}/{cookbook_rel}", ref def missing_docstring_cookbook_paths(docstring: str, agno_root: Path) -> list[str]: @@ -4938,7 +5255,7 @@ def render( render_override["pre_code_warning"] = ( f"{warning} Follow the generated Run step below." ) - full_source_url = source_link(cookbook_rel, render_override, agno_root) + full_source_url, source_ref = source_link(cookbook_rel, render_override, agno_root) if "intro_override" in render_override: intro_override = render_override["intro_override"] assert isinstance(intro_override, str) and intro_override.strip(), ( @@ -5141,7 +5458,9 @@ def render( parts.append(' ') parts.append(" Clone the repository and run the remaining commands from its root:") parts.append(" ```bash") - parts.append(" git clone https://github.com/agno-agi/agno.git") + parts.append( + f" git clone --branch {source_ref} --depth 1 https://github.com/agno-agi/agno.git" + ) parts.append(" cd agno") parts.append(" ```") parts.append(" ") diff --git a/scripts/make_openapi.py b/scripts/make_openapi.py index 8a5da6d4e..7f40dea53 100644 --- a/scripts/make_openapi.py +++ b/scripts/make_openapi.py @@ -1412,13 +1412,21 @@ def nullable_string_schema() -> dict: if agui_path is not None: agui_run = agui_path["post"] assert agui_run.get("security") is None - agui_run["security"] = [{"HTTPBearer": []}] + # AgentOS accepts anonymous interface requests until authorization is + # configured. A bearer token becomes required only in an authenticated + # deployment, so the OpenAPI security alternatives must include the + # anonymous case. + agui_run["security"] = [{}, {"HTTPBearer": []}] agui_success = agui_run["responses"]["200"] assert agui_success["description"] == "Successful Response" assert agui_success["content"] == {"application/json": {"schema": {}}} agui_success["description"] = "Server-sent event stream" agui_success["content"] = {"text/event-stream": {"schema": {"type": "string"}}} + agui_status = spec["paths"]["/status"]["get"] + assert agui_status.get("security") is None + agui_status["security"] = [{}, {"HTTPBearer": []}] + a2a_families = ( ("agents", "Agent"), ("teams", "Team"), @@ -1919,14 +1927,16 @@ def nullable_string_schema() -> dict: assert response_schema == {} response_schema.update(deepcopy(fork_response_schema)) - for path_item in spec["paths"].values(): + for path, path_item in spec["paths"].items(): for method in ("get", "post", "put", "patch", "delete", "head", "options", "trace"): operation = path_item.get(method) if not isinstance(operation, dict) or not operation.get("security"): continue if "401" not in operation["responses"]: add_response(operation, "401", "Unauthorized", "UnauthenticatedResponse") - if "403" not in operation["responses"]: + # AG-UI status requires authentication when AgentOS auth is enabled, + # but it has no scope check and therefore cannot return 403. + if (path, method) != ("/status", "get") and "403" not in operation["responses"]: add_response(operation, "403", "Forbidden", "ForbiddenResponse") sort_responses(operation) diff --git a/tools/mcp/mcp-toolbox.mdx b/tools/mcp/mcp-toolbox.mdx index bc331b315..d19bec2c8 100644 --- a/tools/mcp/mcp-toolbox.mdx +++ b/tools/mcp/mcp-toolbox.mdx @@ -28,7 +28,7 @@ Get started with MCPToolbox instantly using our fully functional demo. ```bash # Clone the repo and navigate to the demo folder -git clone https://github.com/agno-agi/agno.git +git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git cd agno/cookbook/91_tools/mcp/mcp_toolbox_demo # Start the database and MCP Toolbox servers From d29d9ae554803815ed625b0d748fe3c43483d994 Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 12:14:31 +0100 Subject: [PATCH 37/47] docs: close final v2.7.4 convergence gaps --- agent-os/interfaces/ag-ui/introduction.mdx | 4 +- agent-os/interfaces/whatsapp/introduction.mdx | 2 +- agent-os/multi-framework/antigravity.mdx | 16 +- agent-os/multi-framework/claude-agent-sdk.mdx | 10 +- agent-os/multi-framework/dspy.mdx | 10 +- agent-os/multi-framework/langgraph.mdx | 12 +- agent-os/multi-framework/overview.mdx | 2 +- agent-os/remote-execution/remote-agent.mdx | 140 ++++++++++-------- agent-os/security/authorization/overview.mdx | 2 +- .../authorization/service-accounts.mdx | 2 +- .../security/authorization/user-isolation.mdx | 2 +- agent-os/studio/tools.mdx | 2 +- context-providers/overview.mdx | 2 +- context-providers/providers/calendar.mdx | 2 +- context-providers/providers/database.mdx | 2 +- context-providers/providers/drive.mdx | 2 +- context-providers/providers/filesystem.mdx | 2 +- context-providers/providers/gmail.mdx | 2 +- context-providers/providers/overview.mdx | 12 +- context-providers/providers/slack.mdx | 2 +- context-providers/providers/web.mdx | 2 +- context-providers/providers/wiki.mdx | 4 +- context-providers/providers/workspace.mdx | 2 +- context/agent/overview.mdx | 2 +- context/team/overview.mdx | 2 +- database/providers/clickhouse/overview.mdx | 4 +- .../agent-os/factories/agent/hitl-factory.mdx | 2 +- .../factories/agent/jwt-role-factory.mdx | 2 +- .../agent-os/factories/jwt-role-factory.mdx | 2 +- .../factories/tenant-agent-factory.mdx | 2 +- examples/agents/advanced/sse-reconnect.mdx | 2 +- examples/agents/approvals/approval-team.mdx | 6 +- .../rag/agentic-rag-with-lightrag.mdx | 2 +- .../rag/local-rag-langchain-qdrant.mdx | 2 +- examples/teams/other/sse-reconnect.mdx | 2 +- examples/tools/agentql-tools.mdx | 2 +- examples/tools/airflow-tools.mdx | 2 +- examples/tools/apify-tools.mdx | 2 +- examples/tools/aws-lambda-tools.mdx | 2 +- examples/tools/aws-ses-tools.mdx | 2 +- examples/tools/bitbucket-tools.mdx | 2 +- examples/tools/brandfetch-tools.mdx | 2 +- examples/tools/cartesia-tools.mdx | 2 +- examples/tools/custom-api-tools.mdx | 2 +- examples/tools/daytona-tools.mdx | 2 +- examples/tools/desi-vocal-tools.mdx | 2 +- examples/tools/docling-tools.mdx | 2 +- examples/tools/elevenlabs-tools.mdx | 2 +- examples/tools/financial-datasets-tools.mdx | 2 +- examples/tools/github-tools.mdx | 2 +- examples/tools/google-drive.mdx | 2 +- examples/tools/google-maps-tools.mdx | 2 +- examples/tools/googlecalendar-tools.mdx | 2 +- examples/tools/linear-tools.mdx | 2 +- examples/tools/mem0-tools.mdx | 2 +- examples/tools/multiple-tools.mdx | 2 +- examples/tools/nano-banana-tools.mdx | 2 +- examples/tools/neo4j-tools.mdx | 2 +- examples/tools/notion-tools.mdx | 2 +- examples/tools/opencv-tools.mdx | 2 +- examples/tools/openweather-tools.mdx | 2 +- examples/tools/parallel-tools.mdx | 2 +- examples/tools/plivo-tools.mdx | 2 +- examples/tools/python-tools.mdx | 2 +- examples/tools/reddit-tools.mdx | 2 +- examples/tools/salesforce-tools.mdx | 2 +- examples/tools/seltz-tools.mdx | 2 +- examples/tools/serper-tools.mdx | 2 +- examples/tools/shopify-tools.mdx | 2 +- examples/tools/telegram-tools.mdx | 2 +- examples/tools/trello-tools.mdx | 2 +- examples/tools/twilio-tools.mdx | 2 +- examples/tools/unsplash-tools.mdx | 2 +- examples/tools/valyu-tools.mdx | 2 +- examples/tools/visualization-tools.mdx | 2 +- examples/tools/webex-tools.mdx | 2 +- examples/tools/website-tools-knowledge.mdx | 2 +- examples/tools/x-tools.mdx | 2 +- examples/tools/zep-tools.mdx | 2 +- examples/tools/zoom-tools.mdx | 2 +- hitl/approval.mdx | 2 +- knowledge/agents/overview.mdx | 2 +- memory/agent/overview.mdx | 2 +- memory/best-practices.mdx | 2 +- memory/team/overview.mdx | 2 +- memory/working-with-memories/overview.mdx | 2 +- reasoning/reasoning-agents.mdx | 2 +- reference-api/openapi.json | 2 +- reference-api/openapi.yaml | 115 ++++++++++++++ reference/cli/agnoctl.mdx | 2 +- reference/knowledge/embedder/vllm.mdx | 4 +- scripts/examples_sync/apply_oneoffs.py | 61 +++++++- scripts/examples_sync/check_integrity.py | 18 ++- scripts/examples_sync/dedupe_titles.py | 3 + scripts/examples_sync/drive_sync.py | 1 + scripts/examples_sync/generate.py | 33 +++++ scripts/examples_sync/plan.py | 1 + scripts/make_openapi.py | 20 ++- sessions/metrics/agent.mdx | 2 +- sessions/metrics/team.mdx | 2 +- sessions/metrics/workflow.mdx | 2 +- sessions/workflow-sessions.mdx | 2 +- state/agent/overview.mdx | 2 +- state/workflows/overview.mdx | 4 +- tools/agent.mdx | 2 +- tools/exceptions.mdx | 2 +- tools/mcp/mcp-toolbox.mdx | 10 +- tools/toolkits/agent-os/studio.mdx | 2 +- tools/toolkits/database/redshift.mdx | 2 +- tools/toolkits/local/coding.mdx | 4 +- tools/toolkits/local/workspace.mdx | 6 +- tools/toolkits/models/groq.mdx | 4 +- tools/toolkits/models/openai.mdx | 2 +- tools/toolkits/others/antigravity.mdx | 10 +- tools/toolkits/others/docling.mdx | 2 +- tools/toolkits/others/financial-datasets.mdx | 2 +- tools/toolkits/others/google-drive.mdx | 4 +- tools/toolkits/others/google-maps.mdx | 2 +- tools/toolkits/others/google-slides.mdx | 4 +- tools/toolkits/others/googlecalendar.mdx | 2 +- tools/toolkits/others/llms-txt.mdx | 4 +- tools/toolkits/others/salesforce.mdx | 2 +- tools/toolkits/others/superserve.mdx | 2 +- tools/toolkits/others/twelvelabs.mdx | 2 +- tools/toolkits/others/user-feedback.mdx | 2 +- tools/toolkits/others/web-browser.mdx | 2 +- tools/toolkits/search/parallel.mdx | 2 +- tools/toolkits/search/perplexity.mdx | 2 +- tools/toolkits/search/scavio.mdx | 2 +- tools/toolkits/search/websearch.mdx | 2 +- tools/toolkits/social/gmail.mdx | 2 +- tools/toolkits/social/whatsapp.mdx | 2 +- tools/toolkits/web-scrape/crawl4ai.mdx | 3 +- use-cases/data-agents/querying-your-data.mdx | 2 +- .../data-agents/self-correcting-agents.mdx | 2 +- use-cases/data-labeling/classification.mdx | 12 +- use-cases/data-labeling/llm-as-judge.mdx | 2 +- use-cases/data-labeling/multimodal-inputs.mdx | 10 +- use-cases/data-labeling/overview.mdx | 4 +- use-cases/data-labeling/preference-data.mdx | 2 +- use-cases/data-labeling/quality-pipeline.mdx | 2 +- .../data-labeling/structured-extraction.mdx | 14 +- .../deep-research/institutional-learning.mdx | 2 +- .../deep-research/orchestration-patterns.mdx | 4 +- use-cases/deep-research/overview.mdx | 2 +- .../deep-research/parallel-investigation.mdx | 2 +- use-cases/deep-research/serve-and-embed.mdx | 2 +- .../deep-research/structured-deliverable.mdx | 2 +- .../batch-and-durability.mdx | 6 +- use-cases/document-processing/contracts.mdx | 2 +- .../document-processing/forms-and-intake.mdx | 2 +- .../human-routing-and-eval.mdx | 6 +- .../invoices-and-receipts.mdx | 2 +- use-cases/document-processing/overview.mdx | 4 +- .../product-agents/connecting-your-data.mdx | 2 +- use-cases/product-agents/interfaces.mdx | 2 +- .../product-agents/sessions-and-memory.mdx | 2 +- workflows/background-execution.mdx | 6 +- workflows/hitl/executor.mdx | 4 +- workflows/hitl/nested.mdx | 4 +- workflows/hitl/output-review.mdx | 2 +- workflows/hitl/overview.mdx | 2 +- workflows/hitl/step.mdx | 6 +- workflows/hitl/timeout.mdx | 2 +- workflows/running-workflows.mdx | 2 +- 165 files changed, 560 insertions(+), 295 deletions(-) diff --git a/agent-os/interfaces/ag-ui/introduction.mdx b/agent-os/interfaces/ag-ui/introduction.mdx index 3804e3fd2..7c6aec4a6 100644 --- a/agent-os/interfaces/ag-ui/introduction.mdx +++ b/agent-os/interfaces/ag-ui/introduction.mdx @@ -55,7 +55,7 @@ With Dojo running, open `http://localhost:3000` and select the Agno agent. -Additional examples are available in the [cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/05_agent_os/interfaces/agui/). +Additional examples are available in the [cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/05_agent_os/interfaces/agui/). ## Custom Events @@ -156,4 +156,4 @@ Use `AgentOS.serve` to run the app with Uvicorn. | `workers` | `Optional[int]` | `None` | Number of Uvicorn worker processes. | | `access_log` | `bool` | `False` | Enable Uvicorn access logging. | -See [cookbook examples](https://github.com/agno-agi/agno/tree/main/cookbook/05_agent_os/interfaces/agui/) for updated interface patterns. +See [cookbook examples](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/05_agent_os/interfaces/agui/) for updated interface patterns. diff --git a/agent-os/interfaces/whatsapp/introduction.mdx b/agent-os/interfaces/whatsapp/introduction.mdx index 4b7ce4465..cb98c8c29 100644 --- a/agent-os/interfaces/whatsapp/introduction.mdx +++ b/agent-os/interfaces/whatsapp/introduction.mdx @@ -177,7 +177,7 @@ agent = Agent( ) ``` -See the [interactive concierge example](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/interfaces/whatsapp/interactive_concierge.py) for a full agent using all interactive features. +See the [interactive concierge example](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/interfaces/whatsapp/interactive_concierge.py) for a full agent using all interactive features. For parameters and methods, see the [WhatsAppTools reference](/tools/toolkits/social/whatsapp). diff --git a/agent-os/multi-framework/antigravity.mdx b/agent-os/multi-framework/antigravity.mdx index 542845202..217b08a8e 100644 --- a/agent-os/multi-framework/antigravity.mdx +++ b/agent-os/multi-framework/antigravity.mdx @@ -127,30 +127,30 @@ agent.download_environment_snapshot("snapshot.tar", session_id="s1") ## Examples - + Serve an Antigravity agent through AgentOS with persisted sessions. - + Call the agent directly with `.run()` and `.print_response()`. - + Reuse the sandbox across turns with `session_id`. - + Preload files into the sandbox from inline / GCS / repo sources. - + Register and invoke a named custom agent. - + Define an agent from `agent.yaml` + `AGENTS.md` + `workspace/` + `skills/`. - + Download the sandbox filesystem as a tar archive. ## Developer Resources -- [Cookbook examples](https://github.com/agno-agi/agno/tree/main/cookbook/frameworks/antigravity) +- [Cookbook examples](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/frameworks/antigravity) - [Antigravity as a tool](/tools/toolkits/others/antigravity) diff --git a/agent-os/multi-framework/claude-agent-sdk.mdx b/agent-os/multi-framework/claude-agent-sdk.mdx index 5e4f2e96b..3ea1c4b8c 100644 --- a/agent-os/multi-framework/claude-agent-sdk.mdx +++ b/agent-os/multi-framework/claude-agent-sdk.mdx @@ -59,21 +59,21 @@ export ANTHROPIC_API_KEY=sk-ant-... ## Examples - + Serve a Claude Code agent through AgentOS. - + Call the agent directly with `.run()` and `.print_response()`. - + Extend Claude Code with your own MCP servers. - + Resume conversations across runs with `session_id`. ## Developer Resources -- [Cookbook examples](https://github.com/agno-agi/agno/tree/main/cookbook/frameworks/claude-agent-sdk) +- [Cookbook examples](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/frameworks/claude-agent-sdk) - [Claude Agent SDK on GitHub](https://github.com/anthropics/claude-agent-sdk-python) diff --git a/agent-os/multi-framework/dspy.mdx b/agent-os/multi-framework/dspy.mdx index 325a66ee6..09541982f 100644 --- a/agent-os/multi-framework/dspy.mdx +++ b/agent-os/multi-framework/dspy.mdx @@ -53,21 +53,21 @@ export OPENAI_API_KEY=sk-... ## Examples - + Serve a DSPy program through AgentOS. - + Call the agent directly with `.run()` and `.print_response()`. - + Use `dspy.ReAct` to call tools from the program. - + Resume conversations across runs with `session_id`. ## Developer Resources -- [Cookbook examples](https://github.com/agno-agi/agno/tree/main/cookbook/frameworks/dspy) +- [Cookbook examples](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/frameworks/dspy) - [DSPy documentation](https://dspy.ai/) diff --git a/agent-os/multi-framework/langgraph.mdx b/agent-os/multi-framework/langgraph.mdx index 74c4cd703..936dec728 100644 --- a/agent-os/multi-framework/langgraph.mdx +++ b/agent-os/multi-framework/langgraph.mdx @@ -61,24 +61,24 @@ export OPENAI_API_KEY=sk-... ## Examples - + Serve a compiled LangGraph through AgentOS. - + Call the agent directly with `.run()` and `.print_response()`. - + Tool nodes that surface as Agno tool events. - + Resume conversations across runs with `session_id`. - + Replay and fork runs from LangGraph checkpoints. ## Developer Resources -- [Cookbook examples](https://github.com/agno-agi/agno/tree/main/cookbook/frameworks/langgraph) +- [Cookbook examples](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/frameworks/langgraph) - [LangGraph documentation](https://langchain-ai.github.io/langgraph/) diff --git a/agent-os/multi-framework/overview.mdx b/agent-os/multi-framework/overview.mdx index 14f5af992..774aff196 100644 --- a/agent-os/multi-framework/overview.mdx +++ b/agent-os/multi-framework/overview.mdx @@ -108,4 +108,4 @@ Agno-specific capabilities like delegation, knowledge, dependencies, and hooks l ## Developer Resources -- [Cookbook examples](https://github.com/agno-agi/agno/tree/main/cookbook/frameworks) +- [Cookbook examples](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/frameworks) diff --git a/agent-os/remote-execution/remote-agent.mdx b/agent-os/remote-execution/remote-agent.mdx index 5972b18be..67510f8ba 100644 --- a/agent-os/remote-execution/remote-agent.mdx +++ b/agent-os/remote-execution/remote-agent.mdx @@ -35,19 +35,23 @@ asyncio.run(main()) Stream responses in real-time for a better user experience: ```python +import asyncio from agno.agent import RemoteAgent -agent = RemoteAgent( - base_url="http://localhost:7778", # Running on localhost for this example - agent_id="assistant-agent", -) - -async for event in agent.arun( - "Tell me a story about a brave knight", - stream=True, -): - if hasattr(event, "content") and event.content: - print(event.content, end="", flush=True) +async def main(): + agent = RemoteAgent( + base_url="http://localhost:7778", # Running on localhost for this example + agent_id="assistant-agent", + ) + + async for event in agent.arun( + "Tell me a story about a brave knight", + stream=True, + ): + if hasattr(event, "content") and event.content: + print(event.content, end="", flush=True) + +asyncio.run(main()) ``` ## Configuration Access @@ -55,24 +59,28 @@ async for event in agent.arun( Access the remote agent's configuration: ```python +import asyncio from agno.agent import RemoteAgent -agent = RemoteAgent( - base_url="http://localhost:7778", # Running on localhost for this example - agent_id="assistant-agent", -) +async def main(): + agent = RemoteAgent( + base_url="http://localhost:7778", # Running on localhost for this example + agent_id="assistant-agent", + ) + + # Access cached properties + print(f"Name: {agent.name}") + print(f"Description: {agent.description}") + print(f"Tools: {agent.tools}") -# Access cached properties -print(f"Name: {agent.name}") -print(f"Description: {agent.description}") -print(f"Tools: {agent.tools}") + # Get fresh configuration + config = await agent.get_agent_config() + print(f"Model: {config.model}") -# Get fresh configuration -config = await agent.get_agent_config() -print(f"Model: {config.model}") + # Force refresh cache + await agent.refresh_config() -# Force refresh cache -await agent.refresh_config() +asyncio.run(main()) ``` ## Authentication @@ -80,35 +88,43 @@ await agent.refresh_config() For authenticated AgentOS instances: ```python +import asyncio from agno.agent import RemoteAgent -agent = RemoteAgent( - base_url="http://localhost:7778", # Running on localhost for this example - agent_id="assistant-agent", -) +async def main(): + agent = RemoteAgent( + base_url="http://localhost:7778", # Running on localhost for this example + agent_id="assistant-agent", + ) + + await agent.arun( + "Hello", + auth_token="your-jwt-token", + ) -response = await agent.arun( - "Hello", - auth_token="your-jwt-token", -) +asyncio.run(main()) ``` ## Error Handling ```python +import asyncio from agno.agent import RemoteAgent from agno.exceptions import RemoteServerUnavailableError -agent = RemoteAgent( - base_url="http://localhost:7778", # Running on localhost for this example - agent_id="assistant-agent", -) +async def main(): + agent = RemoteAgent( + base_url="http://localhost:7778", # Running on localhost for this example + agent_id="assistant-agent", + ) + + try: + await agent.arun("Hello") + except RemoteServerUnavailableError as e: + print(f"Cannot connect to server: {e.message}") + # Handle fallback logic -try: - response = await agent.arun("Hello") -except RemoteServerUnavailableError as e: - print(f"Cannot connect to server: {e.message}") - # Handle fallback logic +asyncio.run(main()) ``` ## A2A Protocol Support @@ -118,34 +134,42 @@ except RemoteServerUnavailableError as e: ### Connecting to Agno AgentOS via A2A interface ```python +import asyncio from agno.agent import RemoteAgent -agent = RemoteAgent( - base_url="http://localhost:7778/a2a/agents/my-agent", # Running on localhost for this example - agent_id="my-agent", - protocol="a2a", - a2a_protocol="rest", # Agno A2A servers use REST protocol by default -) +async def main(): + agent = RemoteAgent( + base_url="http://localhost:7778/a2a/agents/my-agent", # Running on localhost for this example + agent_id="my-agent", + protocol="a2a", + a2a_protocol="rest", # Agno A2A servers use REST protocol by default + ) + + response = await agent.arun("Tell me an interesting fact") + print(response.content) -response = await agent.arun("Tell me an interesting fact") -print(response.content) +asyncio.run(main()) ``` ### Connecting to Google ADK ```python +import asyncio from agno.agent import RemoteAgent -# Connect to a Google ADK A2A server -agent = RemoteAgent( - base_url="http://localhost:8001", # Running on localhost for this example - agent_id="facts_agent", - protocol="a2a", - a2a_protocol="json-rpc", # Google ADK uses JSON-RPC -) +async def main(): + # Connect to a Google ADK A2A server + agent = RemoteAgent( + base_url="http://localhost:8001", # Running on localhost for this example + agent_id="facts_agent", + protocol="a2a", + a2a_protocol="json-rpc", # Google ADK uses JSON-RPC + ) -response = await agent.arun("Tell me an interesting fact") -print(response.content) + response = await agent.arun("Tell me an interesting fact") + print(response.content) + +asyncio.run(main()) ``` ## Developer Resources diff --git a/agent-os/security/authorization/overview.mdx b/agent-os/security/authorization/overview.mdx index 311d1b6d8..33ec37c27 100644 --- a/agent-os/security/authorization/overview.mdx +++ b/agent-os/security/authorization/overview.mdx @@ -107,7 +107,7 @@ app = agent_os.get_app() Scope sessions, memory, and traces per user with `user_isolation=True`. diff --git a/agent-os/security/authorization/service-accounts.mdx b/agent-os/security/authorization/service-accounts.mdx index 36e761f08..f890d98f1 100644 --- a/agent-os/security/authorization/service-accounts.mdx +++ b/agent-os/security/authorization/service-accounts.mdx @@ -191,4 +191,4 @@ On an instance with no auth configured, a token that cannot be verified is ignor | Mint tokens from the terminal | [agno tokens](/cli/tokens) | | See the full scope reference | [Scopes](/agent-os/security/authorization/scopes) | | Understand per-user data scoping | [User Isolation](/agent-os/security/authorization/user-isolation) | -| Run the cookbook example | [agent_os_with_service_accounts.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/middleware/agent_os_with_service_accounts.py) | +| Run the cookbook example | [agent_os_with_service_accounts.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/middleware/agent_os_with_service_accounts.py) | diff --git a/agent-os/security/authorization/user-isolation.mdx b/agent-os/security/authorization/user-isolation.mdx index 6ea3281ac..148d2e2a8 100644 --- a/agent-os/security/authorization/user-isolation.mdx +++ b/agent-os/security/authorization/user-isolation.mdx @@ -53,4 +53,4 @@ A machine token stamps its sessions and memories with its own principal, so an u |------|-------| | Issue tokens with the `sub` claim | [Tokens](/agent-os/security/authorization/tokens) | | Mint machine tokens | [Service Accounts](/agent-os/security/authorization/service-accounts) | -| See the user isolation cookbook example | [user_isolation.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/rbac/symmetric/user_isolation.py) | +| See the user isolation cookbook example | [user_isolation.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/rbac/symmetric/user_isolation.py) | diff --git a/agent-os/studio/tools.mdx b/agent-os/studio/tools.mdx index 81f5da153..16823714e 100644 --- a/agent-os/studio/tools.mdx +++ b/agent-os/studio/tools.mdx @@ -108,4 +108,4 @@ if __name__ == "__main__": - [StudioTools toolkit reference](/tools/toolkits/agent-os/studio) - [Human-in-the-Loop overview](/hitl/overview) - [Studio Registry](/agent-os/studio/registry) -- [StudioTools cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/05_agent_os/studio_tool) \ No newline at end of file +- [StudioTools cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/05_agent_os/studio_tool) \ No newline at end of file diff --git a/context-providers/overview.mdx b/context-providers/overview.mdx index 6bc09a47f..2bc738045 100644 --- a/context-providers/overview.mdx +++ b/context-providers/overview.mdx @@ -167,7 +167,7 @@ The agent sees `query_fs`, `query_web`, `query_database`, `update_database` and ## Resources - + Working examples for every provider diff --git a/context-providers/providers/calendar.mdx b/context-providers/providers/calendar.mdx index 616500650..7d230763c 100644 --- a/context-providers/providers/calendar.mdx +++ b/context-providers/providers/calendar.mdx @@ -78,7 +78,7 @@ Same as Gmail - OAuth or service account. All methods and OAuth setup - + Working example diff --git a/context-providers/providers/database.mdx b/context-providers/providers/database.mdx index 4e48d1fe1..12b6696b6 100644 --- a/context-providers/providers/database.mdx +++ b/context-providers/providers/database.mdx @@ -139,6 +139,6 @@ db = DatabaseContextProvider( ## Cookbook - + Read/write with separate engines diff --git a/context-providers/providers/drive.mdx b/context-providers/providers/drive.mdx index 7b0f06422..6ead2389f 100644 --- a/context-providers/providers/drive.mdx +++ b/context-providers/providers/drive.mdx @@ -93,7 +93,7 @@ drive = GoogleDriveContextProvider(corpora="domain") All methods and OAuth setup - + Working example diff --git a/context-providers/providers/filesystem.mdx b/context-providers/providers/filesystem.mdx index 7d8b85254..a72639e21 100644 --- a/context-providers/providers/filesystem.mdx +++ b/context-providers/providers/filesystem.mdx @@ -57,7 +57,7 @@ FilesystemContextProvider is read-only. There is no `update_fs` tool. Underlying toolkit methods - + Working example diff --git a/context-providers/providers/gmail.mdx b/context-providers/providers/gmail.mdx index 74ad088c1..dd6bc0e64 100644 --- a/context-providers/providers/gmail.mdx +++ b/context-providers/providers/gmail.mdx @@ -81,7 +81,7 @@ For draft/send queries, enable writes: `GmailContextProvider(write=True)` All methods and OAuth setup - + Working example diff --git a/context-providers/providers/overview.mdx b/context-providers/providers/overview.mdx index 05871266c..b6252f6db 100644 --- a/context-providers/providers/overview.mdx +++ b/context-providers/providers/overview.mdx @@ -74,22 +74,22 @@ Agno includes providers for common data sources. Each provider wraps an external ## Cookbook Examples - + Explore a codebase or docs folder - + Read/write with separate engines - + Three sources, no collisions - + Search, read, draft, send - + Events and availability - + Auto-committing prose memory diff --git a/context-providers/providers/slack.mdx b/context-providers/providers/slack.mdx index 8f6353d9b..1beef54da 100644 --- a/context-providers/providers/slack.mdx +++ b/context-providers/providers/slack.mdx @@ -122,7 +122,7 @@ The agent sees 2 tools (`query_slack`, `query_gdrive`) instead of 20+. All 12 methods and OAuth scope requirements - + Working example with search and posting diff --git a/context-providers/providers/web.mdx b/context-providers/providers/web.mdx index 636081853..18b72fa36 100644 --- a/context-providers/providers/web.mdx +++ b/context-providers/providers/web.mdx @@ -128,7 +128,7 @@ finally: ExaTools methods - + Working example diff --git a/context-providers/providers/wiki.mdx b/context-providers/providers/wiki.mdx index 08ba323cd..acb0abb83 100644 --- a/context-providers/providers/wiki.mdx +++ b/context-providers/providers/wiki.mdx @@ -81,7 +81,7 @@ await wiki.aclose() wiki = WikiContextProvider(backend=backend) ``` - `token` falls back to the `NOTION_API_KEY` environment variable. `NotionPageBackend` (nested page trees) is planned and raises `NotImplementedError` today. See the [Notion wiki example](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/15a_wiki_notion.py). + `token` falls back to the `NOTION_API_KEY` environment variable. `NotionPageBackend` (nested page trees) is planned and raises `NotImplementedError` today. See the [Notion wiki example](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/12_context/15a_wiki_notion.py). @@ -147,7 +147,7 @@ finally: Underlying file operations - + Git-backed wiki example diff --git a/context-providers/providers/workspace.mdx b/context-providers/providers/workspace.mdx index 029a72589..aed5dd37a 100644 --- a/context-providers/providers/workspace.mdx +++ b/context-providers/providers/workspace.mdx @@ -75,7 +75,7 @@ The provider is read-only by design. No save, edit, delete, move, or shell tools The underlying read/write toolkit - + Project-aware workspace example diff --git a/context/agent/overview.mdx b/context/agent/overview.mdx index b3779858f..6cde436cd 100644 --- a/context/agent/overview.mdx +++ b/context/agent/overview.mdx @@ -514,4 +514,4 @@ Some examples of prompt caching: ## Developer Resources - [Agent schema](/reference/agents/agent) -- [Context management cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/02_agents/03_context_management/) +- [Context management cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/02_agents/03_context_management/) diff --git a/context/team/overview.mdx b/context/team/overview.mdx index 5129fe355..fc7bcbcb3 100644 --- a/context/team/overview.mdx +++ b/context/team/overview.mdx @@ -654,4 +654,4 @@ Some examples of prompt caching: ## Developer Resources - [Team schema](/reference/teams/team) -- [Cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/03_teams) +- [Cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/03_teams) diff --git a/database/providers/clickhouse/overview.mdx b/database/providers/clickhouse/overview.mdx index f3bb59194..1125ad802 100644 --- a/database/providers/clickhouse/overview.mdx +++ b/database/providers/clickhouse/overview.mdx @@ -102,7 +102,7 @@ docker run -d \ clickhouse/clickhouse-server ``` -The command above is the minimum to get running. Traces don't persist across container restarts. For a persistent local setup with mounted volumes, use the cookbook script [`cookbook/scripts/run_clickhouse.sh`](https://github.com/agno-agi/agno/blob/main/cookbook/scripts/run_clickhouse.sh). +The command above is the minimum to get running. Traces don't persist across container restarts. For a persistent local setup with mounted volumes, use the cookbook script [`cookbook/scripts/run_clickhouse.sh`](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/scripts/run_clickhouse.sh). ### ClickHouse Cloud @@ -124,4 +124,4 @@ traces_db = ClickhouseDb( ## Developer Resources - [Tracing setup](/tracing/basic-setup) -- [Cookbook example](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/tracing/dbs/basic_agent_with_clickhousedb.py) +- [Cookbook example](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/tracing/dbs/basic_agent_with_clickhousedb.py) diff --git a/examples/agent-os/factories/agent/hitl-factory.mdx b/examples/agent-os/factories/agent/hitl-factory.mdx index dd27daf06..cdec9a7c9 100644 --- a/examples/agent-os/factories/agent/hitl-factory.mdx +++ b/examples/agent-os/factories/agent/hitl-factory.mdx @@ -177,4 +177,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/factories/agent/05_hitl_factory.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/factories/agent/05_hitl_factory.py) +Full source: [cookbook/05_agent_os/factories/agent/05_hitl_factory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/factories/agent/05_hitl_factory.py) diff --git a/examples/agent-os/factories/agent/jwt-role-factory.mdx b/examples/agent-os/factories/agent/jwt-role-factory.mdx index 3d9870561..0a1e0e03b 100644 --- a/examples/agent-os/factories/agent/jwt-role-factory.mdx +++ b/examples/agent-os/factories/agent/jwt-role-factory.mdx @@ -226,4 +226,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/factories/agent/03_jwt_role_factory.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/factories/agent/03_jwt_role_factory.py) +Full source: [cookbook/05_agent_os/factories/agent/03_jwt_role_factory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/factories/agent/03_jwt_role_factory.py) diff --git a/examples/agent-os/factories/jwt-role-factory.mdx b/examples/agent-os/factories/jwt-role-factory.mdx index 81b63f0dd..912a4e7ad 100644 --- a/examples/agent-os/factories/jwt-role-factory.mdx +++ b/examples/agent-os/factories/jwt-role-factory.mdx @@ -230,4 +230,4 @@ export OPENAI_API_KEY="your_openai_api_key_here" python cookbook/05_agent_os/factories/agent/03_jwt_role_factory.py ``` -Full source: [cookbook/05_agent_os/factories/agent/03_jwt_role_factory.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/factories/agent/03_jwt_role_factory.py) +Full source: [cookbook/05_agent_os/factories/agent/03_jwt_role_factory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/factories/agent/03_jwt_role_factory.py) diff --git a/examples/agent-os/factories/tenant-agent-factory.mdx b/examples/agent-os/factories/tenant-agent-factory.mdx index 1882c203b..d6ae16af8 100644 --- a/examples/agent-os/factories/tenant-agent-factory.mdx +++ b/examples/agent-os/factories/tenant-agent-factory.mdx @@ -124,4 +124,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/factories/agent/01_basic_factory.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/factories/agent/01_basic_factory.py) +Full source: [cookbook/05_agent_os/factories/agent/01_basic_factory.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/factories/agent/01_basic_factory.py) diff --git a/examples/agents/advanced/sse-reconnect.mdx b/examples/agents/advanced/sse-reconnect.mdx index 5575d81bc..2295abb9e 100644 --- a/examples/agents/advanced/sse-reconnect.mdx +++ b/examples/agents/advanced/sse-reconnect.mdx @@ -298,4 +298,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/client/10_sse_reconnect.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/client/10_sse_reconnect.py) +Full source: [cookbook/05_agent_os/client/10_sse_reconnect.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/client/10_sse_reconnect.py) diff --git a/examples/agents/approvals/approval-team.mdx b/examples/agents/approvals/approval-team.mdx index 50ac0f5ee..40207622e 100644 --- a/examples/agents/approvals/approval-team.mdx +++ b/examples/agents/approvals/approval-team.mdx @@ -347,6 +347,6 @@ python cookbook/05_agent_os/approvals/team/team_and_member_agent_both_level_appr ## Developer Resources -- [Team-level approval source](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/approvals/team/team_level_approval.py) -- [Member-level approval source](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/approvals/team/member_agent_level_approval.py) -- [Team and member approval source](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/approvals/team/team_and_member_agent_both_level_approval.py) +- [Team-level approval source](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/approvals/team/team_level_approval.py) +- [Member-level approval source](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/approvals/team/member_agent_level_approval.py) +- [Team and member approval source](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/approvals/team/team_and_member_agent_both_level_approval.py) diff --git a/examples/integrations/rag/agentic-rag-with-lightrag.mdx b/examples/integrations/rag/agentic-rag-with-lightrag.mdx index c1d83d298..ff5c3e69d 100644 --- a/examples/integrations/rag/agentic-rag-with-lightrag.mdx +++ b/examples/integrations/rag/agentic-rag-with-lightrag.mdx @@ -119,4 +119,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/05_integrations/rag/agentic_rag_with_lightrag.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/05_integrations/rag/agentic_rag_with_lightrag.py) +Full source: [cookbook/07_knowledge/05_integrations/rag/agentic_rag_with_lightrag.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/rag/agentic_rag_with_lightrag.py) diff --git a/examples/integrations/rag/local-rag-langchain-qdrant.mdx b/examples/integrations/rag/local-rag-langchain-qdrant.mdx index 50c4cab8b..f37d47b62 100644 --- a/examples/integrations/rag/local-rag-langchain-qdrant.mdx +++ b/examples/integrations/rag/local-rag-langchain-qdrant.mdx @@ -101,4 +101,4 @@ if __name__ == "__main__": -Full source: [cookbook/07_knowledge/05_integrations/rag/local_rag_langchain_qdrant.py](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/05_integrations/rag/local_rag_langchain_qdrant.py) +Full source: [cookbook/07_knowledge/05_integrations/rag/local_rag_langchain_qdrant.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/05_integrations/rag/local_rag_langchain_qdrant.py) diff --git a/examples/teams/other/sse-reconnect.mdx b/examples/teams/other/sse-reconnect.mdx index 8f0537a4f..f8ecf3ec8 100644 --- a/examples/teams/other/sse-reconnect.mdx +++ b/examples/teams/other/sse-reconnect.mdx @@ -298,4 +298,4 @@ if __name__ == "__main__": -Full source: [cookbook/05_agent_os/client/11_team_sse_reconnect.py](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/client/11_team_sse_reconnect.py) +Full source: [cookbook/05_agent_os/client/11_team_sse_reconnect.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/client/11_team_sse_reconnect.py) diff --git a/examples/tools/agentql-tools.mdx b/examples/tools/agentql-tools.mdx index 063eb20b0..d46d3e0d9 100644 --- a/examples/tools/agentql-tools.mdx +++ b/examples/tools/agentql-tools.mdx @@ -88,4 +88,4 @@ source .venvs/demo/bin/activate python cookbook/91_tools/agentql_tools.py ``` -For details, see [AgentQL cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/agentql_tools.py). +For details, see [AgentQL cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/agentql_tools.py). diff --git a/examples/tools/airflow-tools.mdx b/examples/tools/airflow-tools.mdx index 8194108f2..67fc1744e 100644 --- a/examples/tools/airflow-tools.mdx +++ b/examples/tools/airflow-tools.mdx @@ -139,4 +139,4 @@ source .venvs/demo/bin/activate python cookbook/91_tools/airflow_tools.py ``` -For details, see [Airflow cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/airflow_tools.py). +For details, see [Airflow cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/airflow_tools.py). diff --git a/examples/tools/apify-tools.mdx b/examples/tools/apify-tools.mdx index b76d85638..e5e23d58c 100644 --- a/examples/tools/apify-tools.mdx +++ b/examples/tools/apify-tools.mdx @@ -80,4 +80,4 @@ if __name__ == "__main__": ```bash python apify_tools.py ``` -For details, see [Apify cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/apify_tools.py). +For details, see [Apify cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/apify_tools.py). diff --git a/examples/tools/aws-lambda-tools.mdx b/examples/tools/aws-lambda-tools.mdx index d7ad16764..698da20a2 100644 --- a/examples/tools/aws-lambda-tools.mdx +++ b/examples/tools/aws-lambda-tools.mdx @@ -128,4 +128,4 @@ export OPENAI_API_KEY="your_openai_api_key_here" python cookbook/91_tools/aws_lambda_tools.py ``` -For details, see [AWS Lambda cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/aws_lambda_tools.py). +For details, see [AWS Lambda cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/aws_lambda_tools.py). diff --git a/examples/tools/aws-ses-tools.mdx b/examples/tools/aws-ses-tools.mdx index 94686d0c5..89a03c6c0 100644 --- a/examples/tools/aws-ses-tools.mdx +++ b/examples/tools/aws-ses-tools.mdx @@ -146,4 +146,4 @@ source .venvs/demo/bin/activate python cookbook/91_tools/aws_ses_tools.py ``` -For details, see [AWS SES cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/aws_ses_tools.py). +For details, see [AWS SES cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/aws_ses_tools.py). diff --git a/examples/tools/bitbucket-tools.mdx b/examples/tools/bitbucket-tools.mdx index dbfbf6abc..df846a1bd 100644 --- a/examples/tools/bitbucket-tools.mdx +++ b/examples/tools/bitbucket-tools.mdx @@ -62,4 +62,4 @@ source .venvs/demo/bin/activate python cookbook/91_tools/bitbucket_tools.py ``` -For details, see [Bitbucket cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/bitbucket_tools.py). \ No newline at end of file +For details, see [Bitbucket cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/bitbucket_tools.py). \ No newline at end of file diff --git a/examples/tools/brandfetch-tools.mdx b/examples/tools/brandfetch-tools.mdx index 507a21fb1..d09de4dff 100644 --- a/examples/tools/brandfetch-tools.mdx +++ b/examples/tools/brandfetch-tools.mdx @@ -69,4 +69,4 @@ source .venvs/demo/bin/activate python cookbook/91_tools/brandfetch_tools.py ``` -For details, see [Brandfetch cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/brandfetch_tools.py). +For details, see [Brandfetch cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/brandfetch_tools.py). diff --git a/examples/tools/cartesia-tools.mdx b/examples/tools/cartesia-tools.mdx index 4d56bb353..ece73645c 100644 --- a/examples/tools/cartesia-tools.mdx +++ b/examples/tools/cartesia-tools.mdx @@ -60,4 +60,4 @@ uv pip install -U cartesia python cookbook/91_tools/cartesia_tools.py ``` -For details, see [Cartesia cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/cartesia_tools.py). +For details, see [Cartesia cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/cartesia_tools.py). diff --git a/examples/tools/custom-api-tools.mdx b/examples/tools/custom-api-tools.mdx index 0b64ad0fe..c39993170 100644 --- a/examples/tools/custom-api-tools.mdx +++ b/examples/tools/custom-api-tools.mdx @@ -69,4 +69,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/custom_api_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/custom_api_tools.py) +Full source: [cookbook/91_tools/custom_api_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/custom_api_tools.py) diff --git a/examples/tools/daytona-tools.mdx b/examples/tools/daytona-tools.mdx index 3124a33f4..70c0ee71f 100644 --- a/examples/tools/daytona-tools.mdx +++ b/examples/tools/daytona-tools.mdx @@ -71,4 +71,4 @@ source .venvs/demo/bin/activate python cookbook/91_tools/daytona_tools.py ``` -For details, see [Daytona cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/daytona_tools.py). +For details, see [Daytona cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/daytona_tools.py). diff --git a/examples/tools/desi-vocal-tools.mdx b/examples/tools/desi-vocal-tools.mdx index f66513c2a..2f8a37c8e 100644 --- a/examples/tools/desi-vocal-tools.mdx +++ b/examples/tools/desi-vocal-tools.mdx @@ -65,4 +65,4 @@ source .venvs/demo/bin/activate python cookbook/91_tools/desi_vocal_tools.py ``` -For details, see [Desi vocal cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/desi_vocal_tools.py). +For details, see [Desi vocal cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/desi_vocal_tools.py). diff --git a/examples/tools/docling-tools.mdx b/examples/tools/docling-tools.mdx index 4a1c3c98a..67f5caf41 100644 --- a/examples/tools/docling-tools.mdx +++ b/examples/tools/docling-tools.mdx @@ -96,4 +96,4 @@ uv pip install -U docling easyocr openai-whisper python cookbook/91_tools/docling_tools/run.py ``` -For details, see [Docling Tools cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/91_tools/docling_tools). +For details, see [Docling Tools cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/91_tools/docling_tools). diff --git a/examples/tools/elevenlabs-tools.mdx b/examples/tools/elevenlabs-tools.mdx index 56747fe47..d12c1c7fb 100644 --- a/examples/tools/elevenlabs-tools.mdx +++ b/examples/tools/elevenlabs-tools.mdx @@ -80,4 +80,4 @@ uv pip install -U elevenlabs python cookbook/91_tools/elevenlabs_tools.py ``` -For details, see [Elevenlabs cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/elevenlabs_tools.py). +For details, see [Elevenlabs cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/elevenlabs_tools.py). diff --git a/examples/tools/financial-datasets-tools.mdx b/examples/tools/financial-datasets-tools.mdx index 9c3532c7b..69616b51c 100644 --- a/examples/tools/financial-datasets-tools.mdx +++ b/examples/tools/financial-datasets-tools.mdx @@ -74,4 +74,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/financial_datasets_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/financial_datasets_tools.py) +Full source: [cookbook/91_tools/financial_datasets_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/financial_datasets_tools.py) diff --git a/examples/tools/github-tools.mdx b/examples/tools/github-tools.mdx index 66908131e..88339eafb 100644 --- a/examples/tools/github-tools.mdx +++ b/examples/tools/github-tools.mdx @@ -256,4 +256,4 @@ uv pip install -U pygithub python cookbook/91_tools/github_tools.py ``` -For details, see [GitHub cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/github_tools.py). +For details, see [GitHub cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/github_tools.py). diff --git a/examples/tools/google-drive.mdx b/examples/tools/google-drive.mdx index 0e0e62485..a0eed605f 100644 --- a/examples/tools/google-drive.mdx +++ b/examples/tools/google-drive.mdx @@ -118,4 +118,4 @@ export OPENAI_API_KEY="your_openai_api_key_here" python cookbook/91_tools/google_drive.py ``` -Full source: [cookbook/91_tools/google_drive.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google_drive.py) +Full source: [cookbook/91_tools/google_drive.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google_drive.py) diff --git a/examples/tools/google-maps-tools.mdx b/examples/tools/google-maps-tools.mdx index 7aaafaeed..bc8dcfd1c 100644 --- a/examples/tools/google-maps-tools.mdx +++ b/examples/tools/google-maps-tools.mdx @@ -202,4 +202,4 @@ uv pip install -U agno googlemaps google-maps-places openai python google_maps_tools.py ``` -For details, see [Google Maps cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google_maps_tools.py). +For details, see [Google Maps cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google_maps_tools.py). diff --git a/examples/tools/googlecalendar-tools.mdx b/examples/tools/googlecalendar-tools.mdx index 60604ac6f..399ab9293 100644 --- a/examples/tools/googlecalendar-tools.mdx +++ b/examples/tools/googlecalendar-tools.mdx @@ -165,4 +165,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/googlecalendar_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/googlecalendar_tools.py) +Full source: [cookbook/91_tools/googlecalendar_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/googlecalendar_tools.py) diff --git a/examples/tools/linear-tools.mdx b/examples/tools/linear-tools.mdx index c2ecedfdd..b81d675b4 100644 --- a/examples/tools/linear-tools.mdx +++ b/examples/tools/linear-tools.mdx @@ -66,4 +66,4 @@ source .venvs/demo/bin/activate python cookbook/91_tools/linear_tools.py ``` -For details, see [Linear cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/linear_tools.py). +For details, see [Linear cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/linear_tools.py). diff --git a/examples/tools/mem0-tools.mdx b/examples/tools/mem0-tools.mdx index 6a3bf761e..6b3d69e6f 100644 --- a/examples/tools/mem0-tools.mdx +++ b/examples/tools/mem0-tools.mdx @@ -150,4 +150,4 @@ uv pip install -U mem0ai python cookbook/91_tools/mem0_tools.py ``` -For details, see [Mem0 tools cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mem0_tools.py). +For details, see [Mem0 tools cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mem0_tools.py). diff --git a/examples/tools/multiple-tools.mdx b/examples/tools/multiple-tools.mdx index d299723da..98d142c83 100644 --- a/examples/tools/multiple-tools.mdx +++ b/examples/tools/multiple-tools.mdx @@ -54,4 +54,4 @@ source .venvs/demo/bin/activate python cookbook/91_tools/multiple_tools.py ``` -For details, see [Multiple tool cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/multiple_tools.py). +For details, see [Multiple tool cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/multiple_tools.py). diff --git a/examples/tools/nano-banana-tools.mdx b/examples/tools/nano-banana-tools.mdx index 9dcdb6029..d5a80e0cb 100644 --- a/examples/tools/nano-banana-tools.mdx +++ b/examples/tools/nano-banana-tools.mdx @@ -87,4 +87,4 @@ export GOOGLE_API_KEY="***" python cookbook/91_tools/nano_banana_tools.py ``` -For details, see [Nano Banana cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/nano_banana_tools.py). +For details, see [Nano Banana cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/nano_banana_tools.py). diff --git a/examples/tools/neo4j-tools.mdx b/examples/tools/neo4j-tools.mdx index 165045b20..4475c46bd 100644 --- a/examples/tools/neo4j-tools.mdx +++ b/examples/tools/neo4j-tools.mdx @@ -179,4 +179,4 @@ python cookbook/91_tools/neo4j_tools.py - **Authentication failed:** Verify your username/password in the Neo4j browser first - **Import errors:** Install the neo4j driver with `uv pip install neo4j` -For details, see [Neo4j cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/neo4j_tools.py). +For details, see [Neo4j cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/neo4j_tools.py). diff --git a/examples/tools/notion-tools.mdx b/examples/tools/notion-tools.mdx index b387a4d55..e91d4722d 100644 --- a/examples/tools/notion-tools.mdx +++ b/examples/tools/notion-tools.mdx @@ -177,4 +177,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/notion_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/notion_tools.py) +Full source: [cookbook/91_tools/notion_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/notion_tools.py) diff --git a/examples/tools/opencv-tools.mdx b/examples/tools/opencv-tools.mdx index f6f77e917..5de89b4db 100644 --- a/examples/tools/opencv-tools.mdx +++ b/examples/tools/opencv-tools.mdx @@ -152,4 +152,4 @@ source .venvs/demo/bin/activate python cookbook/91_tools/opencv_tools.py ``` -For details, see [OpenCV cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/opencv_tools.py). +For details, see [OpenCV cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/opencv_tools.py). diff --git a/examples/tools/openweather-tools.mdx b/examples/tools/openweather-tools.mdx index a1d01d9f2..629930e1f 100644 --- a/examples/tools/openweather-tools.mdx +++ b/examples/tools/openweather-tools.mdx @@ -125,4 +125,4 @@ export OPENWEATHER_API_KEY="your_openweather_api_key_here" python cookbook/91_tools/openweather_tools.py ``` -For details, see [OpenWeather cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/openweather_tools.py). +For details, see [OpenWeather cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/openweather_tools.py). diff --git a/examples/tools/parallel-tools.mdx b/examples/tools/parallel-tools.mdx index 161485e40..220f6a340 100644 --- a/examples/tools/parallel-tools.mdx +++ b/examples/tools/parallel-tools.mdx @@ -137,4 +137,4 @@ agent.print_response("List my monitors and fetch recent events", stream=True) -For more examples, see the [Parallel cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/91_tools/parallel). +For more examples, see the [Parallel cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/91_tools/parallel). diff --git a/examples/tools/plivo-tools.mdx b/examples/tools/plivo-tools.mdx index aa5a21f42..07998a154 100644 --- a/examples/tools/plivo-tools.mdx +++ b/examples/tools/plivo-tools.mdx @@ -80,4 +80,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/plivo_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/plivo_tools.py) +Full source: [cookbook/91_tools/plivo_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/plivo_tools.py) diff --git a/examples/tools/python-tools.mdx b/examples/tools/python-tools.mdx index b31e6fdfb..76c23921f 100644 --- a/examples/tools/python-tools.mdx +++ b/examples/tools/python-tools.mdx @@ -82,4 +82,4 @@ source .venvs/demo/bin/activate python cookbook/91_tools/python_tools.py ``` -For details, see [PythonTools cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/python_tools.py). +For details, see [PythonTools cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/python_tools.py). diff --git a/examples/tools/reddit-tools.mdx b/examples/tools/reddit-tools.mdx index 40b9f6c83..70506eae9 100644 --- a/examples/tools/reddit-tools.mdx +++ b/examples/tools/reddit-tools.mdx @@ -87,4 +87,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/reddit_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/reddit_tools.py) +Full source: [cookbook/91_tools/reddit_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/reddit_tools.py) diff --git a/examples/tools/salesforce-tools.mdx b/examples/tools/salesforce-tools.mdx index 33f60b48e..840dc2b30 100644 --- a/examples/tools/salesforce-tools.mdx +++ b/examples/tools/salesforce-tools.mdx @@ -94,4 +94,4 @@ uv pip install -U simple-salesforce python cookbook/91_tools/salesforce_tools.py ``` -For details, see [Salesforce Tools cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/salesforce_tools.py). +For details, see [Salesforce Tools cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/salesforce_tools.py). diff --git a/examples/tools/seltz-tools.mdx b/examples/tools/seltz-tools.mdx index 01632955e..04863a366 100644 --- a/examples/tools/seltz-tools.mdx +++ b/examples/tools/seltz-tools.mdx @@ -54,4 +54,4 @@ uv pip install -U seltz python cookbook/91_tools/seltz_tools.py ``` -For details, see [Seltz cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/seltz_tools.py). +For details, see [Seltz cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/seltz_tools.py). diff --git a/examples/tools/serper-tools.mdx b/examples/tools/serper-tools.mdx index 5e4518f24..eab0c7c25 100644 --- a/examples/tools/serper-tools.mdx +++ b/examples/tools/serper-tools.mdx @@ -72,4 +72,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/serper_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/serper_tools.py) +Full source: [cookbook/91_tools/serper_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/serper_tools.py) diff --git a/examples/tools/shopify-tools.mdx b/examples/tools/shopify-tools.mdx index 29becba45..d06bce381 100644 --- a/examples/tools/shopify-tools.mdx +++ b/examples/tools/shopify-tools.mdx @@ -82,4 +82,4 @@ source .venvs/demo/bin/activate python cookbook/91_tools/shopify_tools.py ``` -For details, see [Shopify tools cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/shopify_tools.py). +For details, see [Shopify tools cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/shopify_tools.py). diff --git a/examples/tools/telegram-tools.mdx b/examples/tools/telegram-tools.mdx index e9cd3ec64..c6492761a 100644 --- a/examples/tools/telegram-tools.mdx +++ b/examples/tools/telegram-tools.mdx @@ -66,4 +66,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/telegram_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/telegram_tools.py) +Full source: [cookbook/91_tools/telegram_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/telegram_tools.py) diff --git a/examples/tools/trello-tools.mdx b/examples/tools/trello-tools.mdx index e82f19815..10865bb76 100644 --- a/examples/tools/trello-tools.mdx +++ b/examples/tools/trello-tools.mdx @@ -94,4 +94,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/trello_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/trello_tools.py) +Full source: [cookbook/91_tools/trello_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/trello_tools.py) diff --git a/examples/tools/twilio-tools.mdx b/examples/tools/twilio-tools.mdx index 1af568d64..1a56ff24a 100644 --- a/examples/tools/twilio-tools.mdx +++ b/examples/tools/twilio-tools.mdx @@ -100,4 +100,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/twilio_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/twilio_tools.py) +Full source: [cookbook/91_tools/twilio_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/twilio_tools.py) diff --git a/examples/tools/unsplash-tools.mdx b/examples/tools/unsplash-tools.mdx index 8f8744bd6..aed685359 100644 --- a/examples/tools/unsplash-tools.mdx +++ b/examples/tools/unsplash-tools.mdx @@ -121,4 +121,4 @@ source .venvs/demo/bin/activate python cookbook/91_tools/unsplash_tools.py ``` -For details, see [Unsplash tool cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/unsplash_tools.py). +For details, see [Unsplash tool cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/unsplash_tools.py). diff --git a/examples/tools/valyu-tools.mdx b/examples/tools/valyu-tools.mdx index 988904356..d5f8a2107 100644 --- a/examples/tools/valyu-tools.mdx +++ b/examples/tools/valyu-tools.mdx @@ -67,4 +67,4 @@ source .venvs/demo/bin/activate python cookbook/91_tools/valyu_tools.py ``` -For details, see [Valyu tool cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/valyu_tools.py). +For details, see [Valyu tool cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/valyu_tools.py). diff --git a/examples/tools/visualization-tools.mdx b/examples/tools/visualization-tools.mdx index 03070b5cb..439b2ea54 100644 --- a/examples/tools/visualization-tools.mdx +++ b/examples/tools/visualization-tools.mdx @@ -288,4 +288,4 @@ source .venvs/demo/bin/activate python cookbook/91_tools/visualization_tools.py ``` -For details, see [Visualization tools cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/visualization_tools.py). +For details, see [Visualization tools cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/visualization_tools.py). diff --git a/examples/tools/webex-tools.mdx b/examples/tools/webex-tools.mdx index dc3cbca1d..8a625e85b 100644 --- a/examples/tools/webex-tools.mdx +++ b/examples/tools/webex-tools.mdx @@ -61,4 +61,4 @@ uv pip install openai webexpythonsdk python cookbook/91_tools/webex_tools.py ``` -For details, see [Webex cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/webex_tools.py). +For details, see [Webex cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/webex_tools.py). diff --git a/examples/tools/website-tools-knowledge.mdx b/examples/tools/website-tools-knowledge.mdx index 3b37907dc..48ac3dcab 100644 --- a/examples/tools/website-tools-knowledge.mdx +++ b/examples/tools/website-tools-knowledge.mdx @@ -95,4 +95,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/website_tools_knowledge.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/website_tools_knowledge.py) +Full source: [cookbook/91_tools/website_tools_knowledge.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/website_tools_knowledge.py) diff --git a/examples/tools/x-tools.mdx b/examples/tools/x-tools.mdx index e8c183e12..5e9285991 100644 --- a/examples/tools/x-tools.mdx +++ b/examples/tools/x-tools.mdx @@ -110,4 +110,4 @@ source .venvs/demo/bin/activate python cookbook/91_tools/x_tools.py ``` -For details, see [X tools cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/x_tools.py). +For details, see [X tools cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/x_tools.py). diff --git a/examples/tools/zep-tools.mdx b/examples/tools/zep-tools.mdx index b08b2d00c..27573d0c5 100644 --- a/examples/tools/zep-tools.mdx +++ b/examples/tools/zep-tools.mdx @@ -116,4 +116,4 @@ source .venvs/demo/bin/activate python cookbook/91_tools/zep_tools.py ``` -For details, see [Zep tools cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/zep_tools.py). +For details, see [Zep tools cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/zep_tools.py). diff --git a/examples/tools/zoom-tools.mdx b/examples/tools/zoom-tools.mdx index cf5739520..62b57cfa7 100644 --- a/examples/tools/zoom-tools.mdx +++ b/examples/tools/zoom-tools.mdx @@ -144,4 +144,4 @@ if __name__ == "__main__": -Full source: [cookbook/91_tools/zoom_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/zoom_tools.py) +Full source: [cookbook/91_tools/zoom_tools.py](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/zoom_tools.py) diff --git a/hitl/approval.mdx b/hitl/approval.mdx index 89afead37..4c5ffce61 100644 --- a/hitl/approval.mdx +++ b/hitl/approval.mdx @@ -102,7 +102,7 @@ There are three distinct phases in the approval flow: ## Developer Resources -* Example code: [Approvals cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/02_agents/11_approvals). +* Example code: [Approvals cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/02_agents/11_approvals). * [Approval reference](/reference-api/schema/approvals/list-approvals) * [Tool decorator](/reference/tools/decorator) diff --git a/knowledge/agents/overview.mdx b/knowledge/agents/overview.mdx index d9348455f..aa4d79e47 100644 --- a/knowledge/agents/overview.mdx +++ b/knowledge/agents/overview.mdx @@ -310,4 +310,4 @@ Build a **RAG Agent** that answers questions from a PDF. - [Agent schema](/reference/agents/agent) - [Knowledge schema](/reference/knowledge/knowledge) -- [Cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/07_knowledge/) +- [Cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/07_knowledge/) diff --git a/memory/agent/overview.mdx b/memory/agent/overview.mdx index ffc1da848..6df27fca9 100644 --- a/memory/agent/overview.mdx +++ b/memory/agent/overview.mdx @@ -67,4 +67,4 @@ pprint(memory_agent.get_user_memories(user_id=user_id)) - [Agent schema](/reference/agents/agent) - [Memory examples](/examples/memory/overview) -- [Memory cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/11_memory/) +- [Memory cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/11_memory/) diff --git a/memory/best-practices.mdx b/memory/best-practices.mdx index ea00a8446..ac193c5e3 100644 --- a/memory/best-practices.mdx +++ b/memory/best-practices.mdx @@ -198,4 +198,4 @@ if len(memories) > 500: ## Developer Resources - [Working with memories](/memory/working-with-memories/overview) -- [Memory cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/11_memory/) +- [Memory cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/11_memory/) diff --git a/memory/team/overview.mdx b/memory/team/overview.mdx index b3b0ba245..6df146dec 100644 --- a/memory/team/overview.mdx +++ b/memory/team/overview.mdx @@ -34,4 +34,4 @@ team_with_memory.print_response("What is my name?", user_id=user_id) - [Memory overview](/memory/overview) - [Team schema](/reference/teams/team) -- [Team memory cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/03_teams/06_memory/) +- [Team memory cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/03_teams/06_memory/) diff --git a/memory/working-with-memories/overview.mdx b/memory/working-with-memories/overview.mdx index a7423c462..cb38ac141 100644 --- a/memory/working-with-memories/overview.mdx +++ b/memory/working-with-memories/overview.mdx @@ -160,6 +160,6 @@ All agents connected to the same database automatically share memories for each ## Developer Resources - [Memory creation examples](/memory/working-with-memories/memory-creation) -- [Memory cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/11_memory/) +- [Memory cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/11_memory/) diff --git a/reasoning/reasoning-agents.mdx b/reasoning/reasoning-agents.mdx index 89b584c1f..adf790eee 100644 --- a/reasoning/reasoning-agents.mdx +++ b/reasoning/reasoning-agents.mdx @@ -337,4 +337,4 @@ main_agent = Agent( - [Reasoning agent examples](/reasoning/usage/agents/basic-cot) - [Reasoning team examples](/reasoning/usage/agents/team-cot) -- [Reasoning team cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/teams) +- [Reasoning team cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/10_reasoning/teams) diff --git a/reference-api/openapi.json b/reference-api/openapi.json index ec77e1faf..5b2ad6ef0 100644 --- a/reference-api/openapi.json +++ b/reference-api/openapi.json @@ -1 +1 @@ -{"openapi":"3.1.0","info":{"title":"Agno API Reference","description":"The all-in-one, private, secure agent platform that runs in your cloud.","version":"2.7.4"},"paths":{"/":{"get":{"tags":["Home"],"summary":"API Information","description":"Return the AgentOS instance name, ID, and version.","operationId":"get_api_info","responses":{"200":{"description":"API information retrieved successfully","content":{"application/json":{"schema":{"properties":{"name":{"type":"string","title":"Name"},"id":{"type":"string","title":"Id"},"version":{"type":"string","title":"Version"}},"type":"object","required":["name","id","version"],"title":"ApiInfoResponse"},"examples":{"home":{"summary":"Example home response","value":{"name":"AgentOS API","id":"demo-os","version":"1.0.0"}}}}}}}}},"/health":{"get":{"tags":["Health"],"summary":"Health Check","description":"Check the health status of the AgentOS API. Returns a simple status indicator.","operationId":"health_check","responses":{"200":{"description":"API is healthy and operational","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"},"example":{"status":"ok","instantiated_at":"2025-06-10T12:00:00Z"}}}}}}},"/info":{"get":{"tags":["Core"],"summary":"Get OS Info","description":"Return lightweight, unauthenticated metadata about this AgentOS instance.","operationId":"get_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoResponse"}}}}}}},"/config":{"get":{"tags":["Core"],"summary":"Get OS Configuration","description":"Retrieve the complete configuration of the AgentOS instance, including:\n\n- Available models and databases\n- Registered agents, teams, and workflows\n- Chat, session, memory, knowledge, and evaluation configurations\n- Available interfaces and their routes","operationId":"get_config","responses":{"200":{"description":"OS configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"},"example":{"description":"Example AgentOS configuration","available_models":[],"databases":["9c884dc4-9066-448c-9074-ef49ec7eb73c"],"session":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Sessions"}}]},"metrics":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Metrics"}}]},"memory":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Memory"}}]},"knowledge":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Knowledge"}}]},"evals":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Evals"}}]},"agents":[{"id":"main-agent","name":"Main Agent","db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c"}],"teams":[],"workflows":[],"interfaces":[],"os_id":"demo"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/models":{"get":{"tags":["Core"],"summary":"Get Available Models","description":"Retrieve a list of all unique models currently used by agents and teams in this OS instance. This includes the model ID and provider information for each model.","operationId":"get_models","responses":{"200":{"description":"List of models retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Response Get Models"},"example":[{"id":"gpt-4","provider":"openai"},{"id":"claude-3-sonnet","provider":"anthropic"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}/runs":{"post":{"tags":["Agents"],"summary":"Create Agent Run","description":"Execute an agent with a message and optional media files. Supports both streaming and non-streaming responses.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_agent_run"}}}},"responses":{"200":{"description":"Agent run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"examples":{"event_stream":{"summary":"Example event stream response","value":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Agents"],"summary":"List Agent Runs","description":"List runs for an agent within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_agent_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED","title":"Status"},"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RunSchema"},"type":"array","title":"Response List Agent Runs"}}}},"400":{"description":"Run listing is unavailable for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Agent resolution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/cancel":{"post":{"tags":["Agents"],"summary":"Cancel Agent Run","description":"Request cancellation for `run_id`. After any required ownership check, local and factory agents store cancellation intent keyed by run ID. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote agent.","operationId":"cancel_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.","title":"Session Id"},"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it."}],"responses":{"200":{"description":"Cancellation request accepted. The empty response does not confirm run existence or remote delivery.","content":{"application/json":{"schema":{}}}},"400":{"description":"A user-scoped caller omitted session_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found, or the run could not be verified in the caller's session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run cancellation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/continue":{"post":{"tags":["Agents"],"summary":"Continue Agent Run","description":"Advance a persisted agent run from its current state. Dispatches on the body shape and the persisted run state (see ADR-003 in specs/agno/features/checkpointing/decisions.md).\n\n**Variants:**\n- PAUSED + tools provided \u2192 apply HITL tool results, resume\n- PAUSED + resolved admin approval (empty tools) \u2192 apply resolution, resume\n- RUNNING / ERROR (no unresolved HITL requirements) \u2192 resume from last persisted state\n- COMPLETED + new tools \u2192 continue with appended messages\n\n**Tools Parameter:**\nJSON string containing array of tool execution objects with results. Optional \u2014 only required when the persisted run has unresolved HITL requirements.","operationId":"continue_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_agent_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid tools or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Agent run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run continuation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"503":{"description":"Remote agent is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/agents/{agent_id}/sessions/{session_id}/fork":{"post":{"tags":["Agents"],"summary":"Fork Agent Session","description":"Deep-copy a session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_agent_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents":{"get":{"tags":["Agents"],"summary":"List All Agents","description":"Retrieve a comprehensive list of all agents configured in this OS instance.\n\n**Returns:**\n- Agent metadata (ID, name, description)\n- Model configuration and capabilities\n- Available tools and their configurations\n- Session, knowledge, memory, and reasoning settings\n- Only meaningful (non-default) configurations are included","operationId":"get_agents","responses":{"200":{"description":"List of agents retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentResponse"},"type":"array","title":"Response Get Agents"},"example":[{"id":"main-agent","name":"Main Agent","db_id":"c6bf0644-feb8-4930-a305-380dae5ad6aa","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Details","description":"Retrieve detailed configuration and capabilities of a specific agent.\n\n**Returns comprehensive agent information including:**\n- Model configuration and provider details\n- Complete tool inventory and configurations\n- Session management settings\n- Knowledge base and memory configurations\n- Reasoning capabilities and settings\n- System prompts and response formatting options","operationId":"get_agent","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Agent details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"},"example":{"id":"main-agent","name":"Main Agent","db_id":"9e064c70-6821-4840-a333-ce6230908a70","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Run","description":"Retrieve the status and output of an agent run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_agent_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Agents"],"summary":"List Agent Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_agent_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointListResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Agents"],"summary":"Get Agent Run Checkpoint Snapshot","description":"Return a derived run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_agent_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointSnapshotResponse"}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/resume":{"post":{"tags":["Agents"],"summary":"Resume Agent Run Stream","description":"Resume an SSE stream for an agent run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_agent_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_agent_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Not supported for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs":{"post":{"tags":["Teams"],"summary":"Create Team Run","description":"Execute a team collaboration with multiple agents working together on a task.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_team_run"}}}},"responses":{"200":{"description":"Team run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Teams"],"summary":"List Team Runs","description":"List runs for a team within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_team_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/cancel":{"post":{"tags":["Teams"],"summary":"Cancel Team Run","description":"Request cancellation for `run_id`. After any required ownership check, local and factory teams store cancellation intent keyed by run ID and mark known member runs for cancellation. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote team.","operationId":"cancel_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.","title":"Session Id"},"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it."}],"responses":{"200":{"description":"Cancellation request accepted. The empty response does not confirm run existence or remote delivery.","content":{"application/json":{"schema":{}}}},"400":{"description":"A user-scoped caller omitted session_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found, or the run could not be verified in the caller's session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel team run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/resume":{"post":{"tags":["Teams"],"summary":"Resume Team Run Stream","description":"Resume an SSE stream for a team run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_team_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_team_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory teams. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/continue":{"post":{"tags":["Teams"],"summary":"Continue Team Run","description":"Continue a paused or incomplete team run with updated requirements.\n\n**Use Cases:**\n- Resume execution after tool approval/rejection\n- Provide manual tool execution results\n- Resume after admin approval (requirements can be empty; resolution fetched from DB)\n\n**Requirements Parameter:**\nJSON string containing array of requirement objects with tool execution results.\nCan be empty when an admin-required approval has been resolved.","operationId":"continue_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_team_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid requirements or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Team run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Remote team is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/teams/{team_id}/sessions/{session_id}/fork":{"post":{"tags":["Teams"],"summary":"Fork Team Session","description":"Deep-copy a team session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_team_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams":{"get":{"tags":["Teams"],"summary":"List Accessible Teams","description":"Retrieve configured team metadata, models, members, knowledge, and memory settings. When authorization is enabled, in-memory team registrations are filtered by caller scopes. Database-loaded team components are also included.","operationId":"get_teams","responses":{"200":{"description":"List of teams retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamResponse"},"type":"array","title":"Response Get Teams"},"example":[{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"agno_memories","app_url":"/memory/1","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/teams/{team_id}":{"get":{"tags":["Teams"],"summary":"Get Team Details","description":"Retrieve detailed configuration and member information for a specific team.","operationId":"get_team","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"},"example":{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}":{"get":{"tags":["Teams"],"summary":"Get Team Run","description":"Retrieve the status and output of a team run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_team_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Teams"],"summary":"List Team Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored team run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_team_run_checkpoints","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointListResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Teams"],"summary":"Get Team Run Checkpoint Snapshot","description":"Return a derived team run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_team_run_checkpoint_snapshot","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointSnapshotResponse"}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows":{"get":{"tags":["Workflows"],"summary":"List Workflows","description":"Return workflow ID, name, description, database ID, factory metadata, and Builder version metadata. When authorization is enabled, caller scopes filter in-memory workflow registrations. Database-loaded Builder workflows are appended separately.","operationId":"get_workflows","responses":{"200":{"description":"List of workflows retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Response Get Workflows"},"example":[{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/workflows/{workflow_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Details","description":"Retrieve detailed configuration and step information for a specific workflow.","operationId":"get_workflow","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Workflow version to retrieve","title":"Version"},"description":"Workflow version to retrieve"}],"responses":{"200":{"description":"Workflow details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"},"example":{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs":{"post":{"tags":["Workflows"],"summary":"Execute Workflow","description":"Execute a workflow with the provided input data. Workflows can run in streaming or batch mode.\n\n**Execution Modes:**\n- **Streaming (`stream=true`)**: Real-time step-by-step execution updates via SSE\n- **Non-Streaming (`stream=false`)**: Complete workflow execution with final result\n\n**Workflow Execution Process:**\n1. Input validation against workflow schema\n2. Sequential or parallel step execution based on workflow design\n3. Data flow between steps with transformation\n4. Error handling and automatic retries where configured\n5. Final result compilation and response\n\n**Session Management:**\nWorkflows support session continuity for stateful execution across multiple runs.","operationId":"create_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_run"}}}},"responses":{"200":{"description":"Workflow executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid input data or workflow configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Workflow execution error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"List Workflow Runs","description":"List runs for a workflow within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_workflow_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/continue":{"post":{"tags":["Workflows"],"summary":"Continue Workflow Run","description":"Continue a paused workflow run with resolved requirements.\n\n**Use Cases:**\n- Resume after step-level HITL (confirmation, user input, router selection)\n- Resume after executor-level HITL (agent/team tool confirmation within a step)\n\n**Requirements Parameter:**\nJSON string containing the resolved step requirements.","operationId":"continue_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_workflow_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: StepCompleted\ndata: {\"step_name\": \"step1\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid step requirements or factory input, missing required session ID, rejected input, or remote workflow continuation requested","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is not paused and cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/cancel":{"post":{"tags":["Workflows"],"summary":"Cancel Workflow Run","description":"Request cancellation for `run_id`. After any required ownership check, local and factory workflows store cancellation intent keyed by run ID and mark known agent or team executor runs for cancellation. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote workflow.","operationId":"cancel_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.","title":"Session Id"},"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it."}],"responses":{"200":{"description":"Cancellation request accepted. The empty response does not confirm run existence or remote delivery.","content":{"application/json":{"schema":{}}}},"400":{"description":"A user-scoped caller omitted session_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found, or the run could not be verified in the caller's session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel workflow run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/resume":{"post":{"tags":["Workflows"],"summary":"Resume Workflow Run Stream","description":"Resume an SSE stream for a workflow run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_workflow_run_stream","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_workflow_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory workflows. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Run","description":"Retrieve the status and output of a workflow run. Use this to poll for run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_workflow_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/slack/events":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Receives incoming Slack events (messages, mentions, thread starts).\n\n**URL Verification:** On first setup, Slack sends a `url_verification` challenge. The endpoint echoes back the challenge string.\n\n**Event Processing:** Normal events are acknowledged immediately with `{\"status\": \"ok\"}` and processed in the background. This prevents Slack's 3-second retry timeout.\n\n**Retry Handling:** Events with `X-Slack-Retry-Num` header are duplicates and return 200 without reprocessing.\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Event Subscriptions > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for creating a Slack App or use the [manifest](/agent-os/interfaces/slack/setup#2-create-the-slack-app) for quick setup.\n","operationId":"slack_events_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SlackChallengeResponse"},{"$ref":"#/components/schemas/SlackEventResponse"}],"title":"Response Slack Events Simple Agent"}}}},"400":{"description":"Missing Slack headers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured, or the event body is not valid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number (present on retried events)"}]}},"/slack/interactions":{"post":{"tags":["Slack"],"summary":"Slack Interactions","description":"Handles Slack interactive components for Human-in-the-Loop (HITL) workflows.\n\n**Supported Actions:**\n- `row_approve` - Approve a pending tool call\n- `row_reject` - Reject a pending tool call\n- `submit_pause` - Submit form data for a paused workflow\n- `check_status` - Check an admin approval and resume an approved run\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Interactivity & Shortcuts > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for step-by-step instructions or the [HITL guide](/agent-os/interfaces/slack/hitl) for approval workflows.\n","operationId":"slack_interactions_simple_agent","responses":{"200":{"description":"Interaction accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackEventResponse"}}}},"400":{"description":"Missing Slack headers or malformed interaction payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number. Retried interactions return 200 without reprocessing."}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"URL-encoded JSON interaction payload (Slack sends interactive component data as a single form field)"}}}}}}}},"/whatsapp/status":{"get":{"tags":["Whatsapp"],"summary":"Status","operationId":"whatsapp_status_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"WhatsAppStatusResponse","example":{"status":"available"}}}}}}}},"/whatsapp/webhook":{"get":{"tags":["Whatsapp"],"summary":"Whatsapp Verify","description":"Handle WhatsApp webhook verification","operationId":"whatsapp_verify_simple_agent","responses":{"200":{"description":"Webhook challenge accepted","content":{"text/plain":{"schema":{"type":"string"},"example":"challenge-token"}}},"400":{"description":"No challenge was provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid verify token or mode","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Webhook verification is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"hub.mode","in":"query","required":true,"schema":{"type":"string"},"description":"Webhook verification mode. Meta sends `subscribe`."},{"name":"hub.verify_token","in":"query","required":true,"schema":{"type":"string"},"description":"Verification token configured for the WhatsApp interface."},{"name":"hub.challenge","in":"query","required":true,"schema":{"type":"string"},"description":"Challenge returned as plain text after successful verification."}]},"post":{"tags":["Whatsapp"],"summary":"Whatsapp Webhook","description":"Process incoming WhatsApp messages","operationId":"whatsapp_webhook_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppWebhookResponse"}}}},"403":{"description":"Invalid webhook signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Signature validation is not configured, or the JSON body is malformed or is not an object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Hub-Signature-256","in":"header","required":true,"schema":{"type":"string"},"description":"SHA-256 HMAC signature for the raw request body, prefixed with `sha256=`"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}},"/telegram/status":{"get":{"tags":["Telegram"],"summary":"Telegram Status","operationId":"telegram_status_simple-agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramStatusResponse"}}}}}}},"/telegram/webhook":{"post":{"tags":["Telegram"],"summary":"Telegram Webhook","operationId":"telegram_webhook_simple-agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramWebhookResponse"}}}},"403":{"description":"Invalid webhook secret token"}}}},"/agui":{"post":{"tags":["AGUI"],"summary":"Run Agent","operationId":"run_agent_agui_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentInput"}}},"required":true},"responses":{"200":{"description":"Server-sent event stream","content":{"text/event-stream":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/status":{"get":{"tags":["AGUI"],"summary":"Get Status","operationId":"get_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/a2a/agents/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Agent Card","operationId":"get_agent_card_a2a_agents__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/a2a/agents/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Agent","description":"Send a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"A2A is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/agents/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Agent Task","description":"Get the status and result of an agent task by ID. `params.contextId` identifies the session containing the task.","operationId":"get_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent task retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Missing task or context ID, or task polling requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"Task polling is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/get","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/agents/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Agent Task","description":"Cancel a running agent task. Scoped non-admin callers must identify the task's session with `params.contextId`.","operationId":"cancel_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent task canceled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"canceled"}}}}}},"400":{"description":"Missing task or required context ID, or task cancellation requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"Task cancellation is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/cancel","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/agents/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Agent","description":"Stream a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/teams/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Team Card","operationId":"get_team_card_a2a_teams__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/a2a/teams/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Team","description":"Send a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/teams/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Team Task","description":"Get the status and result of a team task by ID. `params.contextId` identifies the session containing the task.","operationId":"get_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team task retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Missing task or context ID, or task polling requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/get","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/teams/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Team Task","description":"Cancel a running team task. Scoped non-admin callers must identify the task's session with `params.contextId`.","operationId":"cancel_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team task canceled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"canceled"}}}}}},"400":{"description":"Missing task or required context ID, or task cancellation requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/cancel","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/teams/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Team","description":"Stream a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/workflows/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Workflow Card","operationId":"get_workflow_card_a2a_workflows__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Workflow card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/a2a/workflows/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Workflow","description":"Send a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/workflows/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Workflow","description":"Stream a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/message/send":{"post":{"tags":["A2A"],"summary":"Send Message","description":"[DEPRECATED] Send a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"send_message","responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request or unsupported method","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, team, or workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"deprecated":true,"security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"X-Agent-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Target agent, team, or workflow ID when `params.message.agentId` is omitted."},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/message/stream":{"post":{"tags":["A2A"],"summary":"Stream Message","description":"[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as Server-Sent Events (SSE).","operationId":"stream_message","responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request or unsupported method","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, team, or workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"deprecated":true,"security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"X-Agent-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Target agent, team, or workflow ID when `params.message.agentId` is omitted."},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/sessions":{"get":{"tags":["Sessions"],"summary":"List Sessions","description":"Retrieve paginated list of sessions with filtering and sorting options. Supports filtering by session type (agent, team, workflow), component, user, and name. Sessions represent conversation histories and execution contexts.","operationId":"get_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types.","title":"Type"},"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types."},{"name":"component_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by component ID (agent/team/workflow ID)","title":"Component Id"},"description":"Filter sessions by component ID (agent/team/workflow ID)"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by user ID","title":"User Id"},"description":"Filter sessions by user ID"},{"name":"session_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by name (partial match)","title":"Session Name"},"description":"Filter sessions by name (partial match)"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of sessions to return per page","default":20,"title":"Limit"},"description":"Number of sessions to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort sessions by","default":"created_at","title":"Sort By"},"description":"Field to sort sessions by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query sessions from","title":"Db Id"},"description":"Database ID to query sessions from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Sessions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_SessionSchema_"},"example":{"session_example":{"summary":"Example session response","value":{"data":[{"session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_state":{},"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}]}}}}}},"400":{"description":"Invalid session type or filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in query parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Sessions"],"summary":"Create New Session","description":"Create a new empty session with optional configuration. Useful for pre-creating sessions with specific session_state, metadata, or other properties before running any agent/team/workflow interactions. The session can later be used by providing its session_id in run requests.","operationId":"create_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SessionType","description":"Type of session to create (agent, team, or workflow)","default":"agent"},"description":"Type of session to create (agent, team, or workflow)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to create session in","title":"Db Id"},"description":"Database ID to create session in"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest","description":"Session configuration data","default":{}}}}},"responses":{"201":{"description":"Session created successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Create Session"},"examples":{"agent_session_example":{"summary":"Example created agent session","value":{"user_id":"user-123","agent_session_id":"new-session-id","session_id":"new-session-id","session_name":"New Session","session_state":{"key":"value"},"metadata":{"key":"value"},"agent_id":"agent-1","created_at":"2025-10-21T12:00:00Z","updated_at":"2025-10-21T12:00:00Z"}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A session with the supplied session_id already exists"},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Multiple Sessions","description":"Delete multiple sessions by their IDs in a single operation. This action cannot be undone and will permanently remove all specified sessions and their runs.","operationId":"delete_sessions","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSessionRequest"}}}},"responses":{"204":{"description":"Sessions deleted successfully"},"400":{"description":"Invalid request - session IDs and types length mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["Sessions"],"summary":"Get Session by ID","description":"Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow).","operationId":"get_session_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to retrieve","title":"Session Id"},"description":"Session ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query session from","title":"User Id"},"description":"User ID to query session from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query session from","title":"Db Id"},"description":"Database ID to query session from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query session from","title":"Table"},"description":"Table to query session from"}],"responses":{"200":{"description":"Session details retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Get Session By Id"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Session","description":"Permanently delete a specific session and all its associated runs. This action cannot be undone and will remove all conversation history.","operationId":"delete_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to delete","title":"Session Id"},"description":"Session ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Sessions"],"summary":"Update Session","description":"Update session properties such as session_name, session_state, metadata, or summary. Use this endpoint to modify the session name, update state, add metadata, or update the session summary.","operationId":"update_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to update","title":"Session Id"},"description":"Session ID to update"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID","title":"User Id"},"description":"User ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update operation","title":"Db Id"},"description":"Database ID to use for update operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update operation","title":"Table"},"description":"Table to use for update operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest","description":"Session update data"}}}},"responses":{"200":{"description":"Session updated successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Update Session"},"examples":{"update_summary":{"summary":"Update session summary","value":{"summary":{"summary":"The user discussed project planning with the agent.","updated_at":"2025-10-21T14:30:00Z"}}},"update_metadata":{"summary":"Update session metadata","value":{"metadata":{"tags":["planning","project"],"priority":"high"}}},"update_session_name":{"summary":"Update session name","value":{"session_name":"Updated Session Name"}},"update_session_state":{"summary":"Update session state","value":{"session_state":{"step":"completed","context":"Project planning finished","progress":100}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs":{"get":{"tags":["Sessions"],"summary":"Get Session Runs","description":"Retrieve all runs (executions) for a specific session with optional timestamp filtering. Runs represent individual interactions or executions within a session. Response schema varies based on session type.","operationId":"get_session_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get runs from","title":"Session Id"},"description":"Session ID to get runs from"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query runs from","title":"User Id"},"description":"User ID to query runs from"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created after this Unix timestamp (epoch time in seconds)","title":"Created After"},"description":"Filter runs created after this Unix timestamp (epoch time in seconds)"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created before this Unix timestamp (epoch time in seconds)","title":"Created Before"},"description":"Filter runs created before this Unix timestamp (epoch time in seconds)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query runs from","title":"Db Id"},"description":"Database ID to query runs from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query runs from","title":"Table"},"description":"Table to query runs from"}],"responses":{"200":{"description":"Session runs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}]},"title":"Response Get Session Runs"},"examples":{"completed_run":{"summary":"Example completed run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"","run_input":"Which tools do you have access to?","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","run_response_format":"text","reasoning_content":"","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069},"messages":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-08 17:52:10.101003.\n\n\nYou have the capability to retain memories from previous interactions with the user, but have not had any interactions with the user yet.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757346730},{"content":"Which tools do you have access to?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757346730},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138},"created_at":1757346730}],"events":[{"created_at":1757346730,"event":"RunStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","model":"gpt-4o","model_provider":"OpenAI"},{"created_at":1757346733,"event":"MemoryUpdateStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"MemoryUpdateCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"RunCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","content_type":"str","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069}}],"created_at":"2025-09-08T15:52:10Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found or has no runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs/{run_id}":{"get":{"tags":["Sessions"],"summary":"Get Run by ID","description":"Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run).","operationId":"get_session_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get run from","title":"Session Id"},"description":"Session ID to get run from"},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","description":"Run ID to retrieve","title":"Run Id"},"description":"Run ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query run from","title":"User Id"},"description":"User ID to query run from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query run from","title":"Db Id"},"description":"Database ID to query run from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query run from","title":"Table"},"description":"Table to query run from"}],"responses":{"200":{"description":"Run retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}],"title":"Response Get Session Run"},"examples":{"agent_run":{"summary":"Example agent run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"user_123","run_input":"Which tools do you have access to?","content":"I don't have access to external tools.","created_at":1728499200}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/rename":{"post":{"tags":["Sessions"],"summary":"Rename Session","description":"Update the name of an existing session. Useful for organizing and categorizing sessions with meaningful names for better identification and management.","operationId":"rename_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to rename","title":"Session Id"},"description":"Session ID to rename"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope rename to","title":"User Id"},"description":"User ID to scope rename to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for rename operation","title":"Db Id"},"description":"Database ID to use for rename operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_rename_session"}}}},"responses":{"200":{"description":"Session renamed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Rename Session"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Invalid session name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type or validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories":{"post":{"tags":["Memory"],"summary":"Create Memory","description":"Create a new user memory with content and associated topics. Memories are used to store contextual information for users across conversations.","operationId":"create_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for memory storage","title":"Db Id"},"description":"Database ID to use for memory storage"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for memory storage","title":"Table"},"description":"Table to use for memory storage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"mem-123","memory":"User prefers technical explanations with code examples","topics":["preferences","communication_style","technical"],"user_id":"user-456","created_at":"2024-01-15T10:30:00Z","updated_at":"2024-01-15T10:30:00Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Memory"],"summary":"Delete Multiple Memories","description":"Delete multiple user memories by their IDs in a single operation. This action cannot be undone and all specified memories will be permanently removed.","operationId":"delete_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMemoriesRequest"}}}},"responses":{"204":{"description":"Memories deleted successfully"},"400":{"description":"Invalid request - empty memory_ids list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"List Memories","description":"Retrieve paginated list of user memories with filtering and search capabilities. Filter by user, agent, team, topics, or search within memory content.","operationId":"get_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by user ID","title":"User Id"},"description":"Filter memories by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by agent ID","title":"Agent Id"},"description":"Filter memories by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by team ID","title":"Team Id"},"description":"Filter memories by team ID"},{"name":"search_content","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fuzzy search within memory content","title":"Search Content"},"description":"Fuzzy search within memory content"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of memories to return per page","default":20,"title":"Limit"},"description":"Number of memories to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort memories by","default":"updated_at","title":"Sort By"},"description":"Field to sort memories by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memories from","title":"Db Id"},"description":"Database ID to query memories from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Comma-separated list of topics to filter by","examples":["preferences,technical,communication_style"],"title":"Topics"},"description":"Comma-separated list of topics to filter by"}],"responses":{"200":{"description":"Memories retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserMemorySchema_"},"example":{"data":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories/{memory_id}":{"delete":{"tags":["Memory"],"summary":"Delete Memory","description":"Permanently delete a specific user memory. This action cannot be undone.","operationId":"delete_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to delete","title":"Memory Id"},"description":"Memory ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to delete memory for","title":"User Id"},"description":"User ID to delete memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Memory deleted successfully"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"Get Memory by ID","description":"Retrieve detailed information about a specific user memory by its ID.","operationId":"get_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to retrieve","title":"Memory Id"},"description":"Memory ID to retrieve"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query memory for","title":"User Id"},"description":"User ID to query memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memory from","title":"Db Id"},"description":"Database ID to query memory from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query memory from","title":"Table"},"description":"Table to query memory from"}],"responses":{"200":{"description":"Memory retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Memory"],"summary":"Update Memory","description":"Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values.","operationId":"update_memory","security":[{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to update","title":"Memory Id"},"description":"Memory ID to update"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update","title":"Db Id"},"description":"Database ID to use for update"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update","title":"Table"},"description":"Table to use for update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memory_topics":{"get":{"tags":["Memory"],"summary":"Get Memory Topics","description":"Retrieve all unique topics associated with memories in the system. Useful for filtering and categorizing memories by topic.","operationId":"get_memory_topics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter topics for","title":"User Id"},"description":"User ID to filter topics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query topics from","title":"Db Id"},"description":"Database ID to query topics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query topics from","title":"Table"},"description":"Table to query topics from"}],"responses":{"200":{"description":"Memory topics retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Get Memory Topics"},"example":["preferences","communication_style","technical","industry","compliance","code_examples","requirements","healthcare","finance"]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/user_memory_stats":{"get":{"tags":["Memory"],"summary":"Get User Memory Statistics","description":"Retrieve paginated statistics about memory usage by user. Provides insights into user engagement and memory distribution across users.","operationId":"get_user_memory_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of user statistics to return per page","default":20,"title":"Limit"},"description":"Number of user statistics to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter statistics for","title":"User Id"},"description":"User ID to filter statistics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query statistics from","title":"Table"},"description":"Table to query statistics from"}],"responses":{"200":{"description":"User memory statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserStatsSchema_"},"example":{"data":[{"user_id":"123","total_memories":3,"last_memory_updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve user statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/optimize-memories":{"post":{"tags":["Memory"],"summary":"Optimize User Memories","description":"Optimize all memories for a user with the summarize strategy. The operation combines the user's memories into one summary. Set `apply=false` to preview the result without saving it. Specify a custom model as `provider:model_id`, for example `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, or `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`.","operationId":"optimize_memories","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for optimization","title":"Db Id"},"description":"Database ID to use for optimization"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for optimization","title":"Table"},"description":"Table to use for optimization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesRequest"}}}},"responses":{"200":{"description":"Memories optimized successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesResponse"},"example":{"memories":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User has a 3-year-old golden retriever named Max who loves fetch and walks. Lives in San Francisco's Mission district, works as a product manager in tech. Enjoys hiking Bay Area trails, trying new restaurants (especially Japanese, Thai, Mexican), and learning piano for 1.5 years.","topics":["pets","location","work","hobbies","food_preferences"],"user_id":"user2","updated_at":"2025-11-18T10:30:00Z"}],"memories_before":4,"memories_after":1,"tokens_before":450,"tokens_after":180,"tokens_saved":270,"reduction_percentage":60.0}}}},"400":{"description":"Bad request - User ID is required or invalid model string format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No memories found for user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to optimize memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings":{"get":{"tags":["Learnings"],"summary":"List Learnings","description":"List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) \u2014 this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`).","operationId":"list_learnings","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by learning type","title":"Learning Type"},"description":"Filter by learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"namespace","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by namespace","title":"Namespace"},"description":"Filter by namespace"},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity ID","title":"Entity Id"},"description":"Filter by entity ID"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity type","title":"Entity Type"},"description":"Filter by entity type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":100,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used).","title":"Sort By"},"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used)."},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"post":{"tags":["Learnings"],"summary":"Create Learning","description":"Create a new learning record. For the identity-keyed learning types (`user_profile`, `user_memory`, `session_context`, `entity_memory`) the record id is derived deterministically from the identity fields so it reconciles with what the agent reads/writes \u2014 provide those fields (else 422), and if a record already exists the request is rejected with 409 (use PATCH to update it). Other types get a generated id. For a scoped (non-admin) caller, the body's `user_id` must be omitted/null or match the caller (mismatch \u2192 403); admins and unscoped callers may set any `user_id`.","operationId":"create_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"An identity-keyed learning already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/users":{"get":{"tags":["Learnings"],"summary":"List Learning Users","description":"List the users that own learning records, with a per-user count and last-updated timestamp. Intended as the entry point for a per-user view: list users here, then drill into a single user's learnings via `GET /learnings?user_id=...`. Records with no owner (`user_id IS NULL`) are excluded. Pass `learning_type` to restrict the grouping to a single store (e.g. `user_profile` or `user_memory`). For a scoped (non-admin) caller results are bound to that user; an explicit `user_id` that differs is rejected with 403. Admins and unscoped callers list all users. Sortable by `user_id` or `last_learning_updated_at` (the default).","operationId":"list_learning_users","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the grouping to a single learning type","title":"Learning Type"},"description":"Restrict the grouping to a single learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the result to a single user","title":"User Id"},"description":"Restrict the result to a single user"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by: user_id or last_learning_updated_at (the default)","title":"Sort By"},"description":"Field to sort by: user_id or last_learning_updated_at (the default)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningUserStats_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/users/{user_id}":{"delete":{"tags":["Learnings"],"summary":"Delete Learning User","description":"Delete the learning records owned by a user. By default removes every learning type backed by the agno_learnings table (user_profile, user_memory, and any user-scoped entity records); pass `learning_type` to restrict deletion to a single store. Records with no owner (`user_id IS NULL`) are not affected. For a scoped (non-admin) caller, only their own learnings may be deleted; a different `user_id` is rejected with 403. Admins and unscoped callers may delete any user's learnings. Returns 204 even if the user had no matching records.","operationId":"delete_learning_user","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The user whose learnings should be deleted","title":"User Id"},"description":"The user whose learnings should be deleted"},{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings","title":"Learning Type"},"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/{learning_id}":{"get":{"tags":["Learnings"],"summary":"Get Learning","description":"Retrieve a single learning record by its ID.","operationId":"get_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"patch":{"tags":["Learnings"],"summary":"Update Learning","description":"Update a learning record. Only `content` and `metadata` may be modified; identity fields (user_id, agent_id, team_id, etc.) are immutable. Provided fields fully replace the existing values. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) are readable by any caller but may only be modified by an admin.","operationId":"update_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"delete":{"tags":["Learnings"],"summary":"Delete Learning","description":"Permanently delete a learning record by its ID. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) may only be deleted by an admin.","operationId":"delete_learning","security":[{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/eval-runs":{"get":{"tags":["Evals"],"summary":"List Evaluation Runs","description":"Retrieve paginated evaluation runs with filtering and sorting options. Filter by agent, team, workflow, model, or evaluation type.","operationId":"get_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Workflow ID","title":"Workflow Id"},"description":"Workflow ID"},{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model ID","title":"Model Id"},"description":"Model ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EvalFilterType"},{"type":"null"}],"description":"Filter type","title":"Type"},"description":"Filter type"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of eval runs to return","default":20,"title":"Limit"},"description":"Number of eval runs to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"eval_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)","examples":["accuracy,agent_as_judge,performance,reliability"],"title":"Eval Types"},"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)"}],"responses":{"200":{"description":"Evaluation runs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_EvalSchema_"},"example":{"data":[{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Evals"],"summary":"Delete Evaluation Runs","description":"Delete multiple evaluation runs by their IDs. This action cannot be undone.","operationId":"delete_eval_runs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvalRunsRequest"}}}},"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Deletion failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Evals"],"summary":"Execute Evaluation","description":"Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both.","operationId":"run_eval","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for evaluation","title":"Db Id"},"description":"Database ID to use for evaluation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for evaluation","title":"Table"},"description":"Table to use for evaluation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRunInput"}}}},"responses":{"200":{"description":"Evaluation executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"f2b2d72f-e9e2-4f0e-8810-0a7e1ff58614","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Invalid request - provide either agent_id or team_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs/{eval_run_id}":{"get":{"tags":["Evals"],"summary":"Get Evaluation Run","description":"Retrieve detailed results and metrics for a specific evaluation run.","operationId":"get_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query eval run from","title":"Table"},"description":"Table to query eval run from"}],"responses":{"200":{"description":"Evaluation run details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Evals"],"summary":"Update Evaluation Run","description":"Update the name or other properties of an existing evaluation run.","operationId":"update_eval_run","security":[{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvalRunRequest"}}}},"responses":{"200":{"description":"Evaluation run updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update evaluation run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics":{"get":{"tags":["Metrics"],"summary":"Get AgentOS Metrics","description":"Retrieve AgentOS metrics and analytics data for a specified date range. If no date range is specified, returns all available metrics.","operationId":"get_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"starting_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Starting date for metrics range (YYYY-MM-DD format)","title":"Starting Date"},"description":"Starting date for metrics range (YYYY-MM-DD format)"},{"name":"ending_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Ending date for metrics range (YYYY-MM-DD format)","title":"Ending Date"},"description":"Ending date for metrics range (YYYY-MM-DD format)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query metrics from","title":"Db Id"},"description":"Database ID to query metrics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Metrics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"},"example":{"metrics":[{"id":"7bf39658-a00a-484c-8a28-67fd8a9ddb2a","agent_runs_count":5,"agent_sessions_count":5,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":448,"output_tokens":148,"total_tokens":596,"audio_tokens":0,"input_audio_tokens":0,"output_audio_tokens":0,"cached_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":5}],"date":"2025-07-31T00:00:00Z","created_at":"2025-07-31T12:38:52Z","updated_at":"2025-07-31T12:49:01Z"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Metrics retrieval failed. In Agno 2.7.4, invalid or ambiguous database selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics/refresh":{"post":{"tags":["Metrics"],"summary":"Refresh Metrics","description":"Manually trigger recalculation of system metrics from raw data. This operation analyzes system activity logs and regenerates aggregated metrics. Useful for ensuring metrics are up-to-date or after system maintenance.","operationId":"refresh_metrics","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for metrics calculation","title":"Db Id"},"description":"Database ID to use for metrics calculation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for metrics calculation","title":"Table"},"description":"Table to use for metrics calculation"}],"responses":{"200":{"description":"Metrics refreshed successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"title":"Response Refresh Metrics"},"example":[{"id":"e77c9531-818b-47a5-99cd-59fed61e5403","agent_runs_count":2,"agent_sessions_count":2,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":256,"output_tokens":441,"total_tokens":697,"audio_total_tokens":0,"audio_input_tokens":0,"audio_output_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":2}],"date":"2025-08-12T00:00:00Z","created_at":"2025-08-12T08:01:47Z","updated_at":"2025-08-12T08:01:47Z"}]}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Refresh failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content":{"post":{"tags":["Knowledge"],"summary":"Upload Content","description":"Upload content to the knowledge base. Supports file uploads, text content, or URLs. Content is processed asynchronously in the background. Supports custom readers and chunking strategies.","operationId":"upload_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_content"}}}},"responses":{"202":{"description":"Content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-123","name":"example-document.pdf","description":"Sample document for processing","metadata":{"category":"documentation","priority":"high"},"status":"processing"}}}},"400":{"description":"Invalid request - malformed metadata or missing content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in form data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"List Content","description":"Return a paginated, sorted list of content for the selected knowledge base. Use `limit`, `page`, `sort_by`, and `sort_order` to control the result. Agno 2.7.4 exposes no status, content type, or metadata filter parameters on this endpoint. Named local knowledge instances scope rows by the stored `linked_to` value.","operationId":"get_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of content entries to return","default":20,"title":"Limit"},"description":"Number of content entries to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ContentResponseSchema_"},"example":{"data":[{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":null,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z","linked_to":null}],"meta":{"page":1,"limit":20,"total_pages":1,"total_count":2}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete All Content","description":"Permanently remove all content from the knowledge base. This is a destructive operation that cannot be undone. Use with extreme caution.","operationId":"delete_all_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete all content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/remote-content":{"post":{"tags":["Knowledge"],"summary":"Upload Remote Content","description":"Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.","operationId":"upload_remote_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_upload_remote_content"}}}},"responses":{"202":{"description":"Remote content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-456","name":"reports/q1-2024.pdf","description":"Q1 Report from S3","metadata":{"source":"s3-docs"},"status":"processing"}}}},"400":{"description":"Invalid request - unknown config or missing path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Remote content upload is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/knowledge/content/{content_id}":{"patch":{"tags":["Knowledge"],"summary":"Update Content","description":"Update content name, description, or metadata without re-uploading it. In Agno 2.7.4, this endpoint accepts `reader_id`. Local knowledge validates the value, but the content patch does not apply or persist the reader change.","operationId":"update_content","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","description":"Content ID","title":"Content Id"},"description":"Content ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_update_content"}}}},"responses":{"200":{"description":"Content updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":null,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z","linked_to":null}}}},"400":{"description":"Invalid request - malformed metadata or invalid reader_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"Get Content by ID","description":"Retrieve detailed information about a specific content item including processing status and metadata.","operationId":"get_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":null,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z","linked_to":null}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete Content by ID","description":"Permanently remove a specific content item from the knowledge base. This action cannot be undone.","operationId":"delete_content_by_id","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}/status":{"get":{"tags":["Knowledge"],"summary":"Get Content Status","description":"Return the processing status for a content ID. For local knowledge in Agno 2.7.4, an unknown content ID returns HTTP 200 with `status=\"failed\"` and `status_message=\"Content not found\"`.","operationId":"get_content_status","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content status returned. An unknown local content ID is represented by status \"failed\".","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentStatusResponse"},"examples":{"completed":{"summary":"Completed content","value":{"id":"content-123","status":"completed","status_message":""}},"content_not_found":{"summary":"Unknown local content ID","value":{"id":"missing-content","status":"failed","status_message":"Content not found"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Selected knowledge base or database ID not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/search":{"post":{"tags":["Knowledge"],"summary":"Search Knowledge","description":"Search the knowledge base for relevant documents using query, filters and search type.","operationId":"search_knowledge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VectorSearchRequestSchema"}}},"required":true},"responses":{"200":{"description":"Search results retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_VectorSearchResult_"},"example":{"data":[{"id":"doc_123","content":"Jordan Mitchell - Software Engineer with skills in JavaScript, React, Python","name":"cv_1","meta_data":{"page":1,"chunk":1},"usage":{"total_tokens":14},"reranking_score":0.95,"content_id":"content_456"}],"meta":{"page":1,"limit":20,"total_pages":2,"total_count":35}}}}},"400":{"description":"Invalid search parameters"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No documents found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/knowledge/config":{"get":{"tags":["Knowledge"],"summary":"Get Config","description":"Retrieve available readers, chunkers, and configuration options for content processing. This endpoint provides metadata about supported file types, processing strategies, and filters.","operationId":"get_knowledge_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Knowledge configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponseSchema"},"example":{"readers":{"website":{"id":"website","name":"WebsiteReader","description":"Reads website files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"firecrawl":{"id":"firecrawl","name":"FirecrawlReader","description":"Reads firecrawl files","chunkers":["SemanticChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"youtube":{"id":"youtube","name":"YoutubeReader","description":"Reads youtube files","chunkers":["RecursiveChunker","AgenticChunker","DocumentChunker","SemanticChunker","FixedSizeChunker"]},"web_search":{"id":"web_search","name":"WebSearchReader","description":"Reads web_search files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"arxiv":{"id":"arxiv","name":"ArxivReader","description":"Reads arxiv files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"csv":{"id":"csv","name":"CsvReader","description":"Reads csv files","chunkers":["RowChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"docling":{"id":"docling","name":"DoclingReader","description":"Converts multiple document formats like PDF, DOCX, PPTX, images, HTML, etc. using IBM's Docling library","chunkers":["AgenticChunker","CodeChunker","DocumentChunker","FixedSizeChunker","RecursiveChunker","SemanticChunker"]},"docx":{"id":"docx","name":"DocxReader","description":"Reads docx files","chunkers":["DocumentChunker","FixedSizeChunker","SemanticChunker","AgenticChunker","RecursiveChunker"]},"gcs":{"id":"gcs","name":"GcsReader","description":"Reads gcs files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"json":{"id":"json","name":"JsonReader","description":"Reads json files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"markdown":{"id":"markdown","name":"MarkdownReader","description":"Reads markdown files","chunkers":["MarkdownChunker","DocumentChunker","AgenticChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"pdf":{"id":"pdf","name":"PdfReader","description":"Reads pdf files","chunkers":["DocumentChunker","FixedSizeChunker","AgenticChunker","SemanticChunker","RecursiveChunker"]},"text":{"id":"text","name":"TextReader","description":"Reads text files","chunkers":["CodeChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]}},"readersForType":{"url":["url","website","firecrawl","youtube","web_search","gcs"],"youtube":["youtube"],"text":["web_search"],"topic":["arxiv"],"file":["csv","gcs"],".csv":["csv","field_labeled_csv","docling"],".xlsx":["excel","docling"],".xls":["excel"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["excel"],"application/vnd.ms-excel":["excel"],".docx":["docx","docling"],".dotx":["docling"],".docm":["docling"],".dotm":["docling"],".pptx":["docling","pptx"],".potx":["docling"],".ppsx":["docling"],".pptm":["docling"],".ppsm":["docling"],".potm":["docling"],".doc":["docx"],".json":["json"],".md":["markdown","docling"],".pdf":["pdf","docling"],".txt":["text"],".html":["docling"],".htm":["docling"],".xhtml":["docling"],".xml":["docling"],".nxml":["docling"],".xbrl":["docling"],".adoc":["docling"],".asciidoc":["docling"],".asc":["docling"],".xlsm":["docling"],".tex":["docling"],".latex":["docling"],".tar.gz":["docling"],".vtt":["docling"],".png":["docling"],".jpeg":["docling"],".jpg":["docling"],".tiff":["docling"],".tif":["docling"],".bmp":["docling"],".webp":["docling"],".wav":["docling"],".mp3":["docling"],".m4a":["docling"],".aac":["docling"],".ogg":["docling"],".flac":["docling"],".mp4":["docling"],".avi":["docling"],".mov":["docling"]},"chunkers":{"AgenticChunker":{"key":"AgenticChunker","name":"AgenticChunker","description":"Chunking strategy that uses an LLM to determine natural breakpoints in the text","metadata":{"chunk_size":5000}},"CodeChunker":{"key":"CodeChunker","name":"CodeChunker","description":"The CodeChunker splits code into chunks based on its structure, leveraging Abstract Syntax Trees (ASTs) to create contextually relevant segments","metadata":{"chunk_size":2048}},"DocumentChunker":{"key":"DocumentChunker","name":"DocumentChunker","description":"A chunking strategy that splits text based on document structure like paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"FixedSizeChunker":{"key":"FixedSizeChunker","name":"FixedSizeChunker","description":"Chunking strategy that splits text into fixed-size chunks with optional overlap","metadata":{"chunk_size":5000,"chunk_overlap":0}},"MarkdownChunker":{"key":"MarkdownChunker","name":"MarkdownChunker","description":"A chunking strategy that splits markdown based on structure like headers, paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RecursiveChunker":{"key":"RecursiveChunker","name":"RecursiveChunker","description":"Chunking strategy that recursively splits text into chunks by finding natural break points","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RowChunker":{"key":"RowChunker","name":"RowChunker","description":"RowChunking chunking strategy","metadata":{}},"SemanticChunker":{"key":"SemanticChunker","name":"SemanticChunker","description":"Chunking strategy that splits text into semantic chunks using chonkie","metadata":{"chunk_size":5000}}},"vector_dbs":[{"id":"vector_db_1","name":"Vector DB 1","description":"Vector DB 1 description","search_types":["vector","keyword","hybrid"]}],"filters":["filter_tag_1","filter_tag2"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources":{"get":{"tags":["Knowledge"],"summary":"List Content Sources","description":"List all registered content sources (S3, GCS, SharePoint, GitHub) for the knowledge base.","operationId":"list_content_sources","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Content sources retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"title":"Response List Content Sources"},"example":[{"id":"company-s3","name":"Company Documents","type":"s3","prefix":"documents/"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Content source listing is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/knowledge/{knowledge_id}/sources/{source_id}/files":{"get":{"tags":["Knowledge"],"summary":"List Files in Source","description":"List available files and folders in a specific content source. Supports pagination and folder navigation.","operationId":"list_source_files","security":[{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the content source","title":"Source Id"},"description":"ID of the content source"},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Path prefix to filter files","title":"Prefix"},"description":"Path prefix to filter files"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of files per page","default":100,"title":"Limit"},"description":"Number of files per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"delimiter","in":"query","required":false,"schema":{"type":"string","description":"Folder delimiter (enables folder grouping)","default":"/","title":"Delimiter"},"description":"Folder delimiter (enables folder grouping)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Files listed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceFilesResponseSchema"},"example":{"source_id":"company-s3","source_name":"Company Documents","prefix":"reports/","folders":[{"prefix":"reports/2024/","name":"2024","is_empty":false}],"files":[{"key":"reports/annual-summary.pdf","name":"annual-summary.pdf","size":102400,"last_modified":"2024-01-15T10:30:00Z","content_type":"application/pdf"}],"meta":{"page":1,"limit":100,"total_pages":1,"total_count":1}}}}},"400":{"description":"Unsupported source type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base or content source not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Source file listing is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/traces":{"get":{"tags":["Traces","Traces"],"summary":"List Traces","description":"Retrieve a paginated list of execution traces with optional filtering.\n\n**Traces provide observability into:**\n- Agent execution flows\n- Model invocations and token usage\n- Tool calls and their results\n- Errors and performance bottlenecks\n\n**Filtering Options:**\n- By run, session, user, or agent ID\n- By status (OK, ERROR)\n- By time range\n\n**Pagination:**\n- Use `page` (1-indexed) and `limit` parameters\n- Response includes pagination metadata (total_pages, total_count, etc.)\n\n**Response Format:**\nReturns summary information for each trace. Use GET `/traces/{trace_id}` for detailed hierarchy.","operationId":"get_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run ID","title":"Run Id"},"description":"Filter by run ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status (OK, ERROR)","title":"Status"},"description":"Filter by status (OK, ERROR)"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of traces per page","default":20,"title":"Limit"},"description":"Number of traces per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"responses":{"200":{"description":"List of traces retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSummary_"},"example":{"data":[{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","total_spans":4,"error_count":0,"input":"What is the stock price of NVDA?","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"agent_stock","created_at":"2025-11-19T10:30:00+00:00"}],"meta":{"page":1,"limit":20,"total_pages":5,"total_count":95}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/filter-schema":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Filter Schema","description":"Returns the available filterable fields, their types, valid operators, and enum values.\n\nThe frontend uses this to dynamically build the filter bar UI:\n- Field dropdown populated from `fields[].key`\n- Operator dropdown changes per field type\n- Value input shows autocomplete for enum fields (e.g., status)\n- Logical operators (AND, OR) for combining clauses","operationId":"get_traces_filter_schema","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterSchemaResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/traces/{trace_id}":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace or Span Detail","description":"Retrieve detailed trace information with hierarchical span tree, or a specific span within the trace.\n\n**Without span_id parameter:**\nReturns the full trace with hierarchical span tree:\n- Trace metadata (ID, status, duration, context)\n- Hierarchical tree of all spans\n- Each span includes timing, status, and type-specific metadata\n\n**With span_id parameter:**\nReturns details for a specific span within the trace:\n- Span metadata (ID, name, type, timing)\n- Status and error information\n- Type-specific attributes (model, tokens, tool params, etc.)\n\n**Span Hierarchy (full trace):**\nThe `tree` field contains root spans, each with potential `children`.\nThis recursive structure represents the execution flow:\n```\nAgent.run (root)\n \u251c\u2500 LLM.invoke\n \u251c\u2500 Tool.execute\n \u2502 \u2514\u2500 LLM.invoke (nested)\n \u2514\u2500 LLM.invoke\n```\n\n**Span Types:**\n- `AGENT`: Agent execution with input/output\n- `LLM`: Model invocations with tokens and prompts\n- `TOOL`: Tool calls with parameters and results","operationId":"get_trace","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}},{"name":"span_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Span ID to retrieve specific span","title":"Span Id"},"description":"Optional: Span ID to retrieve specific span"},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Run ID to retrieve trace for","title":"Run Id"},"description":"Optional: Run ID to retrieve trace for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query trace from","title":"Db Id"},"description":"Database ID to query trace from"}],"responses":{"200":{"description":"Trace or span detail retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TraceDetail"},{"$ref":"#/components/schemas/TraceNode"}],"title":"Response Get Trace"},"examples":{"full_trace":{"summary":"Full trace with hierarchy (no span_id)","value":{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","end_time":"2025-11-19T10:30:01.200000+00:00","total_spans":4,"error_count":0,"input":"What is Tesla stock price?","output":"The current price of Tesla (TSLA) is $245.67.","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"stock_agent","created_at":"2025-11-19T10:30:00+00:00","tree":[{"id":"span1","name":"Stock_Price_Agent.run","type":"AGENT","duration":"1.2s","status":"OK","spans":[]}]}},"single_span":{"summary":"Single span detail (with span_id)","value":{"id":"span2","name":"gpt-4o-mini.invoke","type":"LLM","duration":"800ms","status":"OK","metadata":{"model":"gpt-4o-mini","input_tokens":120}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Trace or span not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/trace_session_stats":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Statistics by Session","description":"Retrieve aggregated trace statistics grouped by session ID with pagination.\n\n**Provides insights into:**\n- Total traces per session\n- First and last trace timestamps per session\n- Associated user and agent information\n\n**Filtering Options:**\n- By user ID\n- By agent ID\n\n**Use Cases:**\n- Monitor session-level activity\n- Track conversation flows\n- Identify high-activity sessions\n- Analyze user engagement patterns","operationId":"get_trace_stats","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of sessions per page","default":20,"title":"Limit"},"description":"Number of sessions per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"}],"responses":{"200":{"description":"Trace statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"},"example":{"data":[{"session_id":"37029bc6-1794-4ba8-a629-1efedc53dcad","user_id":"kaustubh@agno.com","agent_id":"hackernews-agent","total_traces":5,"first_trace_at":"2025-11-19T10:15:16+00:00","last_trace_at":"2025-11-19T10:21:30+00:00"}],"meta":{"page":1,"limit":20,"total_pages":3,"total_count":45}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/search":{"post":{"tags":["Traces","Traces"],"summary":"Search Traces with Advanced Filters","description":"Search traces using the FilterExpr DSL for complex, composable queries.\n\n**Group By Mode:**\n- `run` (default): Returns `PaginatedResponse[TraceDetail]` with full span trees\n- `session`: Returns `PaginatedResponse[TraceSessionStats]` with aggregated session stats\n\n**Supported Operators:**\n- Comparison: `EQ`, `NEQ`, `GT`, `GTE`, `LT`, `LTE`\n- Inclusion: `IN`\n- String matching: `CONTAINS` (case-insensitive substring), `STARTSWITH` (prefix)\n- Logical: `AND`, `OR`, `NOT`\n\n**Filterable Fields:**\ntrace_id, name, status, start_time, end_time, duration_ms, run_id, session_id, user_id, agent_id, team_id, workflow_id, created_at\n\n**Example Request Body (runs):**\n```json\n{\n \"filter\": {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n}\n```\n\n**Example Request Body (sessions):**\n```json\n{\n \"filter\": {\"op\": \"CONTAINS\", \"key\": \"agent_id\", \"value\": \"stock\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n}\n```","operationId":"search_traces","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PaginatedResponse_TraceDetail_"},{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"}],"title":"Response Search Traces"}}}},"400":{"description":"Invalid filter expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/all/migrate":{"post":{"tags":["Database"],"summary":"Migrate All Databases","description":"Migrate all database schemas to the given target version. If a target version is not provided, all databases will be migrated to the latest version.","operationId":"migrate_all_databases","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"All databases migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"All databases migrated successfully to version 3.0.0"}}}},"207":{"description":"Some database migrations failed","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"},"failed":{"type":"object","additionalProperties":{"type":"string"},"title":"Failed"}},"type":"object","required":["message","failed"],"title":"PartialMigrationResponse"},"example":{"message":"Migrated 2/3 databases to latest version","failed":{"archive-db":"Migration failed"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/{db_id}/migrate":{"post":{"tags":["Database"],"summary":"Migrate Database","description":"Migrate the given database schema to the given target version. If a target version is not provided, the database will be migrated to the latest version.","operationId":"migrate_database","security":[{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"Database migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"Database migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Database not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components":{"get":{"tags":["Components"],"summary":"List Components","description":"Retrieve a paginated list of components with optional filtering by type.","operationId":"list_components","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ComponentType"},{"type":"null"}],"description":"Filter by type: agent, team, workflow","title":"Component Type"},"description":"Filter by type: agent, team, workflow"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ComponentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Component","description":"Create a new component (agent, team, or workflow) with initial config.","operationId":"create_component","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}":{"get":{"tags":["Components"],"summary":"Get Component","description":"Retrieve a component by ID.","operationId":"get_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Components"],"summary":"Update Component","description":"Partially update a component by ID.","operationId":"update_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentUpdate","description":"Component fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Component","description":"Soft-delete a component by ID. Component configs and links remain stored.","operationId":"delete_component","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs":{"get":{"tags":["Components"],"summary":"List Configs","description":"List all configs for a component.","operationId":"list_configs","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"include_config","in":"query","required":false,"schema":{"type":"boolean","description":"Include full config blob","default":true,"title":"Include Config"},"description":"Include full config blob"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComponentConfigResponse"},"title":"Response List Configs"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Config Version","description":"Create a new config version for a component.","operationId":"create_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigCreate","description":"Config data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}":{"patch":{"tags":["Components"],"summary":"Update Draft Config","description":"Update an existing draft config. Cannot update published configs.","operationId":"update_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigUpdate","description":"Config fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Components"],"summary":"Get Config Version","description":"Get a specific config version by number.","operationId":"get_config_version","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Config Version","description":"Delete a specific config version. Agno v2.7.4 rejects the current version. Synchronous SQLite and PostgreSQL storage allow deletion of a published non-current version.","operationId":"delete_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/current":{"get":{"tags":["Components"],"summary":"Get Current Config","description":"Get the current config version for a component.","operationId":"get_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}/set-current":{"post":{"tags":["Components"],"summary":"Set Current Config Version","description":"Set a published config version as current (for rollback).","operationId":"set_current_config","security":[{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/schedules":{"get":{"tags":["Schedules"],"summary":"List Schedules","operationId":"list_schedules_schedules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"post":{"tags":["Schedules"],"summary":"Create Schedule","operationId":"create_schedule_schedules_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule","operationId":"get_schedule_schedules__schedule_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"patch":{"tags":["Schedules"],"summary":"Update Schedule","operationId":"update_schedule_schedules__schedule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Schedules"],"summary":"Delete Schedule","operationId":"delete_schedule_schedules__schedule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/enable":{"post":{"tags":["Schedules"],"summary":"Enable Schedule","operationId":"enable_schedule_schedules__schedule_id__enable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/disable":{"post":{"tags":["Schedules"],"summary":"Disable Schedule","operationId":"disable_schedule_schedules__schedule_id__disable_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/trigger":{"post":{"tags":["Schedules"],"summary":"Trigger Schedule","operationId":"trigger_schedule_schedules__schedule_id__trigger_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Schedule is disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler is not running or storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs":{"get":{"tags":["Schedules"],"summary":"List Schedule Runs","operationId":"list_schedule_runs_schedules__schedule_id__runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleRunResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs/{run_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule Run","operationId":"get_schedule_run_schedules__schedule_id__runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals":{"get":{"tags":["Approvals"],"summary":"List Approvals","operationId":"list_approvals_approvals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","approved","rejected","expired","cancelled"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"source_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"}},{"name":"approval_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["required","audit"],"type":"string"},{"type":"null"}],"title":"Approval Type"}},{"name":"pause_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"schedule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"}},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ApprovalResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approvals could not be listed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/count":{"get":{"tags":["Approvals"],"summary":"Get Approval Count","operationId":"get_approval_count_approvals_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalCountResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval count could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/status":{"get":{"tags":["Approvals"],"summary":"Get Approval Status","operationId":"get_approval_status_approvals__approval_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalStatusResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval status could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}":{"get":{"tags":["Approvals"],"summary":"Get Approval","operationId":"get_approval_approvals__approval_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Approvals"],"summary":"Delete Approval","operationId":"delete_approval_approvals__approval_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval is not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/resolve":{"post":{"tags":["Approvals"],"summary":"Resolve Approval","operationId":"resolve_approval_approvals__approval_id__resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResolve"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Approval has already been resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts":{"post":{"tags":["Service Accounts"],"summary":"Create Service Account","description":"Mint a service account token. The plaintext token is returned exactly once.","operationId":"create_service_account_service_accounts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreateResponse"}}}},"400":{"description":"Requested scopes are invalid, or privileged scopes were not explicitly allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"An active service account with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"get":{"tags":["Service Accounts"],"summary":"List Service Accounts","description":"List service accounts. Returns metadata and display prefixes only - never hashes or plaintext.","operationId":"list_service_accounts_service_accounts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Revoked"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ServiceAccountResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts/{service_account_id}":{"delete":{"tags":["Service Accounts"],"summary":"Revoke Service Account","description":"Revoke an existing service account.\n\nTakes effect immediately on this worker (the local verification cache entry is evicted) and within the cache TTL on other workers.","operationId":"revoke_service_account_service_accounts__service_account_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"service_account_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Service account not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/registry":{"get":{"tags":["Registry"],"summary":"List Registry","description":"List all resources in the registry with optional filtering.","operationId":"list_registry","security":[{"HTTPBearer":[]}],"parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RegistryResourceType"},{"type":"null"}],"description":"Filter by resource type","title":"Resource Type"},"description":"Filter by resource type"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (partial match)","title":"Name"},"description":"Filter by name (partial match)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_RegistryContentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}}},"components":{"schemas":{"A2ACard_APIKeySecurityScheme":{"description":"Defines a security scheme using an API key.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"in":{"$ref":"#/components/schemas/A2ACard_In"},"name":{"title":"Name","type":"string"},"type":{"const":"apiKey","default":"apiKey","title":"Type","type":"string"}},"required":["in","name"],"title":"APIKeySecurityScheme","type":"object"},"A2ACard_AgentCapabilities":{"description":"Defines optional capabilities supported by an agent.","properties":{"extensions":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentExtension"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"pushNotifications":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Pushnotifications"},"stateTransitionHistory":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Statetransitionhistory"},"streaming":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Streaming"}},"title":"AgentCapabilities","type":"object"},"A2ACard_AgentCardSignature":{"description":"AgentCardSignature represents a JWS signature of an AgentCard.\nThis follows the JSON format of an RFC 7515 JSON Web Signature (JWS).","properties":{"header":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Header"},"protected":{"title":"Protected","type":"string"},"signature":{"title":"Signature","type":"string"}},"required":["protected","signature"],"title":"AgentCardSignature","type":"object"},"A2ACard_AgentExtension":{"description":"A declaration of a protocol extension supported by an Agent.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"params":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Params"},"required":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Required"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"AgentExtension","type":"object"},"A2ACard_AgentInterface":{"description":"Declares a combination of a target URL and a transport protocol for interacting with the agent.\nThis allows agents to expose the same functionality over multiple transport mechanisms.","properties":{"transport":{"examples":["JSONRPC","GRPC","HTTP+JSON"],"title":"Transport","type":"string"},"url":{"examples":["https://api.example.com/a2a/v1","https://grpc.example.com/a2a","https://rest.example.com/v1"],"title":"Url","type":"string"}},"required":["transport","url"],"title":"AgentInterface","type":"object"},"A2ACard_AgentProvider":{"description":"Represents the service provider of an agent.","properties":{"organization":{"title":"Organization","type":"string"},"url":{"title":"Url","type":"string"}},"required":["organization","url"],"title":"AgentProvider","type":"object"},"A2ACard_AgentSkill":{"description":"Represents a distinct capability or function that an agent can perform.","properties":{"description":{"title":"Description","type":"string"},"examples":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"examples":[["I need a recipe for bread"]],"title":"Examples"},"id":{"title":"Id","type":"string"},"inputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Inputmodes"},"name":{"title":"Name","type":"string"},"outputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Outputmodes"},"security":{"anyOf":[{"items":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},"type":"array"},{"type":"null"}],"default":null,"examples":[[{"google":["oidc"]}]],"title":"Security"},"tags":{"examples":[["cooking","customer support","billing"]],"items":{"type":"string"},"title":"Tags","type":"array"}},"required":["description","id","name","tags"],"title":"AgentSkill","type":"object"},"A2ACard_AuthorizationCodeOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Authorization Code flow.","properties":{"authorizationUrl":{"title":"Authorizationurl","type":"string"},"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["authorizationUrl","scopes","tokenUrl"],"title":"AuthorizationCodeOAuthFlow","type":"object"},"A2ACard_ClientCredentialsOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Client Credentials flow.","properties":{"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["scopes","tokenUrl"],"title":"ClientCredentialsOAuthFlow","type":"object"},"A2ACard_HTTPAuthSecurityScheme":{"description":"Defines a security scheme using HTTP authentication.","properties":{"bearerFormat":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Bearerformat"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"scheme":{"title":"Scheme","type":"string"},"type":{"const":"http","default":"http","title":"Type","type":"string"}},"required":["scheme"],"title":"HTTPAuthSecurityScheme","type":"object"},"A2ACard_ImplicitOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Implicit flow.","properties":{"authorizationUrl":{"title":"Authorizationurl","type":"string"},"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"}},"required":["authorizationUrl","scopes"],"title":"ImplicitOAuthFlow","type":"object"},"A2ACard_In":{"description":"The location of the API key.","enum":["cookie","header","query"],"title":"In","type":"string"},"A2ACard_MutualTLSSecurityScheme":{"description":"Defines a security scheme using mTLS authentication.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"type":{"const":"mutualTLS","default":"mutualTLS","title":"Type","type":"string"}},"title":"MutualTLSSecurityScheme","type":"object"},"A2ACard_OAuth2SecurityScheme":{"description":"Defines a security scheme using OAuth 2.0.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"flows":{"$ref":"#/components/schemas/A2ACard_OAuthFlows"},"oauth2MetadataUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Oauth2Metadataurl"},"type":{"const":"oauth2","default":"oauth2","title":"Type","type":"string"}},"required":["flows"],"title":"OAuth2SecurityScheme","type":"object"},"A2ACard_OAuthFlows":{"description":"Defines the configuration for the supported OAuth 2.0 flows.","properties":{"authorizationCode":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_AuthorizationCodeOAuthFlow"},{"type":"null"}],"default":null},"clientCredentials":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_ClientCredentialsOAuthFlow"},{"type":"null"}],"default":null},"implicit":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_ImplicitOAuthFlow"},{"type":"null"}],"default":null},"password":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_PasswordOAuthFlow"},{"type":"null"}],"default":null}},"title":"OAuthFlows","type":"object"},"A2ACard_OpenIdConnectSecurityScheme":{"description":"Defines a security scheme using OpenID Connect.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"openIdConnectUrl":{"title":"Openidconnecturl","type":"string"},"type":{"const":"openIdConnect","default":"openIdConnect","title":"Type","type":"string"}},"required":["openIdConnectUrl"],"title":"OpenIdConnectSecurityScheme","type":"object"},"A2ACard_PasswordOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Resource Owner Password flow.","properties":{"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["scopes","tokenUrl"],"title":"PasswordOAuthFlow","type":"object"},"A2ACard_SecurityScheme":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_APIKeySecurityScheme"},{"$ref":"#/components/schemas/A2ACard_HTTPAuthSecurityScheme"},{"$ref":"#/components/schemas/A2ACard_OAuth2SecurityScheme"},{"$ref":"#/components/schemas/A2ACard_OpenIdConnectSecurityScheme"},{"$ref":"#/components/schemas/A2ACard_MutualTLSSecurityScheme"}],"title":"SecurityScheme"},"A2ARequest_DataPart":{"description":"Represents a structured data segment (e.g., JSON) within a message or artifact.","properties":{"data":{"additionalProperties":true,"title":"Data","type":"object"},"kind":{"const":"data","default":"data","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["data"],"title":"DataPart","type":"object"},"A2ARequest_FilePart":{"description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI.","properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_FileWithBytes"},{"$ref":"#/components/schemas/A2ARequest_FileWithUri"}],"title":"File"},"kind":{"const":"file","default":"file","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["file"],"title":"FilePart","type":"object"},"A2ARequest_FileWithBytes":{"description":"Represents a file with its content provided directly as a base64-encoded string.","properties":{"bytes":{"title":"Bytes","type":"string"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"}},"required":["bytes"],"title":"FileWithBytes","type":"object"},"A2ARequest_FileWithUri":{"description":"Represents a file with its content located at a specific URI.","properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"FileWithUri","type":"object"},"A2ARequest_Message":{"description":"Represents a single message in the conversation between a user and an agent.","properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"kind":{"const":"message","default":"message","title":"Kind","type":"string"},"messageId":{"title":"Messageid","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/A2ARequest_Part"},"title":"Parts","type":"array"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/A2ARequest_Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Taskid"},"agentId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Agent ID","description":"Target agent, team, or workflow ID for deprecated dynamic-dispatch endpoints."}},"required":["messageId","parts","role"],"title":"Message","type":"object"},"A2ARequest_MessageSendConfiguration":{"description":"Defines configuration options for a `message/send` or `message/stream` request.","properties":{"acceptedOutputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Acceptedoutputmodes"},"blocking":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Blocking"},"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"pushNotificationConfig":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationConfig"},{"type":"null"}],"default":null}},"title":"MessageSendConfiguration","type":"object"},"A2ARequest_MessageSendParams":{"description":"Defines the parameters for a request to send a message to an agent. This can be used\nto create a new task, continue an existing one, or restart a task.","properties":{"configuration":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_MessageSendConfiguration"},{"type":"null"}],"default":null},"message":{"$ref":"#/components/schemas/A2ARequest_Message"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["message"],"title":"MessageSendParams","type":"object"},"A2ARequest_Part":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_TextPart"},{"$ref":"#/components/schemas/A2ARequest_FilePart"},{"$ref":"#/components/schemas/A2ARequest_DataPart"}],"title":"Part"},"A2ARequest_PushNotificationAuthenticationInfo":{"description":"Defines authentication details for a push notification endpoint.","properties":{"credentials":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Credentials"},"schemes":{"items":{"type":"string"},"title":"Schemes","type":"array"}},"required":["schemes"],"title":"PushNotificationAuthenticationInfo","type":"object"},"A2ARequest_PushNotificationConfig":{"description":"Defines the configuration for setting up push notifications for task updates.","properties":{"authentication":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationAuthenticationInfo"},{"type":"null"}],"default":null},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Id"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Token"},"url":{"title":"Url","type":"string"}},"required":["url"],"title":"PushNotificationConfig","type":"object"},"A2ARequest_Role":{"description":"Identifies the sender of the message. `user` for the client, `agent` for the service.","enum":["agent","user"],"title":"Role","type":"string"},"A2ARequest_TaskIdParams":{"description":"Defines parameters containing a task ID, used for simple task operations.","properties":{"id":{"title":"Id","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"contextId":{"type":"string","title":"Context ID","description":"Agno session ID containing the task."}},"required":["id"],"title":"TaskIdParams","type":"object"},"A2ARequest_TaskQueryParams":{"description":"Defines parameters for querying a task, with an option to limit history length.","properties":{"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"id":{"title":"Id","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"contextId":{"type":"string","title":"Context ID","description":"Agno session ID containing the task."}},"required":["id","contextId"],"title":"TaskQueryParams","type":"object"},"A2ARequest_TextPart":{"description":"Represents a text segment within a message or artifact.","properties":{"kind":{"const":"text","default":"text","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"text":{"title":"Text","type":"string"}},"required":["text"],"title":"TextPart","type":"object"},"ActivityMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"activity","title":"Role","default":"activity"},"activityType":{"type":"string","title":"Activitytype"},"content":{"additionalProperties":true,"type":"object","title":"Content"}},"additionalProperties":true,"type":"object","required":["id","activityType","content"],"title":"ActivityMessage","description":"An activity progress message emitted between chat messages."},"AgentCard":{"description":"The AgentCard is a self-describing manifest for an agent. It provides essential\nmetadata including the agent's identity, capabilities, skills, supported\ncommunication methods, and security requirements.","properties":{"additionalInterfaces":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentInterface"},"type":"array"},{"type":"null"}],"default":null,"title":"Additionalinterfaces"},"capabilities":{"$ref":"#/components/schemas/A2ACard_AgentCapabilities"},"defaultInputModes":{"items":{"type":"string"},"title":"Defaultinputmodes","type":"array"},"defaultOutputModes":{"items":{"type":"string"},"title":"Defaultoutputmodes","type":"array"},"description":{"examples":["Agent that helps users with recipes and cooking."],"title":"Description","type":"string"},"documentationUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Documentationurl"},"iconUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Iconurl"},"name":{"examples":["Recipe Agent"],"title":"Name","type":"string"},"preferredTransport":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"JSONRPC","examples":["JSONRPC","GRPC","HTTP+JSON"],"title":"Preferredtransport"},"protocolVersion":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"0.3.0","title":"Protocolversion"},"provider":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_AgentProvider"},{"type":"null"}],"default":null},"security":{"anyOf":[{"items":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},"type":"array"},{"type":"null"}],"default":null,"examples":[[{"oauth":["read"]},{"api-key":[],"mtls":[]}]],"title":"Security"},"securitySchemes":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/A2ACard_SecurityScheme"},"type":"object"},{"type":"null"}],"default":null,"title":"Securityschemes"},"signatures":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentCardSignature"},"type":"array"},{"type":"null"}],"default":null,"title":"Signatures"},"skills":{"items":{"$ref":"#/components/schemas/A2ACard_AgentSkill"},"title":"Skills","type":"array"},"supportsAuthenticatedExtendedCard":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Supportsauthenticatedextendedcard"},"url":{"examples":["https://api.example.com/a2a/v1"],"title":"Url","type":"string"},"version":{"examples":["1.0.0"],"title":"Version","type":"string"}},"required":["capabilities","defaultInputModes","defaultOutputModes","description","name","skills","url","version"],"title":"AgentCard","type":"object"},"AgentResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"extra_messages":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Messages"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"AgentResponse"},"AgentSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_session_id":{"type":"string","title":"Agent Session Id","description":"Unique agent session identifier"},"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID used in this session"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"agent_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Data","description":"Agent-specific data"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["agent_session_id","session_id","session_name"],"title":"AgentSessionDetailSchema"},"AgentSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the agent"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the agent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the agent"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the agent"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","title":"AgentSummaryResponse"},"ApprovalCountResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"ApprovalCountResponse","description":"Response model for pending approval count."},"ApprovalResolve":{"properties":{"status":{"type":"string","pattern":"^(approved|rejected)$","title":"Status"},"resolved_by":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Resolved By"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"}},"type":"object","required":["status"],"title":"ApprovalResolve","description":"Request body for resolving (approve/reject) an approval."},"ApprovalResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"},"source_type":{"type":"string","title":"Source Type"},"approval_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Type"},"pause_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Args"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"},"schedule_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Run Id"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"},"run_status":{"anyOf":[{"$ref":"#/components/schemas/RunStatus"},{"type":"null"}]}},"type":"object","required":["id","run_id","session_id","status","source_type"],"title":"ApprovalResponse","description":"Response model for a single approval."},"ApprovalStatusResponse":{"properties":{"approval_id":{"type":"string","title":"Approval Id"},"status":{"type":"string","title":"Status"},"run_id":{"type":"string","title":"Run Id"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"}},"type":"object","required":["approval_id","status","run_id"],"title":"ApprovalStatusResponse","description":"Lightweight response model for polling approval status."},"Artifact":{"properties":{"artifactId":{"type":"string","title":"Artifactid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"}},"type":"object","required":["artifactId","parts"],"title":"Artifact","description":"Represents a file, data structure, or other resource generated by an agent during a task."},"AssistantMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"assistant","title":"Role","default":"assistant"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"},"toolCalls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},{"type":"null"}],"title":"Toolcalls"}},"additionalProperties":true,"type":"object","required":["id"],"title":"AssistantMessage","description":"An assistant message."},"AudioInputContent":{"properties":{"type":{"type":"string","const":"audio","title":"Type","default":"audio"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"AudioInputContent","description":"An audio input content fragment."},"BackgroundRunResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the background run."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the background run."},"status":{"type":"string","title":"Status","description":"Initial run status."}},"type":"object","required":["run_id","session_id","status"],"title":"BackgroundRunResponse"},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"BadRequestResponse","example":{"detail":"Bad request","error_code":"BAD_REQUEST"}},"BinaryInputContent":{"properties":{"type":{"type":"string","const":"binary","title":"Type","default":"binary"},"mimeType":{"type":"string","title":"Mimetype"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"additionalProperties":true,"type":"object","required":["mimeType"],"title":"BinaryInputContent","description":"A deprecated binary payload reference in a multimodal user message."},"Body_continue_agent_run":{"properties":{"tools":{"type":"string","title":"Tools","description":"JSON string of tool call results to continue the paused run","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Optional new user-message text to append to the run before resuming. Use for continuing a COMPLETED run with a follow-up, or adding context to a RUNNING/ERROR resume."},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","description":"When true, clone the run with a new ``run_id`` before resuming. The original is untouched; the clone becomes a sibling within the same session, with ``forked_from_run_id`` set.","default":false},"regenerate":{"type":"boolean","title":"Regenerate","description":"Sugar: regenerate the last response of this run. Auto-computes ``continue_from='last_user'`` to land just after the last user message. Pair with ``additional_instructions`` to steer the new output. By default the original response is hidden from history (replaced); pass ``replace_original=false`` to keep both the original and the regenerated response visible side by side.","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original","description":"Only valid with ``regenerate=true``. Controls history visibility of the original response; the original run is always retained in storage. Defaults to true: the original is marked REGENERATED and hidden from history so the new response replaces it. Pass false to keep both the original and regenerated responses visible."},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions","description":"Only valid with ``regenerate=true``: extra guidance appended as a user message before re-generation. Friendly alias for ``input``."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run continue in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false}},"type":"object","title":"Body_continue_agent_run"},"Body_continue_team_run":{"properties":{"requirements":{"type":"string","title":"Requirements","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input"},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","default":false},"regenerate":{"type":"boolean","title":"Regenerate","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original"},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"stream":{"type":"boolean","title":"Stream","default":true},"background":{"type":"boolean","title":"Background","default":false}},"type":"object","title":"Body_continue_team_run"},"Body_continue_workflow_run":{"properties":{"step_requirements":{"type":"string","title":"Step Requirements","description":"JSON string of step requirement objects with resolution status","default":""},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}},"type":"object","title":"Body_continue_workflow_run"},"Body_create_agent_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the agent"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Agent version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic agent construction"}},"type":"object","required":["message"],"title":"Body_create_agent_run"},"Body_create_team_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the team"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"monitor":{"type":"boolean","title":"Monitor","description":"Enable monitoring and logging for this run","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Team version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic team construction"}},"type":"object","required":["message"],"title":"Body_create_team_run"},"Body_create_workflow_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the workflow"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run workflow in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Workflow version to use for this run"},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow construction"}},"type":"object","required":["message"],"title":"Body_create_workflow_run"},"Body_rename_session":{"properties":{"session_name":{"type":"string","title":"Session Name","description":"New name for the session"}},"type":"object","required":["session_name"],"title":"Body_rename_session"},"Body_resume_agent_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_agent_run_stream"},"Body_resume_team_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_team_run_stream"},"Body_resume_workflow_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_workflow_run_stream"},"Body_update_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"Content metadata as JSON string"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"Reader ID. In Agno 2.7.4, local knowledge validates the value, but the content patch does not apply or persist the reader change."}},"type":"object","title":"Body_update_content"},"Body_upload_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated from file/URL if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description for context"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"URL to fetch content from (JSON array or single URL string)"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object for additional content properties"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File","description":"File to upload for processing"},"text_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Content","description":"Raw text content to process"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for content processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply during processing"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size to use for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap to use for processing"}},"type":"object","title":"Body_upload_content"},"Body_upload_remote_content":{"properties":{"config_id":{"type":"string","title":"Config Id","description":"ID of the configured remote content source (from /knowledge/config)"},"path":{"type":"string","title":"Path","description":"Path to file or folder in the remote source"},"source_params":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Params","description":"JSON object of per-request parameters forwarded to the source's factory. Used for provider-specific routing that shouldn't be baked into the config. Currently supported keys: GitHub accepts 'repo' ('owner/repo'), letting one configured GitHub source serve multiple repositories the credentials can access."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap for processing"}},"type":"object","required":["config_id","path"],"title":"Body_upload_remote_content"},"CancelTaskRequest":{"description":"Represents a JSON-RPC request for the `tasks/cancel` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"tasks/cancel","default":"tasks/cancel","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_TaskIdParams"}},"required":["id","params"],"title":"CancelTaskRequest","type":"object"},"CancelTaskSuccessResponse":{"description":"Represents a successful JSON-RPC response for the `tasks/cancel` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"default":null,"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"result":{"$ref":"#/components/schemas/Task"}},"required":["result"],"title":"CancelTaskSuccessResponse","type":"object"},"ChatConfig":{"properties":{"quick_prompts":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Quick Prompts"}},"type":"object","required":["quick_prompts"],"title":"ChatConfig","description":"Configuration for the Chat page of the AgentOS"},"ChunkerSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["key"],"title":"ChunkerSchema"},"ComponentConfigResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"version":{"type":"integer","title":"Version"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"type":"string","title":"Stage"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","version","stage","config","created_at"],"title":"ComponentConfigResponse"},"ComponentCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Display name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id","description":"Unique identifier for the entity. Auto-generated from name if not provided."},"component_type":{"$ref":"#/components/schemas/ComponentType","description":"Type of entity: agent, team, or workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config","description":"Optional configuration"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["name","component_type"],"title":"ComponentCreate"},"ComponentResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"component_type":{"$ref":"#/components/schemas/ComponentType"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","component_type","created_at"],"title":"ComponentResponse"},"ComponentType":{"type":"string","enum":["agent","team","workflow"],"title":"ComponentType"},"ComponentUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"component_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"}},"type":"object","title":"ComponentUpdate"},"ConfigCreate":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config","description":"The configuration data"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Optional version number"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links","description":"Optional links to child components"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["config"],"title":"ConfigCreate"},"ConfigResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the OS instance"},"available_models":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Models","description":"List of available models"},"os_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Database","description":"ID of the database used for the OS instance"},"databases":{"items":{"type":"string"},"type":"array","title":"Databases","description":"List of database IDs used by the components of the OS instance"},"chat":{"anyOf":[{"$ref":"#/components/schemas/ChatConfig"},{"type":"null"}],"description":"Chat configuration"},"manifest":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Manifest"},"type":"object"},{"type":"null"}],"title":"Manifest","description":"Per-entity UI metadata keyed by agent/team/workflow id"},"session":{"anyOf":[{"$ref":"#/components/schemas/SessionConfig"},{"type":"null"}],"description":"Session configuration"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/MetricsConfig"},{"type":"null"}],"description":"Metrics configuration"},"memory":{"anyOf":[{"$ref":"#/components/schemas/MemoryConfig"},{"type":"null"}],"description":"Memory configuration"},"learning":{"anyOf":[{"$ref":"#/components/schemas/LearningConfig"},{"type":"null"}],"description":"Learning configuration"},"knowledge":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeConfig"},{"type":"null"}],"description":"Knowledge configuration"},"evals":{"anyOf":[{"$ref":"#/components/schemas/EvalsConfig"},{"type":"null"}],"description":"Evaluations configuration"},"traces":{"anyOf":[{"$ref":"#/components/schemas/TracesConfig"},{"type":"null"}],"description":"Traces configuration"},"agents":{"items":{"$ref":"#/components/schemas/AgentSummaryResponse"},"type":"array","title":"Agents","description":"List of registered agents"},"teams":{"items":{"$ref":"#/components/schemas/TeamSummaryResponse"},"type":"array","title":"Teams","description":"List of registered teams"},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Workflows","description":"List of registered workflows"},"interfaces":{"items":{"$ref":"#/components/schemas/InterfaceResponse"},"type":"array","title":"Interfaces","description":"List of available interfaces"}},"type":"object","required":["os_id","databases","agents","teams","workflows","interfaces"],"title":"ConfigResponse","description":"Response schema for the general config endpoint"},"ConfigResponseSchema":{"properties":{"readers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ReaderSchema"},"type":"object"},{"type":"null"}],"title":"Readers","description":"Available content readers"},"readersForType":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Readersfortype","description":"Mapping of content types to reader IDs"},"chunkers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ChunkerSchema"},"type":"object"},{"type":"null"}],"title":"Chunkers","description":"Available chunking strategies"},"filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filters","description":"Available filter tags"},"vector_dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/VectorDbSchema"},"type":"array"},{"type":"null"}],"title":"Vector Dbs","description":"Configured vector databases"},"remote_content_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"type":"array"},{"type":"null"}],"title":"Remote Content Sources","description":"Configured remote content sources (S3, GCS, SharePoint, GitHub)"}},"type":"object","title":"ConfigResponseSchema"},"ConfigUpdate":{"properties":{"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","title":"ConfigUpdate"},"ConflictResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ConflictResponse","example":{"detail":"Resource conflict"}},"ContentResponseSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the content"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"MIME type of the content"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"},"linked_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linked To","description":"Knowledge instance name used for content isolation. Local Agno 2.7.4 responses return null because response conversion does not propagate the stored value."},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata as key-value pairs"},"access_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Access Count","description":"Stored access count. Local Agno 2.7.4 responses return null because response conversion does not propagate the stored value."},"status":{"anyOf":[{"$ref":"#/components/schemas/ContentStatus"},{"type":"null"}],"description":"Processing status of the content"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message","description":"Status message or error details"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when content was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when content was last updated"}},"type":"object","required":["id"],"title":"ContentResponseSchema"},"ContentStatus":{"type":"string","enum":["processing","completed","failed"],"title":"ContentStatus","description":"Enumeration of possible content processing statuses."},"ContentStatusResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Content ID"},"status":{"$ref":"#/components/schemas/ContentStatus","description":"Current processing status of the content"},"status_message":{"type":"string","title":"Status Message","description":"Status message or error details","default":""}},"type":"object","required":["status"],"title":"ContentStatusResponse","description":"Response model for content status endpoint."},"Context":{"properties":{"description":{"type":"string","title":"Description"},"value":{"type":"string","title":"Value"}},"additionalProperties":true,"type":"object","required":["description","value"],"title":"Context","description":"Additional context for the agent."},"CreateSessionRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session ID (generated if not provided)"},"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Initial session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"}},"type":"object","title":"CreateSessionRequest"},"DataPart":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data"},"kind":{"type":"string","const":"data","title":"Kind","default":"data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["data"],"title":"DataPart","description":"Represents a structured data segment (e.g., JSON) within a message or artifact."},"DatabaseConfig_EvalsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/EvalsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[EvalsDomainConfig]"},"DatabaseConfig_LearningDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/LearningDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[LearningDomainConfig]"},"DatabaseConfig_MemoryDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MemoryDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MemoryDomainConfig]"},"DatabaseConfig_MetricsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MetricsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MetricsDomainConfig]"},"DatabaseConfig_SessionDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/SessionDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[SessionDomainConfig]"},"DatabaseConfig_TracesDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/TracesDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[TracesDomainConfig]"},"DayAggregatedMetrics":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the metrics record"},"agent_runs_count":{"type":"integer","minimum":0.0,"title":"Agent Runs Count","description":"Total number of agent runs"},"agent_sessions_count":{"type":"integer","minimum":0.0,"title":"Agent Sessions Count","description":"Total number of agent sessions"},"team_runs_count":{"type":"integer","minimum":0.0,"title":"Team Runs Count","description":"Total number of team runs"},"team_sessions_count":{"type":"integer","minimum":0.0,"title":"Team Sessions Count","description":"Total number of team sessions"},"workflow_runs_count":{"type":"integer","minimum":0.0,"title":"Workflow Runs Count","description":"Total number of workflow runs"},"workflow_sessions_count":{"type":"integer","minimum":0.0,"title":"Workflow Sessions Count","description":"Total number of workflow sessions"},"users_count":{"type":"integer","minimum":0.0,"title":"Users Count","description":"Total number of unique users"},"token_metrics":{"additionalProperties":true,"type":"object","title":"Token Metrics","description":"Token usage metrics (input, output, cached, etc.)"},"model_metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Model Metrics","description":"Metrics grouped by model (model_id, provider, count)"},"date":{"type":"string","format":"date-time","title":"Date","description":"Date for which these metrics are aggregated"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when metrics were created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when metrics were last updated"}},"type":"object","required":["id","agent_runs_count","agent_sessions_count","team_runs_count","team_sessions_count","workflow_runs_count","workflow_sessions_count","users_count","token_metrics","model_metrics","date","created_at","updated_at"],"title":"DayAggregatedMetrics","description":"Aggregated metrics for a given day"},"DeleteEvalRunsRequest":{"properties":{"eval_run_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Eval Run Ids","description":"List of evaluation run IDs to delete"}},"type":"object","required":["eval_run_ids"],"title":"DeleteEvalRunsRequest"},"DeleteMemoriesRequest":{"properties":{"memory_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Memory Ids","description":"List of memory IDs to delete"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID to filter memories for deletion"}},"type":"object","required":["memory_ids"],"title":"DeleteMemoriesRequest"},"DeleteSessionRequest":{"properties":{"session_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Session Ids","description":"List of session IDs to delete"},"session_types":{"items":{"$ref":"#/components/schemas/SessionType"},"type":"array","minItems":1,"title":"Session Types","description":"Types of sessions to delete"}},"type":"object","required":["session_ids","session_types"],"title":"DeleteSessionRequest"},"DeveloperMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"developer","title":"Role","default":"developer"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"DeveloperMessage","description":"A developer message."},"DocumentInputContent":{"properties":{"type":{"type":"string","const":"document","title":"Type","default":"document"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"DocumentInputContent","description":"A document input content fragment."},"EvalFilterType":{"type":"string","enum":["agent","team","workflow"],"title":"EvalFilterType"},"EvalRunInput":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID to evaluate"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID to evaluate"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID to use for evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation to run (accuracy, performance, or reliability)"},"input":{"type":"string","minLength":1,"title":"Input","description":"Input text/query for the evaluation"},"additional_guidelines":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Guidelines","description":"Additional guidelines for the evaluation"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for the evaluation"},"num_iterations":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Num Iterations","description":"Number of times to run the evaluation","default":1},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for this evaluation run"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output","description":"Expected output for accuracy evaluation"},"criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criteria","description":"Evaluation criteria for agent-as-judge evaluation"},"scoring_strategy":{"anyOf":[{"type":"string","enum":["numeric","binary"]},{"type":"null"}],"title":"Scoring Strategy","description":"Scoring strategy: 'numeric' (1-10 with threshold) or 'binary' (PASS/FAIL)","default":"binary"},"threshold":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Threshold","description":"Score threshold for pass/fail (1-10), only used with numeric scoring","default":7},"warmup_runs":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Warmup Runs","description":"Number of warmup runs before measuring performance","default":0},"expected_tool_calls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expected Tool Calls","description":"Expected tool calls for reliability evaluation"},"allow_additional_tool_calls":{"type":"boolean","title":"Allow Additional Tool Calls","description":"When True, tool calls not in expected_tool_calls are allowed (subset matching)","default":false},"expected_tool_call_arguments":{"anyOf":[{"additionalProperties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Expected Tool Call Arguments","description":"Expected arguments for specific tool calls, e.g. {\"tool_name\": {\"arg_name\": \"expected_value\"}} or {\"tool_name\": [{\"arg_name\": \"val1\"}, {\"arg_name\": \"val2\"}]}"}},"type":"object","required":["eval_type","input"],"title":"EvalRunInput"},"EvalSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the evaluation run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that was evaluated"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID used in evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that was evaluated"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was evaluated"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the evaluation run"},"evaluated_component_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluated Component Name","description":"Name of the evaluated component"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation (accuracy, performance, or reliability)"},"eval_data":{"additionalProperties":true,"type":"object","title":"Eval Data","description":"Evaluation results and metrics"},"eval_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eval Input","description":"Input parameters used for the evaluation"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when evaluation was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when evaluation was last updated"}},"type":"object","required":["id","eval_type","eval_data"],"title":"EvalSchema"},"EvalType":{"type":"string","enum":["accuracy","agent_as_judge","performance","reliability"],"title":"EvalType"},"EvalsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_EvalsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"EvalsConfig","description":"Configuration for the Evals domain of the AgentOS"},"EvalsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"EvalsDomainConfig","description":"Configuration for the Evals domain of the AgentOS"},"FilePart":{"properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/FileWithBytes"},{"$ref":"#/components/schemas/FileWithUri"}],"title":"File"},"kind":{"type":"string","const":"file","title":"Kind","default":"file"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["file"],"title":"FilePart","description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI."},"FileWithBytes":{"properties":{"bytes":{"type":"string","title":"Bytes"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["bytes"],"title":"FileWithBytes","description":"Represents a file with its content provided directly as a base64-encoded string."},"FileWithUri":{"properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uri":{"type":"string","title":"Uri"}},"type":"object","required":["uri"],"title":"FileWithUri","description":"Represents a file with its content located at a specific URI."},"FilterFieldSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Column/field name used in filter expressions"},"label":{"type":"string","title":"Label","description":"Human-readable display label for the UI"},"type":{"type":"string","title":"Type","description":"Field data type: string, number, datetime, enum"},"operators":{"items":{"type":"string"},"type":"array","title":"Operators","description":"List of valid filter operators for this field"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values","description":"Allowed enum values (for autocomplete/dropdown)"}},"type":"object","required":["key","label","type","operators"],"title":"FilterFieldSchema","description":"Schema describing a single filterable field for the frontend filter bar."},"FilterSchemaResponse":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FilterFieldSchema"},"type":"array","title":"Fields","description":"Available filterable fields"},"logical_operators":{"items":{"type":"string"},"type":"array","title":"Logical Operators","description":"Logical operators for combining filter clauses","default":["AND","OR"]}},"type":"object","required":["fields"],"title":"FilterSchemaResponse","description":"Response for the filter schema endpoint. Tells the FE what fields, operators, and values are available."},"ForbiddenResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ForbiddenResponse","example":{"detail":"Insufficient permissions"}},"FunctionCall":{"properties":{"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"additionalProperties":true,"type":"object","required":["name","arguments"],"title":"FunctionCall","description":"Name and arguments of a function call."},"GetTaskRequest":{"description":"Represents a JSON-RPC request for the `tasks/get` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"tasks/get","default":"tasks/get","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_TaskQueryParams"}},"required":["id","params"],"title":"GetTaskRequest","type":"object"},"GetTaskSuccessResponse":{"description":"Represents a successful JSON-RPC response for the `tasks/get` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"default":null,"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"result":{"$ref":"#/components/schemas/Task"}},"required":["result"],"title":"GetTaskSuccessResponse","type":"object"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Health status of the service"},"instantiated_at":{"type":"string","format":"date-time","title":"Instantiated At","description":"Timestamp when service was instantiated"}},"type":"object","required":["status","instantiated_at"],"title":"HealthResponse","example":{"instantiated_at":"2025-06-10T12:00:00Z","status":"ok"}},"ImageInputContent":{"properties":{"type":{"type":"string","const":"image","title":"Type","default":"image"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"ImageInputContent","description":"An image input content fragment."},"InfoResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"agno_version":{"type":"string","title":"Agno Version","description":"Version of the agno framework"},"agent_count":{"type":"integer","title":"Agent Count","description":"Number of agents registered in the OS","default":0},"team_count":{"type":"integer","title":"Team Count","description":"Number of teams registered in the OS","default":0},"workflow_count":{"type":"integer","title":"Workflow Count","description":"Number of workflows registered in the OS","default":0},"mcp":{"$ref":"#/components/schemas/McpInfo","description":"MCP server availability for this OS instance"},"auth_mode":{"type":"string","enum":["none","security_key","jwt"],"title":"Auth Mode","description":"Authentication mode enforced on the REST/WS plane of this OS instance. MCP OAuth, when enabled, is described separately under `mcp.oauth`.","default":"none"}},"type":"object","required":["os_id","agno_version"],"title":"InfoResponse","description":"Response schema for the /info endpoint returning lightweight OS metadata."},"InputContentDataSource":{"properties":{"type":{"type":"string","const":"data","title":"Type","default":"data"},"value":{"type":"string","title":"Value"},"mimeType":{"type":"string","title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value","mimeType"],"title":"InputContentDataSource","description":"Inline base64-encoded source."},"InputContentUrlSource":{"properties":{"type":{"type":"string","const":"url","title":"Type","default":"url"},"value":{"type":"string","title":"Value"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value"],"title":"InputContentUrlSource","description":"URL-referenced source."},"InterfaceResponse":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the interface"},"version":{"type":"string","title":"Version","description":"Version of the interface"},"route":{"type":"string","title":"Route","description":"API route path"}},"type":"object","required":["type","version","route"],"title":"InterfaceResponse"},"InternalServerErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"InternalServerErrorResponse","example":{"detail":"Internal server error","error_code":"INTERNAL_SERVER_ERROR"}},"KnowledgeConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeDatabaseConfig"},"type":"array"},{"type":"null"}],"title":"Dbs"},"knowledge_instances":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeInstanceConfig"},"type":"array"},{"type":"null"}],"title":"Knowledge Instances"}},"type":"object","title":"KnowledgeConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeDatabaseConfig":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeDomainConfig"},{"type":"null"}]},"tables":{"items":{"type":"string"},"type":"array","title":"Tables","default":[]}},"type":"object","required":["db_id"],"title":"KnowledgeDatabaseConfig","description":"Configuration for a knowledge database with its tables"},"KnowledgeDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"KnowledgeDomainConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeInstanceConfig":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"db_id":{"type":"string","title":"Db Id"},"table":{"type":"string","title":"Table"}},"type":"object","required":["id","name","db_id","table"],"title":"KnowledgeInstanceConfig","description":"Configuration for a single knowledge instance"},"LearningConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_LearningDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"LearningConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningCreate":{"properties":{"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"content":{"additionalProperties":true,"type":"object","title":"Content","description":"The learning content payload"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID. When the request is authenticated, must match the JWT subject or be omitted/null (which creates a global / non-user-scoped record)."},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"}},"type":"object","required":["learning_type","content"],"title":"LearningCreate","description":"Request body for creating a learning record."},"LearningDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"LearningDomainConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningResponse":{"properties":{"learning_id":{"type":"string","title":"Learning Id","description":"Unique identifier for the learning record"},"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID (for entity-specific learnings)"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type (e.g. 'person', 'company')"},"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"The learning content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Creation timestamp (Unix epoch seconds)"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp (Unix epoch seconds)"}},"type":"object","required":["learning_id","learning_type"],"title":"LearningResponse","description":"A single learning record as returned by the API."},"LearningUpdate":{"properties":{"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Replacement content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Replacement metadata"}},"type":"object","title":"LearningUpdate","description":"Request body for updating a learning record. Identity fields are immutable."},"LearningUserStats":{"properties":{"user_id":{"type":"string","title":"User Id","description":"The user ID"},"last_learning_updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Learning Updated At","description":"Most recent learning update for this user (Unix epoch seconds)"}},"type":"object","required":["user_id"],"title":"LearningUserStats","description":"A user that owns learning records, with their most recent activity.\n\nUsed as a lightweight index for the per-user view: list users here, then drill into a\nsingle user's records via ``GET /learnings?user_id=...``. No per-user count is returned\n-- the user-scoped stores (``user_profile``, ``user_memory``) keep a single record per\nuser, so a record count would always be 1; the actual memory count lives in that\nrecord's ``content``."},"Manifest":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"},"quick_prompts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quick Prompts"}},"type":"object","title":"Manifest","description":"OS-level UI metadata for an agent/team/workflow.\n\nFields here are AgentOS UI metadata only. ``description`` is unrelated to\n``Agent.description`` / ``Team.description`` / ``Workflow.description``,\nwhich are sent to the model.\n\nRendering surfaces:\n- ``description``, ``labels``: home/landing card\n- ``quick_prompts``: chat page"},"McpInfo":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the MCP server is enabled on this OS instance","default":false},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Path where the MCP server is mounted, null when disabled"},"oauth":{"anyOf":[{"$ref":"#/components/schemas/McpOAuthInfo"},{"type":"null"}],"description":"OAuth discovery details when the MCP endpoint is OAuth-protected, null otherwise"}},"type":"object","title":"McpInfo","description":"MCP server availability for the /info endpoint."},"McpOAuthInfo":{"properties":{"authorization_servers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorization Servers","description":"Issuer URL(s) of the authorization server(s) protecting the MCP endpoint"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource","description":"RFC 9728 resource URL advertised for the MCP endpoint"}},"type":"object","title":"McpOAuthInfo","description":"OAuth discovery details for an MCP endpoint protected by ``AgentOS(mcp_auth=...)``."},"MemoryConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MemoryDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MemoryConfig","description":"Configuration for the Memory domain of the AgentOS"},"MemoryDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MemoryDomainConfig","description":"Configuration for the Memory domain of the AgentOS"},"Message":{"properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"kind":{"type":"string","const":"message","title":"Kind","default":"message"},"messageId":{"type":"string","title":"Messageid"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taskid"}},"type":"object","required":["messageId","parts","role"],"title":"Message","description":"Represents a single message in the conversation between a user and an agent."},"Meta":{"properties":{"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of results per page","default":20},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number","default":1}},"type":"object","title":"Meta","description":"Inline metadata schema for pagination."},"MetricsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MetricsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MetricsConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MetricsDomainConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsResponse":{"properties":{"metrics":{"items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"type":"array","title":"Metrics","description":"List of daily aggregated metrics"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp of the most recent metrics update"}},"type":"object","required":["metrics"],"title":"MetricsResponse"},"Model":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"Model"},"ModelResponse":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the model"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"ModelResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"NotFoundResponse","example":{"detail":"Not found","error_code":"NOT_FOUND"}},"NotImplementedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"NotImplementedResponse","example":{"detail":"Operation not supported for this resource type"}},"OptimizeMemoriesRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID to optimize memories for"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model in `provider:model_id` format. Current examples include `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, and `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`."},"apply":{"type":"boolean","title":"Apply","description":"If True, apply optimization changes to database. If False, return preview only without saving.","default":true}},"type":"object","required":["user_id"],"title":"OptimizeMemoriesRequest","description":"Schema for memory optimization request"},"OptimizeMemoriesResponse":{"properties":{"memories":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Memories","description":"List of optimized memory objects"},"memories_before":{"type":"integer","minimum":0.0,"title":"Memories Before","description":"Number of memories before optimization"},"memories_after":{"type":"integer","minimum":0.0,"title":"Memories After","description":"Number of memories after optimization"},"tokens_before":{"type":"integer","minimum":0.0,"title":"Tokens Before","description":"Token count before optimization"},"tokens_after":{"type":"integer","minimum":0.0,"title":"Tokens After","description":"Token count after optimization"},"tokens_saved":{"type":"integer","minimum":0.0,"title":"Tokens Saved","description":"Number of tokens saved through optimization"},"reduction_percentage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Reduction Percentage","description":"Percentage of token reduction achieved"}},"type":"object","required":["memories","memories_before","memories_after","tokens_before","tokens_after","tokens_saved","reduction_percentage"],"title":"OptimizeMemoriesResponse","description":"Schema for memory optimization response"},"PaginatedResponse_ApprovalResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ApprovalResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ApprovalResponse]"},"PaginatedResponse_ComponentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ComponentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ComponentResponse]"},"PaginatedResponse_ContentResponseSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentResponseSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ContentResponseSchema]"},"PaginatedResponse_EvalSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EvalSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[EvalSchema]"},"PaginatedResponse_LearningResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningResponse]"},"PaginatedResponse_LearningUserStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningUserStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningUserStats]"},"PaginatedResponse_RegistryContentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RegistryContentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[RegistryContentResponse]"},"PaginatedResponse_ScheduleResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleResponse]"},"PaginatedResponse_ScheduleRunResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleRunResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleRunResponse]"},"PaginatedResponse_ServiceAccountResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ServiceAccountResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ServiceAccountResponse]"},"PaginatedResponse_SessionSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SessionSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[SessionSchema]"},"PaginatedResponse_TraceDetail_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceDetail"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceDetail]"},"PaginatedResponse_TraceSessionStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSessionStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSessionStats]"},"PaginatedResponse_TraceSummary_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSummary"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSummary]"},"PaginatedResponse_UserMemorySchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserMemorySchema]"},"PaginatedResponse_UserStatsSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserStatsSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserStatsSchema]"},"PaginatedResponse_VectorSearchResult_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VectorSearchResult"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[VectorSearchResult]"},"PaginationInfo":{"properties":{"page":{"type":"integer","minimum":0.0,"title":"Page","description":"Page value returned by the endpoint. AgentOS paginated routes use 1-based page numbers. Some Agno 2.7.4 routes accept and echo 0 even though their pagination implementation is 1-based.","default":0},"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of items per page","default":20},"total_pages":{"type":"integer","minimum":0.0,"title":"Total Pages","description":"Total number of pages","default":0},"total_count":{"type":"integer","minimum":0.0,"title":"Total Count","description":"Total count of items","default":0},"search_time_ms":{"type":"number","minimum":0.0,"title":"Search Time Ms","description":"Search execution time in milliseconds","default":0}},"type":"object","title":"PaginationInfo"},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/DataPart"}],"title":"Part"},"ReaderSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the reader"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the reader"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the reader's capabilities"},"chunkers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chunkers","description":"List of supported chunking strategies"}},"type":"object","required":["id"],"title":"ReaderSchema"},"ReasoningMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"reasoning","title":"Role","default":"reasoning"},"content":{"type":"string","title":"Content"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"ReasoningMessage","description":"A reasoning message containing the agent's internal reasoning process."},"RegistryContentResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/RegistryResourceType"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name","type"],"title":"RegistryContentResponse"},"RegistryResourceType":{"type":"string","enum":["tool","model","db","vector_db","schema","function","agent","team","knowledge","memory_manager","session_summary_manager"],"title":"RegistryResourceType","description":"Types of resources that can be stored in a registry."},"RemoteContentSourceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content source"},"name":{"type":"string","title":"Name","description":"Display name for the content source"},"type":{"type":"string","title":"Type","description":"Type of content source (s3, gcs, sharepoint, github, azureblob)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Default path prefix for this source"}},"type":"object","required":["id","name","type"],"title":"RemoteContentSourceSchema","description":"Schema for remote content source configuration."},"ResumeEntry":{"properties":{"interruptId":{"type":"string","title":"Interruptid"},"status":{"type":"string","enum":["resolved","cancelled"],"title":"Status"},"payload":{"anyOf":[{},{"type":"null"}],"title":"Payload"}},"additionalProperties":true,"type":"object","required":["interruptId","status"],"title":"ResumeEntry","description":"A per-interrupt response in the resume array of a RunAgentInput."},"Role":{"type":"string","enum":["agent","user"],"title":"Role","description":"Identifies the sender of the message. `user` for the client, `agent` for the service."},"RunAgentInput":{"properties":{"threadId":{"type":"string","title":"Threadid"},"runId":{"type":"string","title":"Runid"},"parentRunId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentrunid"},"state":{"title":"State"},"messages":{"items":{"oneOf":[{"$ref":"#/components/schemas/DeveloperMessage"},{"$ref":"#/components/schemas/SystemMessage"},{"$ref":"#/components/schemas/AssistantMessage"},{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/ToolMessage"},{"$ref":"#/components/schemas/ActivityMessage"},{"$ref":"#/components/schemas/ReasoningMessage"}],"discriminator":{"propertyName":"role","mapping":{"activity":"#/components/schemas/ActivityMessage","assistant":"#/components/schemas/AssistantMessage","developer":"#/components/schemas/DeveloperMessage","reasoning":"#/components/schemas/ReasoningMessage","system":"#/components/schemas/SystemMessage","tool":"#/components/schemas/ToolMessage","user":"#/components/schemas/UserMessage"}}},"type":"array","title":"Messages"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","title":"Tools"},"context":{"items":{"$ref":"#/components/schemas/Context"},"type":"array","title":"Context"},"forwardedProps":{"title":"Forwardedprops"},"resume":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResumeEntry"},"type":"array"},{"type":"null"}],"title":"Resume"}},"additionalProperties":true,"type":"object","required":["threadId","runId","state","messages","tools","context","forwardedProps"],"title":"RunAgentInput","description":"Input for running an agent."},"RunCheckpointEntry":{"properties":{"checkpoint_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Checkpoint Id","description":"One-based display ID, or null when the requested boundary is not on the checkpoint timeline."},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Run that contains the checkpoint."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session that contains the run."},"message_index":{"type":"integer","minimum":0,"title":"Message Index","description":"Message boundary represented by the checkpoint."},"continue_from":{"type":"integer","minimum":0,"title":"Continue From","description":"Value to send as continue_from when continuing the run."},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Checkpoint status or current run status."},"reason":{"type":"string","title":"Reason","description":"Why this boundary was returned."},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Unix timestamp for the checkpoint or run."},"message_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Id","description":"Message ID at the checkpoint boundary."},"message_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Role","description":"Role of the message at the checkpoint boundary."},"message_preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Preview","description":"Truncated message content at the checkpoint boundary."},"is_latest":{"type":"boolean","title":"Is Latest","description":"Whether this is the final message boundary in the stored run."}},"type":"object","required":["checkpoint_id","run_id","session_id","message_index","continue_from","status","reason","created_at","message_id","message_role","message_preview","is_latest"],"title":"RunCheckpointEntry","description":"A continuation boundary derived from a stored run transcript."},"RunCheckpointListResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Run whose checkpoints were listed."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the run."},"checkpoints":{"type":"array","items":{"$ref":"#/components/schemas/RunCheckpointEntry"},"title":"Checkpoints","description":"Checkpoint boundaries in message order."}},"type":"object","required":["run_id","session_id","checkpoints"],"title":"RunCheckpointListResponse"},"RunCheckpointSnapshotResponse":{"properties":{"checkpoint":{"$ref":"#/components/schemas/RunCheckpointEntry"},"snapshot":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"}],"title":"Snapshot","description":"Agent or team run serialized at the requested message boundary."}},"type":"object","required":["checkpoint","snapshot"],"title":"RunCheckpointSnapshotResponse"},"RunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that executed this run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"RunSchema"},"RunStatus":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","PAUSED","CANCELLED","ERROR","REGENERATED"],"title":"RunStatus","description":"State of the main run response"},"ScheduleCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"cron_expr":{"type":"string","maxLength":128,"title":"Cron Expr"},"endpoint":{"type":"string","maxLength":512,"title":"Endpoint"},"method":{"type":"string","maxLength":10,"title":"Method","default":"POST"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"type":"string","maxLength":64,"title":"Timezone","default":"UTC"},"timeout_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Timeout Seconds","default":3600},"max_retries":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Max Retries","default":0},"retry_delay_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Retry Delay Seconds","default":60}},"type":"object","required":["name","cron_expr","endpoint"],"title":"ScheduleCreate"},"ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"cron_expr":{"type":"string","title":"Cron Expr"},"timezone":{"type":"string","title":"Timezone"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"max_retries":{"type":"integer","title":"Max Retries"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","method","endpoint","cron_expr","timezone","timeout_seconds","max_retries","retry_delay_seconds","enabled"],"title":"ScheduleResponse"},"ScheduleRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"schedule_id":{"type":"string","title":"Schedule Id"},"attempt":{"type":"integer","title":"Attempt"},"triggered_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triggered At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"status":{"type":"string","title":"Status"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","schedule_id","attempt","status"],"title":"ScheduleRunResponse"},"ScheduleStateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","enabled"],"title":"ScheduleStateResponse","description":"Trimmed response for state-changing operations (enable/disable)."},"ScheduleUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"cron_expr":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Cron Expr"},"endpoint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Endpoint"},"method":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Method"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Timezone"},"timeout_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":1.0},{"type":"null"}],"title":"Timeout Seconds"},"max_retries":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Max Retries"},"retry_delay_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":1.0},{"type":"null"}],"title":"Retry Delay Seconds"}},"type":"object","title":"ScheduleUpdate"},"ScopeItem":{"properties":{"scope":{"type":"string","title":"Scope","description":"Scope string, e.g. 'agents:*:run'"},"effect":{"type":"string","enum":["allow","deny"],"title":"Effect","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["scope"],"title":"ScopeItem","description":"Write shape for one scope grant \u2014 the canonical RBAC payload for every scope-bearing API.\n\nEndpoints that take scopes accept these objects only (a bare string is a validation\nerror). ``effect`` is constrained here so every consumer rejects typos at the model\nlayer; whether ``deny`` is *semantically* legal stays per-endpoint (roles support\ndeny rules, service-account tokens are pure grants and reject it)."},"ScopeSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Scope id (always null here; kept for shape parity with the cloud RBAC API, which addresses scopes individually)"},"raw":{"type":"string","title":"Raw","description":"Original scope string, e.g. 'agents:*:run'"},"namespace":{"type":"string","title":"Namespace","description":"Resource namespace, e.g. 'agents'"},"sub_namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Namespace","description":"Specific resource id or wildcard '*'"},"permission":{"type":"string","title":"Permission","description":"Action, e.g. 'read' / 'run' / 'write'"},"value":{"type":"string","title":"Value","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["raw","namespace","permission"],"title":"ScopeSchema","description":"Read shape for one scope \u2014 the parsed RBAC payload shared by every scope-bearing API.\n\nMirrors the cloud RBAC scope shape ({raw, namespace, sub_namespace, permission, value})\nso a frontend renders scopes from any AgentOS API with one integration."},"SendMessageRequest":{"description":"Represents a JSON-RPC request for the `message/send` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/send","default":"message/send","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendMessageRequest","type":"object"},"SendMessageSuccessResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id"},"jsonrpc":{"type":"string","const":"2.0","title":"Jsonrpc","default":"2.0"},"result":{"anyOf":[{"$ref":"#/components/schemas/Task"},{"$ref":"#/components/schemas/Message"}],"title":"Result"}},"type":"object","required":["result"],"title":"SendMessageSuccessResponse","description":"Represents a successful JSON-RPC response for the `message/send` method."},"SendStreamingMessageRequest":{"description":"Represents a JSON-RPC request for the `message/stream` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/stream","default":"message/stream","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendStreamingMessageRequest","type":"object"},"ServiceAccountCreate":{"properties":{"name":{"type":"string","maxLength":63,"title":"Name","description":"Machine identity name (lowercase slug), e.g. 'claude-code' or 'github-actions'"},"scopes":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScopeItem"},"type":"array"},{"type":"null"}],"title":"Scopes","description":"Scopes granted to the token, as {scope, effect} objects (the shared RBAC write shape; token scopes are grants, so only effect='allow' is accepted). Defaults to run and read scopes: agents:run, teams:run, workflows:run, sessions:read"},"expires_in_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Expires In Days","description":"Days until the token expires (default: 90)","default":90},"never_expires":{"type":"boolean","title":"Never Expires","description":"Mint a non-expiring token. Must be set explicitly; overrides expires_in_days.","default":false},"allow_privileged_scopes":{"type":"boolean","title":"Allow Privileged Scopes","description":"Required to grant privileged scopes: any write or delete action, the admin scope, or any service_accounts scope. Privileged tokens must be deliberate, never accidental.","default":false}},"type":"object","required":["name"],"title":"ServiceAccountCreate"},"ServiceAccountCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"token":{"type":"string","title":"Token","description":"The plaintext token. Shown exactly once - store it securely now."}},"type":"object","required":["id","name","principal","token_prefix","created_at","token"],"title":"ServiceAccountCreateResponse","description":"Returned once, at creation. The token is never retrievable again."},"ServiceAccountResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","name","principal","token_prefix","created_at"],"title":"ServiceAccountResponse","description":"Service account metadata. Never includes the token hash or plaintext."},"ServiceUnavailableResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ServiceUnavailableResponse","example":{"detail":"Feature not supported by the configured service"}},"SessionConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_SessionDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"SessionConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"SessionDomainConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier for the session"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state data of the session"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when session was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when session was last updated"},"session_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type","description":"Type of session: agent, team, or workflow"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["session_id","session_name"],"title":"SessionSchema"},"SessionType":{"type":"string","enum":["agent","team","workflow"],"title":"SessionType"},"SlackChallengeResponse":{"properties":{"challenge":{"type":"string","title":"Challenge","description":"Challenge string to echo back to Slack"}},"type":"object","required":["challenge"],"title":"SlackChallengeResponse"},"SlackEventResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"}},"type":"object","title":"SlackEventResponse"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"SourceFileSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Full path/key of the file"},"name":{"type":"string","title":"Name","description":"Display name (filename)"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"File size in bytes"},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified","description":"ISO 8601 timestamp of last modification"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"MIME type of the file"}},"type":"object","required":["key","name"],"title":"SourceFileSchema","description":"Schema for a file in a content source."},"SourceFilesResponseSchema":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"ID of the content source"},"source_name":{"type":"string","title":"Source Name","description":"Name of the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Prefix filter that was applied"},"folders":{"items":{"$ref":"#/components/schemas/SourceFolderSchema"},"type":"array","title":"Folders","description":"Subfolders at this level"},"files":{"items":{"$ref":"#/components/schemas/SourceFileSchema"},"type":"array","title":"Files","description":"List of files at this level"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["source_id","source_name","meta"],"title":"SourceFilesResponseSchema","description":"Response schema for listing files in a content source."},"SourceFolderSchema":{"properties":{"prefix":{"type":"string","title":"Prefix","description":"Full prefix to use for navigating into this folder"},"name":{"type":"string","title":"Name","description":"Display name of the folder"},"is_empty":{"type":"boolean","title":"Is Empty","description":"Whether the folder contains any files","default":false}},"type":"object","required":["prefix","name"],"title":"SourceFolderSchema","description":"Schema for a folder in a content source."},"SystemMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"system","title":"Role","default":"system"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"SystemMessage","description":"A system message."},"Task":{"properties":{"artifacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Artifact"},"type":"array"},{"type":"null"}],"title":"Artifacts"},"contextId":{"type":"string","title":"Contextid"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"History"},"id":{"type":"string","title":"Id"},"kind":{"type":"string","const":"task","title":"Kind","default":"task"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"status":{"$ref":"#/components/schemas/TaskStatus"}},"type":"object","required":["contextId","id","status"],"title":"Task","description":"Represents a single, stateful operation or conversation between a client and an agent."},"TaskState":{"type":"string","enum":["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"],"title":"TaskState","description":"Defines the lifecycle states of a Task."},"TaskStatus":{"properties":{"message":{"anyOf":[{"$ref":"#/components/schemas/Message"},{"type":"null"}]},"state":{"$ref":"#/components/schemas/TaskState"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp","examples":["2023-10-27T10:00:00Z"]}},"type":"object","required":["state"],"title":"TaskStatus","description":"Represents the status of a task at a specific point in time."},"TeamResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"members":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"$ref":"#/components/schemas/TeamResponse"}]},"type":"array"},{"type":"null"}],"title":"Members"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"TeamResponse"},"TeamRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the team run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that executed this run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the team run"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this team run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this team run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this team run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this team run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"TeamRunSchema"},"TeamSessionDetailSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID used in this session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of team interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"team_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Team Data","description":"Team-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"}},"type":"object","required":["session_id","session_name"],"title":"TeamSessionDetailSchema"},"TeamSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the team"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the team"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the team"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Team execution mode (coordinate, route, broadcast, tasks)"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the team leader"}},"type":"object","title":"TeamSummaryResponse"},"TelegramStatusResponse":{"properties":{"status":{"type":"string","title":"Status","default":"available"}},"type":"object","title":"TelegramStatusResponse"},"TelegramWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status"}},"type":"object","required":["status"],"title":"TelegramWebhookResponse"},"TextInputContent":{"properties":{"type":{"type":"string","const":"text","title":"Type","default":"text"},"text":{"type":"string","title":"Text"}},"additionalProperties":true,"type":"object","required":["text"],"title":"TextInputContent","description":"A text fragment in a multimodal user message."},"TextPart":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"TextPart","description":"Represents a text segment within a message or artifact."},"Tool":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{},{"type":"null"}],"title":"Parameters"}},"additionalProperties":true,"type":"object","required":["name","description"],"title":"Tool","description":"A tool definition."},"ToolCall":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/FunctionCall"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","function"],"title":"ToolCall","description":"A tool call, modelled after OpenAI tool calls."},"ToolMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"tool","title":"Role","default":"tool"},"content":{"type":"string","title":"Content"},"toolCallId":{"type":"string","title":"Toolcallid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content","toolCallId"],"title":"ToolMessage","description":"A tool result message."},"TraceDetail":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent/workflow"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the agent/workflow"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"},"tree":{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array","title":"Tree","description":"Hierarchical tree of spans (root nodes)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at","tree"],"title":"TraceDetail","description":"Detailed trace information with hierarchical span tree"},"TraceNode":{"properties":{"id":{"type":"string","title":"Id","description":"Span ID"},"name":{"type":"string","title":"Name","description":"Span name (e.g., 'agent.run', 'llm.invoke')"},"type":{"type":"string","title":"Type","description":"Span kind (AGENT, TEAM, WORKFLOW, LLM, TOOL)"},"duration":{"type":"string","title":"Duration","description":"Human-readable duration (e.g., '123ms', '1.5s')"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"End time (Pydantic auto-serializes to ISO 8601)"},"status":{"type":"string","title":"Status","description":"Status code (OK, ERROR)"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the span"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the span"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"spans":{"anyOf":[{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array"},{"type":"null"}],"title":"Spans","description":"Child spans in the trace hierarchy"},"step_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Type","description":"Workflow step type (Step, Condition, function, Agent, Team)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional span attributes and data"},"extra_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Data","description":"Flexible field for custom attributes and additional data"}},"type":"object","required":["id","name","type","duration","start_time","end_time","status"],"title":"TraceNode","description":"Recursive node structure for rendering trace hierarchy in the frontend"},"TraceSearchGroupBy":{"type":"string","enum":["run","session"],"title":"TraceSearchGroupBy","description":"Grouping options for trace search results."},"TraceSearchRequest":{"properties":{"filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter","description":"FilterExpr DSL as JSON dict. Supports operators: EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH, AND, OR, NOT."},"group_by":{"$ref":"#/components/schemas/TraceSearchGroupBy","description":"Grouping mode: 'run' returns individual TraceDetail, 'session' returns aggregated TraceSessionStats.","default":"run"},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number (1-indexed)","default":1},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"Number of traces per page (max 100)","default":20}},"type":"object","title":"TraceSearchRequest","description":"Request body for POST /traces/search with advanced filtering.\n\nThe filter field accepts a FilterExpr DSL dict supporting composable queries\nwith AND/OR/NOT logic and operators like EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH.\n\nExample for run grouping (default):\n {\n \"filter\": {\n \"op\": \"AND\",\n \"conditions\": [\n {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n {\"op\": \"CONTAINS\", \"key\": \"user_id\", \"value\": \"admin\"}\n ]\n },\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n }\n\nExample for session grouping:\n {\n \"filter\": {\"op\": \"EQ\", \"key\": \"agent_id\", \"value\": \"my-agent\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n }"},"TraceSessionStats":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID(s) used in the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID associated with the session"},"total_traces":{"type":"integer","title":"Total Traces","description":"Total number of traces in this session"},"first_trace_at":{"type":"string","format":"date-time","title":"First Trace At","description":"Time of first trace (Pydantic auto-serializes to ISO 8601)"},"last_trace_at":{"type":"string","format":"date-time","title":"Last Trace At","description":"Time of last trace (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["session_id","total_traces","first_trace_at","last_trace_at"],"title":"TraceSessionStats","description":"Aggregated trace statistics grouped by session"},"TraceSummary":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR, UNSET)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at"],"title":"TraceSummary","description":"Summary information for trace list view"},"TracesConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_TracesDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"TracesConfig","description":"Configuration for the Traces domain of the AgentOS"},"TracesDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"TracesDomainConfig","description":"Configuration for the Traces domain of the AgentOS"},"UnauthenticatedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"UnauthenticatedResponse","example":{"detail":"Unauthenticated access","error_code":"UNAUTHENTICATED"}},"UpdateEvalRunRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"New name for the evaluation run"}},"type":"object","required":["name"],"title":"UpdateEvalRunRequest"},"UpdateSessionRequest":{"properties":{"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Updated session name"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Updated session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Updated metadata"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary","description":"Session summary"}},"type":"object","title":"UpdateSessionRequest"},"UserMemoryCreateSchema":{"properties":{"memory":{"type":"string","maxLength":5000,"minLength":1,"title":"Memory","description":"Memory content text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags to categorize the memory"}},"type":"object","required":["memory"],"title":"UserMemoryCreateSchema","description":"Define the payload expected for creating a new user memory"},"UserMemorySchema":{"properties":{"memory_id":{"type":"string","title":"Memory Id","description":"Unique identifier for the memory"},"memory":{"type":"string","title":"Memory","description":"Memory content text"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags associated with the memory"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID associated with this memory"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with this memory"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when memory was last updated"}},"type":"object","required":["memory_id","memory"],"title":"UserMemorySchema"},"UserMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"user","title":"Role","default":"user"},"content":{"anyOf":[{"type":"string"},{"items":{"oneOf":[{"$ref":"#/components/schemas/TextInputContent"},{"$ref":"#/components/schemas/ImageInputContent"},{"$ref":"#/components/schemas/AudioInputContent"},{"$ref":"#/components/schemas/VideoInputContent"},{"$ref":"#/components/schemas/DocumentInputContent"},{"$ref":"#/components/schemas/BinaryInputContent"}],"discriminator":{"propertyName":"type","mapping":{"audio":"#/components/schemas/AudioInputContent","binary":"#/components/schemas/BinaryInputContent","document":"#/components/schemas/DocumentInputContent","image":"#/components/schemas/ImageInputContent","text":"#/components/schemas/TextInputContent","video":"#/components/schemas/VideoInputContent"}}},"type":"array"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"UserMessage","description":"A user message supporting text or multimodal content."},"UserStatsSchema":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"total_memories":{"type":"integer","minimum":0.0,"title":"Total Memories","description":"Total number of memories for this user"},"last_memory_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Memory Updated At","description":"Timestamp of the most recent memory update"}},"type":"object","required":["user_id","total_memories"],"title":"UserStatsSchema","description":"Schema for user memory statistics"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"ValidationErrorResponse","example":{"detail":"Validation error","error_code":"VALIDATION_ERROR"}},"VectorDbSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the vector database"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the vector database"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the vector database"},"search_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Search Types","description":"List of supported search types (vector, keyword, hybrid)"}},"type":"object","required":["id"],"title":"VectorDbSchema"},"VectorSearchRequestSchema":{"properties":{"query":{"type":"string","title":"Query","description":"The search query text"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database ID to search in"},"knowledge_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledge Id","description":"Knowledge base ID to search in"},"vector_db_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vector Db Ids","description":"List of vector database IDs to search in"},"search_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Type","description":"The type of search to perform (vector, keyword, hybrid)"},"max_results":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Max Results","description":"The maximum number of results to return"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Filters to apply to the search results"},"meta":{"anyOf":[{"$ref":"#/components/schemas/Meta"},{"type":"null"}],"description":"Pagination metadata. Limit and page number to return a subset of results."}},"type":"object","required":["query"],"title":"VectorSearchRequestSchema","description":"Schema for vector search request."},"VectorSearchResult":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the search result document"},"content":{"type":"string","title":"Content","description":"Content text of the document"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the document"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Metadata associated with the document"},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"Usage statistics (e.g., token counts)"},"reranking_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reranking Score","description":"Reranking score for relevance"},"content_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Id","description":"ID of the source content"},"content_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Origin","description":"Origin URL or source of the content"},"size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"}},"type":"object","required":["id","content"],"title":"VectorSearchResult","description":"Schema for search result documents."},"VideoInputContent":{"properties":{"type":{"type":"string","const":"video","title":"Type","default":"video"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"VideoInputContent","description":"A video input content fragment."},"WhatsAppWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status","default":"ok"}},"type":"object","title":"WhatsAppWebhookResponse"},"WorkflowResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema","description":"Input schema for the workflow"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps","description":"List of workflow steps"},"agent":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"type":"null"}],"description":"Agent configuration if used"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamResponse"},{"type":"null"}],"description":"Team configuration if used"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"workflow_agent":{"type":"boolean","title":"Workflow Agent","description":"Whether this workflow uses a WorkflowAgent","default":false},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowResponse"},"WorkflowRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the workflow run"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the workflow"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was executed"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the workflow"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"Type of content returned"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status of the workflow run"},"step_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Results","description":"Results from each workflow step"},"step_executor_runs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Executor Runs","description":"Executor runs for each step"},"step_requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Requirements","description":"HITL step requirements (resolved state for historical display)"},"pause_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Kind","description":"Kind of HITL pause: 'step' or 'executor'"},"paused_step_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Step Name","description":"Name of the step that caused the pause"},"paused_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Paused Step Index","description":"Index of the step that caused the pause"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the workflow"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the workflow"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the workflow"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the workflow"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the workflow"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"}},"type":"object","required":["run_id"],"title":"WorkflowRunSchema"},"WorkflowSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID used in this session"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name","description":"Name of the workflow"},"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Data","description":"Complete session data"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current workflow state"},"workflow_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Data","description":"Workflow-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["session_id","session_name"],"title":"WorkflowSessionDetailSchema"},"WorkflowSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowSummaryResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} +{"openapi":"3.1.0","info":{"title":"Agno API Reference","description":"The all-in-one, private, secure agent platform that runs in your cloud.","version":"2.7.4"},"paths":{"/":{"get":{"tags":["Home"],"summary":"API Information","description":"Return the AgentOS instance name, ID, and version.","operationId":"get_api_info","responses":{"200":{"description":"API information retrieved successfully","content":{"application/json":{"schema":{"properties":{"name":{"type":"string","title":"Name"},"id":{"type":"string","title":"Id"},"version":{"type":"string","title":"Version"}},"type":"object","required":["name","id","version"],"title":"ApiInfoResponse"},"examples":{"home":{"summary":"Example home response","value":{"name":"AgentOS API","id":"demo-os","version":"1.0.0"}}}}}}}}},"/health":{"get":{"tags":["Health"],"summary":"Health Check","description":"Check the health status of the AgentOS API. Returns a simple status indicator.","operationId":"health_check","responses":{"200":{"description":"API is healthy and operational","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"},"example":{"status":"ok","instantiated_at":"2025-06-10T12:00:00Z"}}}}}}},"/info":{"get":{"tags":["Core"],"summary":"Get OS Info","description":"Return lightweight, unauthenticated metadata about this AgentOS instance.","operationId":"get_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoResponse"}}}}}}},"/config":{"get":{"tags":["Core"],"summary":"Get OS Configuration","description":"Retrieve the complete configuration of the AgentOS instance, including:\n\n- Available models and databases\n- Registered agents, teams, and workflows\n- Chat, session, memory, knowledge, and evaluation configurations\n- Available interfaces and their routes","operationId":"get_config","responses":{"200":{"description":"OS configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"},"example":{"description":"Example AgentOS configuration","available_models":[],"databases":["9c884dc4-9066-448c-9074-ef49ec7eb73c"],"session":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Sessions"}}]},"metrics":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Metrics"}}]},"memory":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Memory"}}]},"knowledge":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Knowledge"}}]},"evals":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Evals"}}]},"agents":[{"id":"main-agent","name":"Main Agent","db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c"}],"teams":[],"workflows":[],"interfaces":[],"os_id":"demo"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/models":{"get":{"tags":["Core"],"summary":"Get Available Models","description":"Retrieve a list of all unique models currently used by agents and teams in this OS instance. This includes the model ID and provider information for each model.","operationId":"get_models","responses":{"200":{"description":"List of models retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Response Get Models"},"example":[{"id":"gpt-4","provider":"openai"},{"id":"claude-3-sonnet","provider":"anthropic"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/agents/{agent_id}/runs":{"post":{"tags":["Agents"],"summary":"Create Agent Run","description":"Execute an agent with a message and optional media files. Supports both streaming and non-streaming responses.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_agent_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_agent_run"}}}},"responses":{"200":{"description":"Agent run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"examples":{"event_stream":{"summary":"Example event stream response","value":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Agents"],"summary":"List Agent Runs","description":"List runs for an agent within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_agent_runs","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED","title":"Status"},"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RunSchema"},"type":"array","title":"Response List Agent Runs"}}}},"400":{"description":"Run listing is unavailable for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Agent resolution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/cancel":{"post":{"tags":["Agents"],"summary":"Cancel Agent Run","description":"Request cancellation for `run_id`. After any required ownership check, local and factory agents store cancellation intent keyed by run ID. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote agent.","operationId":"cancel_agent_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.","title":"Session Id"},"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it."}],"responses":{"200":{"description":"Cancellation request accepted. The empty response does not confirm run existence or remote delivery.","content":{"application/json":{"schema":{}}}},"400":{"description":"A user-scoped caller omitted session_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found, or the run could not be verified in the caller's session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run cancellation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/continue":{"post":{"tags":["Agents"],"summary":"Continue Agent Run","description":"Advance a persisted agent run from its current state. Dispatches on the body shape and the persisted run state (see ADR-003 in specs/agno/features/checkpointing/decisions.md).\n\n**Variants:**\n- PAUSED + tools provided \u2192 apply HITL tool results, resume\n- PAUSED + resolved admin approval (empty tools) \u2192 apply resolution, resume\n- RUNNING / ERROR (no unresolved HITL requirements) \u2192 resume from last persisted state\n- COMPLETED + new tools \u2192 continue with appended messages\n\n**Tools Parameter:**\nJSON string containing array of tool execution objects with results. Optional \u2014 only required when the persisted run has unresolved HITL requirements.","operationId":"continue_agent_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_agent_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid tools or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Agent run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run continuation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"503":{"description":"Remote agent is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/agents/{agent_id}/sessions/{session_id}/fork":{"post":{"tags":["Agents"],"summary":"Fork Agent Session","description":"Deep-copy a session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_agent_session","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents":{"get":{"tags":["Agents"],"summary":"List All Agents","description":"Retrieve a comprehensive list of all agents configured in this OS instance.\n\n**Returns:**\n- Agent metadata (ID, name, description)\n- Model configuration and capabilities\n- Available tools and their configurations\n- Session, knowledge, memory, and reasoning settings\n- Only meaningful (non-default) configurations are included","operationId":"get_agents","responses":{"200":{"description":"List of agents retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentResponse"},"type":"array","title":"Response Get Agents"},"example":[{"id":"main-agent","name":"Main Agent","db_id":"c6bf0644-feb8-4930-a305-380dae5ad6aa","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Details","description":"Retrieve detailed configuration and capabilities of a specific agent.\n\n**Returns comprehensive agent information including:**\n- Model configuration and provider details\n- Complete tool inventory and configurations\n- Session management settings\n- Knowledge base and memory configurations\n- Reasoning capabilities and settings\n- System prompts and response formatting options","operationId":"get_agent","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Agent details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"},"example":{"id":"main-agent","name":"Main Agent","db_id":"9e064c70-6821-4840-a333-ce6230908a70","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Run","description":"Retrieve the status and output of an agent run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_agent_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Agents"],"summary":"List Agent Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_agent_run_checkpoints","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointListResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Agents"],"summary":"Get Agent Run Checkpoint Snapshot","description":"Return a derived run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_agent_run_checkpoint_snapshot","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointSnapshotResponse"}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/resume":{"post":{"tags":["Agents"],"summary":"Resume Agent Run Stream","description":"Resume an SSE stream for an agent run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_agent_run_stream","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_agent_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Not supported for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs":{"post":{"tags":["Teams"],"summary":"Create Team Run","description":"Execute a team collaboration with multiple agents working together on a task.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_team_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_team_run"}}}},"responses":{"200":{"description":"Team run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Teams"],"summary":"List Team Runs","description":"List runs for a team within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_team_runs","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/cancel":{"post":{"tags":["Teams"],"summary":"Cancel Team Run","description":"Request cancellation for `run_id`. After any required ownership check, local and factory teams store cancellation intent keyed by run ID and mark known member runs for cancellation. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote team.","operationId":"cancel_team_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.","title":"Session Id"},"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it."}],"responses":{"200":{"description":"Cancellation request accepted. The empty response does not confirm run existence or remote delivery.","content":{"application/json":{"schema":{}}}},"400":{"description":"A user-scoped caller omitted session_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found, or the run could not be verified in the caller's session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel team run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/resume":{"post":{"tags":["Teams"],"summary":"Resume Team Run Stream","description":"Resume an SSE stream for a team run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_team_run_stream","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_team_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory teams. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/continue":{"post":{"tags":["Teams"],"summary":"Continue Team Run","description":"Continue a paused or incomplete team run with updated requirements.\n\n**Use Cases:**\n- Resume execution after tool approval/rejection\n- Provide manual tool execution results\n- Resume after admin approval (requirements can be empty; resolution fetched from DB)\n\n**Requirements Parameter:**\nJSON string containing array of requirement objects with tool execution results.\nCan be empty when an admin-required approval has been resolved.","operationId":"continue_team_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_team_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid requirements or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Team run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Remote team is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/teams/{team_id}/sessions/{session_id}/fork":{"post":{"tags":["Teams"],"summary":"Fork Team Session","description":"Deep-copy a team session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_team_session","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams":{"get":{"tags":["Teams"],"summary":"List Accessible Teams","description":"Retrieve configured team metadata, models, members, knowledge, and memory settings. When authorization is enabled, in-memory team registrations are filtered by caller scopes. Database-loaded team components are also included.","operationId":"get_teams","responses":{"200":{"description":"List of teams retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamResponse"},"type":"array","title":"Response Get Teams"},"example":[{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"agno_memories","app_url":"/memory/1","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/teams/{team_id}":{"get":{"tags":["Teams"],"summary":"Get Team Details","description":"Retrieve detailed configuration and member information for a specific team.","operationId":"get_team","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"},"example":{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}":{"get":{"tags":["Teams"],"summary":"Get Team Run","description":"Retrieve the status and output of a team run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_team_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Teams"],"summary":"List Team Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored team run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_team_run_checkpoints","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointListResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Teams"],"summary":"Get Team Run Checkpoint Snapshot","description":"Return a derived team run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_team_run_checkpoint_snapshot","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointSnapshotResponse"}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows":{"get":{"tags":["Workflows"],"summary":"List Workflows","description":"Return workflow ID, name, description, database ID, factory metadata, and Builder version metadata. When authorization is enabled, caller scopes filter in-memory workflow registrations. Database-loaded Builder workflows are appended separately.","operationId":"get_workflows","responses":{"200":{"description":"List of workflows retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Response Get Workflows"},"example":[{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/workflows/{workflow_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Details","description":"Retrieve detailed configuration and step information for a specific workflow.","operationId":"get_workflow","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Workflow version to retrieve","title":"Version"},"description":"Workflow version to retrieve"}],"responses":{"200":{"description":"Workflow details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"},"example":{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs":{"post":{"tags":["Workflows"],"summary":"Execute Workflow","description":"Execute a workflow with the provided input data. Workflows can run in streaming or batch mode.\n\n**Execution Modes:**\n- **Streaming (`stream=true`)**: Real-time step-by-step execution updates via SSE\n- **Non-Streaming (`stream=false`)**: Complete workflow execution with final result\n\n**Workflow Execution Process:**\n1. Input validation against workflow schema\n2. Sequential or parallel step execution based on workflow design\n3. Data flow between steps with transformation\n4. Error handling and automatic retries where configured\n5. Final result compilation and response\n\n**Session Management:**\nWorkflows support session continuity for stateful execution across multiple runs.","operationId":"create_workflow_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_run"}}}},"responses":{"200":{"description":"Workflow executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid input data or workflow configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Workflow execution error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"List Workflow Runs","description":"List runs for a workflow within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_workflow_runs","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/continue":{"post":{"tags":["Workflows"],"summary":"Continue Workflow Run","description":"Continue a paused workflow run with resolved requirements.\n\n**Use Cases:**\n- Resume after step-level HITL (confirmation, user input, router selection)\n- Resume after executor-level HITL (agent/team tool confirmation within a step)\n\n**Requirements Parameter:**\nJSON string containing the resolved step requirements.","operationId":"continue_workflow_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_workflow_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: StepCompleted\ndata: {\"step_name\": \"step1\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid step requirements or factory input, missing required session ID, rejected input, or remote workflow continuation requested","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is not paused and cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/cancel":{"post":{"tags":["Workflows"],"summary":"Cancel Workflow Run","description":"Request cancellation for `run_id`. After any required ownership check, local and factory workflows store cancellation intent keyed by run ID and mark known agent or team executor runs for cancellation. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote workflow.","operationId":"cancel_workflow_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.","title":"Session Id"},"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it."}],"responses":{"200":{"description":"Cancellation request accepted. The empty response does not confirm run existence or remote delivery.","content":{"application/json":{"schema":{}}}},"400":{"description":"A user-scoped caller omitted session_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found, or the run could not be verified in the caller's session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel workflow run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/resume":{"post":{"tags":["Workflows"],"summary":"Resume Workflow Run Stream","description":"Resume an SSE stream for a workflow run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_workflow_run_stream","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_workflow_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory workflows. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Run","description":"Retrieve the status and output of a workflow run. Use this to poll for run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_workflow_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/slack/events":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Receives incoming Slack events (messages, mentions, thread starts).\n\n**URL Verification:** On first setup, Slack sends a `url_verification` challenge. The endpoint echoes back the challenge string.\n\n**Event Processing:** Normal events are acknowledged immediately with `{\"status\": \"ok\"}` and processed in the background. This prevents Slack's 3-second retry timeout.\n\n**Retry Handling:** Events with `X-Slack-Retry-Num` header are duplicates and return 200 without reprocessing.\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Event Subscriptions > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for creating a Slack App or use the [manifest](/agent-os/interfaces/slack/setup#2-create-the-slack-app) for quick setup.\n","operationId":"slack_events_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SlackChallengeResponse"},{"$ref":"#/components/schemas/SlackEventResponse"}],"title":"Response Slack Events Simple Agent"}}}},"400":{"description":"Missing Slack headers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured, or the event body is not valid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number (present on retried events)"}]}},"/slack/interactions":{"post":{"tags":["Slack"],"summary":"Slack Interactions","description":"Handles Slack interactive components for Human-in-the-Loop (HITL) workflows.\n\n**Supported Actions:**\n- `row_approve` - Approve a pending tool call\n- `row_reject` - Reject a pending tool call\n- `submit_pause` - Submit form data for a paused workflow\n- `check_status` - Check an admin approval and resume an approved run\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Interactivity & Shortcuts > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for step-by-step instructions or the [HITL guide](/agent-os/interfaces/slack/hitl) for approval workflows.\n","operationId":"slack_interactions_simple_agent","responses":{"200":{"description":"Interaction accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackEventResponse"}}}},"400":{"description":"Missing Slack headers or malformed interaction payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number. Retried interactions return 200 without reprocessing."}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"URL-encoded JSON interaction payload (Slack sends interactive component data as a single form field)"}}}}}}}},"/whatsapp/status":{"get":{"tags":["Whatsapp"],"summary":"Status","operationId":"whatsapp_status_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"WhatsAppStatusResponse","example":{"status":"available"}}}}}}}},"/whatsapp/webhook":{"get":{"tags":["Whatsapp"],"summary":"Whatsapp Verify","description":"Handle WhatsApp webhook verification","operationId":"whatsapp_verify_simple_agent","responses":{"200":{"description":"Webhook challenge accepted","content":{"text/plain":{"schema":{"type":"string"},"example":"challenge-token"}}},"400":{"description":"No challenge was provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid verify token or mode","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Webhook verification is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"hub.mode","in":"query","required":true,"schema":{"type":"string"},"description":"Webhook verification mode. Meta sends `subscribe`."},{"name":"hub.verify_token","in":"query","required":true,"schema":{"type":"string"},"description":"Verification token configured for the WhatsApp interface."},{"name":"hub.challenge","in":"query","required":true,"schema":{"type":"string"},"description":"Challenge returned as plain text after successful verification."}]},"post":{"tags":["Whatsapp"],"summary":"Whatsapp Webhook","description":"Process incoming WhatsApp messages","operationId":"whatsapp_webhook_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppWebhookResponse"}}}},"403":{"description":"Invalid webhook signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Signature validation is not configured, or the JSON body is malformed or is not an object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Hub-Signature-256","in":"header","required":true,"schema":{"type":"string"},"description":"SHA-256 HMAC signature for the raw request body, prefixed with `sha256=`"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}},"/telegram/status":{"get":{"tags":["Telegram"],"summary":"Telegram Status","operationId":"telegram_status_simple-agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramStatusResponse"}}}}}}},"/telegram/webhook":{"post":{"tags":["Telegram"],"summary":"Telegram Webhook","operationId":"telegram_webhook_simple-agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramWebhookResponse"}}}},"403":{"description":"Invalid webhook secret token"}}}},"/agui":{"post":{"tags":["AGUI"],"summary":"Run Agent","operationId":"run_agent_agui_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentInput"}}},"required":true},"responses":{"200":{"description":"Server-sent event stream","content":{"text/event-stream":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/status":{"get":{"tags":["AGUI"],"summary":"Get Status","operationId":"get_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/a2a/agents/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Agent Card","operationId":"get_agent_card_a2a_agents__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/a2a/agents/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Agent","description":"Send a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"A2A is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/agents/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Agent Task","description":"Get the status and result of an agent task by ID. `params.contextId` identifies the session containing the task.","operationId":"get_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent task retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Missing task or context ID, or task polling requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"Task polling is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/get","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/agents/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Agent Task","description":"Cancel a running agent task. Scoped non-admin callers must identify the task's session with `params.contextId`.","operationId":"cancel_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent task canceled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"canceled"}}}}}},"400":{"description":"Missing task or required context ID, or task cancellation requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"Task cancellation is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/cancel","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/agents/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Agent","description":"Stream a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/teams/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Team Card","operationId":"get_team_card_a2a_teams__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/a2a/teams/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Team","description":"Send a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/teams/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Team Task","description":"Get the status and result of a team task by ID. `params.contextId` identifies the session containing the task.","operationId":"get_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team task retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Missing task or context ID, or task polling requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/get","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/teams/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Team Task","description":"Cancel a running team task. Scoped non-admin callers must identify the task's session with `params.contextId`.","operationId":"cancel_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team task canceled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"canceled"}}}}}},"400":{"description":"Missing task or required context ID, or task cancellation requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/cancel","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/teams/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Team","description":"Stream a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/workflows/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Workflow Card","operationId":"get_workflow_card_a2a_workflows__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Workflow card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/a2a/workflows/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Workflow","description":"Send a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/workflows/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Workflow","description":"Stream a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/message/send":{"post":{"tags":["A2A"],"summary":"Send Message","description":"[DEPRECATED] Send a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"send_message","responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request or unsupported method","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, team, or workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"deprecated":true,"security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"X-Agent-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Target agent, team, or workflow ID when `params.message.agentId` is omitted."},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/message/stream":{"post":{"tags":["A2A"],"summary":"Stream Message","description":"[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as Server-Sent Events (SSE).","operationId":"stream_message","responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request or unsupported method","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, team, or workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"deprecated":true,"security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"X-Agent-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Target agent, team, or workflow ID when `params.message.agentId` is omitted."},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/sessions":{"get":{"tags":["Sessions"],"summary":"List Sessions","description":"Retrieve paginated list of sessions with filtering and sorting options. Supports filtering by session type (agent, team, workflow), component, user, and name. Sessions represent conversation histories and execution contexts.","operationId":"get_sessions","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types.","title":"Type"},"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types."},{"name":"component_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by component ID (agent/team/workflow ID)","title":"Component Id"},"description":"Filter sessions by component ID (agent/team/workflow ID)"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by user ID","title":"User Id"},"description":"Filter sessions by user ID"},{"name":"session_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by name (partial match)","title":"Session Name"},"description":"Filter sessions by name (partial match)"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of sessions to return per page","default":20,"title":"Limit"},"description":"Number of sessions to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort sessions by","default":"created_at","title":"Sort By"},"description":"Field to sort sessions by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query sessions from","title":"Db Id"},"description":"Database ID to query sessions from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Sessions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_SessionSchema_"},"example":{"session_example":{"summary":"Example session response","value":{"data":[{"session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_state":{},"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}]}}}}}},"400":{"description":"Invalid session type or filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in query parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Sessions"],"summary":"Create New Session","description":"Create a new empty session with optional configuration. Useful for pre-creating sessions with specific session_state, metadata, or other properties before running any agent/team/workflow interactions. The session can later be used by providing its session_id in run requests.","operationId":"create_session","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SessionType","description":"Type of session to create (agent, team, or workflow)","default":"agent"},"description":"Type of session to create (agent, team, or workflow)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to create session in","title":"Db Id"},"description":"Database ID to create session in"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest","description":"Session configuration data","default":{}}}}},"responses":{"201":{"description":"Session created successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Create Session"},"examples":{"agent_session_example":{"summary":"Example created agent session","value":{"user_id":"user-123","agent_session_id":"new-session-id","session_id":"new-session-id","session_name":"New Session","session_state":{"key":"value"},"metadata":{"key":"value"},"agent_id":"agent-1","created_at":"2025-10-21T12:00:00Z","updated_at":"2025-10-21T12:00:00Z"}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A session with the supplied session_id already exists"},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Multiple Sessions","description":"Delete multiple sessions by their IDs in a single operation. This action cannot be undone and will permanently remove all specified sessions and their runs.","operationId":"delete_sessions","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSessionRequest"}}}},"responses":{"204":{"description":"Sessions deleted successfully"},"400":{"description":"Invalid request - session IDs and types length mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["Sessions"],"summary":"Get Session by ID","description":"Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow).","operationId":"get_session_by_id","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to retrieve","title":"Session Id"},"description":"Session ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query session from","title":"User Id"},"description":"User ID to query session from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query session from","title":"Db Id"},"description":"Database ID to query session from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query session from","title":"Table"},"description":"Table to query session from"}],"responses":{"200":{"description":"Session details retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Get Session By Id"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Session","description":"Permanently delete a specific session and all its associated runs. This action cannot be undone and will remove all conversation history.","operationId":"delete_session","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to delete","title":"Session Id"},"description":"Session ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Sessions"],"summary":"Update Session","description":"Update session properties such as session_name, session_state, metadata, or summary. Use this endpoint to modify the session name, update state, add metadata, or update the session summary.","operationId":"update_session","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to update","title":"Session Id"},"description":"Session ID to update"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID","title":"User Id"},"description":"User ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update operation","title":"Db Id"},"description":"Database ID to use for update operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update operation","title":"Table"},"description":"Table to use for update operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest","description":"Session update data"}}}},"responses":{"200":{"description":"Session updated successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Update Session"},"examples":{"update_summary":{"summary":"Update session summary","value":{"summary":{"summary":"The user discussed project planning with the agent.","updated_at":"2025-10-21T14:30:00Z"}}},"update_metadata":{"summary":"Update session metadata","value":{"metadata":{"tags":["planning","project"],"priority":"high"}}},"update_session_name":{"summary":"Update session name","value":{"session_name":"Updated Session Name"}},"update_session_state":{"summary":"Update session state","value":{"session_state":{"step":"completed","context":"Project planning finished","progress":100}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs":{"get":{"tags":["Sessions"],"summary":"Get Session Runs","description":"Retrieve all runs (executions) for a specific session with optional timestamp filtering. Runs represent individual interactions or executions within a session. Response schema varies based on session type.","operationId":"get_session_runs","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get runs from","title":"Session Id"},"description":"Session ID to get runs from"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query runs from","title":"User Id"},"description":"User ID to query runs from"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created after this Unix timestamp (epoch time in seconds)","title":"Created After"},"description":"Filter runs created after this Unix timestamp (epoch time in seconds)"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created before this Unix timestamp (epoch time in seconds)","title":"Created Before"},"description":"Filter runs created before this Unix timestamp (epoch time in seconds)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query runs from","title":"Db Id"},"description":"Database ID to query runs from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query runs from","title":"Table"},"description":"Table to query runs from"}],"responses":{"200":{"description":"Session runs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}]},"title":"Response Get Session Runs"},"examples":{"completed_run":{"summary":"Example completed run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"","run_input":"Which tools do you have access to?","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","run_response_format":"text","reasoning_content":"","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069},"messages":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-08 17:52:10.101003.\n\n\nYou have the capability to retain memories from previous interactions with the user, but have not had any interactions with the user yet.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757346730},{"content":"Which tools do you have access to?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757346730},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138},"created_at":1757346730}],"events":[{"created_at":1757346730,"event":"RunStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","model":"gpt-4o","model_provider":"OpenAI"},{"created_at":1757346733,"event":"MemoryUpdateStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"MemoryUpdateCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"RunCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","content_type":"str","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069}}],"created_at":"2025-09-08T15:52:10Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found or has no runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs/{run_id}":{"get":{"tags":["Sessions"],"summary":"Get Run by ID","description":"Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run).","operationId":"get_session_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get run from","title":"Session Id"},"description":"Session ID to get run from"},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","description":"Run ID to retrieve","title":"Run Id"},"description":"Run ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query run from","title":"User Id"},"description":"User ID to query run from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query run from","title":"Db Id"},"description":"Database ID to query run from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query run from","title":"Table"},"description":"Table to query run from"}],"responses":{"200":{"description":"Run retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}],"title":"Response Get Session Run"},"examples":{"agent_run":{"summary":"Example agent run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"user_123","run_input":"Which tools do you have access to?","content":"I don't have access to external tools.","created_at":1728499200}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/rename":{"post":{"tags":["Sessions"],"summary":"Rename Session","description":"Update the name of an existing session. Useful for organizing and categorizing sessions with meaningful names for better identification and management.","operationId":"rename_session","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to rename","title":"Session Id"},"description":"Session ID to rename"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope rename to","title":"User Id"},"description":"User ID to scope rename to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for rename operation","title":"Db Id"},"description":"Database ID to use for rename operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_rename_session"}}}},"responses":{"200":{"description":"Session renamed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Rename Session"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Invalid session name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type or validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories":{"post":{"tags":["Memory"],"summary":"Create Memory","description":"Create a new user memory with content and associated topics. Memories are used to store contextual information for users across conversations.","operationId":"create_memory","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for memory storage","title":"Db Id"},"description":"Database ID to use for memory storage"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for memory storage","title":"Table"},"description":"Table to use for memory storage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"mem-123","memory":"User prefers technical explanations with code examples","topics":["preferences","communication_style","technical"],"user_id":"user-456","created_at":"2024-01-15T10:30:00Z","updated_at":"2024-01-15T10:30:00Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Memory"],"summary":"Delete Multiple Memories","description":"Delete multiple user memories by their IDs in a single operation. This action cannot be undone and all specified memories will be permanently removed.","operationId":"delete_memories","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMemoriesRequest"}}}},"responses":{"204":{"description":"Memories deleted successfully"},"400":{"description":"Invalid request - empty memory_ids list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"List Memories","description":"Retrieve paginated list of user memories with filtering and search capabilities. Filter by user, agent, team, topics, or search within memory content.","operationId":"get_memories","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by user ID","title":"User Id"},"description":"Filter memories by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by agent ID","title":"Agent Id"},"description":"Filter memories by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by team ID","title":"Team Id"},"description":"Filter memories by team ID"},{"name":"search_content","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fuzzy search within memory content","title":"Search Content"},"description":"Fuzzy search within memory content"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of memories to return per page","default":20,"title":"Limit"},"description":"Number of memories to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort memories by","default":"updated_at","title":"Sort By"},"description":"Field to sort memories by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memories from","title":"Db Id"},"description":"Database ID to query memories from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Comma-separated list of topics to filter by","examples":["preferences,technical,communication_style"],"title":"Topics"},"description":"Comma-separated list of topics to filter by"}],"responses":{"200":{"description":"Memories retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserMemorySchema_"},"example":{"data":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories/{memory_id}":{"delete":{"tags":["Memory"],"summary":"Delete Memory","description":"Permanently delete a specific user memory. This action cannot be undone.","operationId":"delete_memory","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to delete","title":"Memory Id"},"description":"Memory ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to delete memory for","title":"User Id"},"description":"User ID to delete memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Memory deleted successfully"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"Get Memory by ID","description":"Retrieve detailed information about a specific user memory by its ID.","operationId":"get_memory","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to retrieve","title":"Memory Id"},"description":"Memory ID to retrieve"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query memory for","title":"User Id"},"description":"User ID to query memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memory from","title":"Db Id"},"description":"Database ID to query memory from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query memory from","title":"Table"},"description":"Table to query memory from"}],"responses":{"200":{"description":"Memory retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Memory"],"summary":"Update Memory","description":"Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values.","operationId":"update_memory","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to update","title":"Memory Id"},"description":"Memory ID to update"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update","title":"Db Id"},"description":"Database ID to use for update"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update","title":"Table"},"description":"Table to use for update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memory_topics":{"get":{"tags":["Memory"],"summary":"Get Memory Topics","description":"Retrieve all unique topics associated with memories in the system. Useful for filtering and categorizing memories by topic.","operationId":"get_memory_topics","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter topics for","title":"User Id"},"description":"User ID to filter topics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query topics from","title":"Db Id"},"description":"Database ID to query topics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query topics from","title":"Table"},"description":"Table to query topics from"}],"responses":{"200":{"description":"Memory topics retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Get Memory Topics"},"example":["preferences","communication_style","technical","industry","compliance","code_examples","requirements","healthcare","finance"]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/user_memory_stats":{"get":{"tags":["Memory"],"summary":"Get User Memory Statistics","description":"Retrieve paginated statistics about memory usage by user. Provides insights into user engagement and memory distribution across users.","operationId":"get_user_memory_stats","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of user statistics to return per page","default":20,"title":"Limit"},"description":"Number of user statistics to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter statistics for","title":"User Id"},"description":"User ID to filter statistics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query statistics from","title":"Table"},"description":"Table to query statistics from"}],"responses":{"200":{"description":"User memory statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserStatsSchema_"},"example":{"data":[{"user_id":"123","total_memories":3,"last_memory_updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve user statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/optimize-memories":{"post":{"tags":["Memory"],"summary":"Optimize User Memories","description":"Optimize all memories for a user with the summarize strategy. The operation combines the user's memories into one summary. Set `apply=false` to preview the result without saving it. Specify a custom model as `provider:model_id`, for example `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, or `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`.","operationId":"optimize_memories","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for optimization","title":"Db Id"},"description":"Database ID to use for optimization"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for optimization","title":"Table"},"description":"Table to use for optimization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesRequest"}}}},"responses":{"200":{"description":"Memories optimized successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesResponse"},"example":{"memories":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User has a 3-year-old golden retriever named Max who loves fetch and walks. Lives in San Francisco's Mission district, works as a product manager in tech. Enjoys hiking Bay Area trails, trying new restaurants (especially Japanese, Thai, Mexican), and learning piano for 1.5 years.","topics":["pets","location","work","hobbies","food_preferences"],"user_id":"user2","updated_at":"2025-11-18T10:30:00Z"}],"memories_before":4,"memories_after":1,"tokens_before":450,"tokens_after":180,"tokens_saved":270,"reduction_percentage":60.0}}}},"400":{"description":"Bad request - User ID is required or invalid model string format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No memories found for user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to optimize memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings":{"get":{"tags":["Learnings"],"summary":"List Learnings","description":"List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) \u2014 this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`).","operationId":"list_learnings","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by learning type","title":"Learning Type"},"description":"Filter by learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"namespace","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by namespace","title":"Namespace"},"description":"Filter by namespace"},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity ID","title":"Entity Id"},"description":"Filter by entity ID"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity type","title":"Entity Type"},"description":"Filter by entity type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":100,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used).","title":"Sort By"},"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used)."},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"post":{"tags":["Learnings"],"summary":"Create Learning","description":"Create a new learning record. For the identity-keyed learning types (`user_profile`, `user_memory`, `session_context`, `entity_memory`) the record id is derived deterministically from the identity fields so it reconciles with what the agent reads/writes \u2014 provide those fields (else 422), and if a record already exists the request is rejected with 409 (use PATCH to update it). Other types get a generated id. For a scoped (non-admin) caller, the body's `user_id` must be omitted/null or match the caller (mismatch \u2192 403); admins and unscoped callers may set any `user_id`.","operationId":"create_learning","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"An identity-keyed learning already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/users":{"get":{"tags":["Learnings"],"summary":"List Learning Users","description":"List the users that own learning records, with a per-user count and last-updated timestamp. Intended as the entry point for a per-user view: list users here, then drill into a single user's learnings via `GET /learnings?user_id=...`. Records with no owner (`user_id IS NULL`) are excluded. Pass `learning_type` to restrict the grouping to a single store (e.g. `user_profile` or `user_memory`). For a scoped (non-admin) caller results are bound to that user; an explicit `user_id` that differs is rejected with 403. Admins and unscoped callers list all users. Sortable by `user_id` or `last_learning_updated_at` (the default).","operationId":"list_learning_users","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the grouping to a single learning type","title":"Learning Type"},"description":"Restrict the grouping to a single learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the result to a single user","title":"User Id"},"description":"Restrict the result to a single user"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by: user_id or last_learning_updated_at (the default)","title":"Sort By"},"description":"Field to sort by: user_id or last_learning_updated_at (the default)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningUserStats_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/users/{user_id}":{"delete":{"tags":["Learnings"],"summary":"Delete Learning User","description":"Delete the learning records owned by a user. By default removes every learning type backed by the agno_learnings table (user_profile, user_memory, and any user-scoped entity records); pass `learning_type` to restrict deletion to a single store. Records with no owner (`user_id IS NULL`) are not affected. For a scoped (non-admin) caller, only their own learnings may be deleted; a different `user_id` is rejected with 403. Admins and unscoped callers may delete any user's learnings. Returns 204 even if the user had no matching records.","operationId":"delete_learning_user","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The user whose learnings should be deleted","title":"User Id"},"description":"The user whose learnings should be deleted"},{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings","title":"Learning Type"},"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/{learning_id}":{"get":{"tags":["Learnings"],"summary":"Get Learning","description":"Retrieve a single learning record by its ID.","operationId":"get_learning","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"patch":{"tags":["Learnings"],"summary":"Update Learning","description":"Update a learning record. Only `content` and `metadata` may be modified; identity fields (user_id, agent_id, team_id, etc.) are immutable. Provided fields fully replace the existing values. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) are readable by any caller but may only be modified by an admin.","operationId":"update_learning","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"delete":{"tags":["Learnings"],"summary":"Delete Learning","description":"Permanently delete a learning record by its ID. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) may only be deleted by an admin.","operationId":"delete_learning","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/eval-runs":{"get":{"tags":["Evals"],"summary":"List Evaluation Runs","description":"Retrieve paginated evaluation runs with filtering and sorting options. Filter by agent, team, workflow, model, or evaluation type.","operationId":"get_eval_runs","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Workflow ID","title":"Workflow Id"},"description":"Workflow ID"},{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model ID","title":"Model Id"},"description":"Model ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EvalFilterType"},{"type":"null"}],"description":"Filter type","title":"Type"},"description":"Filter type"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of eval runs to return","default":20,"title":"Limit"},"description":"Number of eval runs to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"eval_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)","examples":["accuracy,agent_as_judge,performance,reliability"],"title":"Eval Types"},"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)"}],"responses":{"200":{"description":"Evaluation runs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_EvalSchema_"},"example":{"data":[{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Evals"],"summary":"Delete Evaluation Runs","description":"Delete multiple evaluation runs by their IDs. This action cannot be undone.","operationId":"delete_eval_runs","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvalRunsRequest"}}}},"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Deletion failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Evals"],"summary":"Execute Evaluation","description":"Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both.","operationId":"run_eval","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for evaluation","title":"Db Id"},"description":"Database ID to use for evaluation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for evaluation","title":"Table"},"description":"Table to use for evaluation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRunInput"}}}},"responses":{"200":{"description":"Evaluation executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"f2b2d72f-e9e2-4f0e-8810-0a7e1ff58614","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Invalid request - provide either agent_id or team_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs/{eval_run_id}":{"get":{"tags":["Evals"],"summary":"Get Evaluation Run","description":"Retrieve detailed results and metrics for a specific evaluation run.","operationId":"get_eval_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query eval run from","title":"Table"},"description":"Table to query eval run from"}],"responses":{"200":{"description":"Evaluation run details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Evals"],"summary":"Update Evaluation Run","description":"Update the name or other properties of an existing evaluation run.","operationId":"update_eval_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvalRunRequest"}}}},"responses":{"200":{"description":"Evaluation run updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update evaluation run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics":{"get":{"tags":["Metrics"],"summary":"Get AgentOS Metrics","description":"Retrieve AgentOS metrics and analytics data for a specified date range. If no date range is specified, returns all available metrics.","operationId":"get_metrics","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"starting_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Starting date for metrics range (YYYY-MM-DD format)","title":"Starting Date"},"description":"Starting date for metrics range (YYYY-MM-DD format)"},{"name":"ending_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Ending date for metrics range (YYYY-MM-DD format)","title":"Ending Date"},"description":"Ending date for metrics range (YYYY-MM-DD format)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query metrics from","title":"Db Id"},"description":"Database ID to query metrics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Metrics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"},"example":{"metrics":[{"id":"7bf39658-a00a-484c-8a28-67fd8a9ddb2a","agent_runs_count":5,"agent_sessions_count":5,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":448,"output_tokens":148,"total_tokens":596,"audio_tokens":0,"input_audio_tokens":0,"output_audio_tokens":0,"cached_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":5}],"date":"2025-07-31T00:00:00Z","created_at":"2025-07-31T12:38:52Z","updated_at":"2025-07-31T12:49:01Z"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Metrics retrieval failed. In Agno 2.7.4, invalid or ambiguous database selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics/refresh":{"post":{"tags":["Metrics"],"summary":"Refresh Metrics","description":"Manually trigger recalculation of system metrics from raw data. This operation analyzes system activity logs and regenerates aggregated metrics. Useful for ensuring metrics are up-to-date or after system maintenance.","operationId":"refresh_metrics","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for metrics calculation","title":"Db Id"},"description":"Database ID to use for metrics calculation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for metrics calculation","title":"Table"},"description":"Table to use for metrics calculation"}],"responses":{"200":{"description":"Metrics refreshed successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"title":"Response Refresh Metrics"},"example":[{"id":"e77c9531-818b-47a5-99cd-59fed61e5403","agent_runs_count":2,"agent_sessions_count":2,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":256,"output_tokens":441,"total_tokens":697,"audio_total_tokens":0,"audio_input_tokens":0,"audio_output_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":2}],"date":"2025-08-12T00:00:00Z","created_at":"2025-08-12T08:01:47Z","updated_at":"2025-08-12T08:01:47Z"}]}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Refresh failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content":{"post":{"tags":["Knowledge"],"summary":"Upload Content","description":"Upload content to the knowledge base. Supports file uploads, text content, or URLs. Content is processed asynchronously in the background. Supports custom readers and chunking strategies.","operationId":"upload_content","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_content"}}}},"responses":{"202":{"description":"Content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-123","name":"example-document.pdf","description":"Sample document for processing","metadata":{"category":"documentation","priority":"high"},"status":"processing"}}}},"400":{"description":"Invalid request - malformed metadata or missing content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in form data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"List Content","description":"Return a paginated, sorted list of content for the selected knowledge base. Use `limit`, `page`, `sort_by`, and `sort_order` to control the result. Agno 2.7.4 exposes no status, content type, or metadata filter parameters on this endpoint. Named local knowledge instances scope rows by the stored `linked_to` value.","operationId":"get_content","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of content entries to return","default":20,"title":"Limit"},"description":"Number of content entries to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ContentResponseSchema_"},"example":{"data":[{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":null,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z","linked_to":null}],"meta":{"page":1,"limit":20,"total_pages":1,"total_count":2}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete All Content","description":"Permanently remove all content from the knowledge base. This is a destructive operation that cannot be undone. Use with extreme caution.","operationId":"delete_all_content","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete all content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/remote-content":{"post":{"tags":["Knowledge"],"summary":"Upload Remote Content","description":"Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.","operationId":"upload_remote_content","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_upload_remote_content"}}}},"responses":{"202":{"description":"Remote content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-456","name":"reports/q1-2024.pdf","description":"Q1 Report from S3","metadata":{"source":"s3-docs"},"status":"processing"}}}},"400":{"description":"Invalid request - unknown config or missing path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Remote content upload is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/knowledge/content/{content_id}":{"patch":{"tags":["Knowledge"],"summary":"Update Content","description":"Update content name, description, or metadata without re-uploading it. In Agno 2.7.4, this endpoint accepts `reader_id`. Local knowledge validates the value, but the content patch does not apply or persist the reader change.","operationId":"update_content","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","description":"Content ID","title":"Content Id"},"description":"Content ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_update_content"}}}},"responses":{"200":{"description":"Content updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":null,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z","linked_to":null}}}},"400":{"description":"Invalid request - malformed metadata or invalid reader_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"Get Content by ID","description":"Retrieve detailed information about a specific content item including processing status and metadata.","operationId":"get_content_by_id","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":null,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z","linked_to":null}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete Content by ID","description":"Permanently remove a specific content item from the knowledge base. This action cannot be undone.","operationId":"delete_content_by_id","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}/status":{"get":{"tags":["Knowledge"],"summary":"Get Content Status","description":"Return the processing status for a content ID. For local knowledge in Agno 2.7.4, an unknown content ID returns HTTP 200 with `status=\"failed\"` and `status_message=\"Content not found\"`.","operationId":"get_content_status","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content status returned. An unknown local content ID is represented by status \"failed\".","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentStatusResponse"},"examples":{"completed":{"summary":"Completed content","value":{"id":"content-123","status":"completed","status_message":""}},"content_not_found":{"summary":"Unknown local content ID","value":{"id":"missing-content","status":"failed","status_message":"Content not found"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Selected knowledge base or database ID not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/search":{"post":{"tags":["Knowledge"],"summary":"Search Knowledge","description":"Search the knowledge base for relevant documents using query, filters and search type.","operationId":"search_knowledge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VectorSearchRequestSchema"}}},"required":true},"responses":{"200":{"description":"Search results retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_VectorSearchResult_"},"example":{"data":[{"id":"doc_123","content":"Jordan Mitchell - Software Engineer with skills in JavaScript, React, Python","name":"cv_1","meta_data":{"page":1,"chunk":1},"usage":{"total_tokens":14},"reranking_score":0.95,"content_id":"content_456"}],"meta":{"page":1,"limit":20,"total_pages":2,"total_count":35}}}}},"400":{"description":"Invalid search parameters"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No documents found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/knowledge/config":{"get":{"tags":["Knowledge"],"summary":"Get Config","description":"Retrieve available readers, chunkers, and configuration options for content processing. This endpoint provides metadata about supported file types, processing strategies, and filters.","operationId":"get_knowledge_config","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Knowledge configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponseSchema"},"example":{"readers":{"website":{"id":"website","name":"WebsiteReader","description":"Reads website files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"firecrawl":{"id":"firecrawl","name":"FirecrawlReader","description":"Reads firecrawl files","chunkers":["SemanticChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"youtube":{"id":"youtube","name":"YoutubeReader","description":"Reads youtube files","chunkers":["RecursiveChunker","AgenticChunker","DocumentChunker","SemanticChunker","FixedSizeChunker"]},"web_search":{"id":"web_search","name":"WebSearchReader","description":"Reads web_search files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"arxiv":{"id":"arxiv","name":"ArxivReader","description":"Reads arxiv files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"csv":{"id":"csv","name":"CsvReader","description":"Reads csv files","chunkers":["RowChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"docling":{"id":"docling","name":"DoclingReader","description":"Converts multiple document formats like PDF, DOCX, PPTX, images, HTML, etc. using IBM's Docling library","chunkers":["AgenticChunker","CodeChunker","DocumentChunker","FixedSizeChunker","RecursiveChunker","SemanticChunker"]},"docx":{"id":"docx","name":"DocxReader","description":"Reads docx files","chunkers":["DocumentChunker","FixedSizeChunker","SemanticChunker","AgenticChunker","RecursiveChunker"]},"gcs":{"id":"gcs","name":"GcsReader","description":"Reads gcs files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"json":{"id":"json","name":"JsonReader","description":"Reads json files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"markdown":{"id":"markdown","name":"MarkdownReader","description":"Reads markdown files","chunkers":["MarkdownChunker","DocumentChunker","AgenticChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"pdf":{"id":"pdf","name":"PdfReader","description":"Reads pdf files","chunkers":["DocumentChunker","FixedSizeChunker","AgenticChunker","SemanticChunker","RecursiveChunker"]},"text":{"id":"text","name":"TextReader","description":"Reads text files","chunkers":["CodeChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]}},"readersForType":{"url":["url","website","firecrawl","youtube","web_search","gcs"],"youtube":["youtube"],"text":["web_search"],"topic":["arxiv"],"file":["csv","gcs"],".csv":["csv","field_labeled_csv","docling"],".xlsx":["excel","docling"],".xls":["excel"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["excel"],"application/vnd.ms-excel":["excel"],".docx":["docx","docling"],".dotx":["docling"],".docm":["docling"],".dotm":["docling"],".pptx":["docling","pptx"],".potx":["docling"],".ppsx":["docling"],".pptm":["docling"],".ppsm":["docling"],".potm":["docling"],".doc":["docx"],".json":["json"],".md":["markdown","docling"],".pdf":["pdf","docling"],".txt":["text"],".html":["docling"],".htm":["docling"],".xhtml":["docling"],".xml":["docling"],".nxml":["docling"],".xbrl":["docling"],".adoc":["docling"],".asciidoc":["docling"],".asc":["docling"],".xlsm":["docling"],".tex":["docling"],".latex":["docling"],".tar.gz":["docling"],".vtt":["docling"],".png":["docling"],".jpeg":["docling"],".jpg":["docling"],".tiff":["docling"],".tif":["docling"],".bmp":["docling"],".webp":["docling"],".wav":["docling"],".mp3":["docling"],".m4a":["docling"],".aac":["docling"],".ogg":["docling"],".flac":["docling"],".mp4":["docling"],".avi":["docling"],".mov":["docling"]},"chunkers":{"AgenticChunker":{"key":"AgenticChunker","name":"AgenticChunker","description":"Chunking strategy that uses an LLM to determine natural breakpoints in the text","metadata":{"chunk_size":5000}},"CodeChunker":{"key":"CodeChunker","name":"CodeChunker","description":"The CodeChunker splits code into chunks based on its structure, leveraging Abstract Syntax Trees (ASTs) to create contextually relevant segments","metadata":{"chunk_size":2048}},"DocumentChunker":{"key":"DocumentChunker","name":"DocumentChunker","description":"A chunking strategy that splits text based on document structure like paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"FixedSizeChunker":{"key":"FixedSizeChunker","name":"FixedSizeChunker","description":"Chunking strategy that splits text into fixed-size chunks with optional overlap","metadata":{"chunk_size":5000,"chunk_overlap":0}},"MarkdownChunker":{"key":"MarkdownChunker","name":"MarkdownChunker","description":"A chunking strategy that splits markdown based on structure like headers, paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RecursiveChunker":{"key":"RecursiveChunker","name":"RecursiveChunker","description":"Chunking strategy that recursively splits text into chunks by finding natural break points","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RowChunker":{"key":"RowChunker","name":"RowChunker","description":"RowChunking chunking strategy","metadata":{}},"SemanticChunker":{"key":"SemanticChunker","name":"SemanticChunker","description":"Chunking strategy that splits text into semantic chunks using chonkie","metadata":{"chunk_size":5000}}},"vector_dbs":[{"id":"vector_db_1","name":"Vector DB 1","description":"Vector DB 1 description","search_types":["vector","keyword","hybrid"]}],"filters":["filter_tag_1","filter_tag2"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources":{"get":{"tags":["Knowledge"],"summary":"List Content Sources","description":"List all registered content sources (S3, GCS, SharePoint, GitHub) for the knowledge base.","operationId":"list_content_sources","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Content sources retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"title":"Response List Content Sources"},"example":[{"id":"company-s3","name":"Company Documents","type":"s3","prefix":"documents/"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Content source listing is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/knowledge/{knowledge_id}/sources/{source_id}/files":{"get":{"tags":["Knowledge"],"summary":"List Files in Source","description":"List available files and folders in a specific content source. Supports pagination and folder navigation.","operationId":"list_source_files","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the content source","title":"Source Id"},"description":"ID of the content source"},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Path prefix to filter files","title":"Prefix"},"description":"Path prefix to filter files"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of files per page","default":100,"title":"Limit"},"description":"Number of files per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"delimiter","in":"query","required":false,"schema":{"type":"string","description":"Folder delimiter (enables folder grouping)","default":"/","title":"Delimiter"},"description":"Folder delimiter (enables folder grouping)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Files listed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceFilesResponseSchema"},"example":{"source_id":"company-s3","source_name":"Company Documents","prefix":"reports/","folders":[{"prefix":"reports/2024/","name":"2024","is_empty":false}],"files":[{"key":"reports/annual-summary.pdf","name":"annual-summary.pdf","size":102400,"last_modified":"2024-01-15T10:30:00Z","content_type":"application/pdf"}],"meta":{"page":1,"limit":100,"total_pages":1,"total_count":1}}}}},"400":{"description":"Unsupported source type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base or content source not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Source file listing is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/traces":{"get":{"tags":["Traces","Traces"],"summary":"List Traces","description":"Retrieve a paginated list of execution traces with optional filtering.\n\n**Traces provide observability into:**\n- Agent execution flows\n- Model invocations and token usage\n- Tool calls and their results\n- Errors and performance bottlenecks\n\n**Filtering Options:**\n- By run, session, user, or agent ID\n- By status (OK, ERROR)\n- By time range\n\n**Pagination:**\n- Use `page` (1-indexed) and `limit` parameters\n- Response includes pagination metadata (total_pages, total_count, etc.)\n\n**Response Format:**\nReturns summary information for each trace. Use GET `/traces/{trace_id}` for detailed hierarchy.","operationId":"get_traces","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run ID","title":"Run Id"},"description":"Filter by run ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status (OK, ERROR)","title":"Status"},"description":"Filter by status (OK, ERROR)"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of traces per page","default":20,"title":"Limit"},"description":"Number of traces per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"responses":{"200":{"description":"List of traces retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSummary_"},"example":{"data":[{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","total_spans":4,"error_count":0,"input":"What is the stock price of NVDA?","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"agent_stock","created_at":"2025-11-19T10:30:00+00:00"}],"meta":{"page":1,"limit":20,"total_pages":5,"total_count":95}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/filter-schema":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Filter Schema","description":"Returns the available filterable fields, their types, valid operators, and enum values.\n\nThe frontend uses this to dynamically build the filter bar UI:\n- Field dropdown populated from `fields[].key`\n- Operator dropdown changes per field type\n- Value input shows autocomplete for enum fields (e.g., status)\n- Logical operators (AND, OR) for combining clauses","operationId":"get_traces_filter_schema","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterSchemaResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/traces/{trace_id}":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace or Span Detail","description":"Retrieve detailed trace information with hierarchical span tree, or a specific span within the trace.\n\n**Without span_id parameter:**\nReturns the full trace with hierarchical span tree:\n- Trace metadata (ID, status, duration, context)\n- Hierarchical tree of all spans\n- Each span includes timing, status, and type-specific metadata\n\n**With span_id parameter:**\nReturns details for a specific span within the trace:\n- Span metadata (ID, name, type, timing)\n- Status and error information\n- Type-specific attributes (model, tokens, tool params, etc.)\n\n**Span Hierarchy (full trace):**\nThe `tree` field contains root spans, each with potential `children`.\nThis recursive structure represents the execution flow:\n```\nAgent.run (root)\n \u251c\u2500 LLM.invoke\n \u251c\u2500 Tool.execute\n \u2502 \u2514\u2500 LLM.invoke (nested)\n \u2514\u2500 LLM.invoke\n```\n\n**Span Types:**\n- `AGENT`: Agent execution with input/output\n- `LLM`: Model invocations with tokens and prompts\n- `TOOL`: Tool calls with parameters and results","operationId":"get_trace","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}},{"name":"span_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Span ID to retrieve specific span","title":"Span Id"},"description":"Optional: Span ID to retrieve specific span"},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Run ID to retrieve trace for","title":"Run Id"},"description":"Optional: Run ID to retrieve trace for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query trace from","title":"Db Id"},"description":"Database ID to query trace from"}],"responses":{"200":{"description":"Trace or span detail retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TraceDetail"},{"$ref":"#/components/schemas/TraceNode"}],"title":"Response Get Trace"},"examples":{"full_trace":{"summary":"Full trace with hierarchy (no span_id)","value":{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","end_time":"2025-11-19T10:30:01.200000+00:00","total_spans":4,"error_count":0,"input":"What is Tesla stock price?","output":"The current price of Tesla (TSLA) is $245.67.","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"stock_agent","created_at":"2025-11-19T10:30:00+00:00","tree":[{"id":"span1","name":"Stock_Price_Agent.run","type":"AGENT","duration":"1.2s","status":"OK","spans":[]}]}},"single_span":{"summary":"Single span detail (with span_id)","value":{"id":"span2","name":"gpt-4o-mini.invoke","type":"LLM","duration":"800ms","status":"OK","metadata":{"model":"gpt-4o-mini","input_tokens":120}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Trace or span not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/trace_session_stats":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Statistics by Session","description":"Retrieve aggregated trace statistics grouped by session ID with pagination.\n\n**Provides insights into:**\n- Total traces per session\n- First and last trace timestamps per session\n- Associated user and agent information\n\n**Filtering Options:**\n- By user ID\n- By agent ID\n\n**Use Cases:**\n- Monitor session-level activity\n- Track conversation flows\n- Identify high-activity sessions\n- Analyze user engagement patterns","operationId":"get_trace_stats","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of sessions per page","default":20,"title":"Limit"},"description":"Number of sessions per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"}],"responses":{"200":{"description":"Trace statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"},"example":{"data":[{"session_id":"37029bc6-1794-4ba8-a629-1efedc53dcad","user_id":"kaustubh@agno.com","agent_id":"hackernews-agent","total_traces":5,"first_trace_at":"2025-11-19T10:15:16+00:00","last_trace_at":"2025-11-19T10:21:30+00:00"}],"meta":{"page":1,"limit":20,"total_pages":3,"total_count":45}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/search":{"post":{"tags":["Traces","Traces"],"summary":"Search Traces with Advanced Filters","description":"Search traces using the FilterExpr DSL for complex, composable queries.\n\n**Group By Mode:**\n- `run` (default): Returns `PaginatedResponse[TraceDetail]` with full span trees\n- `session`: Returns `PaginatedResponse[TraceSessionStats]` with aggregated session stats\n\n**Supported Operators:**\n- Comparison: `EQ`, `NEQ`, `GT`, `GTE`, `LT`, `LTE`\n- Inclusion: `IN`\n- String matching: `CONTAINS` (case-insensitive substring), `STARTSWITH` (prefix)\n- Logical: `AND`, `OR`, `NOT`\n\n**Filterable Fields:**\ntrace_id, name, status, start_time, end_time, duration_ms, run_id, session_id, user_id, agent_id, team_id, workflow_id, created_at\n\n**Example Request Body (runs):**\n```json\n{\n \"filter\": {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n}\n```\n\n**Example Request Body (sessions):**\n```json\n{\n \"filter\": {\"op\": \"CONTAINS\", \"key\": \"agent_id\", \"value\": \"stock\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n}\n```","operationId":"search_traces","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PaginatedResponse_TraceDetail_"},{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"}],"title":"Response Search Traces"}}}},"400":{"description":"Invalid filter expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/all/migrate":{"post":{"tags":["Database"],"summary":"Migrate All Databases","description":"Migrate all database schemas to the given target version. If a target version is not provided, all databases will be migrated to the latest version.","operationId":"migrate_all_databases","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"All databases migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"All databases migrated successfully to version 3.0.0"}}}},"207":{"description":"Some database migrations failed","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"},"failed":{"type":"object","additionalProperties":{"type":"string"},"title":"Failed"}},"type":"object","required":["message","failed"],"title":"PartialMigrationResponse"},"example":{"message":"Migrated 2/3 databases to latest version","failed":{"archive-db":"Migration failed"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/{db_id}/migrate":{"post":{"tags":["Database"],"summary":"Migrate Database","description":"Migrate the given database schema to the given target version. If a target version is not provided, the database will be migrated to the latest version.","operationId":"migrate_database","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"Database migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"Database migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Database not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components":{"get":{"tags":["Components"],"summary":"List Components","description":"Retrieve a paginated list of components with optional filtering by type.","operationId":"list_components","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ComponentType"},{"type":"null"}],"description":"Filter by type: agent, team, workflow","title":"Component Type"},"description":"Filter by type: agent, team, workflow"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ComponentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Component","description":"Create a new component (agent, team, or workflow) with initial config.","operationId":"create_component","security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}":{"get":{"tags":["Components"],"summary":"Get Component","description":"Retrieve a component by ID.","operationId":"get_component","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Components"],"summary":"Update Component","description":"Partially update a component by ID.","operationId":"update_component","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentUpdate","description":"Component fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Component","description":"Soft-delete a component by ID. Component configs and links remain stored.","operationId":"delete_component","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs":{"get":{"tags":["Components"],"summary":"List Configs","description":"List all configs for a component.","operationId":"list_configs","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"include_config","in":"query","required":false,"schema":{"type":"boolean","description":"Include full config blob","default":true,"title":"Include Config"},"description":"Include full config blob"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComponentConfigResponse"},"title":"Response List Configs"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Config Version","description":"Create a new config version for a component.","operationId":"create_config","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigCreate","description":"Config data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}":{"patch":{"tags":["Components"],"summary":"Update Draft Config","description":"Update an existing draft config. Cannot update published configs.","operationId":"update_config","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigUpdate","description":"Config fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Components"],"summary":"Get Config Version","description":"Get a specific config version by number.","operationId":"get_config_version","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Config Version","description":"Delete a specific config version. Agno v2.7.4 rejects the current version. Synchronous SQLite and PostgreSQL storage allow deletion of a published non-current version.","operationId":"delete_config","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/current":{"get":{"tags":["Components"],"summary":"Get Current Config","description":"Get the current config version for a component.","operationId":"get_current_config","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}/set-current":{"post":{"tags":["Components"],"summary":"Set Current Config Version","description":"Set a published config version as current (for rollback).","operationId":"set_current_config","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/schedules":{"get":{"tags":["Schedules"],"summary":"List Schedules","operationId":"list_schedules_schedules_get","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"post":{"tags":["Schedules"],"summary":"Create Schedule","operationId":"create_schedule_schedules_post","security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule","operationId":"get_schedule_schedules__schedule_id__get","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"patch":{"tags":["Schedules"],"summary":"Update Schedule","operationId":"update_schedule_schedules__schedule_id__patch","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Schedules"],"summary":"Delete Schedule","operationId":"delete_schedule_schedules__schedule_id__delete","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/enable":{"post":{"tags":["Schedules"],"summary":"Enable Schedule","operationId":"enable_schedule_schedules__schedule_id__enable_post","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/disable":{"post":{"tags":["Schedules"],"summary":"Disable Schedule","operationId":"disable_schedule_schedules__schedule_id__disable_post","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/trigger":{"post":{"tags":["Schedules"],"summary":"Trigger Schedule","operationId":"trigger_schedule_schedules__schedule_id__trigger_post","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Schedule is disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler is not running or storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs":{"get":{"tags":["Schedules"],"summary":"List Schedule Runs","operationId":"list_schedule_runs_schedules__schedule_id__runs_get","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleRunResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs/{run_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule Run","operationId":"get_schedule_run_schedules__schedule_id__runs__run_id__get","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals":{"get":{"tags":["Approvals"],"summary":"List Approvals","operationId":"list_approvals_approvals_get","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","approved","rejected","expired","cancelled"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"source_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"}},{"name":"approval_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["required","audit"],"type":"string"},{"type":"null"}],"title":"Approval Type"}},{"name":"pause_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"schedule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"}},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ApprovalResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approvals could not be listed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/count":{"get":{"tags":["Approvals"],"summary":"Get Approval Count","operationId":"get_approval_count_approvals_count_get","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalCountResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval count could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/status":{"get":{"tags":["Approvals"],"summary":"Get Approval Status","operationId":"get_approval_status_approvals__approval_id__status_get","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalStatusResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval status could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}":{"get":{"tags":["Approvals"],"summary":"Get Approval","operationId":"get_approval_approvals__approval_id__get","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Approvals"],"summary":"Delete Approval","operationId":"delete_approval_approvals__approval_id__delete","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval is not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/resolve":{"post":{"tags":["Approvals"],"summary":"Resolve Approval","operationId":"resolve_approval_approvals__approval_id__resolve_post","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResolve"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Approval has already been resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts":{"post":{"tags":["Service Accounts"],"summary":"Create Service Account","description":"Mint a service account token. The plaintext token is returned exactly once.","operationId":"create_service_account_service_accounts_post","security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreateResponse"}}}},"400":{"description":"Requested scopes are invalid, or privileged scopes were not explicitly allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"An active service account with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"get":{"tags":["Service Accounts"],"summary":"List Service Accounts","description":"List service accounts. Returns metadata and display prefixes only - never hashes or plaintext.","operationId":"list_service_accounts_service_accounts_get","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Revoked"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ServiceAccountResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts/{service_account_id}":{"delete":{"tags":["Service Accounts"],"summary":"Revoke Service Account","description":"Revoke an existing service account.\n\nTakes effect immediately on this worker (the local verification cache entry is evicted) and within the cache TTL on other workers.","operationId":"revoke_service_account_service_accounts__service_account_id__delete","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"service_account_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Service account not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/registry":{"get":{"tags":["Registry"],"summary":"List Registry","description":"List all resources in the registry with optional filtering.","operationId":"list_registry","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RegistryResourceType"},{"type":"null"}],"description":"Filter by resource type","title":"Resource Type"},"description":"Filter by resource type"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (partial match)","title":"Name"},"description":"Filter by name (partial match)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_RegistryContentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}}},"components":{"schemas":{"A2ACard_APIKeySecurityScheme":{"description":"Defines a security scheme using an API key.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"in":{"$ref":"#/components/schemas/A2ACard_In"},"name":{"title":"Name","type":"string"},"type":{"const":"apiKey","default":"apiKey","title":"Type","type":"string"}},"required":["in","name"],"title":"APIKeySecurityScheme","type":"object"},"A2ACard_AgentCapabilities":{"description":"Defines optional capabilities supported by an agent.","properties":{"extensions":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentExtension"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"pushNotifications":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Pushnotifications"},"stateTransitionHistory":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Statetransitionhistory"},"streaming":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Streaming"}},"title":"AgentCapabilities","type":"object"},"A2ACard_AgentCardSignature":{"description":"AgentCardSignature represents a JWS signature of an AgentCard.\nThis follows the JSON format of an RFC 7515 JSON Web Signature (JWS).","properties":{"header":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Header"},"protected":{"title":"Protected","type":"string"},"signature":{"title":"Signature","type":"string"}},"required":["protected","signature"],"title":"AgentCardSignature","type":"object"},"A2ACard_AgentExtension":{"description":"A declaration of a protocol extension supported by an Agent.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"params":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Params"},"required":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Required"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"AgentExtension","type":"object"},"A2ACard_AgentInterface":{"description":"Declares a combination of a target URL and a transport protocol for interacting with the agent.\nThis allows agents to expose the same functionality over multiple transport mechanisms.","properties":{"transport":{"examples":["JSONRPC","GRPC","HTTP+JSON"],"title":"Transport","type":"string"},"url":{"examples":["https://api.example.com/a2a/v1","https://grpc.example.com/a2a","https://rest.example.com/v1"],"title":"Url","type":"string"}},"required":["transport","url"],"title":"AgentInterface","type":"object"},"A2ACard_AgentProvider":{"description":"Represents the service provider of an agent.","properties":{"organization":{"title":"Organization","type":"string"},"url":{"title":"Url","type":"string"}},"required":["organization","url"],"title":"AgentProvider","type":"object"},"A2ACard_AgentSkill":{"description":"Represents a distinct capability or function that an agent can perform.","properties":{"description":{"title":"Description","type":"string"},"examples":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"examples":[["I need a recipe for bread"]],"title":"Examples"},"id":{"title":"Id","type":"string"},"inputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Inputmodes"},"name":{"title":"Name","type":"string"},"outputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Outputmodes"},"security":{"anyOf":[{"items":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},"type":"array"},{"type":"null"}],"default":null,"examples":[[{"google":["oidc"]}]],"title":"Security"},"tags":{"examples":[["cooking","customer support","billing"]],"items":{"type":"string"},"title":"Tags","type":"array"}},"required":["description","id","name","tags"],"title":"AgentSkill","type":"object"},"A2ACard_AuthorizationCodeOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Authorization Code flow.","properties":{"authorizationUrl":{"title":"Authorizationurl","type":"string"},"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["authorizationUrl","scopes","tokenUrl"],"title":"AuthorizationCodeOAuthFlow","type":"object"},"A2ACard_ClientCredentialsOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Client Credentials flow.","properties":{"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["scopes","tokenUrl"],"title":"ClientCredentialsOAuthFlow","type":"object"},"A2ACard_HTTPAuthSecurityScheme":{"description":"Defines a security scheme using HTTP authentication.","properties":{"bearerFormat":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Bearerformat"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"scheme":{"title":"Scheme","type":"string"},"type":{"const":"http","default":"http","title":"Type","type":"string"}},"required":["scheme"],"title":"HTTPAuthSecurityScheme","type":"object"},"A2ACard_ImplicitOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Implicit flow.","properties":{"authorizationUrl":{"title":"Authorizationurl","type":"string"},"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"}},"required":["authorizationUrl","scopes"],"title":"ImplicitOAuthFlow","type":"object"},"A2ACard_In":{"description":"The location of the API key.","enum":["cookie","header","query"],"title":"In","type":"string"},"A2ACard_MutualTLSSecurityScheme":{"description":"Defines a security scheme using mTLS authentication.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"type":{"const":"mutualTLS","default":"mutualTLS","title":"Type","type":"string"}},"title":"MutualTLSSecurityScheme","type":"object"},"A2ACard_OAuth2SecurityScheme":{"description":"Defines a security scheme using OAuth 2.0.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"flows":{"$ref":"#/components/schemas/A2ACard_OAuthFlows"},"oauth2MetadataUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Oauth2Metadataurl"},"type":{"const":"oauth2","default":"oauth2","title":"Type","type":"string"}},"required":["flows"],"title":"OAuth2SecurityScheme","type":"object"},"A2ACard_OAuthFlows":{"description":"Defines the configuration for the supported OAuth 2.0 flows.","properties":{"authorizationCode":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_AuthorizationCodeOAuthFlow"},{"type":"null"}],"default":null},"clientCredentials":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_ClientCredentialsOAuthFlow"},{"type":"null"}],"default":null},"implicit":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_ImplicitOAuthFlow"},{"type":"null"}],"default":null},"password":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_PasswordOAuthFlow"},{"type":"null"}],"default":null}},"title":"OAuthFlows","type":"object"},"A2ACard_OpenIdConnectSecurityScheme":{"description":"Defines a security scheme using OpenID Connect.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"openIdConnectUrl":{"title":"Openidconnecturl","type":"string"},"type":{"const":"openIdConnect","default":"openIdConnect","title":"Type","type":"string"}},"required":["openIdConnectUrl"],"title":"OpenIdConnectSecurityScheme","type":"object"},"A2ACard_PasswordOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Resource Owner Password flow.","properties":{"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["scopes","tokenUrl"],"title":"PasswordOAuthFlow","type":"object"},"A2ACard_SecurityScheme":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_APIKeySecurityScheme"},{"$ref":"#/components/schemas/A2ACard_HTTPAuthSecurityScheme"},{"$ref":"#/components/schemas/A2ACard_OAuth2SecurityScheme"},{"$ref":"#/components/schemas/A2ACard_OpenIdConnectSecurityScheme"},{"$ref":"#/components/schemas/A2ACard_MutualTLSSecurityScheme"}],"title":"SecurityScheme"},"A2ARequest_DataPart":{"description":"Represents a structured data segment (e.g., JSON) within a message or artifact.","properties":{"data":{"additionalProperties":true,"title":"Data","type":"object"},"kind":{"const":"data","default":"data","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["data"],"title":"DataPart","type":"object"},"A2ARequest_FilePart":{"description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI.","properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_FileWithBytes"},{"$ref":"#/components/schemas/A2ARequest_FileWithUri"}],"title":"File"},"kind":{"const":"file","default":"file","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["file"],"title":"FilePart","type":"object"},"A2ARequest_FileWithBytes":{"description":"Represents a file with its content provided directly as a base64-encoded string.","properties":{"bytes":{"title":"Bytes","type":"string"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"}},"required":["bytes"],"title":"FileWithBytes","type":"object"},"A2ARequest_FileWithUri":{"description":"Represents a file with its content located at a specific URI.","properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"FileWithUri","type":"object"},"A2ARequest_Message":{"description":"Represents a single message in the conversation between a user and an agent.","properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"kind":{"const":"message","default":"message","title":"Kind","type":"string"},"messageId":{"title":"Messageid","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/A2ARequest_Part"},"title":"Parts","type":"array"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/A2ARequest_Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Taskid"},"agentId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Agent ID","description":"Target agent, team, or workflow ID for deprecated dynamic-dispatch endpoints."}},"required":["messageId","parts","role"],"title":"Message","type":"object"},"A2ARequest_MessageSendConfiguration":{"description":"Defines configuration options for a `message/send` or `message/stream` request.","properties":{"acceptedOutputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Acceptedoutputmodes"},"blocking":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Blocking"},"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"pushNotificationConfig":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationConfig"},{"type":"null"}],"default":null}},"title":"MessageSendConfiguration","type":"object"},"A2ARequest_MessageSendParams":{"description":"Defines the parameters for a request to send a message to an agent. This can be used\nto create a new task, continue an existing one, or restart a task.","properties":{"configuration":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_MessageSendConfiguration"},{"type":"null"}],"default":null},"message":{"$ref":"#/components/schemas/A2ARequest_Message"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["message"],"title":"MessageSendParams","type":"object"},"A2ARequest_Part":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_TextPart"},{"$ref":"#/components/schemas/A2ARequest_FilePart"},{"$ref":"#/components/schemas/A2ARequest_DataPart"}],"title":"Part"},"A2ARequest_PushNotificationAuthenticationInfo":{"description":"Defines authentication details for a push notification endpoint.","properties":{"credentials":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Credentials"},"schemes":{"items":{"type":"string"},"title":"Schemes","type":"array"}},"required":["schemes"],"title":"PushNotificationAuthenticationInfo","type":"object"},"A2ARequest_PushNotificationConfig":{"description":"Defines the configuration for setting up push notifications for task updates.","properties":{"authentication":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationAuthenticationInfo"},{"type":"null"}],"default":null},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Id"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Token"},"url":{"title":"Url","type":"string"}},"required":["url"],"title":"PushNotificationConfig","type":"object"},"A2ARequest_Role":{"description":"Identifies the sender of the message. `user` for the client, `agent` for the service.","enum":["agent","user"],"title":"Role","type":"string"},"A2ARequest_TaskIdParams":{"description":"Defines parameters containing a task ID, used for simple task operations.","properties":{"id":{"title":"Id","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"contextId":{"type":"string","title":"Context ID","description":"Agno session ID containing the task."}},"required":["id"],"title":"TaskIdParams","type":"object"},"A2ARequest_TaskQueryParams":{"description":"Defines parameters for querying a task, with an option to limit history length.","properties":{"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"id":{"title":"Id","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"contextId":{"type":"string","title":"Context ID","description":"Agno session ID containing the task."}},"required":["id","contextId"],"title":"TaskQueryParams","type":"object"},"A2ARequest_TextPart":{"description":"Represents a text segment within a message or artifact.","properties":{"kind":{"const":"text","default":"text","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"text":{"title":"Text","type":"string"}},"required":["text"],"title":"TextPart","type":"object"},"ActivityMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"activity","title":"Role","default":"activity"},"activityType":{"type":"string","title":"Activitytype"},"content":{"additionalProperties":true,"type":"object","title":"Content"}},"additionalProperties":true,"type":"object","required":["id","activityType","content"],"title":"ActivityMessage","description":"An activity progress message emitted between chat messages."},"AgentCard":{"description":"The AgentCard is a self-describing manifest for an agent. It provides essential\nmetadata including the agent's identity, capabilities, skills, supported\ncommunication methods, and security requirements.","properties":{"additionalInterfaces":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentInterface"},"type":"array"},{"type":"null"}],"default":null,"title":"Additionalinterfaces"},"capabilities":{"$ref":"#/components/schemas/A2ACard_AgentCapabilities"},"defaultInputModes":{"items":{"type":"string"},"title":"Defaultinputmodes","type":"array"},"defaultOutputModes":{"items":{"type":"string"},"title":"Defaultoutputmodes","type":"array"},"description":{"examples":["Agent that helps users with recipes and cooking."],"title":"Description","type":"string"},"documentationUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Documentationurl"},"iconUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Iconurl"},"name":{"examples":["Recipe Agent"],"title":"Name","type":"string"},"preferredTransport":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"JSONRPC","examples":["JSONRPC","GRPC","HTTP+JSON"],"title":"Preferredtransport"},"protocolVersion":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"0.3.0","title":"Protocolversion"},"provider":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_AgentProvider"},{"type":"null"}],"default":null},"security":{"anyOf":[{"items":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},"type":"array"},{"type":"null"}],"default":null,"examples":[[{"oauth":["read"]},{"api-key":[],"mtls":[]}]],"title":"Security"},"securitySchemes":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/A2ACard_SecurityScheme"},"type":"object"},{"type":"null"}],"default":null,"title":"Securityschemes"},"signatures":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentCardSignature"},"type":"array"},{"type":"null"}],"default":null,"title":"Signatures"},"skills":{"items":{"$ref":"#/components/schemas/A2ACard_AgentSkill"},"title":"Skills","type":"array"},"supportsAuthenticatedExtendedCard":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Supportsauthenticatedextendedcard"},"url":{"examples":["https://api.example.com/a2a/v1"],"title":"Url","type":"string"},"version":{"examples":["1.0.0"],"title":"Version","type":"string"}},"required":["capabilities","defaultInputModes","defaultOutputModes","description","name","skills","url","version"],"title":"AgentCard","type":"object"},"AgentResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"extra_messages":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Messages"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"AgentResponse"},"AgentSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_session_id":{"type":"string","title":"Agent Session Id","description":"Unique agent session identifier"},"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID used in this session"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"agent_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Data","description":"Agent-specific data"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["agent_session_id","session_id","session_name"],"title":"AgentSessionDetailSchema"},"AgentSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the agent"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the agent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the agent"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the agent"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","title":"AgentSummaryResponse"},"ApprovalCountResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"ApprovalCountResponse","description":"Response model for pending approval count."},"ApprovalResolve":{"properties":{"status":{"type":"string","pattern":"^(approved|rejected)$","title":"Status"},"resolved_by":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Resolved By"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"}},"type":"object","required":["status"],"title":"ApprovalResolve","description":"Request body for resolving (approve/reject) an approval."},"ApprovalResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"},"source_type":{"type":"string","title":"Source Type"},"approval_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Type"},"pause_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Args"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"},"schedule_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Run Id"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"},"run_status":{"anyOf":[{"$ref":"#/components/schemas/RunStatus"},{"type":"null"}]}},"type":"object","required":["id","run_id","session_id","status","source_type"],"title":"ApprovalResponse","description":"Response model for a single approval."},"ApprovalStatusResponse":{"properties":{"approval_id":{"type":"string","title":"Approval Id"},"status":{"type":"string","title":"Status"},"run_id":{"type":"string","title":"Run Id"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"}},"type":"object","required":["approval_id","status","run_id"],"title":"ApprovalStatusResponse","description":"Lightweight response model for polling approval status."},"Artifact":{"properties":{"artifactId":{"type":"string","title":"Artifactid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"}},"type":"object","required":["artifactId","parts"],"title":"Artifact","description":"Represents a file, data structure, or other resource generated by an agent during a task."},"AssistantMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"assistant","title":"Role","default":"assistant"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"},"toolCalls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},{"type":"null"}],"title":"Toolcalls"}},"additionalProperties":true,"type":"object","required":["id"],"title":"AssistantMessage","description":"An assistant message."},"AudioInputContent":{"properties":{"type":{"type":"string","const":"audio","title":"Type","default":"audio"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"AudioInputContent","description":"An audio input content fragment."},"BackgroundRunResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the background run."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the background run."},"status":{"type":"string","title":"Status","description":"Initial run status."}},"type":"object","required":["run_id","session_id","status"],"title":"BackgroundRunResponse"},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"BadRequestResponse","example":{"detail":"Bad request","error_code":"BAD_REQUEST"}},"BinaryInputContent":{"properties":{"type":{"type":"string","const":"binary","title":"Type","default":"binary"},"mimeType":{"type":"string","title":"Mimetype"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"additionalProperties":true,"type":"object","required":["mimeType"],"title":"BinaryInputContent","description":"A deprecated binary payload reference in a multimodal user message."},"Body_continue_agent_run":{"properties":{"tools":{"type":"string","title":"Tools","description":"JSON string of tool call results to continue the paused run","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Optional new user-message text to append to the run before resuming. Use for continuing a COMPLETED run with a follow-up, or adding context to a RUNNING/ERROR resume."},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","description":"When true, clone the run with a new ``run_id`` before resuming. The original is untouched; the clone becomes a sibling within the same session, with ``forked_from_run_id`` set.","default":false},"regenerate":{"type":"boolean","title":"Regenerate","description":"Sugar: regenerate the last response of this run. Auto-computes ``continue_from='last_user'`` to land just after the last user message. Pair with ``additional_instructions`` to steer the new output. By default the original response is hidden from history (replaced); pass ``replace_original=false`` to keep both the original and the regenerated response visible side by side.","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original","description":"Only valid with ``regenerate=true``. Controls history visibility of the original response; the original run is always retained in storage. Defaults to true: the original is marked REGENERATED and hidden from history so the new response replaces it. Pass false to keep both the original and regenerated responses visible."},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions","description":"Only valid with ``regenerate=true``: extra guidance appended as a user message before re-generation. Friendly alias for ``input``."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run continue in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false}},"type":"object","title":"Body_continue_agent_run"},"Body_continue_team_run":{"properties":{"requirements":{"type":"string","title":"Requirements","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input"},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","default":false},"regenerate":{"type":"boolean","title":"Regenerate","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original"},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"stream":{"type":"boolean","title":"Stream","default":true},"background":{"type":"boolean","title":"Background","default":false}},"type":"object","title":"Body_continue_team_run"},"Body_continue_workflow_run":{"properties":{"step_requirements":{"type":"string","title":"Step Requirements","description":"JSON string of step requirement objects with resolution status","default":""},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}},"type":"object","title":"Body_continue_workflow_run"},"Body_create_agent_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the agent"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Agent version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic agent construction"}},"type":"object","required":["message"],"title":"Body_create_agent_run"},"Body_create_team_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the team"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"monitor":{"type":"boolean","title":"Monitor","description":"Enable monitoring and logging for this run","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Team version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic team construction"}},"type":"object","required":["message"],"title":"Body_create_team_run"},"Body_create_workflow_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the workflow"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run workflow in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Workflow version to use for this run"},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow construction"}},"type":"object","required":["message"],"title":"Body_create_workflow_run"},"Body_rename_session":{"properties":{"session_name":{"type":"string","title":"Session Name","description":"New name for the session"}},"type":"object","required":["session_name"],"title":"Body_rename_session"},"Body_resume_agent_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_agent_run_stream"},"Body_resume_team_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_team_run_stream"},"Body_resume_workflow_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_workflow_run_stream"},"Body_update_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"Content metadata as JSON string"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"Reader ID. In Agno 2.7.4, local knowledge validates the value, but the content patch does not apply or persist the reader change."}},"type":"object","title":"Body_update_content"},"Body_upload_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated from file/URL if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description for context"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"URL to fetch content from (JSON array or single URL string)"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object for additional content properties"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File","description":"File to upload for processing"},"text_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Content","description":"Raw text content to process"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for content processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply during processing"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size to use for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap to use for processing"}},"type":"object","title":"Body_upload_content"},"Body_upload_remote_content":{"properties":{"config_id":{"type":"string","title":"Config Id","description":"ID of the configured remote content source (from /knowledge/config)"},"path":{"type":"string","title":"Path","description":"Path to file or folder in the remote source"},"source_params":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Params","description":"JSON object of per-request parameters forwarded to the source's factory. Used for provider-specific routing that shouldn't be baked into the config. Currently supported keys: GitHub accepts 'repo' ('owner/repo'), letting one configured GitHub source serve multiple repositories the credentials can access."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap for processing"}},"type":"object","required":["config_id","path"],"title":"Body_upload_remote_content"},"CancelTaskRequest":{"description":"Represents a JSON-RPC request for the `tasks/cancel` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"tasks/cancel","default":"tasks/cancel","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_TaskIdParams"}},"required":["id","params"],"title":"CancelTaskRequest","type":"object"},"CancelTaskSuccessResponse":{"description":"Represents a successful JSON-RPC response for the `tasks/cancel` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"default":null,"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"result":{"$ref":"#/components/schemas/Task"}},"required":["result"],"title":"CancelTaskSuccessResponse","type":"object"},"ChatConfig":{"properties":{"quick_prompts":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Quick Prompts"}},"type":"object","required":["quick_prompts"],"title":"ChatConfig","description":"Configuration for the Chat page of the AgentOS"},"ChunkerSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["key"],"title":"ChunkerSchema"},"ComponentConfigResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"version":{"type":"integer","title":"Version"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"type":"string","title":"Stage"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","version","stage","config","created_at"],"title":"ComponentConfigResponse"},"ComponentCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Display name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id","description":"Unique identifier for the entity. Auto-generated from name if not provided."},"component_type":{"$ref":"#/components/schemas/ComponentType","description":"Type of entity: agent, team, or workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config","description":"Optional configuration"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["name","component_type"],"title":"ComponentCreate"},"ComponentResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"component_type":{"$ref":"#/components/schemas/ComponentType"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","component_type","created_at"],"title":"ComponentResponse"},"ComponentType":{"type":"string","enum":["agent","team","workflow"],"title":"ComponentType"},"ComponentUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"component_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"}},"type":"object","title":"ComponentUpdate"},"ConfigCreate":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config","description":"The configuration data"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Optional version number"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links","description":"Optional links to child components"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["config"],"title":"ConfigCreate"},"ConfigResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the OS instance"},"available_models":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Models","description":"List of available models"},"os_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Database","description":"ID of the database used for the OS instance"},"databases":{"items":{"type":"string"},"type":"array","title":"Databases","description":"List of database IDs used by the components of the OS instance"},"chat":{"anyOf":[{"$ref":"#/components/schemas/ChatConfig"},{"type":"null"}],"description":"Chat configuration"},"manifest":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Manifest"},"type":"object"},{"type":"null"}],"title":"Manifest","description":"Per-entity UI metadata keyed by agent/team/workflow id"},"session":{"anyOf":[{"$ref":"#/components/schemas/SessionConfig"},{"type":"null"}],"description":"Session configuration"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/MetricsConfig"},{"type":"null"}],"description":"Metrics configuration"},"memory":{"anyOf":[{"$ref":"#/components/schemas/MemoryConfig"},{"type":"null"}],"description":"Memory configuration"},"learning":{"anyOf":[{"$ref":"#/components/schemas/LearningConfig"},{"type":"null"}],"description":"Learning configuration"},"knowledge":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeConfig"},{"type":"null"}],"description":"Knowledge configuration"},"evals":{"anyOf":[{"$ref":"#/components/schemas/EvalsConfig"},{"type":"null"}],"description":"Evaluations configuration"},"traces":{"anyOf":[{"$ref":"#/components/schemas/TracesConfig"},{"type":"null"}],"description":"Traces configuration"},"agents":{"items":{"$ref":"#/components/schemas/AgentSummaryResponse"},"type":"array","title":"Agents","description":"List of registered agents"},"teams":{"items":{"$ref":"#/components/schemas/TeamSummaryResponse"},"type":"array","title":"Teams","description":"List of registered teams"},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Workflows","description":"List of registered workflows"},"interfaces":{"items":{"$ref":"#/components/schemas/InterfaceResponse"},"type":"array","title":"Interfaces","description":"List of available interfaces"}},"type":"object","required":["os_id","databases","agents","teams","workflows","interfaces"],"title":"ConfigResponse","description":"Response schema for the general config endpoint"},"ConfigResponseSchema":{"properties":{"readers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ReaderSchema"},"type":"object"},{"type":"null"}],"title":"Readers","description":"Available content readers"},"readersForType":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Readersfortype","description":"Mapping of content types to reader IDs"},"chunkers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ChunkerSchema"},"type":"object"},{"type":"null"}],"title":"Chunkers","description":"Available chunking strategies"},"filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filters","description":"Available filter tags"},"vector_dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/VectorDbSchema"},"type":"array"},{"type":"null"}],"title":"Vector Dbs","description":"Configured vector databases"},"remote_content_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"type":"array"},{"type":"null"}],"title":"Remote Content Sources","description":"Configured remote content sources (S3, GCS, SharePoint, GitHub)"}},"type":"object","title":"ConfigResponseSchema"},"ConfigUpdate":{"properties":{"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","title":"ConfigUpdate"},"ConflictResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ConflictResponse","example":{"detail":"Resource conflict"}},"ContentResponseSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the content"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"MIME type of the content"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"},"linked_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linked To","description":"Knowledge instance name used for content isolation. Local Agno 2.7.4 responses return null because response conversion does not propagate the stored value."},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata as key-value pairs"},"access_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Access Count","description":"Stored access count. Local Agno 2.7.4 responses return null because response conversion does not propagate the stored value."},"status":{"anyOf":[{"$ref":"#/components/schemas/ContentStatus"},{"type":"null"}],"description":"Processing status of the content"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message","description":"Status message or error details"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when content was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when content was last updated"}},"type":"object","required":["id"],"title":"ContentResponseSchema"},"ContentStatus":{"type":"string","enum":["processing","completed","failed"],"title":"ContentStatus","description":"Enumeration of possible content processing statuses."},"ContentStatusResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Content ID"},"status":{"$ref":"#/components/schemas/ContentStatus","description":"Current processing status of the content"},"status_message":{"type":"string","title":"Status Message","description":"Status message or error details","default":""}},"type":"object","required":["status"],"title":"ContentStatusResponse","description":"Response model for content status endpoint."},"Context":{"properties":{"description":{"type":"string","title":"Description"},"value":{"type":"string","title":"Value"}},"additionalProperties":true,"type":"object","required":["description","value"],"title":"Context","description":"Additional context for the agent."},"CreateSessionRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session ID (generated if not provided)"},"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Initial session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"}},"type":"object","title":"CreateSessionRequest"},"DataPart":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data"},"kind":{"type":"string","const":"data","title":"Kind","default":"data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["data"],"title":"DataPart","description":"Represents a structured data segment (e.g., JSON) within a message or artifact."},"DatabaseConfig_EvalsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/EvalsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[EvalsDomainConfig]"},"DatabaseConfig_LearningDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/LearningDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[LearningDomainConfig]"},"DatabaseConfig_MemoryDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MemoryDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MemoryDomainConfig]"},"DatabaseConfig_MetricsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MetricsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MetricsDomainConfig]"},"DatabaseConfig_SessionDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/SessionDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[SessionDomainConfig]"},"DatabaseConfig_TracesDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/TracesDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[TracesDomainConfig]"},"DayAggregatedMetrics":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the metrics record"},"agent_runs_count":{"type":"integer","minimum":0.0,"title":"Agent Runs Count","description":"Total number of agent runs"},"agent_sessions_count":{"type":"integer","minimum":0.0,"title":"Agent Sessions Count","description":"Total number of agent sessions"},"team_runs_count":{"type":"integer","minimum":0.0,"title":"Team Runs Count","description":"Total number of team runs"},"team_sessions_count":{"type":"integer","minimum":0.0,"title":"Team Sessions Count","description":"Total number of team sessions"},"workflow_runs_count":{"type":"integer","minimum":0.0,"title":"Workflow Runs Count","description":"Total number of workflow runs"},"workflow_sessions_count":{"type":"integer","minimum":0.0,"title":"Workflow Sessions Count","description":"Total number of workflow sessions"},"users_count":{"type":"integer","minimum":0.0,"title":"Users Count","description":"Total number of unique users"},"token_metrics":{"additionalProperties":true,"type":"object","title":"Token Metrics","description":"Token usage metrics (input, output, cached, etc.)"},"model_metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Model Metrics","description":"Metrics grouped by model (model_id, provider, count)"},"date":{"type":"string","format":"date-time","title":"Date","description":"Date for which these metrics are aggregated"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when metrics were created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when metrics were last updated"}},"type":"object","required":["id","agent_runs_count","agent_sessions_count","team_runs_count","team_sessions_count","workflow_runs_count","workflow_sessions_count","users_count","token_metrics","model_metrics","date","created_at","updated_at"],"title":"DayAggregatedMetrics","description":"Aggregated metrics for a given day"},"DeleteEvalRunsRequest":{"properties":{"eval_run_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Eval Run Ids","description":"List of evaluation run IDs to delete"}},"type":"object","required":["eval_run_ids"],"title":"DeleteEvalRunsRequest"},"DeleteMemoriesRequest":{"properties":{"memory_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Memory Ids","description":"List of memory IDs to delete"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID to filter memories for deletion"}},"type":"object","required":["memory_ids"],"title":"DeleteMemoriesRequest"},"DeleteSessionRequest":{"properties":{"session_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Session Ids","description":"List of session IDs to delete"},"session_types":{"items":{"$ref":"#/components/schemas/SessionType"},"type":"array","minItems":1,"title":"Session Types","description":"Types of sessions to delete"}},"type":"object","required":["session_ids","session_types"],"title":"DeleteSessionRequest"},"DeveloperMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"developer","title":"Role","default":"developer"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"DeveloperMessage","description":"A developer message."},"DocumentInputContent":{"properties":{"type":{"type":"string","const":"document","title":"Type","default":"document"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"DocumentInputContent","description":"A document input content fragment."},"EvalFilterType":{"type":"string","enum":["agent","team","workflow"],"title":"EvalFilterType"},"EvalRunInput":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID to evaluate"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID to evaluate"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID to use for evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation to run (accuracy, performance, or reliability)"},"input":{"type":"string","minLength":1,"title":"Input","description":"Input text/query for the evaluation"},"additional_guidelines":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Guidelines","description":"Additional guidelines for the evaluation"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for the evaluation"},"num_iterations":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Num Iterations","description":"Number of times to run the evaluation","default":1},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for this evaluation run"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output","description":"Expected output for accuracy evaluation"},"criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criteria","description":"Evaluation criteria for agent-as-judge evaluation"},"scoring_strategy":{"anyOf":[{"type":"string","enum":["numeric","binary"]},{"type":"null"}],"title":"Scoring Strategy","description":"Scoring strategy: 'numeric' (1-10 with threshold) or 'binary' (PASS/FAIL)","default":"binary"},"threshold":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Threshold","description":"Score threshold for pass/fail (1-10), only used with numeric scoring","default":7},"warmup_runs":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Warmup Runs","description":"Number of warmup runs before measuring performance","default":0},"expected_tool_calls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expected Tool Calls","description":"Expected tool calls for reliability evaluation"},"allow_additional_tool_calls":{"type":"boolean","title":"Allow Additional Tool Calls","description":"When True, tool calls not in expected_tool_calls are allowed (subset matching)","default":false},"expected_tool_call_arguments":{"anyOf":[{"additionalProperties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Expected Tool Call Arguments","description":"Expected arguments for specific tool calls, e.g. {\"tool_name\": {\"arg_name\": \"expected_value\"}} or {\"tool_name\": [{\"arg_name\": \"val1\"}, {\"arg_name\": \"val2\"}]}"}},"type":"object","required":["eval_type","input"],"title":"EvalRunInput"},"EvalSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the evaluation run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that was evaluated"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID used in evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that was evaluated"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was evaluated"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the evaluation run"},"evaluated_component_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluated Component Name","description":"Name of the evaluated component"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation (accuracy, performance, or reliability)"},"eval_data":{"additionalProperties":true,"type":"object","title":"Eval Data","description":"Evaluation results and metrics"},"eval_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eval Input","description":"Input parameters used for the evaluation"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when evaluation was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when evaluation was last updated"}},"type":"object","required":["id","eval_type","eval_data"],"title":"EvalSchema"},"EvalType":{"type":"string","enum":["accuracy","agent_as_judge","performance","reliability"],"title":"EvalType"},"EvalsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_EvalsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"EvalsConfig","description":"Configuration for the Evals domain of the AgentOS"},"EvalsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"EvalsDomainConfig","description":"Configuration for the Evals domain of the AgentOS"},"FilePart":{"properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/FileWithBytes"},{"$ref":"#/components/schemas/FileWithUri"}],"title":"File"},"kind":{"type":"string","const":"file","title":"Kind","default":"file"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["file"],"title":"FilePart","description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI."},"FileWithBytes":{"properties":{"bytes":{"type":"string","title":"Bytes"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["bytes"],"title":"FileWithBytes","description":"Represents a file with its content provided directly as a base64-encoded string."},"FileWithUri":{"properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uri":{"type":"string","title":"Uri"}},"type":"object","required":["uri"],"title":"FileWithUri","description":"Represents a file with its content located at a specific URI."},"FilterFieldSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Column/field name used in filter expressions"},"label":{"type":"string","title":"Label","description":"Human-readable display label for the UI"},"type":{"type":"string","title":"Type","description":"Field data type: string, number, datetime, enum"},"operators":{"items":{"type":"string"},"type":"array","title":"Operators","description":"List of valid filter operators for this field"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values","description":"Allowed enum values (for autocomplete/dropdown)"}},"type":"object","required":["key","label","type","operators"],"title":"FilterFieldSchema","description":"Schema describing a single filterable field for the frontend filter bar."},"FilterSchemaResponse":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FilterFieldSchema"},"type":"array","title":"Fields","description":"Available filterable fields"},"logical_operators":{"items":{"type":"string"},"type":"array","title":"Logical Operators","description":"Logical operators for combining filter clauses","default":["AND","OR"]}},"type":"object","required":["fields"],"title":"FilterSchemaResponse","description":"Response for the filter schema endpoint. Tells the FE what fields, operators, and values are available."},"ForbiddenResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ForbiddenResponse","example":{"detail":"Insufficient permissions"}},"FunctionCall":{"properties":{"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"additionalProperties":true,"type":"object","required":["name","arguments"],"title":"FunctionCall","description":"Name and arguments of a function call."},"GetTaskRequest":{"description":"Represents a JSON-RPC request for the `tasks/get` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"tasks/get","default":"tasks/get","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_TaskQueryParams"}},"required":["id","params"],"title":"GetTaskRequest","type":"object"},"GetTaskSuccessResponse":{"description":"Represents a successful JSON-RPC response for the `tasks/get` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"default":null,"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"result":{"$ref":"#/components/schemas/Task"}},"required":["result"],"title":"GetTaskSuccessResponse","type":"object"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Health status of the service"},"instantiated_at":{"type":"string","format":"date-time","title":"Instantiated At","description":"Timestamp when service was instantiated"}},"type":"object","required":["status","instantiated_at"],"title":"HealthResponse","example":{"instantiated_at":"2025-06-10T12:00:00Z","status":"ok"}},"ImageInputContent":{"properties":{"type":{"type":"string","const":"image","title":"Type","default":"image"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"ImageInputContent","description":"An image input content fragment."},"InfoResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"agno_version":{"type":"string","title":"Agno Version","description":"Version of the agno framework"},"agent_count":{"type":"integer","title":"Agent Count","description":"Number of agents registered in the OS","default":0},"team_count":{"type":"integer","title":"Team Count","description":"Number of teams registered in the OS","default":0},"workflow_count":{"type":"integer","title":"Workflow Count","description":"Number of workflows registered in the OS","default":0},"mcp":{"$ref":"#/components/schemas/McpInfo","description":"MCP server availability for this OS instance"},"auth_mode":{"type":"string","enum":["none","security_key","jwt"],"title":"Auth Mode","description":"Authentication mode enforced on the REST/WS plane of this OS instance. MCP OAuth, when enabled, is described separately under `mcp.oauth`.","default":"none"}},"type":"object","required":["os_id","agno_version"],"title":"InfoResponse","description":"Response schema for the /info endpoint returning lightweight OS metadata."},"InputContentDataSource":{"properties":{"type":{"type":"string","const":"data","title":"Type","default":"data"},"value":{"type":"string","title":"Value"},"mimeType":{"type":"string","title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value","mimeType"],"title":"InputContentDataSource","description":"Inline base64-encoded source."},"InputContentUrlSource":{"properties":{"type":{"type":"string","const":"url","title":"Type","default":"url"},"value":{"type":"string","title":"Value"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value"],"title":"InputContentUrlSource","description":"URL-referenced source."},"InterfaceResponse":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the interface"},"version":{"type":"string","title":"Version","description":"Version of the interface"},"route":{"type":"string","title":"Route","description":"API route path"}},"type":"object","required":["type","version","route"],"title":"InterfaceResponse"},"InternalServerErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"InternalServerErrorResponse","example":{"detail":"Internal server error","error_code":"INTERNAL_SERVER_ERROR"}},"KnowledgeConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeDatabaseConfig"},"type":"array"},{"type":"null"}],"title":"Dbs"},"knowledge_instances":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeInstanceConfig"},"type":"array"},{"type":"null"}],"title":"Knowledge Instances"}},"type":"object","title":"KnowledgeConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeDatabaseConfig":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeDomainConfig"},{"type":"null"}]},"tables":{"items":{"type":"string"},"type":"array","title":"Tables","default":[]}},"type":"object","required":["db_id"],"title":"KnowledgeDatabaseConfig","description":"Configuration for a knowledge database with its tables"},"KnowledgeDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"KnowledgeDomainConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeInstanceConfig":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"db_id":{"type":"string","title":"Db Id"},"table":{"type":"string","title":"Table"}},"type":"object","required":["id","name","db_id","table"],"title":"KnowledgeInstanceConfig","description":"Configuration for a single knowledge instance"},"LearningConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_LearningDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"LearningConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningCreate":{"properties":{"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"content":{"additionalProperties":true,"type":"object","title":"Content","description":"The learning content payload"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID. When the request is authenticated, must match the JWT subject or be omitted/null (which creates a global / non-user-scoped record)."},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"}},"type":"object","required":["learning_type","content"],"title":"LearningCreate","description":"Request body for creating a learning record."},"LearningDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"LearningDomainConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningResponse":{"properties":{"learning_id":{"type":"string","title":"Learning Id","description":"Unique identifier for the learning record"},"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID (for entity-specific learnings)"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type (e.g. 'person', 'company')"},"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"The learning content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Creation timestamp (Unix epoch seconds)"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp (Unix epoch seconds)"}},"type":"object","required":["learning_id","learning_type"],"title":"LearningResponse","description":"A single learning record as returned by the API."},"LearningUpdate":{"properties":{"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Replacement content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Replacement metadata"}},"type":"object","title":"LearningUpdate","description":"Request body for updating a learning record. Identity fields are immutable."},"LearningUserStats":{"properties":{"user_id":{"type":"string","title":"User Id","description":"The user ID"},"last_learning_updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Learning Updated At","description":"Most recent learning update for this user (Unix epoch seconds)"}},"type":"object","required":["user_id"],"title":"LearningUserStats","description":"A user that owns learning records, with their most recent activity.\n\nUsed as a lightweight index for the per-user view: list users here, then drill into a\nsingle user's records via ``GET /learnings?user_id=...``. No per-user count is returned\n-- the user-scoped stores (``user_profile``, ``user_memory``) keep a single record per\nuser, so a record count would always be 1; the actual memory count lives in that\nrecord's ``content``."},"Manifest":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"},"quick_prompts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quick Prompts"}},"type":"object","title":"Manifest","description":"OS-level UI metadata for an agent/team/workflow.\n\nFields here are AgentOS UI metadata only. ``description`` is unrelated to\n``Agent.description`` / ``Team.description`` / ``Workflow.description``,\nwhich are sent to the model.\n\nRendering surfaces:\n- ``description``, ``labels``: home/landing card\n- ``quick_prompts``: chat page"},"McpInfo":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the MCP server is enabled on this OS instance","default":false},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Path where the MCP server is mounted, null when disabled"},"oauth":{"anyOf":[{"$ref":"#/components/schemas/McpOAuthInfo"},{"type":"null"}],"description":"OAuth discovery details when the MCP endpoint is OAuth-protected, null otherwise"}},"type":"object","title":"McpInfo","description":"MCP server availability for the /info endpoint."},"McpOAuthInfo":{"properties":{"authorization_servers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorization Servers","description":"Issuer URL(s) of the authorization server(s) protecting the MCP endpoint"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource","description":"RFC 9728 resource URL advertised for the MCP endpoint"}},"type":"object","title":"McpOAuthInfo","description":"OAuth discovery details for an MCP endpoint protected by ``AgentOS(mcp_auth=...)``."},"MemoryConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MemoryDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MemoryConfig","description":"Configuration for the Memory domain of the AgentOS"},"MemoryDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MemoryDomainConfig","description":"Configuration for the Memory domain of the AgentOS"},"Message":{"properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"kind":{"type":"string","const":"message","title":"Kind","default":"message"},"messageId":{"type":"string","title":"Messageid"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taskid"}},"type":"object","required":["messageId","parts","role"],"title":"Message","description":"Represents a single message in the conversation between a user and an agent."},"Meta":{"properties":{"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of results per page","default":20},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number","default":1}},"type":"object","title":"Meta","description":"Inline metadata schema for pagination."},"MetricsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MetricsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MetricsConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MetricsDomainConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsResponse":{"properties":{"metrics":{"items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"type":"array","title":"Metrics","description":"List of daily aggregated metrics"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp of the most recent metrics update"}},"type":"object","required":["metrics"],"title":"MetricsResponse"},"Model":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"Model"},"ModelResponse":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the model"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"ModelResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"NotFoundResponse","example":{"detail":"Not found","error_code":"NOT_FOUND"}},"NotImplementedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"NotImplementedResponse","example":{"detail":"Operation not supported for this resource type"}},"OptimizeMemoriesRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID to optimize memories for"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model in `provider:model_id` format. Current examples include `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, and `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`."},"apply":{"type":"boolean","title":"Apply","description":"If True, apply optimization changes to database. If False, return preview only without saving.","default":true}},"type":"object","required":["user_id"],"title":"OptimizeMemoriesRequest","description":"Schema for memory optimization request"},"OptimizeMemoriesResponse":{"properties":{"memories":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Memories","description":"List of optimized memory objects"},"memories_before":{"type":"integer","minimum":0.0,"title":"Memories Before","description":"Number of memories before optimization"},"memories_after":{"type":"integer","minimum":0.0,"title":"Memories After","description":"Number of memories after optimization"},"tokens_before":{"type":"integer","minimum":0.0,"title":"Tokens Before","description":"Token count before optimization"},"tokens_after":{"type":"integer","minimum":0.0,"title":"Tokens After","description":"Token count after optimization"},"tokens_saved":{"type":"integer","minimum":0.0,"title":"Tokens Saved","description":"Number of tokens saved through optimization"},"reduction_percentage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Reduction Percentage","description":"Percentage of token reduction achieved"}},"type":"object","required":["memories","memories_before","memories_after","tokens_before","tokens_after","tokens_saved","reduction_percentage"],"title":"OptimizeMemoriesResponse","description":"Schema for memory optimization response"},"PaginatedResponse_ApprovalResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ApprovalResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ApprovalResponse]"},"PaginatedResponse_ComponentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ComponentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ComponentResponse]"},"PaginatedResponse_ContentResponseSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentResponseSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ContentResponseSchema]"},"PaginatedResponse_EvalSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EvalSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[EvalSchema]"},"PaginatedResponse_LearningResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningResponse]"},"PaginatedResponse_LearningUserStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningUserStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningUserStats]"},"PaginatedResponse_RegistryContentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RegistryContentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[RegistryContentResponse]"},"PaginatedResponse_ScheduleResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleResponse]"},"PaginatedResponse_ScheduleRunResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleRunResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleRunResponse]"},"PaginatedResponse_ServiceAccountResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ServiceAccountResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ServiceAccountResponse]"},"PaginatedResponse_SessionSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SessionSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[SessionSchema]"},"PaginatedResponse_TraceDetail_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceDetail"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceDetail]"},"PaginatedResponse_TraceSessionStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSessionStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSessionStats]"},"PaginatedResponse_TraceSummary_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSummary"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSummary]"},"PaginatedResponse_UserMemorySchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserMemorySchema]"},"PaginatedResponse_UserStatsSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserStatsSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserStatsSchema]"},"PaginatedResponse_VectorSearchResult_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VectorSearchResult"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[VectorSearchResult]"},"PaginationInfo":{"properties":{"page":{"type":"integer","minimum":0.0,"title":"Page","description":"Page value returned by the endpoint. AgentOS paginated routes use 1-based page numbers. Some Agno 2.7.4 routes accept and echo 0 even though their pagination implementation is 1-based.","default":0},"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of items per page","default":20},"total_pages":{"type":"integer","minimum":0.0,"title":"Total Pages","description":"Total number of pages","default":0},"total_count":{"type":"integer","minimum":0.0,"title":"Total Count","description":"Total count of items","default":0},"search_time_ms":{"type":"number","minimum":0.0,"title":"Search Time Ms","description":"Search execution time in milliseconds","default":0}},"type":"object","title":"PaginationInfo"},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/DataPart"}],"title":"Part"},"ReaderSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the reader"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the reader"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the reader's capabilities"},"chunkers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chunkers","description":"List of supported chunking strategies"}},"type":"object","required":["id"],"title":"ReaderSchema"},"ReasoningMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"reasoning","title":"Role","default":"reasoning"},"content":{"type":"string","title":"Content"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"ReasoningMessage","description":"A reasoning message containing the agent's internal reasoning process."},"RegistryContentResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/RegistryResourceType"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name","type"],"title":"RegistryContentResponse"},"RegistryResourceType":{"type":"string","enum":["tool","model","db","vector_db","schema","function","agent","team","knowledge","memory_manager","session_summary_manager"],"title":"RegistryResourceType","description":"Types of resources that can be stored in a registry."},"RemoteContentSourceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content source"},"name":{"type":"string","title":"Name","description":"Display name for the content source"},"type":{"type":"string","title":"Type","description":"Type of content source (s3, gcs, sharepoint, github, azureblob)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Default path prefix for this source"}},"type":"object","required":["id","name","type"],"title":"RemoteContentSourceSchema","description":"Schema for remote content source configuration."},"ResumeEntry":{"properties":{"interruptId":{"type":"string","title":"Interruptid"},"status":{"type":"string","enum":["resolved","cancelled"],"title":"Status"},"payload":{"anyOf":[{},{"type":"null"}],"title":"Payload"}},"additionalProperties":true,"type":"object","required":["interruptId","status"],"title":"ResumeEntry","description":"A per-interrupt response in the resume array of a RunAgentInput."},"Role":{"type":"string","enum":["agent","user"],"title":"Role","description":"Identifies the sender of the message. `user` for the client, `agent` for the service."},"RunAgentInput":{"properties":{"threadId":{"type":"string","title":"Threadid"},"runId":{"type":"string","title":"Runid"},"parentRunId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentrunid"},"state":{"title":"State"},"messages":{"items":{"oneOf":[{"$ref":"#/components/schemas/DeveloperMessage"},{"$ref":"#/components/schemas/SystemMessage"},{"$ref":"#/components/schemas/AssistantMessage"},{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/ToolMessage"},{"$ref":"#/components/schemas/ActivityMessage"},{"$ref":"#/components/schemas/ReasoningMessage"}],"discriminator":{"propertyName":"role","mapping":{"activity":"#/components/schemas/ActivityMessage","assistant":"#/components/schemas/AssistantMessage","developer":"#/components/schemas/DeveloperMessage","reasoning":"#/components/schemas/ReasoningMessage","system":"#/components/schemas/SystemMessage","tool":"#/components/schemas/ToolMessage","user":"#/components/schemas/UserMessage"}}},"type":"array","title":"Messages"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","title":"Tools"},"context":{"items":{"$ref":"#/components/schemas/Context"},"type":"array","title":"Context"},"forwardedProps":{"title":"Forwardedprops"},"resume":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResumeEntry"},"type":"array"},{"type":"null"}],"title":"Resume"}},"additionalProperties":true,"type":"object","required":["threadId","runId","state","messages","tools","context","forwardedProps"],"title":"RunAgentInput","description":"Input for running an agent."},"RunCheckpointEntry":{"properties":{"checkpoint_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Checkpoint Id","description":"One-based display ID, or null when the requested boundary is not on the checkpoint timeline."},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Run that contains the checkpoint."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session that contains the run."},"message_index":{"type":"integer","minimum":0,"title":"Message Index","description":"Message boundary represented by the checkpoint."},"continue_from":{"type":"integer","minimum":0,"title":"Continue From","description":"Value to send as continue_from when continuing the run."},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Checkpoint status or current run status."},"reason":{"type":"string","title":"Reason","description":"Why this boundary was returned."},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Unix timestamp for the checkpoint or run."},"message_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Id","description":"Message ID at the checkpoint boundary."},"message_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Role","description":"Role of the message at the checkpoint boundary."},"message_preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Preview","description":"Truncated message content at the checkpoint boundary."},"is_latest":{"type":"boolean","title":"Is Latest","description":"Whether this is the final message boundary in the stored run."}},"type":"object","required":["checkpoint_id","run_id","session_id","message_index","continue_from","status","reason","created_at","message_id","message_role","message_preview","is_latest"],"title":"RunCheckpointEntry","description":"A continuation boundary derived from a stored run transcript."},"RunCheckpointListResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Run whose checkpoints were listed."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the run."},"checkpoints":{"type":"array","items":{"$ref":"#/components/schemas/RunCheckpointEntry"},"title":"Checkpoints","description":"Checkpoint boundaries in message order."}},"type":"object","required":["run_id","session_id","checkpoints"],"title":"RunCheckpointListResponse"},"RunCheckpointSnapshotResponse":{"properties":{"checkpoint":{"$ref":"#/components/schemas/RunCheckpointEntry"},"snapshot":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"}],"title":"Snapshot","description":"Agent or team run serialized at the requested message boundary."}},"type":"object","required":["checkpoint","snapshot"],"title":"RunCheckpointSnapshotResponse"},"RunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that executed this run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"RunSchema"},"RunStatus":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","PAUSED","CANCELLED","ERROR","REGENERATED"],"title":"RunStatus","description":"State of the main run response"},"ScheduleCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"cron_expr":{"type":"string","maxLength":128,"title":"Cron Expr"},"endpoint":{"type":"string","maxLength":512,"title":"Endpoint"},"method":{"type":"string","maxLength":10,"title":"Method","default":"POST"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"type":"string","maxLength":64,"title":"Timezone","default":"UTC"},"timeout_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Timeout Seconds","default":3600},"max_retries":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Max Retries","default":0},"retry_delay_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Retry Delay Seconds","default":60}},"type":"object","required":["name","cron_expr","endpoint"],"title":"ScheduleCreate"},"ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"cron_expr":{"type":"string","title":"Cron Expr"},"timezone":{"type":"string","title":"Timezone"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"max_retries":{"type":"integer","title":"Max Retries"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","method","endpoint","cron_expr","timezone","timeout_seconds","max_retries","retry_delay_seconds","enabled"],"title":"ScheduleResponse"},"ScheduleRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"schedule_id":{"type":"string","title":"Schedule Id"},"attempt":{"type":"integer","title":"Attempt"},"triggered_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triggered At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"status":{"type":"string","title":"Status"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","schedule_id","attempt","status"],"title":"ScheduleRunResponse"},"ScheduleStateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","enabled"],"title":"ScheduleStateResponse","description":"Trimmed response for state-changing operations (enable/disable)."},"ScheduleUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"cron_expr":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Cron Expr"},"endpoint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Endpoint"},"method":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Method"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Timezone"},"timeout_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":1.0},{"type":"null"}],"title":"Timeout Seconds"},"max_retries":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Max Retries"},"retry_delay_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":1.0},{"type":"null"}],"title":"Retry Delay Seconds"}},"type":"object","title":"ScheduleUpdate"},"ScopeItem":{"properties":{"scope":{"type":"string","title":"Scope","description":"Scope string, e.g. 'agents:*:run'"},"effect":{"type":"string","enum":["allow","deny"],"title":"Effect","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["scope"],"title":"ScopeItem","description":"Write shape for one scope grant \u2014 the canonical RBAC payload for every scope-bearing API.\n\nEndpoints that take scopes accept these objects only (a bare string is a validation\nerror). ``effect`` is constrained here so every consumer rejects typos at the model\nlayer; whether ``deny`` is *semantically* legal stays per-endpoint (roles support\ndeny rules, service-account tokens are pure grants and reject it)."},"ScopeSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Scope id (always null here; kept for shape parity with the cloud RBAC API, which addresses scopes individually)"},"raw":{"type":"string","title":"Raw","description":"Original scope string, e.g. 'agents:*:run'"},"namespace":{"type":"string","title":"Namespace","description":"Resource namespace, e.g. 'agents'"},"sub_namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Namespace","description":"Specific resource id or wildcard '*'"},"permission":{"type":"string","title":"Permission","description":"Action, e.g. 'read' / 'run' / 'write'"},"value":{"type":"string","title":"Value","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["raw","namespace","permission"],"title":"ScopeSchema","description":"Read shape for one scope \u2014 the parsed RBAC payload shared by every scope-bearing API.\n\nMirrors the cloud RBAC scope shape ({raw, namespace, sub_namespace, permission, value})\nso a frontend renders scopes from any AgentOS API with one integration."},"SendMessageRequest":{"description":"Represents a JSON-RPC request for the `message/send` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/send","default":"message/send","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendMessageRequest","type":"object"},"SendMessageSuccessResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id"},"jsonrpc":{"type":"string","const":"2.0","title":"Jsonrpc","default":"2.0"},"result":{"anyOf":[{"$ref":"#/components/schemas/Task"},{"$ref":"#/components/schemas/Message"}],"title":"Result"}},"type":"object","required":["result"],"title":"SendMessageSuccessResponse","description":"Represents a successful JSON-RPC response for the `message/send` method."},"SendStreamingMessageRequest":{"description":"Represents a JSON-RPC request for the `message/stream` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/stream","default":"message/stream","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendStreamingMessageRequest","type":"object"},"ServiceAccountCreate":{"properties":{"name":{"type":"string","maxLength":63,"title":"Name","description":"Machine identity name (lowercase slug), e.g. 'claude-code' or 'github-actions'"},"scopes":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScopeItem"},"type":"array"},{"type":"null"}],"title":"Scopes","description":"Scopes granted to the token, as {scope, effect} objects (the shared RBAC write shape; token scopes are grants, so only effect='allow' is accepted). Defaults to run and read scopes: agents:run, teams:run, workflows:run, sessions:read"},"expires_in_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Expires In Days","description":"Days until the token expires (default: 90)","default":90},"never_expires":{"type":"boolean","title":"Never Expires","description":"Mint a non-expiring token. Must be set explicitly; overrides expires_in_days.","default":false},"allow_privileged_scopes":{"type":"boolean","title":"Allow Privileged Scopes","description":"Required to grant privileged scopes: any write or delete action, the admin scope, or any service_accounts scope. Privileged tokens must be deliberate, never accidental.","default":false}},"type":"object","required":["name"],"title":"ServiceAccountCreate"},"ServiceAccountCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"token":{"type":"string","title":"Token","description":"The plaintext token. Shown exactly once - store it securely now."}},"type":"object","required":["id","name","principal","token_prefix","created_at","token"],"title":"ServiceAccountCreateResponse","description":"Returned once, at creation. The token is never retrievable again."},"ServiceAccountResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","name","principal","token_prefix","created_at"],"title":"ServiceAccountResponse","description":"Service account metadata. Never includes the token hash or plaintext."},"ServiceUnavailableResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ServiceUnavailableResponse","example":{"detail":"Feature not supported by the configured service"}},"SessionConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_SessionDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"SessionConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"SessionDomainConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier for the session"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state data of the session"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when session was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when session was last updated"},"session_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type","description":"Type of session: agent, team, or workflow"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["session_id","session_name"],"title":"SessionSchema"},"SessionType":{"type":"string","enum":["agent","team","workflow"],"title":"SessionType"},"SlackChallengeResponse":{"properties":{"challenge":{"type":"string","title":"Challenge","description":"Challenge string to echo back to Slack"}},"type":"object","required":["challenge"],"title":"SlackChallengeResponse"},"SlackEventResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"}},"type":"object","title":"SlackEventResponse"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"SourceFileSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Full path/key of the file"},"name":{"type":"string","title":"Name","description":"Display name (filename)"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"File size in bytes"},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified","description":"ISO 8601 timestamp of last modification"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"MIME type of the file"}},"type":"object","required":["key","name"],"title":"SourceFileSchema","description":"Schema for a file in a content source."},"SourceFilesResponseSchema":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"ID of the content source"},"source_name":{"type":"string","title":"Source Name","description":"Name of the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Prefix filter that was applied"},"folders":{"items":{"$ref":"#/components/schemas/SourceFolderSchema"},"type":"array","title":"Folders","description":"Subfolders at this level"},"files":{"items":{"$ref":"#/components/schemas/SourceFileSchema"},"type":"array","title":"Files","description":"List of files at this level"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["source_id","source_name","meta"],"title":"SourceFilesResponseSchema","description":"Response schema for listing files in a content source."},"SourceFolderSchema":{"properties":{"prefix":{"type":"string","title":"Prefix","description":"Full prefix to use for navigating into this folder"},"name":{"type":"string","title":"Name","description":"Display name of the folder"},"is_empty":{"type":"boolean","title":"Is Empty","description":"Whether the folder contains any files","default":false}},"type":"object","required":["prefix","name"],"title":"SourceFolderSchema","description":"Schema for a folder in a content source."},"SystemMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"system","title":"Role","default":"system"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"SystemMessage","description":"A system message."},"Task":{"properties":{"artifacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Artifact"},"type":"array"},{"type":"null"}],"title":"Artifacts"},"contextId":{"type":"string","title":"Contextid"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"History"},"id":{"type":"string","title":"Id"},"kind":{"type":"string","const":"task","title":"Kind","default":"task"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"status":{"$ref":"#/components/schemas/TaskStatus"}},"type":"object","required":["contextId","id","status"],"title":"Task","description":"Represents a single, stateful operation or conversation between a client and an agent."},"TaskState":{"type":"string","enum":["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"],"title":"TaskState","description":"Defines the lifecycle states of a Task."},"TaskStatus":{"properties":{"message":{"anyOf":[{"$ref":"#/components/schemas/Message"},{"type":"null"}]},"state":{"$ref":"#/components/schemas/TaskState"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp","examples":["2023-10-27T10:00:00Z"]}},"type":"object","required":["state"],"title":"TaskStatus","description":"Represents the status of a task at a specific point in time."},"TeamResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"members":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"$ref":"#/components/schemas/TeamResponse"}]},"type":"array"},{"type":"null"}],"title":"Members"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"TeamResponse"},"TeamRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the team run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that executed this run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the team run"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this team run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this team run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this team run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this team run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"TeamRunSchema"},"TeamSessionDetailSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID used in this session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of team interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"team_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Team Data","description":"Team-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"}},"type":"object","required":["session_id","session_name"],"title":"TeamSessionDetailSchema"},"TeamSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the team"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the team"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the team"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Team execution mode (coordinate, route, broadcast, tasks)"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the team leader"}},"type":"object","title":"TeamSummaryResponse"},"TelegramStatusResponse":{"properties":{"status":{"type":"string","title":"Status","default":"available"}},"type":"object","title":"TelegramStatusResponse"},"TelegramWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status"}},"type":"object","required":["status"],"title":"TelegramWebhookResponse"},"TextInputContent":{"properties":{"type":{"type":"string","const":"text","title":"Type","default":"text"},"text":{"type":"string","title":"Text"}},"additionalProperties":true,"type":"object","required":["text"],"title":"TextInputContent","description":"A text fragment in a multimodal user message."},"TextPart":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"TextPart","description":"Represents a text segment within a message or artifact."},"Tool":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{},{"type":"null"}],"title":"Parameters"}},"additionalProperties":true,"type":"object","required":["name","description"],"title":"Tool","description":"A tool definition."},"ToolCall":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/FunctionCall"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","function"],"title":"ToolCall","description":"A tool call, modelled after OpenAI tool calls."},"ToolMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"tool","title":"Role","default":"tool"},"content":{"type":"string","title":"Content"},"toolCallId":{"type":"string","title":"Toolcallid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content","toolCallId"],"title":"ToolMessage","description":"A tool result message."},"TraceDetail":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent/workflow"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the agent/workflow"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"},"tree":{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array","title":"Tree","description":"Hierarchical tree of spans (root nodes)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at","tree"],"title":"TraceDetail","description":"Detailed trace information with hierarchical span tree"},"TraceNode":{"properties":{"id":{"type":"string","title":"Id","description":"Span ID"},"name":{"type":"string","title":"Name","description":"Span name (e.g., 'agent.run', 'llm.invoke')"},"type":{"type":"string","title":"Type","description":"Span kind (AGENT, TEAM, WORKFLOW, LLM, TOOL)"},"duration":{"type":"string","title":"Duration","description":"Human-readable duration (e.g., '123ms', '1.5s')"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"End time (Pydantic auto-serializes to ISO 8601)"},"status":{"type":"string","title":"Status","description":"Status code (OK, ERROR)"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the span"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the span"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"spans":{"anyOf":[{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array"},{"type":"null"}],"title":"Spans","description":"Child spans in the trace hierarchy"},"step_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Type","description":"Workflow step type (Step, Condition, function, Agent, Team)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional span attributes and data"},"extra_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Data","description":"Flexible field for custom attributes and additional data"}},"type":"object","required":["id","name","type","duration","start_time","end_time","status"],"title":"TraceNode","description":"Recursive node structure for rendering trace hierarchy in the frontend"},"TraceSearchGroupBy":{"type":"string","enum":["run","session"],"title":"TraceSearchGroupBy","description":"Grouping options for trace search results."},"TraceSearchRequest":{"properties":{"filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter","description":"FilterExpr DSL as JSON dict. Supports operators: EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH, AND, OR, NOT."},"group_by":{"$ref":"#/components/schemas/TraceSearchGroupBy","description":"Grouping mode: 'run' returns individual TraceDetail, 'session' returns aggregated TraceSessionStats.","default":"run"},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number (1-indexed)","default":1},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"Number of traces per page (max 100)","default":20}},"type":"object","title":"TraceSearchRequest","description":"Request body for POST /traces/search with advanced filtering.\n\nThe filter field accepts a FilterExpr DSL dict supporting composable queries\nwith AND/OR/NOT logic and operators like EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH.\n\nExample for run grouping (default):\n {\n \"filter\": {\n \"op\": \"AND\",\n \"conditions\": [\n {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n {\"op\": \"CONTAINS\", \"key\": \"user_id\", \"value\": \"admin\"}\n ]\n },\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n }\n\nExample for session grouping:\n {\n \"filter\": {\"op\": \"EQ\", \"key\": \"agent_id\", \"value\": \"my-agent\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n }"},"TraceSessionStats":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID(s) used in the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID associated with the session"},"total_traces":{"type":"integer","title":"Total Traces","description":"Total number of traces in this session"},"first_trace_at":{"type":"string","format":"date-time","title":"First Trace At","description":"Time of first trace (Pydantic auto-serializes to ISO 8601)"},"last_trace_at":{"type":"string","format":"date-time","title":"Last Trace At","description":"Time of last trace (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["session_id","total_traces","first_trace_at","last_trace_at"],"title":"TraceSessionStats","description":"Aggregated trace statistics grouped by session"},"TraceSummary":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR, UNSET)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at"],"title":"TraceSummary","description":"Summary information for trace list view"},"TracesConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_TracesDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"TracesConfig","description":"Configuration for the Traces domain of the AgentOS"},"TracesDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"TracesDomainConfig","description":"Configuration for the Traces domain of the AgentOS"},"UnauthenticatedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"UnauthenticatedResponse","example":{"detail":"Unauthenticated access","error_code":"UNAUTHENTICATED"}},"UpdateEvalRunRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"New name for the evaluation run"}},"type":"object","required":["name"],"title":"UpdateEvalRunRequest"},"UpdateSessionRequest":{"properties":{"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Updated session name"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Updated session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Updated metadata"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary","description":"Session summary"}},"type":"object","title":"UpdateSessionRequest"},"UserMemoryCreateSchema":{"properties":{"memory":{"type":"string","maxLength":5000,"minLength":1,"title":"Memory","description":"Memory content text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags to categorize the memory"}},"type":"object","required":["memory"],"title":"UserMemoryCreateSchema","description":"Define the payload expected for creating a new user memory"},"UserMemorySchema":{"properties":{"memory_id":{"type":"string","title":"Memory Id","description":"Unique identifier for the memory"},"memory":{"type":"string","title":"Memory","description":"Memory content text"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags associated with the memory"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID associated with this memory"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with this memory"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when memory was last updated"}},"type":"object","required":["memory_id","memory"],"title":"UserMemorySchema"},"UserMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"user","title":"Role","default":"user"},"content":{"anyOf":[{"type":"string"},{"items":{"oneOf":[{"$ref":"#/components/schemas/TextInputContent"},{"$ref":"#/components/schemas/ImageInputContent"},{"$ref":"#/components/schemas/AudioInputContent"},{"$ref":"#/components/schemas/VideoInputContent"},{"$ref":"#/components/schemas/DocumentInputContent"},{"$ref":"#/components/schemas/BinaryInputContent"}],"discriminator":{"propertyName":"type","mapping":{"audio":"#/components/schemas/AudioInputContent","binary":"#/components/schemas/BinaryInputContent","document":"#/components/schemas/DocumentInputContent","image":"#/components/schemas/ImageInputContent","text":"#/components/schemas/TextInputContent","video":"#/components/schemas/VideoInputContent"}}},"type":"array"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"UserMessage","description":"A user message supporting text or multimodal content."},"UserStatsSchema":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"total_memories":{"type":"integer","minimum":0.0,"title":"Total Memories","description":"Total number of memories for this user"},"last_memory_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Memory Updated At","description":"Timestamp of the most recent memory update"}},"type":"object","required":["user_id","total_memories"],"title":"UserStatsSchema","description":"Schema for user memory statistics"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"ValidationErrorResponse","example":{"detail":"Validation error","error_code":"VALIDATION_ERROR"}},"VectorDbSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the vector database"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the vector database"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the vector database"},"search_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Search Types","description":"List of supported search types (vector, keyword, hybrid)"}},"type":"object","required":["id"],"title":"VectorDbSchema"},"VectorSearchRequestSchema":{"properties":{"query":{"type":"string","title":"Query","description":"The search query text"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database ID to search in"},"knowledge_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledge Id","description":"Knowledge base ID to search in"},"vector_db_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vector Db Ids","description":"List of vector database IDs to search in"},"search_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Type","description":"The type of search to perform (vector, keyword, hybrid)"},"max_results":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Max Results","description":"The maximum number of results to return"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Filters to apply to the search results"},"meta":{"anyOf":[{"$ref":"#/components/schemas/Meta"},{"type":"null"}],"description":"Pagination metadata. Limit and page number to return a subset of results."}},"type":"object","required":["query"],"title":"VectorSearchRequestSchema","description":"Schema for vector search request."},"VectorSearchResult":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the search result document"},"content":{"type":"string","title":"Content","description":"Content text of the document"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the document"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Metadata associated with the document"},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"Usage statistics (e.g., token counts)"},"reranking_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reranking Score","description":"Reranking score for relevance"},"content_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Id","description":"ID of the source content"},"content_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Origin","description":"Origin URL or source of the content"},"size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"}},"type":"object","required":["id","content"],"title":"VectorSearchResult","description":"Schema for search result documents."},"VideoInputContent":{"properties":{"type":{"type":"string","const":"video","title":"Type","default":"video"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"VideoInputContent","description":"A video input content fragment."},"WhatsAppWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status","default":"ok"}},"type":"object","title":"WhatsAppWebhookResponse"},"WorkflowResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema","description":"Input schema for the workflow"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps","description":"List of workflow steps"},"agent":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"type":"null"}],"description":"Agent configuration if used"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamResponse"},{"type":"null"}],"description":"Team configuration if used"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"workflow_agent":{"type":"boolean","title":"Workflow Agent","description":"Whether this workflow uses a WorkflowAgent","default":false},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowResponse"},"WorkflowRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the workflow run"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the workflow"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was executed"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the workflow"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"Type of content returned"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status of the workflow run"},"step_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Results","description":"Results from each workflow step"},"step_executor_runs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Executor Runs","description":"Executor runs for each step"},"step_requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Requirements","description":"HITL step requirements (resolved state for historical display)"},"pause_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Kind","description":"Kind of HITL pause: 'step' or 'executor'"},"paused_step_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Step Name","description":"Name of the step that caused the pause"},"paused_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Paused Step Index","description":"Index of the step that caused the pause"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the workflow"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the workflow"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the workflow"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the workflow"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the workflow"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"}},"type":"object","required":["run_id"],"title":"WorkflowRunSchema"},"WorkflowSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID used in this session"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name","description":"Name of the workflow"},"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Data","description":"Complete session data"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current workflow state"},"workflow_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Data","description":"Workflow-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["session_id","session_name"],"title":"WorkflowSessionDetailSchema"},"WorkflowSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowSummaryResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} diff --git a/reference-api/openapi.yaml b/reference-api/openapi.yaml index a2c32281b..578a924e1 100644 --- a/reference-api/openapi.yaml +++ b/reference-api/openapi.yaml @@ -166,6 +166,7 @@ paths: schema: $ref: '#/components/schemas/InternalServerErrorResponse' security: + - {} - HTTPBearer: [] /models: get: @@ -226,6 +227,7 @@ paths: schema: $ref: '#/components/schemas/InternalServerErrorResponse' security: + - {} - HTTPBearer: [] /agents/{agent_id}/runs: post: @@ -246,6 +248,7 @@ paths: When `stream=true`, returns SSE events with `event` and `data` fields. operationId: create_agent_run security: + - {} - HTTPBearer: [] parameters: - name: agent_id @@ -327,6 +330,7 @@ paths: Useful for monitoring background runs and viewing run history. operationId: list_agent_runs security: + - {} - HTTPBearer: [] parameters: - name: agent_id @@ -413,6 +417,7 @@ paths: description: Request cancellation for `run_id`. After any required ownership check, local and factory agents store cancellation intent keyed by run ID. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote agent. operationId: cancel_agent_run security: + - {} - HTTPBearer: [] parameters: - name: agent_id @@ -503,6 +508,7 @@ paths: JSON string containing array of tool execution objects with results. Optional — only required when the persisted run has unresolved HITL requirements. operationId: continue_agent_run security: + - {} - HTTPBearer: [] parameters: - name: agent_id @@ -601,6 +607,7 @@ paths: Distinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**. operationId: fork_agent_session security: + - {} - HTTPBearer: [] parameters: - name: agent_id @@ -756,6 +763,7 @@ paths: schema: $ref: '#/components/schemas/InternalServerErrorResponse' security: + - {} - HTTPBearer: [] /agents/{agent_id}: get: @@ -774,6 +782,7 @@ paths: - System prompts and response formatting options operationId: get_agent security: + - {} - HTTPBearer: [] parameters: - name: agent_id @@ -851,6 +860,7 @@ paths: Requires the `session_id` that was returned when the run was created. operationId: get_agent_run security: + - {} - HTTPBearer: [] parameters: - name: agent_id @@ -924,6 +934,7 @@ paths: description: List FE-friendly continuation boundaries derived from the current stored run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript. operationId: list_agent_run_checkpoints security: + - {} - HTTPBearer: [] parameters: - name: agent_id @@ -997,6 +1008,7 @@ paths: description: Return a derived run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run. operationId: get_agent_run_checkpoint_snapshot security: + - {} - HTTPBearer: [] parameters: - name: agent_id @@ -1087,6 +1099,7 @@ paths: Track `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`. operationId: resume_agent_run_stream security: + - {} - HTTPBearer: [] parameters: - name: agent_id @@ -1168,6 +1181,7 @@ paths: When `stream=true`, returns SSE events with `event` and `data` fields. operationId: create_team_run security: + - {} - HTTPBearer: [] parameters: - name: team_id @@ -1246,6 +1260,7 @@ paths: Useful for monitoring background runs and viewing run history. operationId: list_team_runs security: + - {} - HTTPBearer: [] parameters: - name: team_id @@ -1322,6 +1337,7 @@ paths: description: Request cancellation for `run_id`. After any required ownership check, local and factory teams store cancellation intent keyed by run ID and mark known member runs for cancellation. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote team. operationId: cancel_team_run security: + - {} - HTTPBearer: [] parameters: - name: team_id @@ -1407,6 +1423,7 @@ paths: Track `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`. operationId: resume_team_run_stream security: + - {} - HTTPBearer: [] parameters: - name: team_id @@ -1487,6 +1504,7 @@ paths: Can be empty when an admin-required approval has been resolved. operationId: continue_team_run security: + - {} - HTTPBearer: [] parameters: - name: team_id @@ -1579,6 +1597,7 @@ paths: Distinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**. operationId: fork_team_session security: + - {} - HTTPBearer: [] parameters: - name: team_id @@ -1766,6 +1785,7 @@ paths: schema: $ref: '#/components/schemas/InternalServerErrorResponse' security: + - {} - HTTPBearer: [] /teams/{team_id}: get: @@ -1775,6 +1795,7 @@ paths: description: Retrieve detailed configuration and member information for a specific team. operationId: get_team security: + - {} - HTTPBearer: [] parameters: - name: team_id @@ -1891,6 +1912,7 @@ paths: Requires the `session_id` that was returned when the run was created. operationId: get_team_run security: + - {} - HTTPBearer: [] parameters: - name: team_id @@ -1964,6 +1986,7 @@ paths: description: List FE-friendly continuation boundaries derived from the current stored team run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript. operationId: list_team_run_checkpoints security: + - {} - HTTPBearer: [] parameters: - name: team_id @@ -2037,6 +2060,7 @@ paths: description: Return a derived team run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run. operationId: get_team_run_checkpoint_snapshot security: + - {} - HTTPBearer: [] parameters: - name: team_id @@ -2167,6 +2191,7 @@ paths: schema: $ref: '#/components/schemas/InternalServerErrorResponse' security: + - {} - HTTPBearer: [] /workflows/{workflow_id}: get: @@ -2176,6 +2201,7 @@ paths: description: Retrieve detailed configuration and step information for a specific workflow. operationId: get_workflow security: + - {} - HTTPBearer: [] parameters: - name: workflow_id @@ -2265,6 +2291,7 @@ paths: Workflows support session continuity for stateful execution across multiple runs. operationId: create_workflow_run security: + - {} - HTTPBearer: [] parameters: - name: workflow_id @@ -2343,6 +2370,7 @@ paths: Useful for monitoring background runs and viewing run history. operationId: list_workflow_runs security: + - {} - HTTPBearer: [] parameters: - name: workflow_id @@ -2437,6 +2465,7 @@ paths: JSON string containing the resolved step requirements. operationId: continue_workflow_run security: + - {} - HTTPBearer: [] parameters: - name: workflow_id @@ -2520,6 +2549,7 @@ paths: description: Request cancellation for `run_id`. After any required ownership check, local and factory workflows store cancellation intent keyed by run ID and mark known agent or team executor runs for cancellation. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote workflow. operationId: cancel_workflow_run security: + - {} - HTTPBearer: [] parameters: - name: workflow_id @@ -2605,6 +2635,7 @@ paths: Track `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`. operationId: resume_workflow_run_stream security: + - {} - HTTPBearer: [] parameters: - name: workflow_id @@ -2678,6 +2709,7 @@ paths: Requires the `session_id` that was returned when the run was created. operationId: get_workflow_run security: + - {} - HTTPBearer: [] parameters: - name: workflow_id @@ -4142,6 +4174,7 @@ paths: description: Retrieve paginated list of sessions with filtering and sorting options. Supports filtering by session type (agent, team, workflow), component, user, and name. Sessions represent conversation histories and execution contexts. operationId: get_sessions security: + - {} - HTTPBearer: [] parameters: - name: type @@ -4310,6 +4343,7 @@ paths: description: Create a new empty session with optional configuration. Useful for pre-creating sessions with specific session_state, metadata, or other properties before running any agent/team/workflow interactions. The session can later be used by providing its session_id in run requests. operationId: create_session security: + - {} - HTTPBearer: [] parameters: - name: type @@ -4408,6 +4442,7 @@ paths: description: Delete multiple sessions by their IDs in a single operation. This action cannot be undone and will permanently remove all specified sessions and their runs. operationId: delete_sessions security: + - {} - HTTPBearer: [] parameters: - name: user_id @@ -4493,6 +4528,7 @@ paths: description: Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow). operationId: get_session_by_id security: + - {} - HTTPBearer: [] parameters: - name: session_id @@ -4664,6 +4700,7 @@ paths: description: Permanently delete a specific session and all its associated runs. This action cannot be undone and will remove all conversation history. operationId: delete_session security: + - {} - HTTPBearer: [] parameters: - name: session_id @@ -4750,6 +4787,7 @@ paths: description: Update session properties such as session_name, session_state, metadata, or summary. Use this endpoint to modify the session name, update state, add metadata, or update the session summary. operationId: update_session security: + - {} - HTTPBearer: [] parameters: - name: session_id @@ -4888,6 +4926,7 @@ paths: description: Retrieve all runs (executions) for a specific session with optional timestamp filtering. Runs represent individual interactions or executions within a session. Response schema varies based on session type. operationId: get_session_runs security: + - {} - HTTPBearer: [] parameters: - name: session_id @@ -5095,6 +5134,7 @@ paths: description: Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run). operationId: get_session_run security: + - {} - HTTPBearer: [] parameters: - name: session_id @@ -5219,6 +5259,7 @@ paths: description: Update the name of an existing session. Useful for organizing and categorizing sessions with meaningful names for better identification and management. operationId: rename_session security: + - {} - HTTPBearer: [] parameters: - name: session_id @@ -5397,6 +5438,7 @@ paths: description: Create a new user memory with content and associated topics. Memories are used to store contextual information for users across conversations. operationId: create_memory security: + - {} - HTTPBearer: [] parameters: - name: db_id @@ -5485,6 +5527,7 @@ paths: description: Delete multiple user memories by their IDs in a single operation. This action cannot be undone and all specified memories will be permanently removed. operationId: delete_memories security: + - {} - HTTPBearer: [] parameters: - name: db_id @@ -5559,6 +5602,7 @@ paths: description: Retrieve paginated list of user memories with filtering and search capabilities. Filter by user, agent, team, topics, or search within memory content. operationId: get_memories security: + - {} - HTTPBearer: [] parameters: - name: user_id @@ -5740,6 +5784,7 @@ paths: description: Permanently delete a specific user memory. This action cannot be undone. operationId: delete_memory security: + - {} - HTTPBearer: [] parameters: - name: memory_id @@ -5820,6 +5865,7 @@ paths: description: Retrieve detailed information about a specific user memory by its ID. operationId: get_memory security: + - {} - HTTPBearer: [] parameters: - name: memory_id @@ -5917,6 +5963,7 @@ paths: description: Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values. operationId: update_memory security: + - {} - HTTPBearer: [] parameters: - name: memory_id @@ -6011,6 +6058,7 @@ paths: description: Retrieve all unique topics associated with memories in the system. Useful for filtering and categorizing memories by topic. operationId: get_memory_topics security: + - {} - HTTPBearer: [] parameters: - name: user_id @@ -6107,6 +6155,7 @@ paths: description: Retrieve paginated statistics about memory usage by user. Provides insights into user engagement and memory distribution across users. operationId: get_user_memory_stats security: + - {} - HTTPBearer: [] parameters: - name: limit @@ -6219,6 +6268,7 @@ paths: description: Optimize all memories for a user with the summarize strategy. The operation combines the user's memories into one summary. Set `apply=false` to preview the result without saving it. Specify a custom model as `provider:model_id`, for example `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, or `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`. operationId: optimize_memories security: + - {} - HTTPBearer: [] parameters: - name: db_id @@ -6316,6 +6366,7 @@ paths: description: List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) — this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`). operationId: list_learnings security: + - {} - HTTPBearer: [] parameters: - name: learning_type @@ -6516,6 +6567,7 @@ paths: description: Create a new learning record. For the identity-keyed learning types (`user_profile`, `user_memory`, `session_context`, `entity_memory`) the record id is derived deterministically from the identity fields so it reconciles with what the agent reads/writes — provide those fields (else 422), and if a record already exists the request is rejected with 409 (use PATCH to update it). Other types get a generated id. For a scoped (non-admin) caller, the body's `user_id` must be omitted/null or match the caller (mismatch → 403); admins and unscoped callers may set any `user_id`. operationId: create_learning security: + - {} - HTTPBearer: [] parameters: - name: db_id @@ -6607,6 +6659,7 @@ paths: description: 'List the users that own learning records, with a per-user count and last-updated timestamp. Intended as the entry point for a per-user view: list users here, then drill into a single user''s learnings via `GET /learnings?user_id=...`. Records with no owner (`user_id IS NULL`) are excluded. Pass `learning_type` to restrict the grouping to a single store (e.g. `user_profile` or `user_memory`). For a scoped (non-admin) caller results are bound to that user; an explicit `user_id` that differs is rejected with 403. Admins and unscoped callers list all users. Sortable by `user_id` or `last_learning_updated_at` (the default).' operationId: list_learning_users security: + - {} - HTTPBearer: [] parameters: - name: learning_type @@ -6748,6 +6801,7 @@ paths: description: Delete the learning records owned by a user. By default removes every learning type backed by the agno_learnings table (user_profile, user_memory, and any user-scoped entity records); pass `learning_type` to restrict deletion to a single store. Records with no owner (`user_id IS NULL`) are not affected. For a scoped (non-admin) caller, only their own learnings may be deleted; a different `user_id` is rejected with 403. Admins and unscoped callers may delete any user's learnings. Returns 204 even if the user had no matching records. operationId: delete_learning_user security: + - {} - HTTPBearer: [] parameters: - name: user_id @@ -6841,6 +6895,7 @@ paths: description: Retrieve a single learning record by its ID. operationId: get_learning security: + - {} - HTTPBearer: [] parameters: - name: learning_id @@ -6927,6 +6982,7 @@ paths: description: Update a learning record. Only `content` and `metadata` may be modified; identity fields (user_id, agent_id, team_id, etc.) are immutable. Provided fields fully replace the existing values. Records with no owner (`user_id IS NULL` — shared agent/team/session/entity learnings) are readable by any caller but may only be modified by an admin. operationId: update_learning security: + - {} - HTTPBearer: [] parameters: - name: learning_id @@ -7019,6 +7075,7 @@ paths: description: Permanently delete a learning record by its ID. Records with no owner (`user_id IS NULL` — shared agent/team/session/entity learnings) may only be deleted by an admin. operationId: delete_learning security: + - {} - HTTPBearer: [] parameters: - name: learning_id @@ -7102,6 +7159,7 @@ paths: description: Retrieve paginated evaluation runs with filtering and sorting options. Filter by agent, team, workflow, model, or evaluation type. operationId: get_eval_runs security: + - {} - HTTPBearer: [] parameters: - name: agent_id @@ -7300,6 +7358,7 @@ paths: description: Delete multiple evaluation runs by their IDs. This action cannot be undone. operationId: delete_eval_runs security: + - {} - HTTPBearer: [] parameters: - name: db_id @@ -7362,6 +7421,7 @@ paths: description: Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both. operationId: run_eval security: + - {} - HTTPBearer: [] parameters: - name: db_id @@ -7454,6 +7514,7 @@ paths: description: Retrieve detailed results and metrics for a specific evaluation run. operationId: get_eval_run security: + - {} - HTTPBearer: [] parameters: - name: eval_run_id @@ -7549,6 +7610,7 @@ paths: description: Update the name or other properties of an existing evaluation run. operationId: update_eval_run security: + - {} - HTTPBearer: [] parameters: - name: eval_run_id @@ -7651,6 +7713,7 @@ paths: description: Retrieve AgentOS metrics and analytics data for a specified date range. If no date range is specified, returns all available metrics. operationId: get_metrics security: + - {} - HTTPBearer: [] parameters: - name: starting_date @@ -7761,6 +7824,7 @@ paths: description: Manually trigger recalculation of system metrics from raw data. This operation analyzes system activity logs and regenerates aggregated metrics. Useful for ensuring metrics are up-to-date or after system maintenance. operationId: refresh_metrics security: + - {} - HTTPBearer: [] parameters: - name: db_id @@ -7851,6 +7915,7 @@ paths: description: Upload content to the knowledge base. Supports file uploads, text content, or URLs. Content is processed asynchronously in the background. Supports custom readers and chunking strategies. operationId: upload_content security: + - {} - HTTPBearer: [] parameters: - name: db_id @@ -7936,6 +8001,7 @@ paths: description: Return a paginated, sorted list of content for the selected knowledge base. Use `limit`, `page`, `sort_by`, and `sort_order` to control the result. Agno 2.7.4 exposes no status, content type, or metadata filter parameters on this endpoint. Named local knowledge instances scope rows by the stored `linked_to` value. operationId: get_content security: + - {} - HTTPBearer: [] parameters: - name: limit @@ -8073,6 +8139,7 @@ paths: description: Permanently remove all content from the knowledge base. This is a destructive operation that cannot be undone. Use with extreme caution. operationId: delete_all_content security: + - {} - HTTPBearer: [] parameters: - name: db_id @@ -8145,6 +8212,7 @@ paths: description: Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background. operationId: upload_remote_content security: + - {} - HTTPBearer: [] parameters: - name: db_id @@ -8237,6 +8305,7 @@ paths: description: Update content name, description, or metadata without re-uploading it. In Agno 2.7.4, this endpoint accepts `reader_id`. Local knowledge validates the value, but the content patch does not apply or persist the reader change. operationId: update_content security: + - {} - HTTPBearer: [] parameters: - name: content_id @@ -8335,6 +8404,7 @@ paths: description: Retrieve detailed information about a specific content item including processing status and metadata. operationId: get_content_by_id security: + - {} - HTTPBearer: [] parameters: - name: content_id @@ -8426,6 +8496,7 @@ paths: description: Permanently remove a specific content item from the knowledge base. This action cannot be undone. operationId: delete_content_by_id security: + - {} - HTTPBearer: [] parameters: - name: content_id @@ -8505,6 +8576,7 @@ paths: description: Return the processing status for a content ID. For local knowledge in Agno 2.7.4, an unknown content ID returns HTTP 200 with `status="failed"` and `status_message="Content not found"`. operationId: get_content_status security: + - {} - HTTPBearer: [] parameters: - name: content_id @@ -8655,6 +8727,7 @@ paths: schema: $ref: '#/components/schemas/InternalServerErrorResponse' security: + - {} - HTTPBearer: [] /knowledge/config: get: @@ -8664,6 +8737,7 @@ paths: description: Retrieve available readers, chunkers, and configuration options for content processing. This endpoint provides metadata about supported file types, processing strategies, and filters. operationId: get_knowledge_config security: + - {} - HTTPBearer: [] parameters: - name: db_id @@ -9059,6 +9133,7 @@ paths: description: List all registered content sources (S3, GCS, SharePoint, GitHub) for the knowledge base. operationId: list_content_sources security: + - {} - HTTPBearer: [] parameters: - name: knowledge_id @@ -9144,6 +9219,7 @@ paths: description: List available files and folders in a specific content source. Supports pagination and folder navigation. operationId: list_source_files security: + - {} - HTTPBearer: [] parameters: - name: knowledge_id @@ -9308,6 +9384,7 @@ paths: Returns summary information for each trace. Use GET `/traces/{trace_id}` for detailed hierarchy. operationId: get_traces security: + - {} - HTTPBearer: [] parameters: - name: run_id @@ -9552,6 +9629,7 @@ paths: schema: $ref: '#/components/schemas/InternalServerErrorResponse' security: + - {} - HTTPBearer: [] /traces/{trace_id}: get: @@ -9591,6 +9669,7 @@ paths: - `TOOL`: Tool calls with parameters and results operationId: get_trace security: + - {} - HTTPBearer: [] parameters: - name: trace_id @@ -9737,6 +9816,7 @@ paths: - Analyze user engagement patterns operationId: get_trace_stats security: + - {} - HTTPBearer: [] parameters: - name: user_id @@ -9928,6 +10008,7 @@ paths: ``` operationId: search_traces security: + - {} - HTTPBearer: [] parameters: - name: db_id @@ -10000,6 +10081,7 @@ paths: description: Migrate all database schemas to the given target version. If a target version is not provided, all databases will be migrated to the latest version. operationId: migrate_all_databases security: + - {} - HTTPBearer: [] parameters: - name: target_version @@ -10093,6 +10175,7 @@ paths: description: Migrate the given database schema to the given target version. If a target version is not provided, the database will be migrated to the latest version. operationId: migrate_database security: + - {} - HTTPBearer: [] parameters: - name: db_id @@ -10169,6 +10252,7 @@ paths: description: Retrieve a paginated list of components with optional filtering by type. operationId: list_components security: + - {} - HTTPBearer: [] parameters: - name: component_type @@ -10252,6 +10336,7 @@ paths: description: Create a new component (agent, team, or workflow) with initial config. operationId: create_component security: + - {} - HTTPBearer: [] requestBody: required: true @@ -10310,6 +10395,7 @@ paths: description: Retrieve a component by ID. operationId: get_component security: + - {} - HTTPBearer: [] parameters: - name: component_id @@ -10370,6 +10456,7 @@ paths: description: Partially update a component by ID. operationId: update_component security: + - {} - HTTPBearer: [] parameters: - name: component_id @@ -10437,6 +10524,7 @@ paths: description: Soft-delete a component by ID. Component configs and links remain stored. operationId: delete_component security: + - {} - HTTPBearer: [] parameters: - name: component_id @@ -10494,6 +10582,7 @@ paths: description: List all configs for a component. operationId: list_configs security: + - {} - HTTPBearer: [] parameters: - name: component_id @@ -10566,6 +10655,7 @@ paths: description: Create a new config version for a component. operationId: create_config security: + - {} - HTTPBearer: [] parameters: - name: component_id @@ -10634,6 +10724,7 @@ paths: description: Update an existing draft config. Cannot update published configs. operationId: update_config security: + - {} - HTTPBearer: [] parameters: - name: component_id @@ -10709,6 +10800,7 @@ paths: description: Get a specific config version by number. operationId: get_config_version security: + - {} - HTTPBearer: [] parameters: - name: component_id @@ -10777,6 +10869,7 @@ paths: description: Delete a specific config version. Agno v2.7.4 rejects the current version. Synchronous SQLite and PostgreSQL storage allow deletion of a published non-current version. operationId: delete_config security: + - {} - HTTPBearer: [] parameters: - name: component_id @@ -10842,6 +10935,7 @@ paths: description: Get the current config version for a component. operationId: get_current_config security: + - {} - HTTPBearer: [] parameters: - name: component_id @@ -10903,6 +10997,7 @@ paths: description: Set a published config version as current (for rollback). operationId: set_current_config security: + - {} - HTTPBearer: [] parameters: - name: component_id @@ -10971,6 +11066,7 @@ paths: summary: List Schedules operationId: list_schedules_schedules_get security: + - {} - HTTPBearer: [] parameters: - name: enabled @@ -11035,6 +11131,7 @@ paths: summary: Create Schedule operationId: create_schedule_schedules_post security: + - {} - HTTPBearer: [] requestBody: required: true @@ -11092,6 +11189,7 @@ paths: summary: Get Schedule operationId: get_schedule_schedules__schedule_id__get security: + - {} - HTTPBearer: [] parameters: - name: schedule_id @@ -11143,6 +11241,7 @@ paths: summary: Update Schedule operationId: update_schedule_schedules__schedule_id__patch security: + - {} - HTTPBearer: [] parameters: - name: schedule_id @@ -11212,6 +11311,7 @@ paths: summary: Delete Schedule operationId: delete_schedule_schedules__schedule_id__delete security: + - {} - HTTPBearer: [] parameters: - name: schedule_id @@ -11266,6 +11366,7 @@ paths: summary: Enable Schedule operationId: enable_schedule_schedules__schedule_id__enable_post security: + - {} - HTTPBearer: [] parameters: - name: schedule_id @@ -11324,6 +11425,7 @@ paths: summary: Disable Schedule operationId: disable_schedule_schedules__schedule_id__disable_post security: + - {} - HTTPBearer: [] parameters: - name: schedule_id @@ -11382,6 +11484,7 @@ paths: summary: Trigger Schedule operationId: trigger_schedule_schedules__schedule_id__trigger_post security: + - {} - HTTPBearer: [] parameters: - name: schedule_id @@ -11440,6 +11543,7 @@ paths: summary: List Schedule Runs operationId: list_schedule_runs_schedules__schedule_id__runs_get security: + - {} - HTTPBearer: [] parameters: - name: schedule_id @@ -11509,6 +11613,7 @@ paths: summary: Get Schedule Run operationId: get_schedule_run_schedules__schedule_id__runs__run_id__get security: + - {} - HTTPBearer: [] parameters: - name: schedule_id @@ -11567,6 +11672,7 @@ paths: summary: List Approvals operationId: list_approvals_approvals_get security: + - {} - HTTPBearer: [] parameters: - name: status @@ -11719,6 +11825,7 @@ paths: summary: Get Approval Count operationId: get_approval_count_approvals_count_get security: + - {} - HTTPBearer: [] parameters: - name: user_id @@ -11773,6 +11880,7 @@ paths: summary: Get Approval Status operationId: get_approval_status_approvals__approval_id__status_get security: + - {} - HTTPBearer: [] parameters: - name: approval_id @@ -11831,6 +11939,7 @@ paths: summary: Get Approval operationId: get_approval_approvals__approval_id__get security: + - {} - HTTPBearer: [] parameters: - name: approval_id @@ -11888,6 +11997,7 @@ paths: summary: Delete Approval operationId: delete_approval_approvals__approval_id__delete security: + - {} - HTTPBearer: [] parameters: - name: approval_id @@ -11942,6 +12052,7 @@ paths: summary: Resolve Approval operationId: resolve_approval_approvals__approval_id__resolve_post security: + - {} - HTTPBearer: [] parameters: - name: approval_id @@ -12013,6 +12124,7 @@ paths: description: Mint a service account token. The plaintext token is returned exactly once. operationId: create_service_account_service_accounts_post security: + - {} - HTTPBearer: [] requestBody: required: true @@ -12076,6 +12188,7 @@ paths: description: List service accounts. Returns metadata and display prefixes only - never hashes or plaintext. operationId: list_service_accounts_service_accounts_get security: + - {} - HTTPBearer: [] parameters: - name: include_revoked @@ -12158,6 +12271,7 @@ paths: Takes effect immediately on this worker (the local verification cache entry is evicted) and within the cache TTL on other workers. operationId: revoke_service_account_service_accounts__service_account_id__delete security: + - {} - HTTPBearer: [] parameters: - name: service_account_id @@ -12213,6 +12327,7 @@ paths: description: List all resources in the registry with optional filtering. operationId: list_registry security: + - {} - HTTPBearer: [] parameters: - name: resource_type diff --git a/reference/cli/agnoctl.mdx b/reference/cli/agnoctl.mdx index 219184c38..53ecc631f 100644 --- a/reference/cli/agnoctl.mdx +++ b/reference/cli/agnoctl.mdx @@ -303,7 +303,7 @@ agno tokens revoke [--yes] [--json] |------|---------|-------------| | `--yes`, `-y` | off | Skip confirmation prompts (revoking, and trusting a remote `.env`-file URL) | -Revoking is irreversible; the account's tokens stop working on their next request. Interactive runs confirm first. `--yes`, `--json`, and non-TTY runs skip the prompt. +Revoking is irreversible. The worker that processes the revoke rejects the token immediately. Other workers reject it after their verification cache expires, which takes up to 30 seconds by default. Interactive runs confirm first. `--yes`, `--json`, and non-TTY runs skip the prompt. ```json {"revoked": {"…": "service-account object with revoked_at set"}} diff --git a/reference/knowledge/embedder/vllm.mdx b/reference/knowledge/embedder/vllm.mdx index eb249a87f..7fa254c9d 100644 --- a/reference/knowledge/embedder/vllm.mdx +++ b/reference/knowledge/embedder/vllm.mdx @@ -52,5 +52,5 @@ knowledge = Knowledge( | `async_remote_client` | `Optional[AsyncOpenAI]` | `None` | Pre-configured async OpenAI-compatible client for the vLLM server (remote mode) | ## Developer Resources -- [Local mode cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/09_archive/embedders/vllm_embedder_local.py) -- [Remote mode cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/09_archive/embedders/vllm_embedder_remote.py) +- [Local mode cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/09_archive/embedders/vllm_embedder_local.py) +- [Remote mode cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/07_knowledge/09_archive/embedders/vllm_embedder_remote.py) diff --git a/scripts/examples_sync/apply_oneoffs.py b/scripts/examples_sync/apply_oneoffs.py index 36ebb0006..a53dad27e 100644 --- a/scripts/examples_sync/apply_oneoffs.py +++ b/scripts/examples_sync/apply_oneoffs.py @@ -15,6 +15,7 @@ import argparse import json +import os import re import subprocess import sys @@ -26,6 +27,7 @@ ROOT = HERE.parents[1] DOCS = ROOT / "examples" +AGNO_ROOT = Path(os.environ.get("AGNO_REPO") or ROOT / "agno") GENERATED_DESCRIPTION_OVERRIDES = json.loads( (HERE / "description-overrides.json").read_text(encoding="utf-8") ) @@ -1343,7 +1345,10 @@ def pin_agno_clone_commands() -> None: """Pin tracked MDX clone commands to the sealed docs source tag.""" global would_apply old = "git clone https://github.com/agno-agi/agno.git" - new = "git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git" + new = ( + f"git clone --branch {gen.EXPECTED_AGNO_TAG} --depth 1 " + "https://github.com/agno-agi/agno.git" + ) result = subprocess.run( ["git", "-C", str(ROOT), "ls-files", "*.mdx"], check=True, @@ -1370,6 +1375,49 @@ def pin_agno_clone_commands() -> None: print(f" pinned {total} Agno clone commands in {len(matches)} files") +def pin_agno_cookbook_links() -> None: + """Pin tracked MDX cookbook links to the sealed docs source tag.""" + global would_apply + replacements = ( + ( + "https://github.com/agno-agi/agno/blob/main/cookbook/", + "https://github.com/agno-agi/agno/blob/" + f"{gen.EXPECTED_AGNO_TAG}/cookbook/", + ), + ( + "https://github.com/agno-agi/agno/tree/main/cookbook/", + "https://github.com/agno-agi/agno/tree/" + f"{gen.EXPECTED_AGNO_TAG}/cookbook/", + ), + ) + result = subprocess.run( + ["git", "-C", str(ROOT), "ls-files", "*.mdx"], + check=True, + capture_output=True, + text=True, + ) + matches: list[tuple[Path, int]] = [] + for relative_path in result.stdout.splitlines(): + path = ROOT / relative_path + text = path.read_text(encoding="utf-8") + count = sum(text.count(old) for old, _ in replacements) + if count: + matches.append((path, count)) + if not CHECK: + for old, new in replacements: + text = text.replace(old, new) + path.write_text(text, encoding="utf-8") + if not matches: + print(f" Agno cookbook links already pinned to {gen.EXPECTED_AGNO_TAG}") + return + total = sum(count for _, count in matches) + if CHECK: + would_apply += len(matches) + print(f" would pin {total} Agno cookbook links in {len(matches)} files") + else: + print(f" pinned {total} Agno cookbook links in {len(matches)} files") + + def docs_path(slug: str) -> Path: assert slug.startswith("examples/"), f"not an example slug: {slug}" return ROOT / f"{slug}.mdx" @@ -1839,6 +1887,7 @@ def main() -> None: ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) ap.add_argument("--check", action="store_true", help="report fix state without writing") CHECK = ap.parse_args().check + gen.validate_agno_source(AGNO_ROOT) # Source-backed corrections identified by the generated-example review. pin_agno_clone_commands() @@ -2907,9 +2956,9 @@ def main() -> None: ## Developer Resources -- [Team-level approval source](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/approvals/team/team_level_approval.py) -- [Member-level approval source](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/approvals/team/member_agent_level_approval.py) -- [Team and member approval source](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/approvals/team/team_and_member_agent_both_level_approval.py)""", +- [Team-level approval source](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/approvals/team/team_level_approval.py) +- [Member-level approval source](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/approvals/team/member_agent_level_approval.py) +- [Team and member approval source](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/05_agent_os/approvals/team/team_and_member_agent_both_level_approval.py)""", ) sub( @@ -4418,6 +4467,10 @@ async def handle_stripe(event: dict): # corresponding entries in the hand-maintained complete index. repair_toolkit_index() + # Keep every tracked cookbook link on the same sealed source as its code + # fence and clone command. Run this after fixes that add resource links. + pin_agno_cookbook_links() + # 13. Preserve the reviewed byte-level terminal-newline convention after # deterministic reconstruction. normalize_terminal_newlines("tracing/db-functions.mdx") diff --git a/scripts/examples_sync/check_integrity.py b/scripts/examples_sync/check_integrity.py index f078fece6..df668ddd5 100644 --- a/scripts/examples_sync/check_integrity.py +++ b/scripts/examples_sync/check_integrity.py @@ -35,6 +35,8 @@ OUT_DIR = HERE / "out" PLAN_PATH = OUT_DIR / "sync-plan.json" +gen.validate_agno_source(AGNO_ROOT) + if not PLAN_PATH.is_file(): raise SystemExit(f"error: {PLAN_PATH} not found; run plan.py first") plan = json.loads(PLAN_PATH.read_text()) @@ -133,6 +135,10 @@ def extract_first_code_block(text: str) -> str | None: ] gen_slugs = {t[0] for t in gen_tasks} b_bad_gen, b_bad_other = [], [] +wrong_cookbook_revisions = [] +cookbook_link_re = re.compile( + r"github\.com/agno-agi/agno/(?:blob|tree)/([^/\s]+)/(cookbook/[^)\s\"'`]+)" +) all_mdx = sorted((DOCS_ROOT / "examples").rglob("*.mdx")) for p in all_mdx: slug = str(p.relative_to(DOCS_ROOT)).removesuffix(".mdx") @@ -144,11 +150,21 @@ def extract_first_code_block(text: str) -> str | None: target = COOKBOOK / tail if not (target.is_file() or target.is_dir()): (b_bad_gen if slug in gen_slugs else b_bad_other).append((slug, ref)) + for revision, ref in cookbook_link_re.findall(text): + if revision != gen.EXPECTED_AGNO_TAG: + wrong_cookbook_revisions.append((slug, revision, ref.rstrip(".,)"))) print(f"(b) cookbook refs: {len(all_mdx)} files scanned; " - f"{len(b_bad_gen)} dead refs in generated pages, {len(b_bad_other)} in preserved pages") + f"{len(b_bad_gen)} dead refs in generated pages, {len(b_bad_other)} in preserved pages, " + f"{len(wrong_cookbook_revisions)} wrong revisions") for s, r in (b_bad_gen + b_bad_other)[:25]: print(" DEAD:", s, "->", r) +for slug, revision, ref in wrong_cookbook_revisions[:25]: + print(" WRONG REVISION:", slug, "->", revision, ref) problems += [f"(b) generated {s}: dead ref {r}" for s, r in b_bad_gen] +problems += [ + f"(b) {slug}: cookbook ref {ref} uses {revision}, expected {gen.EXPECTED_AGNO_TAG}" + for slug, revision, ref in wrong_cookbook_revisions +] # --------------------------------------------------------------------------- # (c) every generated page carries the complete cookbook source diff --git a/scripts/examples_sync/dedupe_titles.py b/scripts/examples_sync/dedupe_titles.py index 3c38ea31f..a8a389d29 100644 --- a/scripts/examples_sync/dedupe_titles.py +++ b/scripts/examples_sync/dedupe_titles.py @@ -20,6 +20,7 @@ import argparse import json +import os import re import sys from collections import defaultdict @@ -30,6 +31,7 @@ import generate as gen # noqa: E402 DOCS_ROOT = HERE.parents[1] +AGNO_ROOT = Path(os.environ.get("AGNO_REPO") or DOCS_ROOT / "agno") PLAN_PATH = HERE / "out" / "sync-plan.json" TITLE_RE = re.compile(r'^title: "(.*)"$', re.M) @@ -44,6 +46,7 @@ def main() -> None: ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) ap.add_argument("--check", action="store_true", help="report retitles without writing") args = ap.parse_args() + gen.validate_agno_source(AGNO_ROOT) if not PLAN_PATH.is_file(): raise SystemExit(f"error: {PLAN_PATH} not found; run plan.py first") diff --git a/scripts/examples_sync/drive_sync.py b/scripts/examples_sync/drive_sync.py index a0d749acb..1222bffa4 100644 --- a/scripts/examples_sync/drive_sync.py +++ b/scripts/examples_sync/drive_sync.py @@ -45,6 +45,7 @@ def main() -> int: ap.add_argument("--check", action="store_true", help="render in memory and diff against disk; write nothing") args = ap.parse_args() + gen.validate_agno_source(AGNO_ROOT) if not PLAN_PATH.is_file(): raise SystemExit(f"error: {PLAN_PATH} not found; run plan.py first") diff --git a/scripts/examples_sync/generate.py b/scripts/examples_sync/generate.py index 87b69a582..1d9f0d629 100644 --- a/scripts/examples_sync/generate.py +++ b/scripts/examples_sync/generate.py @@ -41,6 +41,35 @@ from pathlib import Path REPO_ROOT = Path(__file__).resolve().parents[2] +EXPECTED_AGNO_TAG = "v2.7.4" +EXPECTED_AGNO_SHA = "d1b3a6dc0ed532ac734efb58eb1206bb3bedff09" + + +def validate_agno_source(agno_root: Path) -> str: + """Require the clean Agno release checkout targeted by this sync pipeline.""" + root = agno_root.resolve() + + def git(*args: str) -> str: + result = subprocess.run( + ["git", "-C", str(root), *args], + check=True, + capture_output=True, + text=True, + ) + return result.stdout.strip() + + head = git("rev-parse", "HEAD") + tag_head = git("rev-parse", f"refs/tags/{EXPECTED_AGNO_TAG}^{{commit}}") + status = git("status", "--porcelain=v1") + assert head == EXPECTED_AGNO_SHA, ( + f"Agno source HEAD {head} does not match {EXPECTED_AGNO_TAG} " + f"({EXPECTED_AGNO_SHA})" + ) + assert tag_head == EXPECTED_AGNO_SHA, ( + f"Agno tag {EXPECTED_AGNO_TAG} resolves to {tag_head}, expected {EXPECTED_AGNO_SHA}" + ) + assert not status, f"Agno source checkout is dirty: {root}" + return EXPECTED_AGNO_TAG # --------------------------------------------------------------------------- # Curated tables @@ -5201,6 +5230,9 @@ def source_link( f"{cookbook_rel}: source_link_ref requires the Agno source HEAD to have an exact tag" ) ref = result.stdout.strip() + assert ref == EXPECTED_AGNO_TAG, ( + f"{cookbook_rel}: Agno source tag {ref!r} does not match {EXPECTED_AGNO_TAG}" + ) assert re.fullmatch(r"[A-Za-z0-9][A-Za-z0-9._/-]*", ref), ( f"{cookbook_rel}: invalid source link ref {ref!r}" ) @@ -5559,6 +5591,7 @@ def main() -> None: agno_root = args.agno_root or Path( os.environ.get("AGNO_REPO") or args.docs_root / "agno" ) + validate_agno_source(agno_root) src = args.source.read_text(encoding="utf-8") rel = cookbook_relative(args.source) page = render(args.source, rel, src, agno_root, slug=args.slug) diff --git a/scripts/examples_sync/plan.py b/scripts/examples_sync/plan.py index 8a132a92e..ebf6b5c6d 100644 --- a/scripts/examples_sync/plan.py +++ b/scripts/examples_sync/plan.py @@ -360,6 +360,7 @@ def main() -> None: ap.add_argument("--out", type=Path, default=OUT_DIR) args = ap.parse_args() docs, agno, out = args.docs_root, args.agno_root, args.out + generate.validate_agno_source(agno) out.mkdir(parents=True, exist_ok=True) # ---- inputs ---------------------------------------------------------- diff --git a/scripts/make_openapi.py b/scripts/make_openapi.py index 7f40dea53..d99d9436c 100644 --- a/scripts/make_openapi.py +++ b/scripts/make_openapi.py @@ -51,6 +51,11 @@ from agno.workflow import Workflow # noqa: E402 from agno.workflow.step import Step # noqa: E402 +EXPECTED_AGNO_VERSION = "2.7.4" +assert agno_version == EXPECTED_AGNO_VERSION, ( + f"OpenAPI generator imported Agno {agno_version}, expected {EXPECTED_AGNO_VERSION}" +) + NOTES = [] # inclusion/exclusion notes surfaced at the end of the run # Interface imports are optional: each pulls in an extra (a2a-sdk, ag-ui-protocol, @@ -1927,10 +1932,22 @@ def nullable_string_schema() -> dict: assert response_schema == {} response_schema.update(deepcopy(fork_response_schema)) + normalized_bearer_operations: list[tuple[str, str]] = [] for path, path_item in spec["paths"].items(): for method in ("get", "post", "put", "patch", "delete", "head", "options", "trace"): operation = path_item.get(method) - if not isinstance(operation, dict) or not operation.get("security"): + if not isinstance(operation, dict): + continue + security = operation.get("security") + if security == [{"HTTPBearer": []}]: + # The dependency accepts anonymous requests when AgentOS runs + # without a security key or JWT configuration. Authentication + # becomes required when the deployment enables either mode. + operation["security"] = [{}, {"HTTPBearer": []}] + normalized_bearer_operations.append((path, method)) + elif security: + assert security == [{}, {"HTTPBearer": []}], (path, method, security) + if not operation.get("security"): continue if "401" not in operation["responses"]: add_response(operation, "401", "Unauthorized", "UnauthenticatedResponse") @@ -1939,6 +1956,7 @@ def nullable_string_schema() -> dict: if (path, method) != ("/status", "get") and "403" not in operation["responses"]: add_response(operation, "403", "Forbidden", "ForbiddenResponse") sort_responses(operation) + assert len(normalized_bearer_operations) == 115, len(normalized_bearer_operations) spec["components"]["schemas"] = dict(sorted(schemas.items())) return spec diff --git a/sessions/metrics/agent.mdx b/sessions/metrics/agent.mdx index e007146b4..aca373a66 100644 --- a/sessions/metrics/agent.mdx +++ b/sessions/metrics/agent.mdx @@ -64,4 +64,4 @@ Metrics are available at multiple levels: - [RunOutput schema](/reference/agents/run-response) - [Metrics reference](/reference/run/metrics) -- [Cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/02_agents/14_advanced/metrics.py) +- [Cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/02_agents/14_advanced/metrics.py) diff --git a/sessions/metrics/team.mdx b/sessions/metrics/team.mdx index 616f2e5a4..f3524e89e 100644 --- a/sessions/metrics/team.mdx +++ b/sessions/metrics/team.mdx @@ -82,4 +82,4 @@ Metrics are available at multiple levels: - [TeamRunOutput schema](/reference/teams/team-response) - [Metrics reference](/reference/run/metrics) -- [Cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/03_teams/22_metrics/01_team_metrics.py) +- [Cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/03_teams/22_metrics/01_team_metrics.py) diff --git a/sessions/metrics/workflow.mdx b/sessions/metrics/workflow.mdx index 7a9062d95..1ab4c49b1 100644 --- a/sessions/metrics/workflow.mdx +++ b/sessions/metrics/workflow.mdx @@ -100,4 +100,4 @@ Session metrics aggregate token usage and cost from step metrics across all runs - [Workflow schema](/reference/workflows/workflow) - [Session schema](/reference/workflows/session) - [WorkflowRunOutput schema](/reference/workflows/run-output) -- [Cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/04_workflows/) +- [Cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/04_workflows/) diff --git a/sessions/workflow-sessions.mdx b/sessions/workflow-sessions.mdx index b5836ce35..45c4de967 100644 --- a/sessions/workflow-sessions.mdx +++ b/sessions/workflow-sessions.mdx @@ -240,4 +240,4 @@ Now that you understand workflow sessions, explore these features: - [Workflow schema](/reference/workflows/workflow) - [WorkflowSession schema](/reference/workflows/session) -- [Workflow session examples](https://github.com/agno-agi/agno/tree/main/cookbook/04_workflows) +- [Workflow session examples](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/04_workflows) diff --git a/state/agent/overview.mdx b/state/agent/overview.mdx index ad0952508..feb12eebd 100644 --- a/state/agent/overview.mdx +++ b/state/agent/overview.mdx @@ -302,4 +302,4 @@ print(f"Stored session state: {agent.get_session_state()}") - [Agent schema](/reference/agents/agent) - [RunContext schema](/reference/run/run-context) -- [State cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/02_agents/05_state_and_session) +- [State cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/02_agents/05_state_and_session) diff --git a/state/workflows/overview.mdx b/state/workflows/overview.mdx index f902d3fa7..3d38bd95a 100644 --- a/state/workflows/overview.mdx +++ b/state/workflows/overview.mdx @@ -281,14 +281,14 @@ and [Session State in Router Selector Function](/state/workflows/access-session- See how agents interact with shared session state Learn how teams coordinate using shared state diff --git a/tools/agent.mdx b/tools/agent.mdx index 7b5559224..7d0044130 100644 --- a/tools/agent.mdx +++ b/tools/agent.mdx @@ -101,4 +101,4 @@ Read more about: ## Developer Resources - [Agent schema](/reference/agents/agent) -- [Cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/91_tools/) +- [Cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/91_tools/) diff --git a/tools/exceptions.mdx b/tools/exceptions.mdx index d8dd0b345..8c5fe1e93 100644 --- a/tools/exceptions.mdx +++ b/tools/exceptions.mdx @@ -108,4 +108,4 @@ Make sure to set `AGNO_DEBUG=True` if you want to see the debug logs. - [RetryAgentRun schema](/reference/tools/retry-agent-run) - [StopAgentRun schema](/reference/tools/stop-agent-run) -- [Cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/91_tools/exceptions) +- [Cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/91_tools/exceptions) diff --git a/tools/mcp/mcp-toolbox.mdx b/tools/mcp/mcp-toolbox.mdx index d19bec2c8..f2d18797f 100644 --- a/tools/mcp/mcp-toolbox.mdx +++ b/tools/mcp/mcp-toolbox.mdx @@ -236,16 +236,16 @@ Only one of `toolsets` or `tool_name` can be specified. The implementation valid The complete demo includes multiple working patterns: -- **[Basic Agent](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/mcp_toolbox_demo/agent.py)**: Simple hotel assistant with toolset filtering -- **[AgentOS Integration](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/mcp_toolbox_demo/agent_os.py)**: Integration with AgentOS control plane -- **[Workflow Integration](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/mcp_toolbox_demo/hotel_management_workflows.py)**: Using MCPToolbox in Agno workflows -- **[Type-Safe Agent](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/mcp/mcp_toolbox_demo/hotel_management_typesafe.py)**: Implementation with Pydantic models +- **[Basic Agent](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/mcp_toolbox_demo/agent.py)**: Simple hotel assistant with toolset filtering +- **[AgentOS Integration](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/mcp_toolbox_demo/agent_os.py)**: Integration with AgentOS control plane +- **[Workflow Integration](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/mcp_toolbox_demo/hotel_management_workflows.py)**: Using MCPToolbox in Agno workflows +- **[Type-Safe Agent](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/mcp/mcp_toolbox_demo/hotel_management_typesafe.py)**: Implementation with Pydantic models You can use `include_tools` or `exclude_tools` to modify the list of tools the agent has access to. Learn more about [selecting tools](/tools/selecting-tools). ## Developer Resources - [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/mcp_toolbox.py) -- [Cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/91_tools/mcp/mcp_toolbox_demo) +- [Cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/91_tools/mcp/mcp_toolbox_demo) See the [MCP Toolbox for Databases documentation](https://googleapis.github.io/genai-toolbox/getting-started/introduction/). diff --git a/tools/toolkits/agent-os/studio.mdx b/tools/toolkits/agent-os/studio.mdx index f89c533cd..3c4ebf65d 100644 --- a/tools/toolkits/agent-os/studio.mdx +++ b/tools/toolkits/agent-os/studio.mdx @@ -137,5 +137,5 @@ With `versions=True`, the toolkit also exposes `list_versions`, `get_version`, ` - [StudioTools with HITL](/agent-os/studio/tools) - [AgentOS Studio](/agent-os/studio/introduction) - [Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/studio.py) -- [StudioTools cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/05_agent_os/studio_tool) +- [StudioTools cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/05_agent_os/studio_tool) - [Components examples](/examples/components/overview) \ No newline at end of file diff --git a/tools/toolkits/database/redshift.mdx b/tools/toolkits/database/redshift.mdx index e69df031d..443083dc9 100644 --- a/tools/toolkits/database/redshift.mdx +++ b/tools/toolkits/database/redshift.mdx @@ -79,4 +79,4 @@ You can use `include_tools` or `exclude_tools` to modify the list of tools the a ## Developer Resources - [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/redshift.py) -- [Example](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/redshift_tools.py) +- [Example](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/redshift_tools.py) diff --git a/tools/toolkits/local/coding.mdx b/tools/toolkits/local/coding.mdx index 439c4d9b2..2e32f2172 100644 --- a/tools/toolkits/local/coding.mdx +++ b/tools/toolkits/local/coding.mdx @@ -65,6 +65,6 @@ agent.print_response( ## Developer Resources - [Tools source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/coding.py) -- [Basic usage](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/coding_tools/01_basic_usage.py) -- [All tools](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/coding_tools/02_all_tools.py) +- [Basic usage](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/coding_tools/01_basic_usage.py) +- [All tools](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/coding_tools/02_all_tools.py) - [Workspace toolkit](/tools/toolkits/local/workspace) for a confirmation-gated alternative diff --git a/tools/toolkits/local/workspace.mdx b/tools/toolkits/local/workspace.mdx index f628895af..9617e243f 100644 --- a/tools/toolkits/local/workspace.mdx +++ b/tools/toolkits/local/workspace.mdx @@ -104,11 +104,11 @@ while run_response.is_paused: ) ``` -See [Workspace with confirmation](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/workspace_tools/workspace_tools_with_confirmation.py) for the full pause/resume example, and [User Confirmation](/hitl/user-confirmation) for the HITL pattern. +See [Workspace with confirmation](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/workspace_tools/workspace_tools_with_confirmation.py) for the full pause/resume example, and [User Confirmation](/hitl/user-confirmation) for the HITL pattern. ## Developer Resources - [Tools source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/workspace.py) -- [Basic usage](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/workspace_tools/basic_usage.py) -- [With confirmation](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/workspace_tools/workspace_tools_with_confirmation.py) +- [Basic usage](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/workspace_tools/basic_usage.py) +- [With confirmation](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/workspace_tools/workspace_tools_with_confirmation.py) - [WorkspaceContextProvider](/context-providers/providers/workspace) wraps this toolkit read-only as a context provider diff --git a/tools/toolkits/models/groq.mdx b/tools/toolkits/models/groq.mdx index 8e6348a6e..669baa37d 100644 --- a/tools/toolkits/models/groq.mdx +++ b/tools/toolkits/models/groq.mdx @@ -133,6 +133,6 @@ The `GroqTools` toolkit provides the following functions: ## Developer Resources - [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/models/groq.py) -- [Transcription Example](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/groq/transcription_agent.py) -- [Translation Example](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/groq/translation_agent.py) +- [Transcription Example](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/groq/transcription_agent.py) +- [Translation Example](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/groq/translation_agent.py) diff --git a/tools/toolkits/models/openai.mdx b/tools/toolkits/models/openai.mdx index cc39f1a1a..2c88edad7 100644 --- a/tools/toolkits/models/openai.mdx +++ b/tools/toolkits/models/openai.mdx @@ -121,7 +121,7 @@ if response and response.audio: save_base64_data(audio_base64, "tmp/hello.mp3") ``` - View more examples [here](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/models/openai_tools.py). + View more examples [here](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/models/openai_tools.py). ## Customization diff --git a/tools/toolkits/others/antigravity.mdx b/tools/toolkits/others/antigravity.mdx index c32e08bd8..5d3a8f52f 100644 --- a/tools/toolkits/others/antigravity.mdx +++ b/tools/toolkits/others/antigravity.mdx @@ -102,16 +102,16 @@ AntigravityTools(agent_directory="./my-agent") ## Examples - + A Gemini agent delegates a research sub-task to the sandbox. - + Create, invoke, and delete custom agents through tools. - + Wire a local `agent.yaml` folder into the toolkit. - + Run a sandbox task then download the environment as a tar. @@ -119,5 +119,5 @@ AntigravityTools(agent_directory="./my-agent") ## Developer Resources - [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/antigravity.py) -- [Cookbook examples](https://github.com/agno-agi/agno/tree/main/cookbook/91_tools/antigravity) +- [Cookbook examples](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/91_tools/antigravity) - [Antigravity as an external agent](/agent-os/multi-framework/antigravity) diff --git a/tools/toolkits/others/docling.mdx b/tools/toolkits/others/docling.mdx index eeef2d4f0..0fbafbc77 100644 --- a/tools/toolkits/others/docling.mdx +++ b/tools/toolkits/others/docling.mdx @@ -121,5 +121,5 @@ ocr_agent.print_response( ## Developer Resources - [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/docling.py) -- [Cookbook Examples](https://github.com/agno-agi/agno/tree/main/cookbook/91_tools/docling_tools) +- [Cookbook Examples](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/91_tools/docling_tools) - [Docling Documentation](https://docling-project.github.io/docling/) diff --git a/tools/toolkits/others/financial-datasets.mdx b/tools/toolkits/others/financial-datasets.mdx index 7e937b3ff..6fae5f887 100644 --- a/tools/toolkits/others/financial-datasets.mdx +++ b/tools/toolkits/others/financial-datasets.mdx @@ -46,7 +46,7 @@ agent = Agent( agent.print_response("Get the most recent income statement for AAPL and highlight key metrics") ``` -See the full [Financial Datasets example](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/financial_datasets_tools.py) in the cookbook. +See the full [Financial Datasets example](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/financial_datasets_tools.py) in the cookbook. ## Toolkit Params diff --git a/tools/toolkits/others/google-drive.mdx b/tools/toolkits/others/google-drive.mdx index 704fcab79..a715858f1 100644 --- a/tools/toolkits/others/google-drive.mdx +++ b/tools/toolkits/others/google-drive.mdx @@ -118,6 +118,6 @@ All functions have sync and async variants. ## Developer Resources - [Tools source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/google/drive.py) -- [Drive tools example](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google/drive/basic.py) -- [File search example](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google/drive/file_search.py) +- [Drive tools example](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/drive/basic.py) +- [File search example](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/drive/file_search.py) - [Google Drive context provider](/context-providers/providers/drive) diff --git a/tools/toolkits/others/google-maps.mdx b/tools/toolkits/others/google-maps.mdx index ea3ae9a86..e0a18a28d 100644 --- a/tools/toolkits/others/google-maps.mdx +++ b/tools/toolkits/others/google-maps.mdx @@ -39,7 +39,7 @@ agent = Agent(tools=[GoogleMapTools()]) agent.print_response("Find coffee shops in San Francisco") ``` -For more examples, see the [Google Maps Tools example](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/google_maps_tools.py). +For more examples, see the [Google Maps Tools example](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google_maps_tools.py). ## Toolkit Params diff --git a/tools/toolkits/others/google-slides.mdx b/tools/toolkits/others/google-slides.mdx index 0fe1d3775..4883fc501 100644 --- a/tools/toolkits/others/google-slides.mdx +++ b/tools/toolkits/others/google-slides.mdx @@ -179,7 +179,7 @@ You can use `include_tools` or `exclude_tools` to modify the list of tools the a ## Cookbook Examples -The [slides cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/91_tools/google/slides) covers four scenarios: +The [slides cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/91_tools/google/slides) covers four scenarios: | Example | What it demonstrates | | --------------------------- | ---------------------------------------------------------- | @@ -209,4 +209,4 @@ The `add_slide` function supports the following Google Slides predefined layouts ## Developer Resources - [Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/google/slides.py) -- [Cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/91_tools/google/slides) +- [Cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/91_tools/google/slides) diff --git a/tools/toolkits/others/googlecalendar.mdx b/tools/toolkits/others/googlecalendar.mdx index 670c73a97..067280806 100644 --- a/tools/toolkits/others/googlecalendar.mdx +++ b/tools/toolkits/others/googlecalendar.mdx @@ -214,4 +214,4 @@ The agno cookbook includes several Google Calendar examples demonstrating differ ## Developer Resources - [Source Code](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/google/calendar.py) -- [Cookbook Examples](https://github.com/agno-agi/agno/tree/main/cookbook/91_tools/google) +- [Cookbook Examples](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/91_tools/google) diff --git a/tools/toolkits/others/llms-txt.mdx b/tools/toolkits/others/llms-txt.mdx index 46c8b1b20..0b6b4b8ac 100644 --- a/tools/toolkits/others/llms-txt.mdx +++ b/tools/toolkits/others/llms-txt.mdx @@ -87,5 +87,5 @@ All functions have sync and async variants. ## Developer Resources - [Tools source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/llms_txt.py) -- [Agentic mode example](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/llms_txt_tools.py) -- [Knowledge mode example](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/llms_txt_tools_knowledge.py) +- [Agentic mode example](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/llms_txt_tools.py) +- [Knowledge mode example](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/llms_txt_tools_knowledge.py) diff --git a/tools/toolkits/others/salesforce.mdx b/tools/toolkits/others/salesforce.mdx index 78e2111ca..08e1e8b2c 100644 --- a/tools/toolkits/others/salesforce.mdx +++ b/tools/toolkits/others/salesforce.mdx @@ -116,4 +116,4 @@ You can use `include_tools` or `exclude_tools` to modify the list of tools the a ## Developer Resources - [Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/salesforce.py) -- [Cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/salesforce_tools.py) +- [Cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/salesforce_tools.py) diff --git a/tools/toolkits/others/superserve.mdx b/tools/toolkits/others/superserve.mdx index 1fdedd970..c58804dc5 100644 --- a/tools/toolkits/others/superserve.mdx +++ b/tools/toolkits/others/superserve.mdx @@ -134,5 +134,5 @@ Each function has an async variant with the same tool name, used automatically w ## Developer Resources - [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/superserve.py) -- [Superserve cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/superserve_tools.py) +- [Superserve cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/superserve_tools.py) - [Superserve Documentation](https://superserve.ai) diff --git a/tools/toolkits/others/twelvelabs.mdx b/tools/toolkits/others/twelvelabs.mdx index 97c3a6d7c..dab29ce6e 100644 --- a/tools/toolkits/others/twelvelabs.mdx +++ b/tools/toolkits/others/twelvelabs.mdx @@ -77,4 +77,4 @@ embedding_agent.print_response( ## Developer Resources - [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/twelvelabs.py) -- [Cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/twelvelabs_tools.py) +- [Cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/twelvelabs_tools.py) diff --git a/tools/toolkits/others/user-feedback.mdx b/tools/toolkits/others/user-feedback.mdx index 452896e7f..50f3f5a02 100644 --- a/tools/toolkits/others/user-feedback.mdx +++ b/tools/toolkits/others/user-feedback.mdx @@ -79,5 +79,5 @@ Each `AskUserOption` has a `label` (1-5 words) and an optional `description`. ## Developer Resources - [Tools source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/user_feedback.py) -- [Cookbook example](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/10_human_in_the_loop/user_feedback.py) +- [Cookbook example](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/10_human_in_the_loop/user_feedback.py) - [Human-in-the-Loop overview](/hitl/overview) diff --git a/tools/toolkits/others/web-browser.mdx b/tools/toolkits/others/web-browser.mdx index 8343884c7..c452c07a0 100644 --- a/tools/toolkits/others/web-browser.mdx +++ b/tools/toolkits/others/web-browser.mdx @@ -47,4 +47,4 @@ agent.print_response("Find an article explaining MCP and open it in the web brow ## Developer Resources - [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/webbrowser.py) -- [Cookbook Example](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/webbrowser_tools.py) +- [Cookbook Example](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/webbrowser_tools.py) diff --git a/tools/toolkits/search/parallel.mdx b/tools/toolkits/search/parallel.mdx index 85f50a001..29dbf18b8 100644 --- a/tools/toolkits/search/parallel.mdx +++ b/tools/toolkits/search/parallel.mdx @@ -223,6 +223,6 @@ agent.print_response("List my monitors and fetch recent events") ## Developer Resources -- [Cookbook examples](https://github.com/agno-agi/agno/tree/main/cookbook/91_tools/parallel) +- [Cookbook examples](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/91_tools/parallel) - [Parallel SDK Documentation](https://docs.parallel.ai) - [Parallel API Reference](https://docs.parallel.ai/api-reference) diff --git a/tools/toolkits/search/perplexity.mdx b/tools/toolkits/search/perplexity.mdx index a155f7649..3e3969b62 100644 --- a/tools/toolkits/search/perplexity.mdx +++ b/tools/toolkits/search/perplexity.mdx @@ -74,6 +74,6 @@ Use PerplexitySearch when you need: ## Developer Resources -- [Example](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/perplexity_tools.py) +- [Example](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/perplexity_tools.py) - [PerplexitySearch source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/perplexity.py) - [Perplexity API docs](https://docs.perplexity.ai/) diff --git a/tools/toolkits/search/scavio.mdx b/tools/toolkits/search/scavio.mdx index 9d456f59a..997b4217c 100644 --- a/tools/toolkits/search/scavio.mdx +++ b/tools/toolkits/search/scavio.mdx @@ -98,4 +98,4 @@ Each function returns the Scavio response as a JSON string. Errors are returned ## Developer Resources - [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/scavio.py) -- [Cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/scavio_tools.py) +- [Cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/scavio_tools.py) diff --git a/tools/toolkits/search/websearch.mdx b/tools/toolkits/search/websearch.mdx index 5c1277175..ab54b787d 100644 --- a/tools/toolkits/search/websearch.mdx +++ b/tools/toolkits/search/websearch.mdx @@ -71,4 +71,4 @@ The `backend` parameter supports the following options: ## Developer Resources - [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/websearch.py) -- [Cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/websearch_tools.py) +- [Cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/websearch_tools.py) diff --git a/tools/toolkits/social/gmail.mdx b/tools/toolkits/social/gmail.mdx index b48411eac..0397915de 100644 --- a/tools/toolkits/social/gmail.mdx +++ b/tools/toolkits/social/gmail.mdx @@ -257,4 +257,4 @@ The agno cookbook includes several Gmail examples demonstrating different use ca ## Developer Resources - [Source Code](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/google/gmail.py) -- [Cookbook Examples](https://github.com/agno-agi/agno/tree/main/cookbook/91_tools/google/gmail) +- [Cookbook Examples](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/91_tools/google/gmail) diff --git a/tools/toolkits/social/whatsapp.mdx b/tools/toolkits/social/whatsapp.mdx index 30b54380a..ceca47341 100644 --- a/tools/toolkits/social/whatsapp.mdx +++ b/tools/toolkits/social/whatsapp.mdx @@ -126,4 +126,4 @@ from agno.tools.whatsapp import ReplyButton, ListSection, ListRow ## Developer Resources - [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/whatsapp.py) -- [WhatsApp Interface Cookbooks](https://github.com/agno-agi/agno/tree/main/cookbook/05_agent_os/interfaces/whatsapp) +- [WhatsApp Interface Cookbooks](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/05_agent_os/interfaces/whatsapp) diff --git a/tools/toolkits/web-scrape/crawl4ai.mdx b/tools/toolkits/web-scrape/crawl4ai.mdx index a5c533987..081f7fc60 100644 --- a/tools/toolkits/web-scrape/crawl4ai.mdx +++ b/tools/toolkits/web-scrape/crawl4ai.mdx @@ -7,12 +7,13 @@ description: "Crawl4aiTools exposes a crawl function that fetches one or more UR ## Prerequisites -The following example requires the `crawl4ai` library and its browser runtime. +The following example requires the `crawl4ai` library, its browser runtime, and an `OPENAI_API_KEY` for the Agent's default model. ```bash uv pip install -U crawl4ai openai crawl4ai-setup crawl4ai-doctor +export OPENAI_API_KEY="your-openai-api-key" ``` ## Example diff --git a/use-cases/data-agents/querying-your-data.mdx b/use-cases/data-agents/querying-your-data.mdx index c9303582b..ec7d66a01 100644 --- a/use-cases/data-agents/querying-your-data.mdx +++ b/use-cases/data-agents/querying-your-data.mdx @@ -64,5 +64,5 @@ A data agent that guesses column names is wrong confidently. `SQLTools` ships `l ## Developer Resources -- [SQL tools cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/sql_tools.py) +- [SQL tools cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/sql_tools.py) - [Dash: the multi-agent data team](/deploy/templates/dash/overview) diff --git a/use-cases/data-agents/self-correcting-agents.mdx b/use-cases/data-agents/self-correcting-agents.mdx index a108aeccc..84bbbad9d 100644 --- a/use-cases/data-agents/self-correcting-agents.mdx +++ b/use-cases/data-agents/self-correcting-agents.mdx @@ -109,4 +109,4 @@ lm.decision_log_store.print(agent_id=agent.id, limit=5) - [Learning Machines](/learning/overview) - [Learning modes](/learning/learning-modes) - [Decision Log store](/learning/stores/decision-log) -- [Learned knowledge cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/08_learning/05_learned_knowledge) +- [Learned knowledge cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/08_learning/05_learned_knowledge) diff --git a/use-cases/data-labeling/classification.mdx b/use-cases/data-labeling/classification.mdx index 4d09e5063..feebf6b38 100644 --- a/use-cases/data-labeling/classification.mdx +++ b/use-cases/data-labeling/classification.mdx @@ -129,10 +129,10 @@ Image, audio, video, and document classification follow the same schema pattern | Modality | Cookbook | |----------|----------| -| Image | [image_classification](https://github.com/agno-agi/agno/tree/main/cookbook/data_labeling/_06_image_classification) | -| Audio | [audio_classification](https://github.com/agno-agi/agno/tree/main/cookbook/data_labeling/_10_audio_classification) | -| Video | [video_classification](https://github.com/agno-agi/agno/tree/main/cookbook/data_labeling/_13_video_classification) | -| Document | [document_classification](https://github.com/agno-agi/agno/tree/main/cookbook/data_labeling/_15_document_classification) | +| Image | [image_classification](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/data_labeling/_06_image_classification) | +| Audio | [audio_classification](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/data_labeling/_10_audio_classification) | +| Video | [video_classification](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/data_labeling/_13_video_classification) | +| Document | [document_classification](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/data_labeling/_15_document_classification) | ## Next steps @@ -144,5 +144,5 @@ Image, audio, video, and document classification follow the same schema pattern ## Developer Resources -- [Text classification cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/data_labeling/_01_text_classification) -- [Span labeling cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/data_labeling/_04_text_span_labeling) +- [Text classification cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/data_labeling/_01_text_classification) +- [Span labeling cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/data_labeling/_04_text_span_labeling) diff --git a/use-cases/data-labeling/llm-as-judge.mdx b/use-cases/data-labeling/llm-as-judge.mdx index ecab5487f..201d9267f 100644 --- a/use-cases/data-labeling/llm-as-judge.mdx +++ b/use-cases/data-labeling/llm-as-judge.mdx @@ -88,5 +88,5 @@ This is the same primitive as single-label classification, pointed at model outp ## Developer Resources -- [LLM-as-judge cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/data_labeling/_17_llm_as_judge) +- [LLM-as-judge cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/data_labeling/_17_llm_as_judge) - [Evals](/evals/overview) diff --git a/use-cases/data-labeling/multimodal-inputs.mdx b/use-cases/data-labeling/multimodal-inputs.mdx index 71598e7a5..5d1553bd1 100644 --- a/use-cases/data-labeling/multimodal-inputs.mdx +++ b/use-cases/data-labeling/multimodal-inputs.mdx @@ -92,7 +92,7 @@ class BoundingBox(BaseModel): The per-field `description` on `x`, `y`, `width`, and `height` is load-bearing. Without it, and without the `[0, 1]` convention spelled out in the instructions, models return degenerate boxes (all-zero or whole-image). Spell out the coordinate system in both places. -The [bounding boxes cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/data_labeling/_08_image_bounding_boxes) has runnable single-object, multi-object, and per-box confidence variants. +The [bounding boxes cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/data_labeling/_08_image_bounding_boxes) has runnable single-object, multi-object, and per-box confidence variants. ## Transcription and diarization @@ -118,8 +118,8 @@ The cookbook uses `gemini-3.5-flash` across its text, image, audio, video, and P ## Developer Resources -- [Image extraction cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/data_labeling/_07_image_extraction) -- [Audio transcription cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/data_labeling/_11_audio_transcription) -- [Video extraction cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/data_labeling/_14_video_extraction) -- [Document extraction cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/data_labeling/_16_document_extraction) +- [Image extraction cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/data_labeling/_07_image_extraction) +- [Audio transcription cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/data_labeling/_11_audio_transcription) +- [Video extraction cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/data_labeling/_14_video_extraction) +- [Document extraction cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/data_labeling/_16_document_extraction) - [Multimodal agents](/multimodal/overview) diff --git a/use-cases/data-labeling/overview.mdx b/use-cases/data-labeling/overview.mdx index 59cef9628..111de100f 100644 --- a/use-cases/data-labeling/overview.mdx +++ b/use-cases/data-labeling/overview.mdx @@ -45,7 +45,7 @@ Swap the schema and instructions and the same pattern covers data extraction, sp -If you're looking to jump straight into code, the [data labeling cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/data_labeling) contains 40+ runnable recipes across 18 data labeling patterns. +If you're looking to jump straight into code, the [data labeling cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/data_labeling) contains 40+ runnable recipes across 18 data labeling patterns. @@ -105,6 +105,6 @@ export ANTHROPIC_API_KEY=*** ## Developer Resources -- [Data labeling cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/data_labeling) +- [Data labeling cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/data_labeling) - [Structured output](/input-output/structured-output/agent) - [Multimodal agents](/multimodal/overview) diff --git a/use-cases/data-labeling/preference-data.mdx b/use-cases/data-labeling/preference-data.mdx index 11519d0f1..709308fa0 100644 --- a/use-cases/data-labeling/preference-data.mdx +++ b/use-cases/data-labeling/preference-data.mdx @@ -95,4 +95,4 @@ A single judge can favor whichever response is shown first. Run the comparison t ## Developer Resources -- [Pairwise preference cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/data_labeling/_05_text_pairwise_preference) +- [Pairwise preference cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/data_labeling/_05_text_pairwise_preference) diff --git a/use-cases/data-labeling/quality-pipeline.mdx b/use-cases/data-labeling/quality-pipeline.mdx index afdd69b26..10a0aa3e8 100644 --- a/use-cases/data-labeling/quality-pipeline.mdx +++ b/use-cases/data-labeling/quality-pipeline.mdx @@ -118,5 +118,5 @@ Agno gives you the orchestration primitives. These concerns are yours to add. ## Developer Resources -- [Quality review cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/data_labeling/_18_quality_review) +- [Quality review cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/data_labeling/_18_quality_review) - [Workflows overview](/workflows/overview) diff --git a/use-cases/data-labeling/structured-extraction.mdx b/use-cases/data-labeling/structured-extraction.mdx index c23b6b718..3f5d00485 100644 --- a/use-cases/data-labeling/structured-extraction.mdx +++ b/use-cases/data-labeling/structured-extraction.mdx @@ -120,15 +120,15 @@ The input argument changes per modality. Use a model that supports both that mod | Input | Argument | Cookbook | |-------|----------|----------| -| Text | `agent.run(text)` | [text_extraction](https://github.com/agno-agi/agno/tree/main/cookbook/data_labeling/_03_text_extraction) | -| Image | `images=[Image(url=...)]` | [image_extraction](https://github.com/agno-agi/agno/tree/main/cookbook/data_labeling/_07_image_extraction) | -| Audio | `audio=[Audio(content=...)]` | [audio_extraction](https://github.com/agno-agi/agno/tree/main/cookbook/data_labeling/_12_audio_extraction) | -| Video | `videos=[Video(content=..., format="mp4")]` | [video_extraction](https://github.com/agno-agi/agno/tree/main/cookbook/data_labeling/_14_video_extraction) | -| PDF | `files=[File(url=...)]` | [document_extraction](https://github.com/agno-agi/agno/tree/main/cookbook/data_labeling/_16_document_extraction) | +| Text | `agent.run(text)` | [text_extraction](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/data_labeling/_03_text_extraction) | +| Image | `images=[Image(url=...)]` | [image_extraction](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/data_labeling/_07_image_extraction) | +| Audio | `audio=[Audio(content=...)]` | [audio_extraction](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/data_labeling/_12_audio_extraction) | +| Video | `videos=[Video(content=..., format="mp4")]` | [video_extraction](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/data_labeling/_14_video_extraction) | +| PDF | `files=[File(url=...)]` | [document_extraction](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/data_labeling/_16_document_extraction) | ## Extract then embed -`image_extraction_to_vectordb` extends extraction with an embed-and-store step: describe each image into a typed object, flatten it to a searchable string, embed it, and store it in LanceDb for similarity search. See the [cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/data_labeling/_09_image_extraction_to_vectordb). +`image_extraction_to_vectordb` extends extraction with an embed-and-store step: describe each image into a typed object, flatten it to a searchable string, embed it, and store it in LanceDb for similarity search. See the [cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/data_labeling/_09_image_extraction_to_vectordb). This recipe needs LanceDb on top of the Google provider: @@ -146,5 +146,5 @@ pip install lancedb tantivy ## Developer Resources -- [Text extraction cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/data_labeling/_03_text_extraction) +- [Text extraction cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/data_labeling/_03_text_extraction) - [Structured output](/input-output/structured-output/agent) diff --git a/use-cases/deep-research/institutional-learning.mdx b/use-cases/deep-research/institutional-learning.mdx index a99b25468..0ce1d098a 100644 --- a/use-cases/deep-research/institutional-learning.mdx +++ b/use-cases/deep-research/institutional-learning.mdx @@ -101,4 +101,4 @@ This is the same machine the [data agent uses to self-correct](/use-cases/data-a - [Learning Machines](/learning/overview) - [Learning modes](/learning/learning-modes) -- [Learned knowledge cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/08_learning/05_learned_knowledge) +- [Learned knowledge cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/08_learning/05_learned_knowledge) diff --git a/use-cases/deep-research/orchestration-patterns.mdx b/use-cases/deep-research/orchestration-patterns.mdx index 367da0b6f..d266ae393 100644 --- a/use-cases/deep-research/orchestration-patterns.mdx +++ b/use-cases/deep-research/orchestration-patterns.mdx @@ -116,6 +116,6 @@ Use Teams for adaptive exploration and a Workflow when the decision path must be - [Teams](/teams/overview) - [Team delegation](/teams/delegation) -- [Team modes cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/03_teams/02_modes) +- [Team modes cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/03_teams/02_modes) - [Workflows](/workflows/overview) -- [Workflow cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/04_workflows) +- [Workflow cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/04_workflows) diff --git a/use-cases/deep-research/overview.mdx b/use-cases/deep-research/overview.mdx index 11eb93d6a..028039957 100644 --- a/use-cases/deep-research/overview.mdx +++ b/use-cases/deep-research/overview.mdx @@ -61,5 +61,5 @@ That is a five-step review with a parallel deep-dive. The same shape holds for o - [Workflows](/workflows/overview) - [Teams](/teams/overview) -- [Workflows cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/04_workflows) +- [Workflows cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/04_workflows) - [Investment committee on GitHub](https://github.com/agno-agi/investment-team) diff --git a/use-cases/deep-research/parallel-investigation.mdx b/use-cases/deep-research/parallel-investigation.mdx index 0ba820306..fa37f7259 100644 --- a/use-cases/deep-research/parallel-investigation.mdx +++ b/use-cases/deep-research/parallel-investigation.mdx @@ -70,4 +70,4 @@ Deep research is slow because it is thorough. Parallelism keeps thoroughness aff ## Developer Resources - [Parallel workflows](/workflows/workflow-patterns/parallel-workflow) -- [Parallel execution cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/04_workflows/04_parallel_execution) +- [Parallel execution cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/04_workflows/04_parallel_execution) diff --git a/use-cases/deep-research/serve-and-embed.mdx b/use-cases/deep-research/serve-and-embed.mdx index f18d79ca1..90ca453da 100644 --- a/use-cases/deep-research/serve-and-embed.mdx +++ b/use-cases/deep-research/serve-and-embed.mdx @@ -66,5 +66,5 @@ AgentOS ships the scheduler. Start it with `AgentOS(..., scheduler=True)` and re ## Developer Resources - [Serve as an API](/features/api) -- [AgentOS cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/05_agent_os) +- [AgentOS cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/05_agent_os) - [Scheduling](/features/scheduling) diff --git a/use-cases/deep-research/structured-deliverable.mdx b/use-cases/deep-research/structured-deliverable.mdx index 1881da383..478b2a4da 100644 --- a/use-cases/deep-research/structured-deliverable.mdx +++ b/use-cases/deep-research/structured-deliverable.mdx @@ -83,5 +83,5 @@ When a decision triggers a real action (moving capital, publishing a number), pu ## Developer Resources - [Structured output](/input-output/structured-output/agent) -- [Workflows cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/04_workflows) +- [Workflows cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/04_workflows) - [Human approval](/hitl/overview) diff --git a/use-cases/document-processing/batch-and-durability.mdx b/use-cases/document-processing/batch-and-durability.mdx index 8bf9cfab5..c84739a5b 100644 --- a/use-cases/document-processing/batch-and-durability.mdx +++ b/use-cases/document-processing/batch-and-durability.mdx @@ -201,6 +201,6 @@ Failed attempts keep their error text. Retries are separate rows with the same ` ## Developer Resources -- [Scheduler cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/05_agent_os/scheduler) -- [Background execution cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/02_agents/14_advanced/background_execution.py) -- [Workflows cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/04_workflows) +- [Scheduler cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/05_agent_os/scheduler) +- [Background execution cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/14_advanced/background_execution.py) +- [Workflows cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/04_workflows) diff --git a/use-cases/document-processing/contracts.mdx b/use-cases/document-processing/contracts.mdx index 5276e61d8..26f973113 100644 --- a/use-cases/document-processing/contracts.mdx +++ b/use-cases/document-processing/contracts.mdx @@ -143,5 +143,5 @@ Agno sends the PDF to the model as a single file input: a URL reference when you ## Developer Resources -- [Document extraction cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/data_labeling/_16_document_extraction) +- [Document extraction cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/data_labeling/_16_document_extraction) - [Structured output](/input-output/structured-output/agent) diff --git a/use-cases/document-processing/forms-and-intake.mdx b/use-cases/document-processing/forms-and-intake.mdx index 59bcd63dc..588b73767 100644 --- a/use-cases/document-processing/forms-and-intake.mdx +++ b/use-cases/document-processing/forms-and-intake.mdx @@ -146,5 +146,5 @@ The agent code is the same across all four. The schema decides the workload. ## Developer Resources -- [Document extraction cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/data_labeling/_16_document_extraction) +- [Document extraction cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/data_labeling/_16_document_extraction) - [Structured output](/input-output/structured-output/agent) diff --git a/use-cases/document-processing/human-routing-and-eval.mdx b/use-cases/document-processing/human-routing-and-eval.mdx index 1b4a0d1e4..fbca44984 100644 --- a/use-cases/document-processing/human-routing-and-eval.mdx +++ b/use-cases/document-processing/human-routing-and-eval.mdx @@ -185,7 +185,7 @@ for doc in golden_set: ) ``` -Passing `db=db` stores each evaluation result. Compare model-judge scores across repeated runs with a fixed judge configuration, and add deterministic field checks for invoice numbers, dates, totals, and line items. See the [evals cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/09_evals/accuracy) for database logging and the team variant. +Passing `db=db` stores each evaluation result. Compare model-judge scores across repeated runs with a fixed judge configuration, and add deterministic field checks for invoice numbers, dates, totals, and line items. See the [evals cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/09_evals/accuracy) for database logging and the team variant. ## Three patterns, one job @@ -207,6 +207,6 @@ The first two gate a single document. The third records a model-judge signal for ## Developer Resources -- [Approval cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/02_agents/11_approvals) -- [Accuracy eval cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/09_evals/accuracy) +- [Approval cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/02_agents/11_approvals) +- [Accuracy eval cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/09_evals/accuracy) - [Human approval](/hitl/overview) diff --git a/use-cases/document-processing/invoices-and-receipts.mdx b/use-cases/document-processing/invoices-and-receipts.mdx index 95c6845f9..e5d08a407 100644 --- a/use-cases/document-processing/invoices-and-receipts.mdx +++ b/use-cases/document-processing/invoices-and-receipts.mdx @@ -120,5 +120,5 @@ Production AP sees faxed copies, partial scans, and mixed-language invoices. Whe ## Developer Resources -- [Document extraction cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/data_labeling/_16_document_extraction) +- [Document extraction cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/data_labeling/_16_document_extraction) - [Structured output](/input-output/structured-output/agent) diff --git a/use-cases/document-processing/overview.mdx b/use-cases/document-processing/overview.mdx index e7b4f3ab0..c8f48f8ac 100644 --- a/use-cases/document-processing/overview.mdx +++ b/use-cases/document-processing/overview.mdx @@ -96,7 +96,7 @@ result = agent.run( ## Developer Resources -- [Document extraction cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/data_labeling/_16_document_extraction) +- [Document extraction cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/data_labeling/_16_document_extraction) - [Structured output](/input-output/structured-output/agent) - [Workflows](/workflows/overview) -- [Scheduler cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/05_agent_os/scheduler) +- [Scheduler cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/05_agent_os/scheduler) diff --git a/use-cases/product-agents/connecting-your-data.mdx b/use-cases/product-agents/connecting-your-data.mdx index aadca5510..4f34091eb 100644 --- a/use-cases/product-agents/connecting-your-data.mdx +++ b/use-cases/product-agents/connecting-your-data.mdx @@ -79,6 +79,6 @@ For providers that support writes, `write=False` removes the update tool from th ## Developer Resources - [Context engineering](/context/overview) -- [Context providers cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/12_context) +- [Context providers cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/12_context) - [What are Context Providers?](/context-providers/overview) - [Scout: connect MCP servers](/deploy/templates/scout/overview) diff --git a/use-cases/product-agents/interfaces.mdx b/use-cases/product-agents/interfaces.mdx index 44ef9b1cc..078335312 100644 --- a/use-cases/product-agents/interfaces.mdx +++ b/use-cases/product-agents/interfaces.mdx @@ -111,6 +111,6 @@ For a one-off integration, a custom FastAPI route that calls the agent is enough ## Developer Resources - [Interfaces in the runtime](/features/interfaces) -- [Interfaces cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/05_agent_os/interfaces) +- [Interfaces cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/05_agent_os/interfaces) - [Slack interface](/agent-os/interfaces/slack/introduction) - [AG-UI interface](/agent-os/interfaces/ag-ui/introduction) diff --git a/use-cases/product-agents/sessions-and-memory.mdx b/use-cases/product-agents/sessions-and-memory.mdx index 99af9defa..4205f645a 100644 --- a/use-cases/product-agents/sessions-and-memory.mdx +++ b/use-cases/product-agents/sessions-and-memory.mdx @@ -90,4 +90,4 @@ memories = agent.get_user_memories(user_id="sarah@acme.com") - [Sessions](/sessions/overview) - [Session management](/sessions/session-management) - [Memory](/memory/overview) -- [Memory cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/11_memory) +- [Memory cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/11_memory) diff --git a/workflows/background-execution.mdx b/workflows/background-execution.mdx index 1ed84abe3..ed6455daa 100644 --- a/workflows/background-execution.mdx +++ b/workflows/background-execution.mdx @@ -155,11 +155,11 @@ if __name__ == "__main__": ``` -You can also use WebSocket for background workflows. See the [Workflow WebSocket](https://github.com/agno-agi/agno/tree/main/cookbook/04_workflows/06_advanced_concepts/background_execution) examples. +You can also use WebSocket for background workflows. See the [Workflow WebSocket](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/04_workflows/06_advanced_concepts/background_execution) examples. ## Developer Resources -- [Background Execution Poll](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/background_execution/background_poll.py) -- [Background Execution WebSocket](https://github.com/agno-agi/agno/blob/main/cookbook/04_workflows/06_advanced_concepts/background_execution/websocket_server.py) +- [Background Execution Poll](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/background_execution/background_poll.py) +- [Background Execution WebSocket](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/04_workflows/06_advanced_concepts/background_execution/websocket_server.py) - [Background Execution guide](/background-execution/overview) diff --git a/workflows/hitl/executor.mdx b/workflows/hitl/executor.mdx index 8ded83c0e..e540d9c51 100644 --- a/workflows/hitl/executor.mdx +++ b/workflows/hitl/executor.mdx @@ -274,7 +274,7 @@ The resolution code does not change: walk `step_requirements`, find the entry wi ## Cookbooks -Runnable examples in [cookbook/04_workflows/08_human_in_the_loop/executor_hitl/](https://github.com/agno-agi/agno/tree/main/cookbook/04_workflows/08_human_in_the_loop/executor_hitl): +Runnable examples in [cookbook/04_workflows/08_human_in_the_loop/executor_hitl/](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/executor_hitl): | File | Demonstrates | |------|-------------| @@ -295,4 +295,4 @@ Runnable examples in [cookbook/04_workflows/08_human_in_the_loop/executor_hitl/] - [Nested HITL](/workflows/hitl/nested) - [Step HITL](/workflows/hitl/step) - [Agent HITL](/hitl/overview) -- [Cookbooks](https://github.com/agno-agi/agno/tree/main/cookbook/04_workflows/08_human_in_the_loop/executor_hitl) +- [Cookbooks](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/executor_hitl) diff --git a/workflows/hitl/nested.mdx b/workflows/hitl/nested.mdx index d5664bc42..9834f6450 100644 --- a/workflows/hitl/nested.mdx +++ b/workflows/hitl/nested.mdx @@ -109,7 +109,7 @@ print(run_output.content) ## Cookbooks -Runnable examples in [cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/](https://github.com/agno-agi/agno/tree/main/cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl): +Runnable examples in [cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl/](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl): | File | Step-Level Gate | Executor-Level Gate | |------|----------------|---------------------| @@ -130,4 +130,4 @@ Runnable examples in [cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl - [Executor HITL](/workflows/hitl/executor) - [Output Review](/workflows/hitl/output-review) - [Router HITL](/workflows/hitl/router) -- [Cookbooks](https://github.com/agno-agi/agno/tree/main/cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl) +- [Cookbooks](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/dual_level_hitl) diff --git a/workflows/hitl/output-review.mdx b/workflows/hitl/output-review.mdx index 21dfaa170..c019dd9ce 100644 --- a/workflows/hitl/output-review.mdx +++ b/workflows/hitl/output-review.mdx @@ -261,4 +261,4 @@ When a step pauses for output review, the `StepRequirement` includes: - [Workflow HITL overview](/workflows/hitl/overview) - [Timeout](/workflows/hitl/timeout) - [Step reference](/reference/workflows/step) -- [Cookbooks](https://github.com/agno-agi/agno/tree/main/cookbook/04_workflows/08_human_in_the_loop/output_review) +- [Cookbooks](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/output_review) diff --git a/workflows/hitl/overview.mdx b/workflows/hitl/overview.mdx index 4ff5bedee..7daf31b4f 100644 --- a/workflows/hitl/overview.mdx +++ b/workflows/hitl/overview.mdx @@ -242,7 +242,7 @@ Step(name="process", executor=process_data) ## Developer Resources - [HumanReview Config](/workflows/hitl/human-review) -- [Cookbooks](https://github.com/agno-agi/agno/tree/main/cookbook/04_workflows/08_human_in_the_loop) +- [Cookbooks](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/04_workflows/08_human_in_the_loop) - [Step reference](/reference/workflows/step) - [Router reference](/reference/workflows/router-steps) - [Condition reference](/reference/workflows/conditional-steps) diff --git a/workflows/hitl/step.mdx b/workflows/hitl/step.mdx index 8db84b585..a73bc0952 100644 --- a/workflows/hitl/step.mdx +++ b/workflows/hitl/step.mdx @@ -341,6 +341,6 @@ while run_output.is_paused: - [Timeout](/workflows/hitl/timeout) - [Workflow HITL overview](/workflows/hitl/overview) - [Step reference](/reference/workflows/step) -- [Confirmation cookbooks](https://github.com/agno-agi/agno/tree/main/cookbook/04_workflows/08_human_in_the_loop/confirmation) -- [User input cookbooks](https://github.com/agno-agi/agno/tree/main/cookbook/04_workflows/08_human_in_the_loop/user_input) -- [Output review cookbooks](https://github.com/agno-agi/agno/tree/main/cookbook/04_workflows/08_human_in_the_loop/output_review) +- [Confirmation cookbooks](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/confirmation) +- [User input cookbooks](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/user_input) +- [Output review cookbooks](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/output_review) diff --git a/workflows/hitl/timeout.mdx b/workflows/hitl/timeout.mdx index 185f20782..fdb504bc0 100644 --- a/workflows/hitl/timeout.mdx +++ b/workflows/hitl/timeout.mdx @@ -107,4 +107,4 @@ Step( - [Output Review](/workflows/hitl/output-review) - [Workflow HITL overview](/workflows/hitl/overview) - [Step reference](/reference/workflows/step) -- [Cookbooks](https://github.com/agno-agi/agno/tree/main/cookbook/04_workflows/08_human_in_the_loop/timeout) +- [Cookbooks](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/04_workflows/08_human_in_the_loop/timeout) diff --git a/workflows/running-workflows.mdx b/workflows/running-workflows.mdx index 6e1d84142..baa87af71 100644 --- a/workflows/running-workflows.mdx +++ b/workflows/running-workflows.mdx @@ -577,4 +577,4 @@ See the [Workflow class reference](/reference/workflows/workflow) for more detai - [Workflow reference](/reference/workflows/workflow) - [WorkflowRunOutput schema](/reference/workflows/run-output) -- [Cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/04_workflows) +- [Cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/04_workflows) From 713a73e1cd1b73662be86b143b7484fe8eb4ee9d Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 12:39:43 +0100 Subject: [PATCH 38/47] docs: close final v2.7.4 audit gaps --- context-providers/providers/wiki.mdx | 4 ++ examples/tools/python-tools.mdx | 8 ++++ guardrails/included/pii.mdx | 22 ++++++---- hitl/user-input.mdx | 20 +++++---- reference-api/openapi.json | 2 +- reference-api/openapi.yaml | 1 - scripts/README.md | 4 +- scripts/examples_sync/apply_oneoffs.py | 39 ++++++++++------- scripts/examples_sync/check_integrity.py | 43 ++++++++++++++---- scripts/examples_sync/generate.py | 20 +++++---- scripts/make_openapi.py | 55 ++++++++++++++++++++---- tools/toolkits/local/file.mdx | 6 ++- tools/toolkits/others/composio.mdx | 6 +++ tools/toolkits/others/docling.mdx | 2 +- tools/toolkits/others/eleven-labs.mdx | 3 +- 15 files changed, 168 insertions(+), 67 deletions(-) diff --git a/context-providers/providers/wiki.mdx b/context-providers/providers/wiki.mdx index acb0abb83..7482db224 100644 --- a/context-providers/providers/wiki.mdx +++ b/context-providers/providers/wiki.mdx @@ -33,6 +33,10 @@ await agent.arun("Add a page about our deployment process") await wiki.aclose() ``` + +Git and Notion backends can write to external systems. Scope credentials to only the target repository or database. For query-only access, set `write=False` on `WikiContextProvider`; this omits the `update_wiki` tool. + + ## Backends diff --git a/examples/tools/python-tools.mdx b/examples/tools/python-tools.mdx index 76c23921f..4a162d002 100644 --- a/examples/tools/python-tools.mdx +++ b/examples/tools/python-tools.mdx @@ -70,7 +70,14 @@ if __name__ == "__main__": ) ``` + +`include_tools` and `exclude_tools` control which toolkit functions are registered. They do not sandbox code executed by `run_python_code` or `save_to_file_and_run`. Executed code runs with the current Python process permissions and can install packages, read environment variables and files, or make network requests. Use an isolated environment with only the credentials and filesystem access the agent needs. + + ## Run the Example + +Set `OPENAI_API_KEY` before running the example. + ```bash # Clone and setup repo git clone --branch v2.7.4 --depth 1 https://github.com/agno-agi/agno.git @@ -80,6 +87,7 @@ cd agno ./scripts/demo_setup.sh source .venvs/demo/bin/activate +export OPENAI_API_KEY="your_openai_api_key_here" python cookbook/91_tools/python_tools.py ``` For details, see [PythonTools cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/python_tools.py). diff --git a/guardrails/included/pii.mdx b/guardrails/included/pii.mdx index 87eb574f1..ea9432773 100644 --- a/guardrails/included/pii.mdx +++ b/guardrails/included/pii.mdx @@ -1,12 +1,16 @@ --- title: PII Detection Guardrail sidebarTitle: PII Detection -description: Detect personally identifiable information in agent inputs. +description: Detect configured personally identifiable information formats in agent inputs. --- -The PII Detection Guardrail is a built-in guardrail you can use to detect PII (Personally Identifiable Information) in the input of your Agents. +The PII Detection Guardrail checks agent input text against built-in and custom regular expressions for personally identifiable information (PII). -This is useful for applications where you don't want to allow PII to be sent to the LLM. +Use it as a pre-hook to reject input containing configured patterns or mask matching text before the run continues. + + +Pattern matching does not establish that an input contains no PII. Add custom patterns or separate controls for formats your application must cover. + ## Basic Usage @@ -26,12 +30,12 @@ agent = Agent( ## PII fields -The default list of PII fields handled by the guardrail is: +The built-in checks match these formats: -- Social Security Numbers (SSNs) -- Credit Card Numbers -- Email Addresses -- Phone Numbers +- US Social Security numbers written as `123-45-6789` +- 16-digit credit card numbers, with optional spaces or hyphens between groups +- Email addresses +- 10-digit phone numbers, with optional spaces, periods, or hyphens You can also select which specific fields you want to detect. For example, we can disable the Email check by doing this: @@ -69,7 +73,7 @@ guardrail = PIIDetectionGuardrail( ) ``` -This will mask all the PII in the input with asterisk characters. For example, if you are checking for emails, the string `joe@example.com` will be masked as `***************`. +This masks text matched by the enabled patterns with asterisk characters. For example, if you are checking for emails, the string `joe@example.com` will be masked as `***************`. ## Developer Resources diff --git a/hitl/user-input.mdx b/hitl/user-input.mdx index 1576a5382..def350cc5 100644 --- a/hitl/user-input.mdx +++ b/hitl/user-input.mdx @@ -26,7 +26,7 @@ The key difference from user confirmation is that here you provide *data* to fil ## Collecting Specific Fields -You can control which fields require user input using the `user_input_fields` parameter. Fields not in this list will be filled by the agent automatically based on the conversation context. +You can control which fields require user input using the `user_input_fields` parameter. Fields not in this list remain in the tool schema and may be filled by the agent from the conversation context. In the example below, the agent pauses to collect the `to_address` parameter from the user for the `send_email` tool: @@ -41,7 +41,7 @@ from agno.tools.function import UserInputField from agno.utils import pprint -# You can either specify the user_input_fields or leave empty for all fields to be provided by the user +# Explicitly list fields that must be supplied by the user @tool(requires_user_input=True, user_input_fields=["to_address"]) def send_email(subject: str, body: str, to_address: str) -> str: """ @@ -118,29 +118,32 @@ The same `UserInputField` structure is used in [Dynamic User Input](/hitl/dynami ## Collecting All Fields -If you want the user to provide *all* fields instead of letting the agent fill some automatically, simply omit the `user_input_fields` parameter or pass an empty list: +Omitting `user_input_fields` or passing an empty list leaves all parameters in the tool schema. It does not force the user to provide every field. To require user input for all parameters, list every field explicitly: ```python -@tool(requires_user_input=True) # No user_input_fields means all fields need user input +@tool( + requires_user_input=True, + user_input_fields=["subject", "body", "to_address"], +) def send_email(subject: str, body: str, to_address: str) -> str: """Send an email.""" return f"Sent email to {to_address} with subject {subject} and body {body}" ``` -This is useful when you want complete control over the data being passed to sensitive operations, or when you don't trust the LLM to extract the right values from context. +Listed fields are removed from the model-facing tool schema and remain available in `user_input_schema` for your application to fill before continuing the run. ## Handling Pre-Filled Values -When you specify `user_input_fields`, you're telling the agent which parameters the user should provide. The agent will automatically fill in the other parameters based on the conversation context. +When you specify `user_input_fields`, you're telling the agent which parameters the user should provide. The agent can fill in other parameters based on the conversation context. For example, with `user_input_fields=["to_address"]` on a `send_email(subject, body, to_address)` function: -- **`subject` and `body`** (not in the list) → Agent fills these from context, `value="Hello"` etc. +- **`subject` and `body`** (not in the list) → Agent can fill these from context, `value="Hello"` etc. - **`to_address`** (in the list) → User must provide this, `value=None` The `user_input_schema` will include all parameters, but you only need to collect values for fields where `value=None`: ```python -# You can either specify the user_input_fields or leave empty for all fields to be provided by the user +# Explicitly list fields that must be supplied by the user @tool(requires_user_input=True, user_input_fields=["to_address"]) def send_email(subject: str, body: str, to_address: str) -> str: """ @@ -258,4 +261,3 @@ A tool can only use one of these patterns at a time. User input with streaming responses - diff --git a/reference-api/openapi.json b/reference-api/openapi.json index 5b2ad6ef0..e9fa6aec0 100644 --- a/reference-api/openapi.json +++ b/reference-api/openapi.json @@ -1 +1 @@ -{"openapi":"3.1.0","info":{"title":"Agno API Reference","description":"The all-in-one, private, secure agent platform that runs in your cloud.","version":"2.7.4"},"paths":{"/":{"get":{"tags":["Home"],"summary":"API Information","description":"Return the AgentOS instance name, ID, and version.","operationId":"get_api_info","responses":{"200":{"description":"API information retrieved successfully","content":{"application/json":{"schema":{"properties":{"name":{"type":"string","title":"Name"},"id":{"type":"string","title":"Id"},"version":{"type":"string","title":"Version"}},"type":"object","required":["name","id","version"],"title":"ApiInfoResponse"},"examples":{"home":{"summary":"Example home response","value":{"name":"AgentOS API","id":"demo-os","version":"1.0.0"}}}}}}}}},"/health":{"get":{"tags":["Health"],"summary":"Health Check","description":"Check the health status of the AgentOS API. Returns a simple status indicator.","operationId":"health_check","responses":{"200":{"description":"API is healthy and operational","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"},"example":{"status":"ok","instantiated_at":"2025-06-10T12:00:00Z"}}}}}}},"/info":{"get":{"tags":["Core"],"summary":"Get OS Info","description":"Return lightweight, unauthenticated metadata about this AgentOS instance.","operationId":"get_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoResponse"}}}}}}},"/config":{"get":{"tags":["Core"],"summary":"Get OS Configuration","description":"Retrieve the complete configuration of the AgentOS instance, including:\n\n- Available models and databases\n- Registered agents, teams, and workflows\n- Chat, session, memory, knowledge, and evaluation configurations\n- Available interfaces and their routes","operationId":"get_config","responses":{"200":{"description":"OS configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"},"example":{"description":"Example AgentOS configuration","available_models":[],"databases":["9c884dc4-9066-448c-9074-ef49ec7eb73c"],"session":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Sessions"}}]},"metrics":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Metrics"}}]},"memory":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Memory"}}]},"knowledge":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Knowledge"}}]},"evals":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Evals"}}]},"agents":[{"id":"main-agent","name":"Main Agent","db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c"}],"teams":[],"workflows":[],"interfaces":[],"os_id":"demo"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/models":{"get":{"tags":["Core"],"summary":"Get Available Models","description":"Retrieve a list of all unique models currently used by agents and teams in this OS instance. This includes the model ID and provider information for each model.","operationId":"get_models","responses":{"200":{"description":"List of models retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Response Get Models"},"example":[{"id":"gpt-4","provider":"openai"},{"id":"claude-3-sonnet","provider":"anthropic"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/agents/{agent_id}/runs":{"post":{"tags":["Agents"],"summary":"Create Agent Run","description":"Execute an agent with a message and optional media files. Supports both streaming and non-streaming responses.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_agent_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_agent_run"}}}},"responses":{"200":{"description":"Agent run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"examples":{"event_stream":{"summary":"Example event stream response","value":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Agents"],"summary":"List Agent Runs","description":"List runs for an agent within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_agent_runs","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED","title":"Status"},"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RunSchema"},"type":"array","title":"Response List Agent Runs"}}}},"400":{"description":"Run listing is unavailable for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Agent resolution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/cancel":{"post":{"tags":["Agents"],"summary":"Cancel Agent Run","description":"Request cancellation for `run_id`. After any required ownership check, local and factory agents store cancellation intent keyed by run ID. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote agent.","operationId":"cancel_agent_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.","title":"Session Id"},"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it."}],"responses":{"200":{"description":"Cancellation request accepted. The empty response does not confirm run existence or remote delivery.","content":{"application/json":{"schema":{}}}},"400":{"description":"A user-scoped caller omitted session_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found, or the run could not be verified in the caller's session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run cancellation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/continue":{"post":{"tags":["Agents"],"summary":"Continue Agent Run","description":"Advance a persisted agent run from its current state. Dispatches on the body shape and the persisted run state (see ADR-003 in specs/agno/features/checkpointing/decisions.md).\n\n**Variants:**\n- PAUSED + tools provided \u2192 apply HITL tool results, resume\n- PAUSED + resolved admin approval (empty tools) \u2192 apply resolution, resume\n- RUNNING / ERROR (no unresolved HITL requirements) \u2192 resume from last persisted state\n- COMPLETED + new tools \u2192 continue with appended messages\n\n**Tools Parameter:**\nJSON string containing array of tool execution objects with results. Optional \u2014 only required when the persisted run has unresolved HITL requirements.","operationId":"continue_agent_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_agent_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid tools or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Agent run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run continuation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"503":{"description":"Remote agent is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/agents/{agent_id}/sessions/{session_id}/fork":{"post":{"tags":["Agents"],"summary":"Fork Agent Session","description":"Deep-copy a session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_agent_session","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents":{"get":{"tags":["Agents"],"summary":"List All Agents","description":"Retrieve a comprehensive list of all agents configured in this OS instance.\n\n**Returns:**\n- Agent metadata (ID, name, description)\n- Model configuration and capabilities\n- Available tools and their configurations\n- Session, knowledge, memory, and reasoning settings\n- Only meaningful (non-default) configurations are included","operationId":"get_agents","responses":{"200":{"description":"List of agents retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentResponse"},"type":"array","title":"Response Get Agents"},"example":[{"id":"main-agent","name":"Main Agent","db_id":"c6bf0644-feb8-4930-a305-380dae5ad6aa","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Details","description":"Retrieve detailed configuration and capabilities of a specific agent.\n\n**Returns comprehensive agent information including:**\n- Model configuration and provider details\n- Complete tool inventory and configurations\n- Session management settings\n- Knowledge base and memory configurations\n- Reasoning capabilities and settings\n- System prompts and response formatting options","operationId":"get_agent","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Agent details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"},"example":{"id":"main-agent","name":"Main Agent","db_id":"9e064c70-6821-4840-a333-ce6230908a70","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Run","description":"Retrieve the status and output of an agent run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_agent_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Agents"],"summary":"List Agent Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_agent_run_checkpoints","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointListResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Agents"],"summary":"Get Agent Run Checkpoint Snapshot","description":"Return a derived run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_agent_run_checkpoint_snapshot","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointSnapshotResponse"}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/resume":{"post":{"tags":["Agents"],"summary":"Resume Agent Run Stream","description":"Resume an SSE stream for an agent run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_agent_run_stream","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_agent_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Not supported for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs":{"post":{"tags":["Teams"],"summary":"Create Team Run","description":"Execute a team collaboration with multiple agents working together on a task.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_team_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_team_run"}}}},"responses":{"200":{"description":"Team run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Teams"],"summary":"List Team Runs","description":"List runs for a team within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_team_runs","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/cancel":{"post":{"tags":["Teams"],"summary":"Cancel Team Run","description":"Request cancellation for `run_id`. After any required ownership check, local and factory teams store cancellation intent keyed by run ID and mark known member runs for cancellation. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote team.","operationId":"cancel_team_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.","title":"Session Id"},"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it."}],"responses":{"200":{"description":"Cancellation request accepted. The empty response does not confirm run existence or remote delivery.","content":{"application/json":{"schema":{}}}},"400":{"description":"A user-scoped caller omitted session_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found, or the run could not be verified in the caller's session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel team run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/resume":{"post":{"tags":["Teams"],"summary":"Resume Team Run Stream","description":"Resume an SSE stream for a team run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_team_run_stream","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_team_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory teams. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/continue":{"post":{"tags":["Teams"],"summary":"Continue Team Run","description":"Continue a paused or incomplete team run with updated requirements.\n\n**Use Cases:**\n- Resume execution after tool approval/rejection\n- Provide manual tool execution results\n- Resume after admin approval (requirements can be empty; resolution fetched from DB)\n\n**Requirements Parameter:**\nJSON string containing array of requirement objects with tool execution results.\nCan be empty when an admin-required approval has been resolved.","operationId":"continue_team_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_team_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid requirements or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Team run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Remote team is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/teams/{team_id}/sessions/{session_id}/fork":{"post":{"tags":["Teams"],"summary":"Fork Team Session","description":"Deep-copy a team session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_team_session","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams":{"get":{"tags":["Teams"],"summary":"List Accessible Teams","description":"Retrieve configured team metadata, models, members, knowledge, and memory settings. When authorization is enabled, in-memory team registrations are filtered by caller scopes. Database-loaded team components are also included.","operationId":"get_teams","responses":{"200":{"description":"List of teams retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamResponse"},"type":"array","title":"Response Get Teams"},"example":[{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"agno_memories","app_url":"/memory/1","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/teams/{team_id}":{"get":{"tags":["Teams"],"summary":"Get Team Details","description":"Retrieve detailed configuration and member information for a specific team.","operationId":"get_team","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"},"example":{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}":{"get":{"tags":["Teams"],"summary":"Get Team Run","description":"Retrieve the status and output of a team run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_team_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Teams"],"summary":"List Team Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored team run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_team_run_checkpoints","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointListResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Teams"],"summary":"Get Team Run Checkpoint Snapshot","description":"Return a derived team run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_team_run_checkpoint_snapshot","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointSnapshotResponse"}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows":{"get":{"tags":["Workflows"],"summary":"List Workflows","description":"Return workflow ID, name, description, database ID, factory metadata, and Builder version metadata. When authorization is enabled, caller scopes filter in-memory workflow registrations. Database-loaded Builder workflows are appended separately.","operationId":"get_workflows","responses":{"200":{"description":"List of workflows retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Response Get Workflows"},"example":[{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/workflows/{workflow_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Details","description":"Retrieve detailed configuration and step information for a specific workflow.","operationId":"get_workflow","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Workflow version to retrieve","title":"Version"},"description":"Workflow version to retrieve"}],"responses":{"200":{"description":"Workflow details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"},"example":{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs":{"post":{"tags":["Workflows"],"summary":"Execute Workflow","description":"Execute a workflow with the provided input data. Workflows can run in streaming or batch mode.\n\n**Execution Modes:**\n- **Streaming (`stream=true`)**: Real-time step-by-step execution updates via SSE\n- **Non-Streaming (`stream=false`)**: Complete workflow execution with final result\n\n**Workflow Execution Process:**\n1. Input validation against workflow schema\n2. Sequential or parallel step execution based on workflow design\n3. Data flow between steps with transformation\n4. Error handling and automatic retries where configured\n5. Final result compilation and response\n\n**Session Management:**\nWorkflows support session continuity for stateful execution across multiple runs.","operationId":"create_workflow_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_run"}}}},"responses":{"200":{"description":"Workflow executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid input data or workflow configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Workflow execution error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"List Workflow Runs","description":"List runs for a workflow within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_workflow_runs","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/continue":{"post":{"tags":["Workflows"],"summary":"Continue Workflow Run","description":"Continue a paused workflow run with resolved requirements.\n\n**Use Cases:**\n- Resume after step-level HITL (confirmation, user input, router selection)\n- Resume after executor-level HITL (agent/team tool confirmation within a step)\n\n**Requirements Parameter:**\nJSON string containing the resolved step requirements.","operationId":"continue_workflow_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_workflow_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: StepCompleted\ndata: {\"step_name\": \"step1\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid step requirements or factory input, missing required session ID, rejected input, or remote workflow continuation requested","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is not paused and cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/cancel":{"post":{"tags":["Workflows"],"summary":"Cancel Workflow Run","description":"Request cancellation for `run_id`. After any required ownership check, local and factory workflows store cancellation intent keyed by run ID and mark known agent or team executor runs for cancellation. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote workflow.","operationId":"cancel_workflow_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.","title":"Session Id"},"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it."}],"responses":{"200":{"description":"Cancellation request accepted. The empty response does not confirm run existence or remote delivery.","content":{"application/json":{"schema":{}}}},"400":{"description":"A user-scoped caller omitted session_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found, or the run could not be verified in the caller's session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel workflow run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/resume":{"post":{"tags":["Workflows"],"summary":"Resume Workflow Run Stream","description":"Resume an SSE stream for a workflow run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_workflow_run_stream","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_workflow_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory workflows. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Run","description":"Retrieve the status and output of a workflow run. Use this to poll for run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_workflow_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/slack/events":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Receives incoming Slack events (messages, mentions, thread starts).\n\n**URL Verification:** On first setup, Slack sends a `url_verification` challenge. The endpoint echoes back the challenge string.\n\n**Event Processing:** Normal events are acknowledged immediately with `{\"status\": \"ok\"}` and processed in the background. This prevents Slack's 3-second retry timeout.\n\n**Retry Handling:** Events with `X-Slack-Retry-Num` header are duplicates and return 200 without reprocessing.\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Event Subscriptions > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for creating a Slack App or use the [manifest](/agent-os/interfaces/slack/setup#2-create-the-slack-app) for quick setup.\n","operationId":"slack_events_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SlackChallengeResponse"},{"$ref":"#/components/schemas/SlackEventResponse"}],"title":"Response Slack Events Simple Agent"}}}},"400":{"description":"Missing Slack headers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured, or the event body is not valid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number (present on retried events)"}]}},"/slack/interactions":{"post":{"tags":["Slack"],"summary":"Slack Interactions","description":"Handles Slack interactive components for Human-in-the-Loop (HITL) workflows.\n\n**Supported Actions:**\n- `row_approve` - Approve a pending tool call\n- `row_reject` - Reject a pending tool call\n- `submit_pause` - Submit form data for a paused workflow\n- `check_status` - Check an admin approval and resume an approved run\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Interactivity & Shortcuts > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for step-by-step instructions or the [HITL guide](/agent-os/interfaces/slack/hitl) for approval workflows.\n","operationId":"slack_interactions_simple_agent","responses":{"200":{"description":"Interaction accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackEventResponse"}}}},"400":{"description":"Missing Slack headers or malformed interaction payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number. Retried interactions return 200 without reprocessing."}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"URL-encoded JSON interaction payload (Slack sends interactive component data as a single form field)"}}}}}}}},"/whatsapp/status":{"get":{"tags":["Whatsapp"],"summary":"Status","operationId":"whatsapp_status_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"WhatsAppStatusResponse","example":{"status":"available"}}}}}}}},"/whatsapp/webhook":{"get":{"tags":["Whatsapp"],"summary":"Whatsapp Verify","description":"Handle WhatsApp webhook verification","operationId":"whatsapp_verify_simple_agent","responses":{"200":{"description":"Webhook challenge accepted","content":{"text/plain":{"schema":{"type":"string"},"example":"challenge-token"}}},"400":{"description":"No challenge was provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid verify token or mode","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Webhook verification is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"hub.mode","in":"query","required":true,"schema":{"type":"string"},"description":"Webhook verification mode. Meta sends `subscribe`."},{"name":"hub.verify_token","in":"query","required":true,"schema":{"type":"string"},"description":"Verification token configured for the WhatsApp interface."},{"name":"hub.challenge","in":"query","required":true,"schema":{"type":"string"},"description":"Challenge returned as plain text after successful verification."}]},"post":{"tags":["Whatsapp"],"summary":"Whatsapp Webhook","description":"Process incoming WhatsApp messages","operationId":"whatsapp_webhook_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppWebhookResponse"}}}},"403":{"description":"Invalid webhook signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Signature validation is not configured, or the JSON body is malformed or is not an object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Hub-Signature-256","in":"header","required":true,"schema":{"type":"string"},"description":"SHA-256 HMAC signature for the raw request body, prefixed with `sha256=`"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}},"/telegram/status":{"get":{"tags":["Telegram"],"summary":"Telegram Status","operationId":"telegram_status_simple-agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramStatusResponse"}}}}}}},"/telegram/webhook":{"post":{"tags":["Telegram"],"summary":"Telegram Webhook","operationId":"telegram_webhook_simple-agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramWebhookResponse"}}}},"403":{"description":"Invalid webhook secret token"}}}},"/agui":{"post":{"tags":["AGUI"],"summary":"Run Agent","operationId":"run_agent_agui_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentInput"}}},"required":true},"responses":{"200":{"description":"Server-sent event stream","content":{"text/event-stream":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/status":{"get":{"tags":["AGUI"],"summary":"Get Status","operationId":"get_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/a2a/agents/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Agent Card","operationId":"get_agent_card_a2a_agents__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/a2a/agents/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Agent","description":"Send a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"A2A is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/agents/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Agent Task","description":"Get the status and result of an agent task by ID. `params.contextId` identifies the session containing the task.","operationId":"get_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent task retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Missing task or context ID, or task polling requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"Task polling is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/get","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/agents/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Agent Task","description":"Cancel a running agent task. Scoped non-admin callers must identify the task's session with `params.contextId`.","operationId":"cancel_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent task canceled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"canceled"}}}}}},"400":{"description":"Missing task or required context ID, or task cancellation requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"Task cancellation is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/cancel","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/agents/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Agent","description":"Stream a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/teams/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Team Card","operationId":"get_team_card_a2a_teams__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/a2a/teams/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Team","description":"Send a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/teams/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Team Task","description":"Get the status and result of a team task by ID. `params.contextId` identifies the session containing the task.","operationId":"get_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team task retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Missing task or context ID, or task polling requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/get","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/teams/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Team Task","description":"Cancel a running team task. Scoped non-admin callers must identify the task's session with `params.contextId`.","operationId":"cancel_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team task canceled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"canceled"}}}}}},"400":{"description":"Missing task or required context ID, or task cancellation requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/cancel","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/teams/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Team","description":"Stream a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/workflows/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Workflow Card","operationId":"get_workflow_card_a2a_workflows__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Workflow card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/a2a/workflows/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Workflow","description":"Send a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/workflows/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Workflow","description":"Stream a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/message/send":{"post":{"tags":["A2A"],"summary":"Send Message","description":"[DEPRECATED] Send a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"send_message","responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request or unsupported method","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, team, or workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"deprecated":true,"security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"X-Agent-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Target agent, team, or workflow ID when `params.message.agentId` is omitted."},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/message/stream":{"post":{"tags":["A2A"],"summary":"Stream Message","description":"[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as Server-Sent Events (SSE).","operationId":"stream_message","responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request or unsupported method","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, team, or workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"deprecated":true,"security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"X-Agent-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Target agent, team, or workflow ID when `params.message.agentId` is omitted."},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/sessions":{"get":{"tags":["Sessions"],"summary":"List Sessions","description":"Retrieve paginated list of sessions with filtering and sorting options. Supports filtering by session type (agent, team, workflow), component, user, and name. Sessions represent conversation histories and execution contexts.","operationId":"get_sessions","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types.","title":"Type"},"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types."},{"name":"component_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by component ID (agent/team/workflow ID)","title":"Component Id"},"description":"Filter sessions by component ID (agent/team/workflow ID)"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by user ID","title":"User Id"},"description":"Filter sessions by user ID"},{"name":"session_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by name (partial match)","title":"Session Name"},"description":"Filter sessions by name (partial match)"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of sessions to return per page","default":20,"title":"Limit"},"description":"Number of sessions to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort sessions by","default":"created_at","title":"Sort By"},"description":"Field to sort sessions by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query sessions from","title":"Db Id"},"description":"Database ID to query sessions from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Sessions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_SessionSchema_"},"example":{"session_example":{"summary":"Example session response","value":{"data":[{"session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_state":{},"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}]}}}}}},"400":{"description":"Invalid session type or filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in query parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Sessions"],"summary":"Create New Session","description":"Create a new empty session with optional configuration. Useful for pre-creating sessions with specific session_state, metadata, or other properties before running any agent/team/workflow interactions. The session can later be used by providing its session_id in run requests.","operationId":"create_session","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SessionType","description":"Type of session to create (agent, team, or workflow)","default":"agent"},"description":"Type of session to create (agent, team, or workflow)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to create session in","title":"Db Id"},"description":"Database ID to create session in"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest","description":"Session configuration data","default":{}}}}},"responses":{"201":{"description":"Session created successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Create Session"},"examples":{"agent_session_example":{"summary":"Example created agent session","value":{"user_id":"user-123","agent_session_id":"new-session-id","session_id":"new-session-id","session_name":"New Session","session_state":{"key":"value"},"metadata":{"key":"value"},"agent_id":"agent-1","created_at":"2025-10-21T12:00:00Z","updated_at":"2025-10-21T12:00:00Z"}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A session with the supplied session_id already exists"},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Multiple Sessions","description":"Delete multiple sessions by their IDs in a single operation. This action cannot be undone and will permanently remove all specified sessions and their runs.","operationId":"delete_sessions","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSessionRequest"}}}},"responses":{"204":{"description":"Sessions deleted successfully"},"400":{"description":"Invalid request - session IDs and types length mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["Sessions"],"summary":"Get Session by ID","description":"Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow).","operationId":"get_session_by_id","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to retrieve","title":"Session Id"},"description":"Session ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query session from","title":"User Id"},"description":"User ID to query session from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query session from","title":"Db Id"},"description":"Database ID to query session from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query session from","title":"Table"},"description":"Table to query session from"}],"responses":{"200":{"description":"Session details retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Get Session By Id"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Session","description":"Permanently delete a specific session and all its associated runs. This action cannot be undone and will remove all conversation history.","operationId":"delete_session","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to delete","title":"Session Id"},"description":"Session ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Sessions"],"summary":"Update Session","description":"Update session properties such as session_name, session_state, metadata, or summary. Use this endpoint to modify the session name, update state, add metadata, or update the session summary.","operationId":"update_session","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to update","title":"Session Id"},"description":"Session ID to update"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID","title":"User Id"},"description":"User ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update operation","title":"Db Id"},"description":"Database ID to use for update operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update operation","title":"Table"},"description":"Table to use for update operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest","description":"Session update data"}}}},"responses":{"200":{"description":"Session updated successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Update Session"},"examples":{"update_summary":{"summary":"Update session summary","value":{"summary":{"summary":"The user discussed project planning with the agent.","updated_at":"2025-10-21T14:30:00Z"}}},"update_metadata":{"summary":"Update session metadata","value":{"metadata":{"tags":["planning","project"],"priority":"high"}}},"update_session_name":{"summary":"Update session name","value":{"session_name":"Updated Session Name"}},"update_session_state":{"summary":"Update session state","value":{"session_state":{"step":"completed","context":"Project planning finished","progress":100}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs":{"get":{"tags":["Sessions"],"summary":"Get Session Runs","description":"Retrieve all runs (executions) for a specific session with optional timestamp filtering. Runs represent individual interactions or executions within a session. Response schema varies based on session type.","operationId":"get_session_runs","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get runs from","title":"Session Id"},"description":"Session ID to get runs from"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query runs from","title":"User Id"},"description":"User ID to query runs from"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created after this Unix timestamp (epoch time in seconds)","title":"Created After"},"description":"Filter runs created after this Unix timestamp (epoch time in seconds)"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created before this Unix timestamp (epoch time in seconds)","title":"Created Before"},"description":"Filter runs created before this Unix timestamp (epoch time in seconds)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query runs from","title":"Db Id"},"description":"Database ID to query runs from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query runs from","title":"Table"},"description":"Table to query runs from"}],"responses":{"200":{"description":"Session runs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}]},"title":"Response Get Session Runs"},"examples":{"completed_run":{"summary":"Example completed run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"","run_input":"Which tools do you have access to?","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","run_response_format":"text","reasoning_content":"","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069},"messages":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-08 17:52:10.101003.\n\n\nYou have the capability to retain memories from previous interactions with the user, but have not had any interactions with the user yet.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757346730},{"content":"Which tools do you have access to?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757346730},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138},"created_at":1757346730}],"events":[{"created_at":1757346730,"event":"RunStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","model":"gpt-4o","model_provider":"OpenAI"},{"created_at":1757346733,"event":"MemoryUpdateStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"MemoryUpdateCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"RunCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","content_type":"str","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069}}],"created_at":"2025-09-08T15:52:10Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found or has no runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs/{run_id}":{"get":{"tags":["Sessions"],"summary":"Get Run by ID","description":"Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run).","operationId":"get_session_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get run from","title":"Session Id"},"description":"Session ID to get run from"},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","description":"Run ID to retrieve","title":"Run Id"},"description":"Run ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query run from","title":"User Id"},"description":"User ID to query run from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query run from","title":"Db Id"},"description":"Database ID to query run from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query run from","title":"Table"},"description":"Table to query run from"}],"responses":{"200":{"description":"Run retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}],"title":"Response Get Session Run"},"examples":{"agent_run":{"summary":"Example agent run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"user_123","run_input":"Which tools do you have access to?","content":"I don't have access to external tools.","created_at":1728499200}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/rename":{"post":{"tags":["Sessions"],"summary":"Rename Session","description":"Update the name of an existing session. Useful for organizing and categorizing sessions with meaningful names for better identification and management.","operationId":"rename_session","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to rename","title":"Session Id"},"description":"Session ID to rename"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope rename to","title":"User Id"},"description":"User ID to scope rename to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for rename operation","title":"Db Id"},"description":"Database ID to use for rename operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_rename_session"}}}},"responses":{"200":{"description":"Session renamed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Rename Session"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Invalid session name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type or validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories":{"post":{"tags":["Memory"],"summary":"Create Memory","description":"Create a new user memory with content and associated topics. Memories are used to store contextual information for users across conversations.","operationId":"create_memory","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for memory storage","title":"Db Id"},"description":"Database ID to use for memory storage"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for memory storage","title":"Table"},"description":"Table to use for memory storage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"mem-123","memory":"User prefers technical explanations with code examples","topics":["preferences","communication_style","technical"],"user_id":"user-456","created_at":"2024-01-15T10:30:00Z","updated_at":"2024-01-15T10:30:00Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Memory"],"summary":"Delete Multiple Memories","description":"Delete multiple user memories by their IDs in a single operation. This action cannot be undone and all specified memories will be permanently removed.","operationId":"delete_memories","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMemoriesRequest"}}}},"responses":{"204":{"description":"Memories deleted successfully"},"400":{"description":"Invalid request - empty memory_ids list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"List Memories","description":"Retrieve paginated list of user memories with filtering and search capabilities. Filter by user, agent, team, topics, or search within memory content.","operationId":"get_memories","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by user ID","title":"User Id"},"description":"Filter memories by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by agent ID","title":"Agent Id"},"description":"Filter memories by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by team ID","title":"Team Id"},"description":"Filter memories by team ID"},{"name":"search_content","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fuzzy search within memory content","title":"Search Content"},"description":"Fuzzy search within memory content"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of memories to return per page","default":20,"title":"Limit"},"description":"Number of memories to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort memories by","default":"updated_at","title":"Sort By"},"description":"Field to sort memories by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memories from","title":"Db Id"},"description":"Database ID to query memories from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Comma-separated list of topics to filter by","examples":["preferences,technical,communication_style"],"title":"Topics"},"description":"Comma-separated list of topics to filter by"}],"responses":{"200":{"description":"Memories retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserMemorySchema_"},"example":{"data":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories/{memory_id}":{"delete":{"tags":["Memory"],"summary":"Delete Memory","description":"Permanently delete a specific user memory. This action cannot be undone.","operationId":"delete_memory","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to delete","title":"Memory Id"},"description":"Memory ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to delete memory for","title":"User Id"},"description":"User ID to delete memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Memory deleted successfully"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"Get Memory by ID","description":"Retrieve detailed information about a specific user memory by its ID.","operationId":"get_memory","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to retrieve","title":"Memory Id"},"description":"Memory ID to retrieve"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query memory for","title":"User Id"},"description":"User ID to query memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memory from","title":"Db Id"},"description":"Database ID to query memory from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query memory from","title":"Table"},"description":"Table to query memory from"}],"responses":{"200":{"description":"Memory retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Memory"],"summary":"Update Memory","description":"Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values.","operationId":"update_memory","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to update","title":"Memory Id"},"description":"Memory ID to update"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update","title":"Db Id"},"description":"Database ID to use for update"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update","title":"Table"},"description":"Table to use for update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memory_topics":{"get":{"tags":["Memory"],"summary":"Get Memory Topics","description":"Retrieve all unique topics associated with memories in the system. Useful for filtering and categorizing memories by topic.","operationId":"get_memory_topics","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter topics for","title":"User Id"},"description":"User ID to filter topics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query topics from","title":"Db Id"},"description":"Database ID to query topics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query topics from","title":"Table"},"description":"Table to query topics from"}],"responses":{"200":{"description":"Memory topics retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Get Memory Topics"},"example":["preferences","communication_style","technical","industry","compliance","code_examples","requirements","healthcare","finance"]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/user_memory_stats":{"get":{"tags":["Memory"],"summary":"Get User Memory Statistics","description":"Retrieve paginated statistics about memory usage by user. Provides insights into user engagement and memory distribution across users.","operationId":"get_user_memory_stats","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of user statistics to return per page","default":20,"title":"Limit"},"description":"Number of user statistics to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter statistics for","title":"User Id"},"description":"User ID to filter statistics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query statistics from","title":"Table"},"description":"Table to query statistics from"}],"responses":{"200":{"description":"User memory statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserStatsSchema_"},"example":{"data":[{"user_id":"123","total_memories":3,"last_memory_updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve user statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/optimize-memories":{"post":{"tags":["Memory"],"summary":"Optimize User Memories","description":"Optimize all memories for a user with the summarize strategy. The operation combines the user's memories into one summary. Set `apply=false` to preview the result without saving it. Specify a custom model as `provider:model_id`, for example `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, or `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`.","operationId":"optimize_memories","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for optimization","title":"Db Id"},"description":"Database ID to use for optimization"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for optimization","title":"Table"},"description":"Table to use for optimization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesRequest"}}}},"responses":{"200":{"description":"Memories optimized successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesResponse"},"example":{"memories":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User has a 3-year-old golden retriever named Max who loves fetch and walks. Lives in San Francisco's Mission district, works as a product manager in tech. Enjoys hiking Bay Area trails, trying new restaurants (especially Japanese, Thai, Mexican), and learning piano for 1.5 years.","topics":["pets","location","work","hobbies","food_preferences"],"user_id":"user2","updated_at":"2025-11-18T10:30:00Z"}],"memories_before":4,"memories_after":1,"tokens_before":450,"tokens_after":180,"tokens_saved":270,"reduction_percentage":60.0}}}},"400":{"description":"Bad request - User ID is required or invalid model string format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No memories found for user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to optimize memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings":{"get":{"tags":["Learnings"],"summary":"List Learnings","description":"List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) \u2014 this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`).","operationId":"list_learnings","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by learning type","title":"Learning Type"},"description":"Filter by learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"namespace","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by namespace","title":"Namespace"},"description":"Filter by namespace"},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity ID","title":"Entity Id"},"description":"Filter by entity ID"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity type","title":"Entity Type"},"description":"Filter by entity type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":100,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used).","title":"Sort By"},"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used)."},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"post":{"tags":["Learnings"],"summary":"Create Learning","description":"Create a new learning record. For the identity-keyed learning types (`user_profile`, `user_memory`, `session_context`, `entity_memory`) the record id is derived deterministically from the identity fields so it reconciles with what the agent reads/writes \u2014 provide those fields (else 422), and if a record already exists the request is rejected with 409 (use PATCH to update it). Other types get a generated id. For a scoped (non-admin) caller, the body's `user_id` must be omitted/null or match the caller (mismatch \u2192 403); admins and unscoped callers may set any `user_id`.","operationId":"create_learning","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"An identity-keyed learning already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/users":{"get":{"tags":["Learnings"],"summary":"List Learning Users","description":"List the users that own learning records, with a per-user count and last-updated timestamp. Intended as the entry point for a per-user view: list users here, then drill into a single user's learnings via `GET /learnings?user_id=...`. Records with no owner (`user_id IS NULL`) are excluded. Pass `learning_type` to restrict the grouping to a single store (e.g. `user_profile` or `user_memory`). For a scoped (non-admin) caller results are bound to that user; an explicit `user_id` that differs is rejected with 403. Admins and unscoped callers list all users. Sortable by `user_id` or `last_learning_updated_at` (the default).","operationId":"list_learning_users","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the grouping to a single learning type","title":"Learning Type"},"description":"Restrict the grouping to a single learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the result to a single user","title":"User Id"},"description":"Restrict the result to a single user"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by: user_id or last_learning_updated_at (the default)","title":"Sort By"},"description":"Field to sort by: user_id or last_learning_updated_at (the default)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningUserStats_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/users/{user_id}":{"delete":{"tags":["Learnings"],"summary":"Delete Learning User","description":"Delete the learning records owned by a user. By default removes every learning type backed by the agno_learnings table (user_profile, user_memory, and any user-scoped entity records); pass `learning_type` to restrict deletion to a single store. Records with no owner (`user_id IS NULL`) are not affected. For a scoped (non-admin) caller, only their own learnings may be deleted; a different `user_id` is rejected with 403. Admins and unscoped callers may delete any user's learnings. Returns 204 even if the user had no matching records.","operationId":"delete_learning_user","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The user whose learnings should be deleted","title":"User Id"},"description":"The user whose learnings should be deleted"},{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings","title":"Learning Type"},"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/{learning_id}":{"get":{"tags":["Learnings"],"summary":"Get Learning","description":"Retrieve a single learning record by its ID.","operationId":"get_learning","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"patch":{"tags":["Learnings"],"summary":"Update Learning","description":"Update a learning record. Only `content` and `metadata` may be modified; identity fields (user_id, agent_id, team_id, etc.) are immutable. Provided fields fully replace the existing values. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) are readable by any caller but may only be modified by an admin.","operationId":"update_learning","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"delete":{"tags":["Learnings"],"summary":"Delete Learning","description":"Permanently delete a learning record by its ID. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) may only be deleted by an admin.","operationId":"delete_learning","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/eval-runs":{"get":{"tags":["Evals"],"summary":"List Evaluation Runs","description":"Retrieve paginated evaluation runs with filtering and sorting options. Filter by agent, team, workflow, model, or evaluation type.","operationId":"get_eval_runs","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Workflow ID","title":"Workflow Id"},"description":"Workflow ID"},{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model ID","title":"Model Id"},"description":"Model ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EvalFilterType"},{"type":"null"}],"description":"Filter type","title":"Type"},"description":"Filter type"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of eval runs to return","default":20,"title":"Limit"},"description":"Number of eval runs to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"eval_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)","examples":["accuracy,agent_as_judge,performance,reliability"],"title":"Eval Types"},"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)"}],"responses":{"200":{"description":"Evaluation runs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_EvalSchema_"},"example":{"data":[{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Evals"],"summary":"Delete Evaluation Runs","description":"Delete multiple evaluation runs by their IDs. This action cannot be undone.","operationId":"delete_eval_runs","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvalRunsRequest"}}}},"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Deletion failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Evals"],"summary":"Execute Evaluation","description":"Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both.","operationId":"run_eval","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for evaluation","title":"Db Id"},"description":"Database ID to use for evaluation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for evaluation","title":"Table"},"description":"Table to use for evaluation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRunInput"}}}},"responses":{"200":{"description":"Evaluation executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"f2b2d72f-e9e2-4f0e-8810-0a7e1ff58614","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Invalid request - provide either agent_id or team_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs/{eval_run_id}":{"get":{"tags":["Evals"],"summary":"Get Evaluation Run","description":"Retrieve detailed results and metrics for a specific evaluation run.","operationId":"get_eval_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query eval run from","title":"Table"},"description":"Table to query eval run from"}],"responses":{"200":{"description":"Evaluation run details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Evals"],"summary":"Update Evaluation Run","description":"Update the name or other properties of an existing evaluation run.","operationId":"update_eval_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvalRunRequest"}}}},"responses":{"200":{"description":"Evaluation run updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update evaluation run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics":{"get":{"tags":["Metrics"],"summary":"Get AgentOS Metrics","description":"Retrieve AgentOS metrics and analytics data for a specified date range. If no date range is specified, returns all available metrics.","operationId":"get_metrics","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"starting_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Starting date for metrics range (YYYY-MM-DD format)","title":"Starting Date"},"description":"Starting date for metrics range (YYYY-MM-DD format)"},{"name":"ending_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Ending date for metrics range (YYYY-MM-DD format)","title":"Ending Date"},"description":"Ending date for metrics range (YYYY-MM-DD format)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query metrics from","title":"Db Id"},"description":"Database ID to query metrics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Metrics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"},"example":{"metrics":[{"id":"7bf39658-a00a-484c-8a28-67fd8a9ddb2a","agent_runs_count":5,"agent_sessions_count":5,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":448,"output_tokens":148,"total_tokens":596,"audio_tokens":0,"input_audio_tokens":0,"output_audio_tokens":0,"cached_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":5}],"date":"2025-07-31T00:00:00Z","created_at":"2025-07-31T12:38:52Z","updated_at":"2025-07-31T12:49:01Z"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Metrics retrieval failed. In Agno 2.7.4, invalid or ambiguous database selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics/refresh":{"post":{"tags":["Metrics"],"summary":"Refresh Metrics","description":"Manually trigger recalculation of system metrics from raw data. This operation analyzes system activity logs and regenerates aggregated metrics. Useful for ensuring metrics are up-to-date or after system maintenance.","operationId":"refresh_metrics","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for metrics calculation","title":"Db Id"},"description":"Database ID to use for metrics calculation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for metrics calculation","title":"Table"},"description":"Table to use for metrics calculation"}],"responses":{"200":{"description":"Metrics refreshed successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"title":"Response Refresh Metrics"},"example":[{"id":"e77c9531-818b-47a5-99cd-59fed61e5403","agent_runs_count":2,"agent_sessions_count":2,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":256,"output_tokens":441,"total_tokens":697,"audio_total_tokens":0,"audio_input_tokens":0,"audio_output_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":2}],"date":"2025-08-12T00:00:00Z","created_at":"2025-08-12T08:01:47Z","updated_at":"2025-08-12T08:01:47Z"}]}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Refresh failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content":{"post":{"tags":["Knowledge"],"summary":"Upload Content","description":"Upload content to the knowledge base. Supports file uploads, text content, or URLs. Content is processed asynchronously in the background. Supports custom readers and chunking strategies.","operationId":"upload_content","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_content"}}}},"responses":{"202":{"description":"Content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-123","name":"example-document.pdf","description":"Sample document for processing","metadata":{"category":"documentation","priority":"high"},"status":"processing"}}}},"400":{"description":"Invalid request - malformed metadata or missing content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in form data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"List Content","description":"Return a paginated, sorted list of content for the selected knowledge base. Use `limit`, `page`, `sort_by`, and `sort_order` to control the result. Agno 2.7.4 exposes no status, content type, or metadata filter parameters on this endpoint. Named local knowledge instances scope rows by the stored `linked_to` value.","operationId":"get_content","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of content entries to return","default":20,"title":"Limit"},"description":"Number of content entries to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ContentResponseSchema_"},"example":{"data":[{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":null,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z","linked_to":null}],"meta":{"page":1,"limit":20,"total_pages":1,"total_count":2}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete All Content","description":"Permanently remove all content from the knowledge base. This is a destructive operation that cannot be undone. Use with extreme caution.","operationId":"delete_all_content","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete all content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/remote-content":{"post":{"tags":["Knowledge"],"summary":"Upload Remote Content","description":"Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.","operationId":"upload_remote_content","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_upload_remote_content"}}}},"responses":{"202":{"description":"Remote content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-456","name":"reports/q1-2024.pdf","description":"Q1 Report from S3","metadata":{"source":"s3-docs"},"status":"processing"}}}},"400":{"description":"Invalid request - unknown config or missing path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Remote content upload is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/knowledge/content/{content_id}":{"patch":{"tags":["Knowledge"],"summary":"Update Content","description":"Update content name, description, or metadata without re-uploading it. In Agno 2.7.4, this endpoint accepts `reader_id`. Local knowledge validates the value, but the content patch does not apply or persist the reader change.","operationId":"update_content","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","description":"Content ID","title":"Content Id"},"description":"Content ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_update_content"}}}},"responses":{"200":{"description":"Content updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":null,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z","linked_to":null}}}},"400":{"description":"Invalid request - malformed metadata or invalid reader_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"Get Content by ID","description":"Retrieve detailed information about a specific content item including processing status and metadata.","operationId":"get_content_by_id","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":null,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z","linked_to":null}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete Content by ID","description":"Permanently remove a specific content item from the knowledge base. This action cannot be undone.","operationId":"delete_content_by_id","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}/status":{"get":{"tags":["Knowledge"],"summary":"Get Content Status","description":"Return the processing status for a content ID. For local knowledge in Agno 2.7.4, an unknown content ID returns HTTP 200 with `status=\"failed\"` and `status_message=\"Content not found\"`.","operationId":"get_content_status","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content status returned. An unknown local content ID is represented by status \"failed\".","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentStatusResponse"},"examples":{"completed":{"summary":"Completed content","value":{"id":"content-123","status":"completed","status_message":""}},"content_not_found":{"summary":"Unknown local content ID","value":{"id":"missing-content","status":"failed","status_message":"Content not found"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Selected knowledge base or database ID not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/search":{"post":{"tags":["Knowledge"],"summary":"Search Knowledge","description":"Search the knowledge base for relevant documents using query, filters and search type.","operationId":"search_knowledge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VectorSearchRequestSchema"}}},"required":true},"responses":{"200":{"description":"Search results retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_VectorSearchResult_"},"example":{"data":[{"id":"doc_123","content":"Jordan Mitchell - Software Engineer with skills in JavaScript, React, Python","name":"cv_1","meta_data":{"page":1,"chunk":1},"usage":{"total_tokens":14},"reranking_score":0.95,"content_id":"content_456"}],"meta":{"page":1,"limit":20,"total_pages":2,"total_count":35}}}}},"400":{"description":"Invalid search parameters"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No documents found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/knowledge/config":{"get":{"tags":["Knowledge"],"summary":"Get Config","description":"Retrieve available readers, chunkers, and configuration options for content processing. This endpoint provides metadata about supported file types, processing strategies, and filters.","operationId":"get_knowledge_config","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Knowledge configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponseSchema"},"example":{"readers":{"website":{"id":"website","name":"WebsiteReader","description":"Reads website files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"firecrawl":{"id":"firecrawl","name":"FirecrawlReader","description":"Reads firecrawl files","chunkers":["SemanticChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"youtube":{"id":"youtube","name":"YoutubeReader","description":"Reads youtube files","chunkers":["RecursiveChunker","AgenticChunker","DocumentChunker","SemanticChunker","FixedSizeChunker"]},"web_search":{"id":"web_search","name":"WebSearchReader","description":"Reads web_search files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"arxiv":{"id":"arxiv","name":"ArxivReader","description":"Reads arxiv files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"csv":{"id":"csv","name":"CsvReader","description":"Reads csv files","chunkers":["RowChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"docling":{"id":"docling","name":"DoclingReader","description":"Converts multiple document formats like PDF, DOCX, PPTX, images, HTML, etc. using IBM's Docling library","chunkers":["AgenticChunker","CodeChunker","DocumentChunker","FixedSizeChunker","RecursiveChunker","SemanticChunker"]},"docx":{"id":"docx","name":"DocxReader","description":"Reads docx files","chunkers":["DocumentChunker","FixedSizeChunker","SemanticChunker","AgenticChunker","RecursiveChunker"]},"gcs":{"id":"gcs","name":"GcsReader","description":"Reads gcs files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"json":{"id":"json","name":"JsonReader","description":"Reads json files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"markdown":{"id":"markdown","name":"MarkdownReader","description":"Reads markdown files","chunkers":["MarkdownChunker","DocumentChunker","AgenticChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"pdf":{"id":"pdf","name":"PdfReader","description":"Reads pdf files","chunkers":["DocumentChunker","FixedSizeChunker","AgenticChunker","SemanticChunker","RecursiveChunker"]},"text":{"id":"text","name":"TextReader","description":"Reads text files","chunkers":["CodeChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]}},"readersForType":{"url":["url","website","firecrawl","youtube","web_search","gcs"],"youtube":["youtube"],"text":["web_search"],"topic":["arxiv"],"file":["csv","gcs"],".csv":["csv","field_labeled_csv","docling"],".xlsx":["excel","docling"],".xls":["excel"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["excel"],"application/vnd.ms-excel":["excel"],".docx":["docx","docling"],".dotx":["docling"],".docm":["docling"],".dotm":["docling"],".pptx":["docling","pptx"],".potx":["docling"],".ppsx":["docling"],".pptm":["docling"],".ppsm":["docling"],".potm":["docling"],".doc":["docx"],".json":["json"],".md":["markdown","docling"],".pdf":["pdf","docling"],".txt":["text"],".html":["docling"],".htm":["docling"],".xhtml":["docling"],".xml":["docling"],".nxml":["docling"],".xbrl":["docling"],".adoc":["docling"],".asciidoc":["docling"],".asc":["docling"],".xlsm":["docling"],".tex":["docling"],".latex":["docling"],".tar.gz":["docling"],".vtt":["docling"],".png":["docling"],".jpeg":["docling"],".jpg":["docling"],".tiff":["docling"],".tif":["docling"],".bmp":["docling"],".webp":["docling"],".wav":["docling"],".mp3":["docling"],".m4a":["docling"],".aac":["docling"],".ogg":["docling"],".flac":["docling"],".mp4":["docling"],".avi":["docling"],".mov":["docling"]},"chunkers":{"AgenticChunker":{"key":"AgenticChunker","name":"AgenticChunker","description":"Chunking strategy that uses an LLM to determine natural breakpoints in the text","metadata":{"chunk_size":5000}},"CodeChunker":{"key":"CodeChunker","name":"CodeChunker","description":"The CodeChunker splits code into chunks based on its structure, leveraging Abstract Syntax Trees (ASTs) to create contextually relevant segments","metadata":{"chunk_size":2048}},"DocumentChunker":{"key":"DocumentChunker","name":"DocumentChunker","description":"A chunking strategy that splits text based on document structure like paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"FixedSizeChunker":{"key":"FixedSizeChunker","name":"FixedSizeChunker","description":"Chunking strategy that splits text into fixed-size chunks with optional overlap","metadata":{"chunk_size":5000,"chunk_overlap":0}},"MarkdownChunker":{"key":"MarkdownChunker","name":"MarkdownChunker","description":"A chunking strategy that splits markdown based on structure like headers, paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RecursiveChunker":{"key":"RecursiveChunker","name":"RecursiveChunker","description":"Chunking strategy that recursively splits text into chunks by finding natural break points","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RowChunker":{"key":"RowChunker","name":"RowChunker","description":"RowChunking chunking strategy","metadata":{}},"SemanticChunker":{"key":"SemanticChunker","name":"SemanticChunker","description":"Chunking strategy that splits text into semantic chunks using chonkie","metadata":{"chunk_size":5000}}},"vector_dbs":[{"id":"vector_db_1","name":"Vector DB 1","description":"Vector DB 1 description","search_types":["vector","keyword","hybrid"]}],"filters":["filter_tag_1","filter_tag2"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources":{"get":{"tags":["Knowledge"],"summary":"List Content Sources","description":"List all registered content sources (S3, GCS, SharePoint, GitHub) for the knowledge base.","operationId":"list_content_sources","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Content sources retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"title":"Response List Content Sources"},"example":[{"id":"company-s3","name":"Company Documents","type":"s3","prefix":"documents/"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Content source listing is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/knowledge/{knowledge_id}/sources/{source_id}/files":{"get":{"tags":["Knowledge"],"summary":"List Files in Source","description":"List available files and folders in a specific content source. Supports pagination and folder navigation.","operationId":"list_source_files","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the content source","title":"Source Id"},"description":"ID of the content source"},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Path prefix to filter files","title":"Prefix"},"description":"Path prefix to filter files"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of files per page","default":100,"title":"Limit"},"description":"Number of files per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"delimiter","in":"query","required":false,"schema":{"type":"string","description":"Folder delimiter (enables folder grouping)","default":"/","title":"Delimiter"},"description":"Folder delimiter (enables folder grouping)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Files listed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceFilesResponseSchema"},"example":{"source_id":"company-s3","source_name":"Company Documents","prefix":"reports/","folders":[{"prefix":"reports/2024/","name":"2024","is_empty":false}],"files":[{"key":"reports/annual-summary.pdf","name":"annual-summary.pdf","size":102400,"last_modified":"2024-01-15T10:30:00Z","content_type":"application/pdf"}],"meta":{"page":1,"limit":100,"total_pages":1,"total_count":1}}}}},"400":{"description":"Unsupported source type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base or content source not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Source file listing is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/traces":{"get":{"tags":["Traces","Traces"],"summary":"List Traces","description":"Retrieve a paginated list of execution traces with optional filtering.\n\n**Traces provide observability into:**\n- Agent execution flows\n- Model invocations and token usage\n- Tool calls and their results\n- Errors and performance bottlenecks\n\n**Filtering Options:**\n- By run, session, user, or agent ID\n- By status (OK, ERROR)\n- By time range\n\n**Pagination:**\n- Use `page` (1-indexed) and `limit` parameters\n- Response includes pagination metadata (total_pages, total_count, etc.)\n\n**Response Format:**\nReturns summary information for each trace. Use GET `/traces/{trace_id}` for detailed hierarchy.","operationId":"get_traces","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run ID","title":"Run Id"},"description":"Filter by run ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status (OK, ERROR)","title":"Status"},"description":"Filter by status (OK, ERROR)"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of traces per page","default":20,"title":"Limit"},"description":"Number of traces per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"responses":{"200":{"description":"List of traces retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSummary_"},"example":{"data":[{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","total_spans":4,"error_count":0,"input":"What is the stock price of NVDA?","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"agent_stock","created_at":"2025-11-19T10:30:00+00:00"}],"meta":{"page":1,"limit":20,"total_pages":5,"total_count":95}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/filter-schema":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Filter Schema","description":"Returns the available filterable fields, their types, valid operators, and enum values.\n\nThe frontend uses this to dynamically build the filter bar UI:\n- Field dropdown populated from `fields[].key`\n- Operator dropdown changes per field type\n- Value input shows autocomplete for enum fields (e.g., status)\n- Logical operators (AND, OR) for combining clauses","operationId":"get_traces_filter_schema","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterSchemaResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/traces/{trace_id}":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace or Span Detail","description":"Retrieve detailed trace information with hierarchical span tree, or a specific span within the trace.\n\n**Without span_id parameter:**\nReturns the full trace with hierarchical span tree:\n- Trace metadata (ID, status, duration, context)\n- Hierarchical tree of all spans\n- Each span includes timing, status, and type-specific metadata\n\n**With span_id parameter:**\nReturns details for a specific span within the trace:\n- Span metadata (ID, name, type, timing)\n- Status and error information\n- Type-specific attributes (model, tokens, tool params, etc.)\n\n**Span Hierarchy (full trace):**\nThe `tree` field contains root spans, each with potential `children`.\nThis recursive structure represents the execution flow:\n```\nAgent.run (root)\n \u251c\u2500 LLM.invoke\n \u251c\u2500 Tool.execute\n \u2502 \u2514\u2500 LLM.invoke (nested)\n \u2514\u2500 LLM.invoke\n```\n\n**Span Types:**\n- `AGENT`: Agent execution with input/output\n- `LLM`: Model invocations with tokens and prompts\n- `TOOL`: Tool calls with parameters and results","operationId":"get_trace","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}},{"name":"span_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Span ID to retrieve specific span","title":"Span Id"},"description":"Optional: Span ID to retrieve specific span"},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Run ID to retrieve trace for","title":"Run Id"},"description":"Optional: Run ID to retrieve trace for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query trace from","title":"Db Id"},"description":"Database ID to query trace from"}],"responses":{"200":{"description":"Trace or span detail retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TraceDetail"},{"$ref":"#/components/schemas/TraceNode"}],"title":"Response Get Trace"},"examples":{"full_trace":{"summary":"Full trace with hierarchy (no span_id)","value":{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","end_time":"2025-11-19T10:30:01.200000+00:00","total_spans":4,"error_count":0,"input":"What is Tesla stock price?","output":"The current price of Tesla (TSLA) is $245.67.","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"stock_agent","created_at":"2025-11-19T10:30:00+00:00","tree":[{"id":"span1","name":"Stock_Price_Agent.run","type":"AGENT","duration":"1.2s","status":"OK","spans":[]}]}},"single_span":{"summary":"Single span detail (with span_id)","value":{"id":"span2","name":"gpt-4o-mini.invoke","type":"LLM","duration":"800ms","status":"OK","metadata":{"model":"gpt-4o-mini","input_tokens":120}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Trace or span not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/trace_session_stats":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Statistics by Session","description":"Retrieve aggregated trace statistics grouped by session ID with pagination.\n\n**Provides insights into:**\n- Total traces per session\n- First and last trace timestamps per session\n- Associated user and agent information\n\n**Filtering Options:**\n- By user ID\n- By agent ID\n\n**Use Cases:**\n- Monitor session-level activity\n- Track conversation flows\n- Identify high-activity sessions\n- Analyze user engagement patterns","operationId":"get_trace_stats","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of sessions per page","default":20,"title":"Limit"},"description":"Number of sessions per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"}],"responses":{"200":{"description":"Trace statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"},"example":{"data":[{"session_id":"37029bc6-1794-4ba8-a629-1efedc53dcad","user_id":"kaustubh@agno.com","agent_id":"hackernews-agent","total_traces":5,"first_trace_at":"2025-11-19T10:15:16+00:00","last_trace_at":"2025-11-19T10:21:30+00:00"}],"meta":{"page":1,"limit":20,"total_pages":3,"total_count":45}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/search":{"post":{"tags":["Traces","Traces"],"summary":"Search Traces with Advanced Filters","description":"Search traces using the FilterExpr DSL for complex, composable queries.\n\n**Group By Mode:**\n- `run` (default): Returns `PaginatedResponse[TraceDetail]` with full span trees\n- `session`: Returns `PaginatedResponse[TraceSessionStats]` with aggregated session stats\n\n**Supported Operators:**\n- Comparison: `EQ`, `NEQ`, `GT`, `GTE`, `LT`, `LTE`\n- Inclusion: `IN`\n- String matching: `CONTAINS` (case-insensitive substring), `STARTSWITH` (prefix)\n- Logical: `AND`, `OR`, `NOT`\n\n**Filterable Fields:**\ntrace_id, name, status, start_time, end_time, duration_ms, run_id, session_id, user_id, agent_id, team_id, workflow_id, created_at\n\n**Example Request Body (runs):**\n```json\n{\n \"filter\": {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n}\n```\n\n**Example Request Body (sessions):**\n```json\n{\n \"filter\": {\"op\": \"CONTAINS\", \"key\": \"agent_id\", \"value\": \"stock\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n}\n```","operationId":"search_traces","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PaginatedResponse_TraceDetail_"},{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"}],"title":"Response Search Traces"}}}},"400":{"description":"Invalid filter expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/all/migrate":{"post":{"tags":["Database"],"summary":"Migrate All Databases","description":"Migrate all database schemas to the given target version. If a target version is not provided, all databases will be migrated to the latest version.","operationId":"migrate_all_databases","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"All databases migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"All databases migrated successfully to version 3.0.0"}}}},"207":{"description":"Some database migrations failed","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"},"failed":{"type":"object","additionalProperties":{"type":"string"},"title":"Failed"}},"type":"object","required":["message","failed"],"title":"PartialMigrationResponse"},"example":{"message":"Migrated 2/3 databases to latest version","failed":{"archive-db":"Migration failed"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/{db_id}/migrate":{"post":{"tags":["Database"],"summary":"Migrate Database","description":"Migrate the given database schema to the given target version. If a target version is not provided, the database will be migrated to the latest version.","operationId":"migrate_database","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"Database migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"Database migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Database not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components":{"get":{"tags":["Components"],"summary":"List Components","description":"Retrieve a paginated list of components with optional filtering by type.","operationId":"list_components","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ComponentType"},{"type":"null"}],"description":"Filter by type: agent, team, workflow","title":"Component Type"},"description":"Filter by type: agent, team, workflow"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ComponentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Component","description":"Create a new component (agent, team, or workflow) with initial config.","operationId":"create_component","security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}":{"get":{"tags":["Components"],"summary":"Get Component","description":"Retrieve a component by ID.","operationId":"get_component","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Components"],"summary":"Update Component","description":"Partially update a component by ID.","operationId":"update_component","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentUpdate","description":"Component fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Component","description":"Soft-delete a component by ID. Component configs and links remain stored.","operationId":"delete_component","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs":{"get":{"tags":["Components"],"summary":"List Configs","description":"List all configs for a component.","operationId":"list_configs","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"include_config","in":"query","required":false,"schema":{"type":"boolean","description":"Include full config blob","default":true,"title":"Include Config"},"description":"Include full config blob"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComponentConfigResponse"},"title":"Response List Configs"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Config Version","description":"Create a new config version for a component.","operationId":"create_config","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigCreate","description":"Config data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}":{"patch":{"tags":["Components"],"summary":"Update Draft Config","description":"Update an existing draft config. Cannot update published configs.","operationId":"update_config","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigUpdate","description":"Config fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Components"],"summary":"Get Config Version","description":"Get a specific config version by number.","operationId":"get_config_version","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Config Version","description":"Delete a specific config version. Agno v2.7.4 rejects the current version. Synchronous SQLite and PostgreSQL storage allow deletion of a published non-current version.","operationId":"delete_config","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/current":{"get":{"tags":["Components"],"summary":"Get Current Config","description":"Get the current config version for a component.","operationId":"get_current_config","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}/set-current":{"post":{"tags":["Components"],"summary":"Set Current Config Version","description":"Set a published config version as current (for rollback).","operationId":"set_current_config","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/schedules":{"get":{"tags":["Schedules"],"summary":"List Schedules","operationId":"list_schedules_schedules_get","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"post":{"tags":["Schedules"],"summary":"Create Schedule","operationId":"create_schedule_schedules_post","security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule","operationId":"get_schedule_schedules__schedule_id__get","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"patch":{"tags":["Schedules"],"summary":"Update Schedule","operationId":"update_schedule_schedules__schedule_id__patch","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Schedules"],"summary":"Delete Schedule","operationId":"delete_schedule_schedules__schedule_id__delete","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/enable":{"post":{"tags":["Schedules"],"summary":"Enable Schedule","operationId":"enable_schedule_schedules__schedule_id__enable_post","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/disable":{"post":{"tags":["Schedules"],"summary":"Disable Schedule","operationId":"disable_schedule_schedules__schedule_id__disable_post","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/trigger":{"post":{"tags":["Schedules"],"summary":"Trigger Schedule","operationId":"trigger_schedule_schedules__schedule_id__trigger_post","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Schedule is disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler is not running or storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs":{"get":{"tags":["Schedules"],"summary":"List Schedule Runs","operationId":"list_schedule_runs_schedules__schedule_id__runs_get","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleRunResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs/{run_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule Run","operationId":"get_schedule_run_schedules__schedule_id__runs__run_id__get","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals":{"get":{"tags":["Approvals"],"summary":"List Approvals","operationId":"list_approvals_approvals_get","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","approved","rejected","expired","cancelled"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"source_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"}},{"name":"approval_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["required","audit"],"type":"string"},{"type":"null"}],"title":"Approval Type"}},{"name":"pause_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"schedule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"}},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ApprovalResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approvals could not be listed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/count":{"get":{"tags":["Approvals"],"summary":"Get Approval Count","operationId":"get_approval_count_approvals_count_get","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalCountResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval count could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/status":{"get":{"tags":["Approvals"],"summary":"Get Approval Status","operationId":"get_approval_status_approvals__approval_id__status_get","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalStatusResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval status could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}":{"get":{"tags":["Approvals"],"summary":"Get Approval","operationId":"get_approval_approvals__approval_id__get","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Approvals"],"summary":"Delete Approval","operationId":"delete_approval_approvals__approval_id__delete","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval is not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/resolve":{"post":{"tags":["Approvals"],"summary":"Resolve Approval","operationId":"resolve_approval_approvals__approval_id__resolve_post","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResolve"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Approval has already been resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts":{"post":{"tags":["Service Accounts"],"summary":"Create Service Account","description":"Mint a service account token. The plaintext token is returned exactly once.","operationId":"create_service_account_service_accounts_post","security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreateResponse"}}}},"400":{"description":"Requested scopes are invalid, or privileged scopes were not explicitly allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"An active service account with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"get":{"tags":["Service Accounts"],"summary":"List Service Accounts","description":"List service accounts. Returns metadata and display prefixes only - never hashes or plaintext.","operationId":"list_service_accounts_service_accounts_get","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Revoked"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ServiceAccountResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts/{service_account_id}":{"delete":{"tags":["Service Accounts"],"summary":"Revoke Service Account","description":"Revoke an existing service account.\n\nTakes effect immediately on this worker (the local verification cache entry is evicted) and within the cache TTL on other workers.","operationId":"revoke_service_account_service_accounts__service_account_id__delete","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"service_account_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Service account not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/registry":{"get":{"tags":["Registry"],"summary":"List Registry","description":"List all resources in the registry with optional filtering.","operationId":"list_registry","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RegistryResourceType"},{"type":"null"}],"description":"Filter by resource type","title":"Resource Type"},"description":"Filter by resource type"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (partial match)","title":"Name"},"description":"Filter by name (partial match)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_RegistryContentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}}},"components":{"schemas":{"A2ACard_APIKeySecurityScheme":{"description":"Defines a security scheme using an API key.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"in":{"$ref":"#/components/schemas/A2ACard_In"},"name":{"title":"Name","type":"string"},"type":{"const":"apiKey","default":"apiKey","title":"Type","type":"string"}},"required":["in","name"],"title":"APIKeySecurityScheme","type":"object"},"A2ACard_AgentCapabilities":{"description":"Defines optional capabilities supported by an agent.","properties":{"extensions":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentExtension"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"pushNotifications":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Pushnotifications"},"stateTransitionHistory":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Statetransitionhistory"},"streaming":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Streaming"}},"title":"AgentCapabilities","type":"object"},"A2ACard_AgentCardSignature":{"description":"AgentCardSignature represents a JWS signature of an AgentCard.\nThis follows the JSON format of an RFC 7515 JSON Web Signature (JWS).","properties":{"header":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Header"},"protected":{"title":"Protected","type":"string"},"signature":{"title":"Signature","type":"string"}},"required":["protected","signature"],"title":"AgentCardSignature","type":"object"},"A2ACard_AgentExtension":{"description":"A declaration of a protocol extension supported by an Agent.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"params":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Params"},"required":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Required"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"AgentExtension","type":"object"},"A2ACard_AgentInterface":{"description":"Declares a combination of a target URL and a transport protocol for interacting with the agent.\nThis allows agents to expose the same functionality over multiple transport mechanisms.","properties":{"transport":{"examples":["JSONRPC","GRPC","HTTP+JSON"],"title":"Transport","type":"string"},"url":{"examples":["https://api.example.com/a2a/v1","https://grpc.example.com/a2a","https://rest.example.com/v1"],"title":"Url","type":"string"}},"required":["transport","url"],"title":"AgentInterface","type":"object"},"A2ACard_AgentProvider":{"description":"Represents the service provider of an agent.","properties":{"organization":{"title":"Organization","type":"string"},"url":{"title":"Url","type":"string"}},"required":["organization","url"],"title":"AgentProvider","type":"object"},"A2ACard_AgentSkill":{"description":"Represents a distinct capability or function that an agent can perform.","properties":{"description":{"title":"Description","type":"string"},"examples":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"examples":[["I need a recipe for bread"]],"title":"Examples"},"id":{"title":"Id","type":"string"},"inputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Inputmodes"},"name":{"title":"Name","type":"string"},"outputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Outputmodes"},"security":{"anyOf":[{"items":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},"type":"array"},{"type":"null"}],"default":null,"examples":[[{"google":["oidc"]}]],"title":"Security"},"tags":{"examples":[["cooking","customer support","billing"]],"items":{"type":"string"},"title":"Tags","type":"array"}},"required":["description","id","name","tags"],"title":"AgentSkill","type":"object"},"A2ACard_AuthorizationCodeOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Authorization Code flow.","properties":{"authorizationUrl":{"title":"Authorizationurl","type":"string"},"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["authorizationUrl","scopes","tokenUrl"],"title":"AuthorizationCodeOAuthFlow","type":"object"},"A2ACard_ClientCredentialsOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Client Credentials flow.","properties":{"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["scopes","tokenUrl"],"title":"ClientCredentialsOAuthFlow","type":"object"},"A2ACard_HTTPAuthSecurityScheme":{"description":"Defines a security scheme using HTTP authentication.","properties":{"bearerFormat":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Bearerformat"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"scheme":{"title":"Scheme","type":"string"},"type":{"const":"http","default":"http","title":"Type","type":"string"}},"required":["scheme"],"title":"HTTPAuthSecurityScheme","type":"object"},"A2ACard_ImplicitOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Implicit flow.","properties":{"authorizationUrl":{"title":"Authorizationurl","type":"string"},"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"}},"required":["authorizationUrl","scopes"],"title":"ImplicitOAuthFlow","type":"object"},"A2ACard_In":{"description":"The location of the API key.","enum":["cookie","header","query"],"title":"In","type":"string"},"A2ACard_MutualTLSSecurityScheme":{"description":"Defines a security scheme using mTLS authentication.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"type":{"const":"mutualTLS","default":"mutualTLS","title":"Type","type":"string"}},"title":"MutualTLSSecurityScheme","type":"object"},"A2ACard_OAuth2SecurityScheme":{"description":"Defines a security scheme using OAuth 2.0.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"flows":{"$ref":"#/components/schemas/A2ACard_OAuthFlows"},"oauth2MetadataUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Oauth2Metadataurl"},"type":{"const":"oauth2","default":"oauth2","title":"Type","type":"string"}},"required":["flows"],"title":"OAuth2SecurityScheme","type":"object"},"A2ACard_OAuthFlows":{"description":"Defines the configuration for the supported OAuth 2.0 flows.","properties":{"authorizationCode":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_AuthorizationCodeOAuthFlow"},{"type":"null"}],"default":null},"clientCredentials":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_ClientCredentialsOAuthFlow"},{"type":"null"}],"default":null},"implicit":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_ImplicitOAuthFlow"},{"type":"null"}],"default":null},"password":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_PasswordOAuthFlow"},{"type":"null"}],"default":null}},"title":"OAuthFlows","type":"object"},"A2ACard_OpenIdConnectSecurityScheme":{"description":"Defines a security scheme using OpenID Connect.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"openIdConnectUrl":{"title":"Openidconnecturl","type":"string"},"type":{"const":"openIdConnect","default":"openIdConnect","title":"Type","type":"string"}},"required":["openIdConnectUrl"],"title":"OpenIdConnectSecurityScheme","type":"object"},"A2ACard_PasswordOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Resource Owner Password flow.","properties":{"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["scopes","tokenUrl"],"title":"PasswordOAuthFlow","type":"object"},"A2ACard_SecurityScheme":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_APIKeySecurityScheme"},{"$ref":"#/components/schemas/A2ACard_HTTPAuthSecurityScheme"},{"$ref":"#/components/schemas/A2ACard_OAuth2SecurityScheme"},{"$ref":"#/components/schemas/A2ACard_OpenIdConnectSecurityScheme"},{"$ref":"#/components/schemas/A2ACard_MutualTLSSecurityScheme"}],"title":"SecurityScheme"},"A2ARequest_DataPart":{"description":"Represents a structured data segment (e.g., JSON) within a message or artifact.","properties":{"data":{"additionalProperties":true,"title":"Data","type":"object"},"kind":{"const":"data","default":"data","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["data"],"title":"DataPart","type":"object"},"A2ARequest_FilePart":{"description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI.","properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_FileWithBytes"},{"$ref":"#/components/schemas/A2ARequest_FileWithUri"}],"title":"File"},"kind":{"const":"file","default":"file","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["file"],"title":"FilePart","type":"object"},"A2ARequest_FileWithBytes":{"description":"Represents a file with its content provided directly as a base64-encoded string.","properties":{"bytes":{"title":"Bytes","type":"string"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"}},"required":["bytes"],"title":"FileWithBytes","type":"object"},"A2ARequest_FileWithUri":{"description":"Represents a file with its content located at a specific URI.","properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"FileWithUri","type":"object"},"A2ARequest_Message":{"description":"Represents a single message in the conversation between a user and an agent.","properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"kind":{"const":"message","default":"message","title":"Kind","type":"string"},"messageId":{"title":"Messageid","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/A2ARequest_Part"},"title":"Parts","type":"array"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/A2ARequest_Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Taskid"},"agentId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Agent ID","description":"Target agent, team, or workflow ID for deprecated dynamic-dispatch endpoints."}},"required":["messageId","parts","role"],"title":"Message","type":"object"},"A2ARequest_MessageSendConfiguration":{"description":"Defines configuration options for a `message/send` or `message/stream` request.","properties":{"acceptedOutputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Acceptedoutputmodes"},"blocking":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Blocking"},"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"pushNotificationConfig":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationConfig"},{"type":"null"}],"default":null}},"title":"MessageSendConfiguration","type":"object"},"A2ARequest_MessageSendParams":{"description":"Defines the parameters for a request to send a message to an agent. This can be used\nto create a new task, continue an existing one, or restart a task.","properties":{"configuration":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_MessageSendConfiguration"},{"type":"null"}],"default":null},"message":{"$ref":"#/components/schemas/A2ARequest_Message"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["message"],"title":"MessageSendParams","type":"object"},"A2ARequest_Part":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_TextPart"},{"$ref":"#/components/schemas/A2ARequest_FilePart"},{"$ref":"#/components/schemas/A2ARequest_DataPart"}],"title":"Part"},"A2ARequest_PushNotificationAuthenticationInfo":{"description":"Defines authentication details for a push notification endpoint.","properties":{"credentials":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Credentials"},"schemes":{"items":{"type":"string"},"title":"Schemes","type":"array"}},"required":["schemes"],"title":"PushNotificationAuthenticationInfo","type":"object"},"A2ARequest_PushNotificationConfig":{"description":"Defines the configuration for setting up push notifications for task updates.","properties":{"authentication":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationAuthenticationInfo"},{"type":"null"}],"default":null},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Id"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Token"},"url":{"title":"Url","type":"string"}},"required":["url"],"title":"PushNotificationConfig","type":"object"},"A2ARequest_Role":{"description":"Identifies the sender of the message. `user` for the client, `agent` for the service.","enum":["agent","user"],"title":"Role","type":"string"},"A2ARequest_TaskIdParams":{"description":"Defines parameters containing a task ID, used for simple task operations.","properties":{"id":{"title":"Id","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"contextId":{"type":"string","title":"Context ID","description":"Agno session ID containing the task."}},"required":["id"],"title":"TaskIdParams","type":"object"},"A2ARequest_TaskQueryParams":{"description":"Defines parameters for querying a task, with an option to limit history length.","properties":{"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"id":{"title":"Id","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"contextId":{"type":"string","title":"Context ID","description":"Agno session ID containing the task."}},"required":["id","contextId"],"title":"TaskQueryParams","type":"object"},"A2ARequest_TextPart":{"description":"Represents a text segment within a message or artifact.","properties":{"kind":{"const":"text","default":"text","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"text":{"title":"Text","type":"string"}},"required":["text"],"title":"TextPart","type":"object"},"ActivityMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"activity","title":"Role","default":"activity"},"activityType":{"type":"string","title":"Activitytype"},"content":{"additionalProperties":true,"type":"object","title":"Content"}},"additionalProperties":true,"type":"object","required":["id","activityType","content"],"title":"ActivityMessage","description":"An activity progress message emitted between chat messages."},"AgentCard":{"description":"The AgentCard is a self-describing manifest for an agent. It provides essential\nmetadata including the agent's identity, capabilities, skills, supported\ncommunication methods, and security requirements.","properties":{"additionalInterfaces":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentInterface"},"type":"array"},{"type":"null"}],"default":null,"title":"Additionalinterfaces"},"capabilities":{"$ref":"#/components/schemas/A2ACard_AgentCapabilities"},"defaultInputModes":{"items":{"type":"string"},"title":"Defaultinputmodes","type":"array"},"defaultOutputModes":{"items":{"type":"string"},"title":"Defaultoutputmodes","type":"array"},"description":{"examples":["Agent that helps users with recipes and cooking."],"title":"Description","type":"string"},"documentationUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Documentationurl"},"iconUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Iconurl"},"name":{"examples":["Recipe Agent"],"title":"Name","type":"string"},"preferredTransport":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"JSONRPC","examples":["JSONRPC","GRPC","HTTP+JSON"],"title":"Preferredtransport"},"protocolVersion":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"0.3.0","title":"Protocolversion"},"provider":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_AgentProvider"},{"type":"null"}],"default":null},"security":{"anyOf":[{"items":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},"type":"array"},{"type":"null"}],"default":null,"examples":[[{"oauth":["read"]},{"api-key":[],"mtls":[]}]],"title":"Security"},"securitySchemes":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/A2ACard_SecurityScheme"},"type":"object"},{"type":"null"}],"default":null,"title":"Securityschemes"},"signatures":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentCardSignature"},"type":"array"},{"type":"null"}],"default":null,"title":"Signatures"},"skills":{"items":{"$ref":"#/components/schemas/A2ACard_AgentSkill"},"title":"Skills","type":"array"},"supportsAuthenticatedExtendedCard":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Supportsauthenticatedextendedcard"},"url":{"examples":["https://api.example.com/a2a/v1"],"title":"Url","type":"string"},"version":{"examples":["1.0.0"],"title":"Version","type":"string"}},"required":["capabilities","defaultInputModes","defaultOutputModes","description","name","skills","url","version"],"title":"AgentCard","type":"object"},"AgentResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"extra_messages":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Messages"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"AgentResponse"},"AgentSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_session_id":{"type":"string","title":"Agent Session Id","description":"Unique agent session identifier"},"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID used in this session"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"agent_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Data","description":"Agent-specific data"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["agent_session_id","session_id","session_name"],"title":"AgentSessionDetailSchema"},"AgentSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the agent"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the agent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the agent"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the agent"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","title":"AgentSummaryResponse"},"ApprovalCountResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"ApprovalCountResponse","description":"Response model for pending approval count."},"ApprovalResolve":{"properties":{"status":{"type":"string","pattern":"^(approved|rejected)$","title":"Status"},"resolved_by":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Resolved By"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"}},"type":"object","required":["status"],"title":"ApprovalResolve","description":"Request body for resolving (approve/reject) an approval."},"ApprovalResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"},"source_type":{"type":"string","title":"Source Type"},"approval_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Type"},"pause_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Args"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"},"schedule_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Run Id"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"},"run_status":{"anyOf":[{"$ref":"#/components/schemas/RunStatus"},{"type":"null"}]}},"type":"object","required":["id","run_id","session_id","status","source_type"],"title":"ApprovalResponse","description":"Response model for a single approval."},"ApprovalStatusResponse":{"properties":{"approval_id":{"type":"string","title":"Approval Id"},"status":{"type":"string","title":"Status"},"run_id":{"type":"string","title":"Run Id"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"}},"type":"object","required":["approval_id","status","run_id"],"title":"ApprovalStatusResponse","description":"Lightweight response model for polling approval status."},"Artifact":{"properties":{"artifactId":{"type":"string","title":"Artifactid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"}},"type":"object","required":["artifactId","parts"],"title":"Artifact","description":"Represents a file, data structure, or other resource generated by an agent during a task."},"AssistantMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"assistant","title":"Role","default":"assistant"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"},"toolCalls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},{"type":"null"}],"title":"Toolcalls"}},"additionalProperties":true,"type":"object","required":["id"],"title":"AssistantMessage","description":"An assistant message."},"AudioInputContent":{"properties":{"type":{"type":"string","const":"audio","title":"Type","default":"audio"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"AudioInputContent","description":"An audio input content fragment."},"BackgroundRunResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the background run."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the background run."},"status":{"type":"string","title":"Status","description":"Initial run status."}},"type":"object","required":["run_id","session_id","status"],"title":"BackgroundRunResponse"},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"BadRequestResponse","example":{"detail":"Bad request","error_code":"BAD_REQUEST"}},"BinaryInputContent":{"properties":{"type":{"type":"string","const":"binary","title":"Type","default":"binary"},"mimeType":{"type":"string","title":"Mimetype"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"additionalProperties":true,"type":"object","required":["mimeType"],"title":"BinaryInputContent","description":"A deprecated binary payload reference in a multimodal user message."},"Body_continue_agent_run":{"properties":{"tools":{"type":"string","title":"Tools","description":"JSON string of tool call results to continue the paused run","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Optional new user-message text to append to the run before resuming. Use for continuing a COMPLETED run with a follow-up, or adding context to a RUNNING/ERROR resume."},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","description":"When true, clone the run with a new ``run_id`` before resuming. The original is untouched; the clone becomes a sibling within the same session, with ``forked_from_run_id`` set.","default":false},"regenerate":{"type":"boolean","title":"Regenerate","description":"Sugar: regenerate the last response of this run. Auto-computes ``continue_from='last_user'`` to land just after the last user message. Pair with ``additional_instructions`` to steer the new output. By default the original response is hidden from history (replaced); pass ``replace_original=false`` to keep both the original and the regenerated response visible side by side.","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original","description":"Only valid with ``regenerate=true``. Controls history visibility of the original response; the original run is always retained in storage. Defaults to true: the original is marked REGENERATED and hidden from history so the new response replaces it. Pass false to keep both the original and regenerated responses visible."},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions","description":"Only valid with ``regenerate=true``: extra guidance appended as a user message before re-generation. Friendly alias for ``input``."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run continue in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false}},"type":"object","title":"Body_continue_agent_run"},"Body_continue_team_run":{"properties":{"requirements":{"type":"string","title":"Requirements","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input"},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","default":false},"regenerate":{"type":"boolean","title":"Regenerate","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original"},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"stream":{"type":"boolean","title":"Stream","default":true},"background":{"type":"boolean","title":"Background","default":false}},"type":"object","title":"Body_continue_team_run"},"Body_continue_workflow_run":{"properties":{"step_requirements":{"type":"string","title":"Step Requirements","description":"JSON string of step requirement objects with resolution status","default":""},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}},"type":"object","title":"Body_continue_workflow_run"},"Body_create_agent_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the agent"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Agent version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic agent construction"}},"type":"object","required":["message"],"title":"Body_create_agent_run"},"Body_create_team_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the team"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"monitor":{"type":"boolean","title":"Monitor","description":"Enable monitoring and logging for this run","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Team version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic team construction"}},"type":"object","required":["message"],"title":"Body_create_team_run"},"Body_create_workflow_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the workflow"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run workflow in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Workflow version to use for this run"},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow construction"}},"type":"object","required":["message"],"title":"Body_create_workflow_run"},"Body_rename_session":{"properties":{"session_name":{"type":"string","title":"Session Name","description":"New name for the session"}},"type":"object","required":["session_name"],"title":"Body_rename_session"},"Body_resume_agent_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_agent_run_stream"},"Body_resume_team_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_team_run_stream"},"Body_resume_workflow_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_workflow_run_stream"},"Body_update_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"Content metadata as JSON string"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"Reader ID. In Agno 2.7.4, local knowledge validates the value, but the content patch does not apply or persist the reader change."}},"type":"object","title":"Body_update_content"},"Body_upload_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated from file/URL if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description for context"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"URL to fetch content from (JSON array or single URL string)"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object for additional content properties"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File","description":"File to upload for processing"},"text_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Content","description":"Raw text content to process"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for content processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply during processing"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size to use for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap to use for processing"}},"type":"object","title":"Body_upload_content"},"Body_upload_remote_content":{"properties":{"config_id":{"type":"string","title":"Config Id","description":"ID of the configured remote content source (from /knowledge/config)"},"path":{"type":"string","title":"Path","description":"Path to file or folder in the remote source"},"source_params":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Params","description":"JSON object of per-request parameters forwarded to the source's factory. Used for provider-specific routing that shouldn't be baked into the config. Currently supported keys: GitHub accepts 'repo' ('owner/repo'), letting one configured GitHub source serve multiple repositories the credentials can access."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap for processing"}},"type":"object","required":["config_id","path"],"title":"Body_upload_remote_content"},"CancelTaskRequest":{"description":"Represents a JSON-RPC request for the `tasks/cancel` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"tasks/cancel","default":"tasks/cancel","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_TaskIdParams"}},"required":["id","params"],"title":"CancelTaskRequest","type":"object"},"CancelTaskSuccessResponse":{"description":"Represents a successful JSON-RPC response for the `tasks/cancel` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"default":null,"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"result":{"$ref":"#/components/schemas/Task"}},"required":["result"],"title":"CancelTaskSuccessResponse","type":"object"},"ChatConfig":{"properties":{"quick_prompts":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Quick Prompts"}},"type":"object","required":["quick_prompts"],"title":"ChatConfig","description":"Configuration for the Chat page of the AgentOS"},"ChunkerSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["key"],"title":"ChunkerSchema"},"ComponentConfigResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"version":{"type":"integer","title":"Version"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"type":"string","title":"Stage"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","version","stage","config","created_at"],"title":"ComponentConfigResponse"},"ComponentCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Display name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id","description":"Unique identifier for the entity. Auto-generated from name if not provided."},"component_type":{"$ref":"#/components/schemas/ComponentType","description":"Type of entity: agent, team, or workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config","description":"Optional configuration"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["name","component_type"],"title":"ComponentCreate"},"ComponentResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"component_type":{"$ref":"#/components/schemas/ComponentType"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","component_type","created_at"],"title":"ComponentResponse"},"ComponentType":{"type":"string","enum":["agent","team","workflow"],"title":"ComponentType"},"ComponentUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"component_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"}},"type":"object","title":"ComponentUpdate"},"ConfigCreate":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config","description":"The configuration data"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Optional version number"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links","description":"Optional links to child components"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["config"],"title":"ConfigCreate"},"ConfigResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the OS instance"},"available_models":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Models","description":"List of available models"},"os_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Database","description":"ID of the database used for the OS instance"},"databases":{"items":{"type":"string"},"type":"array","title":"Databases","description":"List of database IDs used by the components of the OS instance"},"chat":{"anyOf":[{"$ref":"#/components/schemas/ChatConfig"},{"type":"null"}],"description":"Chat configuration"},"manifest":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Manifest"},"type":"object"},{"type":"null"}],"title":"Manifest","description":"Per-entity UI metadata keyed by agent/team/workflow id"},"session":{"anyOf":[{"$ref":"#/components/schemas/SessionConfig"},{"type":"null"}],"description":"Session configuration"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/MetricsConfig"},{"type":"null"}],"description":"Metrics configuration"},"memory":{"anyOf":[{"$ref":"#/components/schemas/MemoryConfig"},{"type":"null"}],"description":"Memory configuration"},"learning":{"anyOf":[{"$ref":"#/components/schemas/LearningConfig"},{"type":"null"}],"description":"Learning configuration"},"knowledge":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeConfig"},{"type":"null"}],"description":"Knowledge configuration"},"evals":{"anyOf":[{"$ref":"#/components/schemas/EvalsConfig"},{"type":"null"}],"description":"Evaluations configuration"},"traces":{"anyOf":[{"$ref":"#/components/schemas/TracesConfig"},{"type":"null"}],"description":"Traces configuration"},"agents":{"items":{"$ref":"#/components/schemas/AgentSummaryResponse"},"type":"array","title":"Agents","description":"List of registered agents"},"teams":{"items":{"$ref":"#/components/schemas/TeamSummaryResponse"},"type":"array","title":"Teams","description":"List of registered teams"},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Workflows","description":"List of registered workflows"},"interfaces":{"items":{"$ref":"#/components/schemas/InterfaceResponse"},"type":"array","title":"Interfaces","description":"List of available interfaces"}},"type":"object","required":["os_id","databases","agents","teams","workflows","interfaces"],"title":"ConfigResponse","description":"Response schema for the general config endpoint"},"ConfigResponseSchema":{"properties":{"readers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ReaderSchema"},"type":"object"},{"type":"null"}],"title":"Readers","description":"Available content readers"},"readersForType":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Readersfortype","description":"Mapping of content types to reader IDs"},"chunkers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ChunkerSchema"},"type":"object"},{"type":"null"}],"title":"Chunkers","description":"Available chunking strategies"},"filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filters","description":"Available filter tags"},"vector_dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/VectorDbSchema"},"type":"array"},{"type":"null"}],"title":"Vector Dbs","description":"Configured vector databases"},"remote_content_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"type":"array"},{"type":"null"}],"title":"Remote Content Sources","description":"Configured remote content sources (S3, GCS, SharePoint, GitHub)"}},"type":"object","title":"ConfigResponseSchema"},"ConfigUpdate":{"properties":{"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","title":"ConfigUpdate"},"ConflictResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ConflictResponse","example":{"detail":"Resource conflict"}},"ContentResponseSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the content"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"MIME type of the content"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"},"linked_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linked To","description":"Knowledge instance name used for content isolation. Local Agno 2.7.4 responses return null because response conversion does not propagate the stored value."},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata as key-value pairs"},"access_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Access Count","description":"Stored access count. Local Agno 2.7.4 responses return null because response conversion does not propagate the stored value."},"status":{"anyOf":[{"$ref":"#/components/schemas/ContentStatus"},{"type":"null"}],"description":"Processing status of the content"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message","description":"Status message or error details"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when content was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when content was last updated"}},"type":"object","required":["id"],"title":"ContentResponseSchema"},"ContentStatus":{"type":"string","enum":["processing","completed","failed"],"title":"ContentStatus","description":"Enumeration of possible content processing statuses."},"ContentStatusResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Content ID"},"status":{"$ref":"#/components/schemas/ContentStatus","description":"Current processing status of the content"},"status_message":{"type":"string","title":"Status Message","description":"Status message or error details","default":""}},"type":"object","required":["status"],"title":"ContentStatusResponse","description":"Response model for content status endpoint."},"Context":{"properties":{"description":{"type":"string","title":"Description"},"value":{"type":"string","title":"Value"}},"additionalProperties":true,"type":"object","required":["description","value"],"title":"Context","description":"Additional context for the agent."},"CreateSessionRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session ID (generated if not provided)"},"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Initial session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"}},"type":"object","title":"CreateSessionRequest"},"DataPart":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data"},"kind":{"type":"string","const":"data","title":"Kind","default":"data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["data"],"title":"DataPart","description":"Represents a structured data segment (e.g., JSON) within a message or artifact."},"DatabaseConfig_EvalsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/EvalsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[EvalsDomainConfig]"},"DatabaseConfig_LearningDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/LearningDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[LearningDomainConfig]"},"DatabaseConfig_MemoryDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MemoryDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MemoryDomainConfig]"},"DatabaseConfig_MetricsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MetricsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MetricsDomainConfig]"},"DatabaseConfig_SessionDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/SessionDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[SessionDomainConfig]"},"DatabaseConfig_TracesDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/TracesDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[TracesDomainConfig]"},"DayAggregatedMetrics":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the metrics record"},"agent_runs_count":{"type":"integer","minimum":0.0,"title":"Agent Runs Count","description":"Total number of agent runs"},"agent_sessions_count":{"type":"integer","minimum":0.0,"title":"Agent Sessions Count","description":"Total number of agent sessions"},"team_runs_count":{"type":"integer","minimum":0.0,"title":"Team Runs Count","description":"Total number of team runs"},"team_sessions_count":{"type":"integer","minimum":0.0,"title":"Team Sessions Count","description":"Total number of team sessions"},"workflow_runs_count":{"type":"integer","minimum":0.0,"title":"Workflow Runs Count","description":"Total number of workflow runs"},"workflow_sessions_count":{"type":"integer","minimum":0.0,"title":"Workflow Sessions Count","description":"Total number of workflow sessions"},"users_count":{"type":"integer","minimum":0.0,"title":"Users Count","description":"Total number of unique users"},"token_metrics":{"additionalProperties":true,"type":"object","title":"Token Metrics","description":"Token usage metrics (input, output, cached, etc.)"},"model_metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Model Metrics","description":"Metrics grouped by model (model_id, provider, count)"},"date":{"type":"string","format":"date-time","title":"Date","description":"Date for which these metrics are aggregated"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when metrics were created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when metrics were last updated"}},"type":"object","required":["id","agent_runs_count","agent_sessions_count","team_runs_count","team_sessions_count","workflow_runs_count","workflow_sessions_count","users_count","token_metrics","model_metrics","date","created_at","updated_at"],"title":"DayAggregatedMetrics","description":"Aggregated metrics for a given day"},"DeleteEvalRunsRequest":{"properties":{"eval_run_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Eval Run Ids","description":"List of evaluation run IDs to delete"}},"type":"object","required":["eval_run_ids"],"title":"DeleteEvalRunsRequest"},"DeleteMemoriesRequest":{"properties":{"memory_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Memory Ids","description":"List of memory IDs to delete"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID to filter memories for deletion"}},"type":"object","required":["memory_ids"],"title":"DeleteMemoriesRequest"},"DeleteSessionRequest":{"properties":{"session_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Session Ids","description":"List of session IDs to delete"},"session_types":{"items":{"$ref":"#/components/schemas/SessionType"},"type":"array","minItems":1,"title":"Session Types","description":"Types of sessions to delete"}},"type":"object","required":["session_ids","session_types"],"title":"DeleteSessionRequest"},"DeveloperMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"developer","title":"Role","default":"developer"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"DeveloperMessage","description":"A developer message."},"DocumentInputContent":{"properties":{"type":{"type":"string","const":"document","title":"Type","default":"document"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"DocumentInputContent","description":"A document input content fragment."},"EvalFilterType":{"type":"string","enum":["agent","team","workflow"],"title":"EvalFilterType"},"EvalRunInput":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID to evaluate"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID to evaluate"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID to use for evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation to run (accuracy, performance, or reliability)"},"input":{"type":"string","minLength":1,"title":"Input","description":"Input text/query for the evaluation"},"additional_guidelines":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Guidelines","description":"Additional guidelines for the evaluation"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for the evaluation"},"num_iterations":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Num Iterations","description":"Number of times to run the evaluation","default":1},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for this evaluation run"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output","description":"Expected output for accuracy evaluation"},"criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criteria","description":"Evaluation criteria for agent-as-judge evaluation"},"scoring_strategy":{"anyOf":[{"type":"string","enum":["numeric","binary"]},{"type":"null"}],"title":"Scoring Strategy","description":"Scoring strategy: 'numeric' (1-10 with threshold) or 'binary' (PASS/FAIL)","default":"binary"},"threshold":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Threshold","description":"Score threshold for pass/fail (1-10), only used with numeric scoring","default":7},"warmup_runs":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Warmup Runs","description":"Number of warmup runs before measuring performance","default":0},"expected_tool_calls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expected Tool Calls","description":"Expected tool calls for reliability evaluation"},"allow_additional_tool_calls":{"type":"boolean","title":"Allow Additional Tool Calls","description":"When True, tool calls not in expected_tool_calls are allowed (subset matching)","default":false},"expected_tool_call_arguments":{"anyOf":[{"additionalProperties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Expected Tool Call Arguments","description":"Expected arguments for specific tool calls, e.g. {\"tool_name\": {\"arg_name\": \"expected_value\"}} or {\"tool_name\": [{\"arg_name\": \"val1\"}, {\"arg_name\": \"val2\"}]}"}},"type":"object","required":["eval_type","input"],"title":"EvalRunInput"},"EvalSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the evaluation run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that was evaluated"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID used in evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that was evaluated"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was evaluated"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the evaluation run"},"evaluated_component_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluated Component Name","description":"Name of the evaluated component"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation (accuracy, performance, or reliability)"},"eval_data":{"additionalProperties":true,"type":"object","title":"Eval Data","description":"Evaluation results and metrics"},"eval_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eval Input","description":"Input parameters used for the evaluation"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when evaluation was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when evaluation was last updated"}},"type":"object","required":["id","eval_type","eval_data"],"title":"EvalSchema"},"EvalType":{"type":"string","enum":["accuracy","agent_as_judge","performance","reliability"],"title":"EvalType"},"EvalsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_EvalsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"EvalsConfig","description":"Configuration for the Evals domain of the AgentOS"},"EvalsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"EvalsDomainConfig","description":"Configuration for the Evals domain of the AgentOS"},"FilePart":{"properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/FileWithBytes"},{"$ref":"#/components/schemas/FileWithUri"}],"title":"File"},"kind":{"type":"string","const":"file","title":"Kind","default":"file"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["file"],"title":"FilePart","description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI."},"FileWithBytes":{"properties":{"bytes":{"type":"string","title":"Bytes"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["bytes"],"title":"FileWithBytes","description":"Represents a file with its content provided directly as a base64-encoded string."},"FileWithUri":{"properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uri":{"type":"string","title":"Uri"}},"type":"object","required":["uri"],"title":"FileWithUri","description":"Represents a file with its content located at a specific URI."},"FilterFieldSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Column/field name used in filter expressions"},"label":{"type":"string","title":"Label","description":"Human-readable display label for the UI"},"type":{"type":"string","title":"Type","description":"Field data type: string, number, datetime, enum"},"operators":{"items":{"type":"string"},"type":"array","title":"Operators","description":"List of valid filter operators for this field"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values","description":"Allowed enum values (for autocomplete/dropdown)"}},"type":"object","required":["key","label","type","operators"],"title":"FilterFieldSchema","description":"Schema describing a single filterable field for the frontend filter bar."},"FilterSchemaResponse":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FilterFieldSchema"},"type":"array","title":"Fields","description":"Available filterable fields"},"logical_operators":{"items":{"type":"string"},"type":"array","title":"Logical Operators","description":"Logical operators for combining filter clauses","default":["AND","OR"]}},"type":"object","required":["fields"],"title":"FilterSchemaResponse","description":"Response for the filter schema endpoint. Tells the FE what fields, operators, and values are available."},"ForbiddenResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ForbiddenResponse","example":{"detail":"Insufficient permissions"}},"FunctionCall":{"properties":{"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"additionalProperties":true,"type":"object","required":["name","arguments"],"title":"FunctionCall","description":"Name and arguments of a function call."},"GetTaskRequest":{"description":"Represents a JSON-RPC request for the `tasks/get` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"tasks/get","default":"tasks/get","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_TaskQueryParams"}},"required":["id","params"],"title":"GetTaskRequest","type":"object"},"GetTaskSuccessResponse":{"description":"Represents a successful JSON-RPC response for the `tasks/get` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"default":null,"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"result":{"$ref":"#/components/schemas/Task"}},"required":["result"],"title":"GetTaskSuccessResponse","type":"object"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Health status of the service"},"instantiated_at":{"type":"string","format":"date-time","title":"Instantiated At","description":"Timestamp when service was instantiated"}},"type":"object","required":["status","instantiated_at"],"title":"HealthResponse","example":{"instantiated_at":"2025-06-10T12:00:00Z","status":"ok"}},"ImageInputContent":{"properties":{"type":{"type":"string","const":"image","title":"Type","default":"image"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"ImageInputContent","description":"An image input content fragment."},"InfoResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"agno_version":{"type":"string","title":"Agno Version","description":"Version of the agno framework"},"agent_count":{"type":"integer","title":"Agent Count","description":"Number of agents registered in the OS","default":0},"team_count":{"type":"integer","title":"Team Count","description":"Number of teams registered in the OS","default":0},"workflow_count":{"type":"integer","title":"Workflow Count","description":"Number of workflows registered in the OS","default":0},"mcp":{"$ref":"#/components/schemas/McpInfo","description":"MCP server availability for this OS instance"},"auth_mode":{"type":"string","enum":["none","security_key","jwt"],"title":"Auth Mode","description":"Authentication mode enforced on the REST/WS plane of this OS instance. MCP OAuth, when enabled, is described separately under `mcp.oauth`.","default":"none"}},"type":"object","required":["os_id","agno_version"],"title":"InfoResponse","description":"Response schema for the /info endpoint returning lightweight OS metadata."},"InputContentDataSource":{"properties":{"type":{"type":"string","const":"data","title":"Type","default":"data"},"value":{"type":"string","title":"Value"},"mimeType":{"type":"string","title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value","mimeType"],"title":"InputContentDataSource","description":"Inline base64-encoded source."},"InputContentUrlSource":{"properties":{"type":{"type":"string","const":"url","title":"Type","default":"url"},"value":{"type":"string","title":"Value"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value"],"title":"InputContentUrlSource","description":"URL-referenced source."},"InterfaceResponse":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the interface"},"version":{"type":"string","title":"Version","description":"Version of the interface"},"route":{"type":"string","title":"Route","description":"API route path"}},"type":"object","required":["type","version","route"],"title":"InterfaceResponse"},"InternalServerErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"InternalServerErrorResponse","example":{"detail":"Internal server error","error_code":"INTERNAL_SERVER_ERROR"}},"KnowledgeConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeDatabaseConfig"},"type":"array"},{"type":"null"}],"title":"Dbs"},"knowledge_instances":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeInstanceConfig"},"type":"array"},{"type":"null"}],"title":"Knowledge Instances"}},"type":"object","title":"KnowledgeConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeDatabaseConfig":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeDomainConfig"},{"type":"null"}]},"tables":{"items":{"type":"string"},"type":"array","title":"Tables","default":[]}},"type":"object","required":["db_id"],"title":"KnowledgeDatabaseConfig","description":"Configuration for a knowledge database with its tables"},"KnowledgeDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"KnowledgeDomainConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeInstanceConfig":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"db_id":{"type":"string","title":"Db Id"},"table":{"type":"string","title":"Table"}},"type":"object","required":["id","name","db_id","table"],"title":"KnowledgeInstanceConfig","description":"Configuration for a single knowledge instance"},"LearningConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_LearningDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"LearningConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningCreate":{"properties":{"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"content":{"additionalProperties":true,"type":"object","title":"Content","description":"The learning content payload"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID. When the request is authenticated, must match the JWT subject or be omitted/null (which creates a global / non-user-scoped record)."},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"}},"type":"object","required":["learning_type","content"],"title":"LearningCreate","description":"Request body for creating a learning record."},"LearningDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"LearningDomainConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningResponse":{"properties":{"learning_id":{"type":"string","title":"Learning Id","description":"Unique identifier for the learning record"},"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID (for entity-specific learnings)"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type (e.g. 'person', 'company')"},"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"The learning content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Creation timestamp (Unix epoch seconds)"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp (Unix epoch seconds)"}},"type":"object","required":["learning_id","learning_type"],"title":"LearningResponse","description":"A single learning record as returned by the API."},"LearningUpdate":{"properties":{"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Replacement content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Replacement metadata"}},"type":"object","title":"LearningUpdate","description":"Request body for updating a learning record. Identity fields are immutable."},"LearningUserStats":{"properties":{"user_id":{"type":"string","title":"User Id","description":"The user ID"},"last_learning_updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Learning Updated At","description":"Most recent learning update for this user (Unix epoch seconds)"}},"type":"object","required":["user_id"],"title":"LearningUserStats","description":"A user that owns learning records, with their most recent activity.\n\nUsed as a lightweight index for the per-user view: list users here, then drill into a\nsingle user's records via ``GET /learnings?user_id=...``. No per-user count is returned\n-- the user-scoped stores (``user_profile``, ``user_memory``) keep a single record per\nuser, so a record count would always be 1; the actual memory count lives in that\nrecord's ``content``."},"Manifest":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"},"quick_prompts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quick Prompts"}},"type":"object","title":"Manifest","description":"OS-level UI metadata for an agent/team/workflow.\n\nFields here are AgentOS UI metadata only. ``description`` is unrelated to\n``Agent.description`` / ``Team.description`` / ``Workflow.description``,\nwhich are sent to the model.\n\nRendering surfaces:\n- ``description``, ``labels``: home/landing card\n- ``quick_prompts``: chat page"},"McpInfo":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the MCP server is enabled on this OS instance","default":false},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Path where the MCP server is mounted, null when disabled"},"oauth":{"anyOf":[{"$ref":"#/components/schemas/McpOAuthInfo"},{"type":"null"}],"description":"OAuth discovery details when the MCP endpoint is OAuth-protected, null otherwise"}},"type":"object","title":"McpInfo","description":"MCP server availability for the /info endpoint."},"McpOAuthInfo":{"properties":{"authorization_servers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorization Servers","description":"Issuer URL(s) of the authorization server(s) protecting the MCP endpoint"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource","description":"RFC 9728 resource URL advertised for the MCP endpoint"}},"type":"object","title":"McpOAuthInfo","description":"OAuth discovery details for an MCP endpoint protected by ``AgentOS(mcp_auth=...)``."},"MemoryConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MemoryDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MemoryConfig","description":"Configuration for the Memory domain of the AgentOS"},"MemoryDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MemoryDomainConfig","description":"Configuration for the Memory domain of the AgentOS"},"Message":{"properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"kind":{"type":"string","const":"message","title":"Kind","default":"message"},"messageId":{"type":"string","title":"Messageid"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taskid"}},"type":"object","required":["messageId","parts","role"],"title":"Message","description":"Represents a single message in the conversation between a user and an agent."},"Meta":{"properties":{"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of results per page","default":20},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number","default":1}},"type":"object","title":"Meta","description":"Inline metadata schema for pagination."},"MetricsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MetricsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MetricsConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MetricsDomainConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsResponse":{"properties":{"metrics":{"items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"type":"array","title":"Metrics","description":"List of daily aggregated metrics"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp of the most recent metrics update"}},"type":"object","required":["metrics"],"title":"MetricsResponse"},"Model":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"Model"},"ModelResponse":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the model"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"ModelResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"NotFoundResponse","example":{"detail":"Not found","error_code":"NOT_FOUND"}},"NotImplementedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"NotImplementedResponse","example":{"detail":"Operation not supported for this resource type"}},"OptimizeMemoriesRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID to optimize memories for"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model in `provider:model_id` format. Current examples include `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, and `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`."},"apply":{"type":"boolean","title":"Apply","description":"If True, apply optimization changes to database. If False, return preview only without saving.","default":true}},"type":"object","required":["user_id"],"title":"OptimizeMemoriesRequest","description":"Schema for memory optimization request"},"OptimizeMemoriesResponse":{"properties":{"memories":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Memories","description":"List of optimized memory objects"},"memories_before":{"type":"integer","minimum":0.0,"title":"Memories Before","description":"Number of memories before optimization"},"memories_after":{"type":"integer","minimum":0.0,"title":"Memories After","description":"Number of memories after optimization"},"tokens_before":{"type":"integer","minimum":0.0,"title":"Tokens Before","description":"Token count before optimization"},"tokens_after":{"type":"integer","minimum":0.0,"title":"Tokens After","description":"Token count after optimization"},"tokens_saved":{"type":"integer","minimum":0.0,"title":"Tokens Saved","description":"Number of tokens saved through optimization"},"reduction_percentage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Reduction Percentage","description":"Percentage of token reduction achieved"}},"type":"object","required":["memories","memories_before","memories_after","tokens_before","tokens_after","tokens_saved","reduction_percentage"],"title":"OptimizeMemoriesResponse","description":"Schema for memory optimization response"},"PaginatedResponse_ApprovalResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ApprovalResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ApprovalResponse]"},"PaginatedResponse_ComponentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ComponentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ComponentResponse]"},"PaginatedResponse_ContentResponseSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentResponseSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ContentResponseSchema]"},"PaginatedResponse_EvalSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EvalSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[EvalSchema]"},"PaginatedResponse_LearningResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningResponse]"},"PaginatedResponse_LearningUserStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningUserStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningUserStats]"},"PaginatedResponse_RegistryContentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RegistryContentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[RegistryContentResponse]"},"PaginatedResponse_ScheduleResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleResponse]"},"PaginatedResponse_ScheduleRunResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleRunResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleRunResponse]"},"PaginatedResponse_ServiceAccountResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ServiceAccountResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ServiceAccountResponse]"},"PaginatedResponse_SessionSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SessionSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[SessionSchema]"},"PaginatedResponse_TraceDetail_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceDetail"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceDetail]"},"PaginatedResponse_TraceSessionStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSessionStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSessionStats]"},"PaginatedResponse_TraceSummary_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSummary"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSummary]"},"PaginatedResponse_UserMemorySchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserMemorySchema]"},"PaginatedResponse_UserStatsSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserStatsSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserStatsSchema]"},"PaginatedResponse_VectorSearchResult_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VectorSearchResult"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[VectorSearchResult]"},"PaginationInfo":{"properties":{"page":{"type":"integer","minimum":0.0,"title":"Page","description":"Page value returned by the endpoint. AgentOS paginated routes use 1-based page numbers. Some Agno 2.7.4 routes accept and echo 0 even though their pagination implementation is 1-based.","default":0},"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of items per page","default":20},"total_pages":{"type":"integer","minimum":0.0,"title":"Total Pages","description":"Total number of pages","default":0},"total_count":{"type":"integer","minimum":0.0,"title":"Total Count","description":"Total count of items","default":0},"search_time_ms":{"type":"number","minimum":0.0,"title":"Search Time Ms","description":"Search execution time in milliseconds","default":0}},"type":"object","title":"PaginationInfo"},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/DataPart"}],"title":"Part"},"ReaderSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the reader"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the reader"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the reader's capabilities"},"chunkers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chunkers","description":"List of supported chunking strategies"}},"type":"object","required":["id"],"title":"ReaderSchema"},"ReasoningMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"reasoning","title":"Role","default":"reasoning"},"content":{"type":"string","title":"Content"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"ReasoningMessage","description":"A reasoning message containing the agent's internal reasoning process."},"RegistryContentResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/RegistryResourceType"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name","type"],"title":"RegistryContentResponse"},"RegistryResourceType":{"type":"string","enum":["tool","model","db","vector_db","schema","function","agent","team","knowledge","memory_manager","session_summary_manager"],"title":"RegistryResourceType","description":"Types of resources that can be stored in a registry."},"RemoteContentSourceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content source"},"name":{"type":"string","title":"Name","description":"Display name for the content source"},"type":{"type":"string","title":"Type","description":"Type of content source (s3, gcs, sharepoint, github, azureblob)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Default path prefix for this source"}},"type":"object","required":["id","name","type"],"title":"RemoteContentSourceSchema","description":"Schema for remote content source configuration."},"ResumeEntry":{"properties":{"interruptId":{"type":"string","title":"Interruptid"},"status":{"type":"string","enum":["resolved","cancelled"],"title":"Status"},"payload":{"anyOf":[{},{"type":"null"}],"title":"Payload"}},"additionalProperties":true,"type":"object","required":["interruptId","status"],"title":"ResumeEntry","description":"A per-interrupt response in the resume array of a RunAgentInput."},"Role":{"type":"string","enum":["agent","user"],"title":"Role","description":"Identifies the sender of the message. `user` for the client, `agent` for the service."},"RunAgentInput":{"properties":{"threadId":{"type":"string","title":"Threadid"},"runId":{"type":"string","title":"Runid"},"parentRunId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentrunid"},"state":{"title":"State"},"messages":{"items":{"oneOf":[{"$ref":"#/components/schemas/DeveloperMessage"},{"$ref":"#/components/schemas/SystemMessage"},{"$ref":"#/components/schemas/AssistantMessage"},{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/ToolMessage"},{"$ref":"#/components/schemas/ActivityMessage"},{"$ref":"#/components/schemas/ReasoningMessage"}],"discriminator":{"propertyName":"role","mapping":{"activity":"#/components/schemas/ActivityMessage","assistant":"#/components/schemas/AssistantMessage","developer":"#/components/schemas/DeveloperMessage","reasoning":"#/components/schemas/ReasoningMessage","system":"#/components/schemas/SystemMessage","tool":"#/components/schemas/ToolMessage","user":"#/components/schemas/UserMessage"}}},"type":"array","title":"Messages"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","title":"Tools"},"context":{"items":{"$ref":"#/components/schemas/Context"},"type":"array","title":"Context"},"forwardedProps":{"title":"Forwardedprops"},"resume":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResumeEntry"},"type":"array"},{"type":"null"}],"title":"Resume"}},"additionalProperties":true,"type":"object","required":["threadId","runId","state","messages","tools","context","forwardedProps"],"title":"RunAgentInput","description":"Input for running an agent."},"RunCheckpointEntry":{"properties":{"checkpoint_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Checkpoint Id","description":"One-based display ID, or null when the requested boundary is not on the checkpoint timeline."},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Run that contains the checkpoint."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session that contains the run."},"message_index":{"type":"integer","minimum":0,"title":"Message Index","description":"Message boundary represented by the checkpoint."},"continue_from":{"type":"integer","minimum":0,"title":"Continue From","description":"Value to send as continue_from when continuing the run."},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Checkpoint status or current run status."},"reason":{"type":"string","title":"Reason","description":"Why this boundary was returned."},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Unix timestamp for the checkpoint or run."},"message_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Id","description":"Message ID at the checkpoint boundary."},"message_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Role","description":"Role of the message at the checkpoint boundary."},"message_preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Preview","description":"Truncated message content at the checkpoint boundary."},"is_latest":{"type":"boolean","title":"Is Latest","description":"Whether this is the final message boundary in the stored run."}},"type":"object","required":["checkpoint_id","run_id","session_id","message_index","continue_from","status","reason","created_at","message_id","message_role","message_preview","is_latest"],"title":"RunCheckpointEntry","description":"A continuation boundary derived from a stored run transcript."},"RunCheckpointListResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Run whose checkpoints were listed."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the run."},"checkpoints":{"type":"array","items":{"$ref":"#/components/schemas/RunCheckpointEntry"},"title":"Checkpoints","description":"Checkpoint boundaries in message order."}},"type":"object","required":["run_id","session_id","checkpoints"],"title":"RunCheckpointListResponse"},"RunCheckpointSnapshotResponse":{"properties":{"checkpoint":{"$ref":"#/components/schemas/RunCheckpointEntry"},"snapshot":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"}],"title":"Snapshot","description":"Agent or team run serialized at the requested message boundary."}},"type":"object","required":["checkpoint","snapshot"],"title":"RunCheckpointSnapshotResponse"},"RunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that executed this run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"RunSchema"},"RunStatus":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","PAUSED","CANCELLED","ERROR","REGENERATED"],"title":"RunStatus","description":"State of the main run response"},"ScheduleCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"cron_expr":{"type":"string","maxLength":128,"title":"Cron Expr"},"endpoint":{"type":"string","maxLength":512,"title":"Endpoint"},"method":{"type":"string","maxLength":10,"title":"Method","default":"POST"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"type":"string","maxLength":64,"title":"Timezone","default":"UTC"},"timeout_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Timeout Seconds","default":3600},"max_retries":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Max Retries","default":0},"retry_delay_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Retry Delay Seconds","default":60}},"type":"object","required":["name","cron_expr","endpoint"],"title":"ScheduleCreate"},"ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"cron_expr":{"type":"string","title":"Cron Expr"},"timezone":{"type":"string","title":"Timezone"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"max_retries":{"type":"integer","title":"Max Retries"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","method","endpoint","cron_expr","timezone","timeout_seconds","max_retries","retry_delay_seconds","enabled"],"title":"ScheduleResponse"},"ScheduleRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"schedule_id":{"type":"string","title":"Schedule Id"},"attempt":{"type":"integer","title":"Attempt"},"triggered_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triggered At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"status":{"type":"string","title":"Status"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","schedule_id","attempt","status"],"title":"ScheduleRunResponse"},"ScheduleStateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","enabled"],"title":"ScheduleStateResponse","description":"Trimmed response for state-changing operations (enable/disable)."},"ScheduleUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"cron_expr":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Cron Expr"},"endpoint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Endpoint"},"method":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Method"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Timezone"},"timeout_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":1.0},{"type":"null"}],"title":"Timeout Seconds"},"max_retries":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Max Retries"},"retry_delay_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":1.0},{"type":"null"}],"title":"Retry Delay Seconds"}},"type":"object","title":"ScheduleUpdate"},"ScopeItem":{"properties":{"scope":{"type":"string","title":"Scope","description":"Scope string, e.g. 'agents:*:run'"},"effect":{"type":"string","enum":["allow","deny"],"title":"Effect","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["scope"],"title":"ScopeItem","description":"Write shape for one scope grant \u2014 the canonical RBAC payload for every scope-bearing API.\n\nEndpoints that take scopes accept these objects only (a bare string is a validation\nerror). ``effect`` is constrained here so every consumer rejects typos at the model\nlayer; whether ``deny`` is *semantically* legal stays per-endpoint (roles support\ndeny rules, service-account tokens are pure grants and reject it)."},"ScopeSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Scope id (always null here; kept for shape parity with the cloud RBAC API, which addresses scopes individually)"},"raw":{"type":"string","title":"Raw","description":"Original scope string, e.g. 'agents:*:run'"},"namespace":{"type":"string","title":"Namespace","description":"Resource namespace, e.g. 'agents'"},"sub_namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Namespace","description":"Specific resource id or wildcard '*'"},"permission":{"type":"string","title":"Permission","description":"Action, e.g. 'read' / 'run' / 'write'"},"value":{"type":"string","title":"Value","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["raw","namespace","permission"],"title":"ScopeSchema","description":"Read shape for one scope \u2014 the parsed RBAC payload shared by every scope-bearing API.\n\nMirrors the cloud RBAC scope shape ({raw, namespace, sub_namespace, permission, value})\nso a frontend renders scopes from any AgentOS API with one integration."},"SendMessageRequest":{"description":"Represents a JSON-RPC request for the `message/send` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/send","default":"message/send","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendMessageRequest","type":"object"},"SendMessageSuccessResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id"},"jsonrpc":{"type":"string","const":"2.0","title":"Jsonrpc","default":"2.0"},"result":{"anyOf":[{"$ref":"#/components/schemas/Task"},{"$ref":"#/components/schemas/Message"}],"title":"Result"}},"type":"object","required":["result"],"title":"SendMessageSuccessResponse","description":"Represents a successful JSON-RPC response for the `message/send` method."},"SendStreamingMessageRequest":{"description":"Represents a JSON-RPC request for the `message/stream` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/stream","default":"message/stream","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendStreamingMessageRequest","type":"object"},"ServiceAccountCreate":{"properties":{"name":{"type":"string","maxLength":63,"title":"Name","description":"Machine identity name (lowercase slug), e.g. 'claude-code' or 'github-actions'"},"scopes":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScopeItem"},"type":"array"},{"type":"null"}],"title":"Scopes","description":"Scopes granted to the token, as {scope, effect} objects (the shared RBAC write shape; token scopes are grants, so only effect='allow' is accepted). Defaults to run and read scopes: agents:run, teams:run, workflows:run, sessions:read"},"expires_in_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Expires In Days","description":"Days until the token expires (default: 90)","default":90},"never_expires":{"type":"boolean","title":"Never Expires","description":"Mint a non-expiring token. Must be set explicitly; overrides expires_in_days.","default":false},"allow_privileged_scopes":{"type":"boolean","title":"Allow Privileged Scopes","description":"Required to grant privileged scopes: any write or delete action, the admin scope, or any service_accounts scope. Privileged tokens must be deliberate, never accidental.","default":false}},"type":"object","required":["name"],"title":"ServiceAccountCreate"},"ServiceAccountCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"token":{"type":"string","title":"Token","description":"The plaintext token. Shown exactly once - store it securely now."}},"type":"object","required":["id","name","principal","token_prefix","created_at","token"],"title":"ServiceAccountCreateResponse","description":"Returned once, at creation. The token is never retrievable again."},"ServiceAccountResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","name","principal","token_prefix","created_at"],"title":"ServiceAccountResponse","description":"Service account metadata. Never includes the token hash or plaintext."},"ServiceUnavailableResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ServiceUnavailableResponse","example":{"detail":"Feature not supported by the configured service"}},"SessionConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_SessionDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"SessionConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"SessionDomainConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier for the session"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state data of the session"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when session was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when session was last updated"},"session_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type","description":"Type of session: agent, team, or workflow"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["session_id","session_name"],"title":"SessionSchema"},"SessionType":{"type":"string","enum":["agent","team","workflow"],"title":"SessionType"},"SlackChallengeResponse":{"properties":{"challenge":{"type":"string","title":"Challenge","description":"Challenge string to echo back to Slack"}},"type":"object","required":["challenge"],"title":"SlackChallengeResponse"},"SlackEventResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"}},"type":"object","title":"SlackEventResponse"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"SourceFileSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Full path/key of the file"},"name":{"type":"string","title":"Name","description":"Display name (filename)"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"File size in bytes"},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified","description":"ISO 8601 timestamp of last modification"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"MIME type of the file"}},"type":"object","required":["key","name"],"title":"SourceFileSchema","description":"Schema for a file in a content source."},"SourceFilesResponseSchema":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"ID of the content source"},"source_name":{"type":"string","title":"Source Name","description":"Name of the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Prefix filter that was applied"},"folders":{"items":{"$ref":"#/components/schemas/SourceFolderSchema"},"type":"array","title":"Folders","description":"Subfolders at this level"},"files":{"items":{"$ref":"#/components/schemas/SourceFileSchema"},"type":"array","title":"Files","description":"List of files at this level"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["source_id","source_name","meta"],"title":"SourceFilesResponseSchema","description":"Response schema for listing files in a content source."},"SourceFolderSchema":{"properties":{"prefix":{"type":"string","title":"Prefix","description":"Full prefix to use for navigating into this folder"},"name":{"type":"string","title":"Name","description":"Display name of the folder"},"is_empty":{"type":"boolean","title":"Is Empty","description":"Whether the folder contains any files","default":false}},"type":"object","required":["prefix","name"],"title":"SourceFolderSchema","description":"Schema for a folder in a content source."},"SystemMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"system","title":"Role","default":"system"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"SystemMessage","description":"A system message."},"Task":{"properties":{"artifacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Artifact"},"type":"array"},{"type":"null"}],"title":"Artifacts"},"contextId":{"type":"string","title":"Contextid"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"History"},"id":{"type":"string","title":"Id"},"kind":{"type":"string","const":"task","title":"Kind","default":"task"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"status":{"$ref":"#/components/schemas/TaskStatus"}},"type":"object","required":["contextId","id","status"],"title":"Task","description":"Represents a single, stateful operation or conversation between a client and an agent."},"TaskState":{"type":"string","enum":["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"],"title":"TaskState","description":"Defines the lifecycle states of a Task."},"TaskStatus":{"properties":{"message":{"anyOf":[{"$ref":"#/components/schemas/Message"},{"type":"null"}]},"state":{"$ref":"#/components/schemas/TaskState"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp","examples":["2023-10-27T10:00:00Z"]}},"type":"object","required":["state"],"title":"TaskStatus","description":"Represents the status of a task at a specific point in time."},"TeamResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"members":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"$ref":"#/components/schemas/TeamResponse"}]},"type":"array"},{"type":"null"}],"title":"Members"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"TeamResponse"},"TeamRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the team run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that executed this run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the team run"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this team run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this team run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this team run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this team run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"TeamRunSchema"},"TeamSessionDetailSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID used in this session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of team interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"team_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Team Data","description":"Team-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"}},"type":"object","required":["session_id","session_name"],"title":"TeamSessionDetailSchema"},"TeamSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the team"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the team"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the team"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Team execution mode (coordinate, route, broadcast, tasks)"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the team leader"}},"type":"object","title":"TeamSummaryResponse"},"TelegramStatusResponse":{"properties":{"status":{"type":"string","title":"Status","default":"available"}},"type":"object","title":"TelegramStatusResponse"},"TelegramWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status"}},"type":"object","required":["status"],"title":"TelegramWebhookResponse"},"TextInputContent":{"properties":{"type":{"type":"string","const":"text","title":"Type","default":"text"},"text":{"type":"string","title":"Text"}},"additionalProperties":true,"type":"object","required":["text"],"title":"TextInputContent","description":"A text fragment in a multimodal user message."},"TextPart":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"TextPart","description":"Represents a text segment within a message or artifact."},"Tool":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{},{"type":"null"}],"title":"Parameters"}},"additionalProperties":true,"type":"object","required":["name","description"],"title":"Tool","description":"A tool definition."},"ToolCall":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/FunctionCall"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","function"],"title":"ToolCall","description":"A tool call, modelled after OpenAI tool calls."},"ToolMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"tool","title":"Role","default":"tool"},"content":{"type":"string","title":"Content"},"toolCallId":{"type":"string","title":"Toolcallid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content","toolCallId"],"title":"ToolMessage","description":"A tool result message."},"TraceDetail":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent/workflow"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the agent/workflow"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"},"tree":{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array","title":"Tree","description":"Hierarchical tree of spans (root nodes)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at","tree"],"title":"TraceDetail","description":"Detailed trace information with hierarchical span tree"},"TraceNode":{"properties":{"id":{"type":"string","title":"Id","description":"Span ID"},"name":{"type":"string","title":"Name","description":"Span name (e.g., 'agent.run', 'llm.invoke')"},"type":{"type":"string","title":"Type","description":"Span kind (AGENT, TEAM, WORKFLOW, LLM, TOOL)"},"duration":{"type":"string","title":"Duration","description":"Human-readable duration (e.g., '123ms', '1.5s')"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"End time (Pydantic auto-serializes to ISO 8601)"},"status":{"type":"string","title":"Status","description":"Status code (OK, ERROR)"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the span"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the span"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"spans":{"anyOf":[{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array"},{"type":"null"}],"title":"Spans","description":"Child spans in the trace hierarchy"},"step_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Type","description":"Workflow step type (Step, Condition, function, Agent, Team)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional span attributes and data"},"extra_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Data","description":"Flexible field for custom attributes and additional data"}},"type":"object","required":["id","name","type","duration","start_time","end_time","status"],"title":"TraceNode","description":"Recursive node structure for rendering trace hierarchy in the frontend"},"TraceSearchGroupBy":{"type":"string","enum":["run","session"],"title":"TraceSearchGroupBy","description":"Grouping options for trace search results."},"TraceSearchRequest":{"properties":{"filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter","description":"FilterExpr DSL as JSON dict. Supports operators: EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH, AND, OR, NOT."},"group_by":{"$ref":"#/components/schemas/TraceSearchGroupBy","description":"Grouping mode: 'run' returns individual TraceDetail, 'session' returns aggregated TraceSessionStats.","default":"run"},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number (1-indexed)","default":1},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"Number of traces per page (max 100)","default":20}},"type":"object","title":"TraceSearchRequest","description":"Request body for POST /traces/search with advanced filtering.\n\nThe filter field accepts a FilterExpr DSL dict supporting composable queries\nwith AND/OR/NOT logic and operators like EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH.\n\nExample for run grouping (default):\n {\n \"filter\": {\n \"op\": \"AND\",\n \"conditions\": [\n {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n {\"op\": \"CONTAINS\", \"key\": \"user_id\", \"value\": \"admin\"}\n ]\n },\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n }\n\nExample for session grouping:\n {\n \"filter\": {\"op\": \"EQ\", \"key\": \"agent_id\", \"value\": \"my-agent\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n }"},"TraceSessionStats":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID(s) used in the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID associated with the session"},"total_traces":{"type":"integer","title":"Total Traces","description":"Total number of traces in this session"},"first_trace_at":{"type":"string","format":"date-time","title":"First Trace At","description":"Time of first trace (Pydantic auto-serializes to ISO 8601)"},"last_trace_at":{"type":"string","format":"date-time","title":"Last Trace At","description":"Time of last trace (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["session_id","total_traces","first_trace_at","last_trace_at"],"title":"TraceSessionStats","description":"Aggregated trace statistics grouped by session"},"TraceSummary":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR, UNSET)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at"],"title":"TraceSummary","description":"Summary information for trace list view"},"TracesConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_TracesDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"TracesConfig","description":"Configuration for the Traces domain of the AgentOS"},"TracesDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"TracesDomainConfig","description":"Configuration for the Traces domain of the AgentOS"},"UnauthenticatedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"UnauthenticatedResponse","example":{"detail":"Unauthenticated access","error_code":"UNAUTHENTICATED"}},"UpdateEvalRunRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"New name for the evaluation run"}},"type":"object","required":["name"],"title":"UpdateEvalRunRequest"},"UpdateSessionRequest":{"properties":{"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Updated session name"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Updated session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Updated metadata"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary","description":"Session summary"}},"type":"object","title":"UpdateSessionRequest"},"UserMemoryCreateSchema":{"properties":{"memory":{"type":"string","maxLength":5000,"minLength":1,"title":"Memory","description":"Memory content text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags to categorize the memory"}},"type":"object","required":["memory"],"title":"UserMemoryCreateSchema","description":"Define the payload expected for creating a new user memory"},"UserMemorySchema":{"properties":{"memory_id":{"type":"string","title":"Memory Id","description":"Unique identifier for the memory"},"memory":{"type":"string","title":"Memory","description":"Memory content text"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags associated with the memory"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID associated with this memory"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with this memory"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when memory was last updated"}},"type":"object","required":["memory_id","memory"],"title":"UserMemorySchema"},"UserMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"user","title":"Role","default":"user"},"content":{"anyOf":[{"type":"string"},{"items":{"oneOf":[{"$ref":"#/components/schemas/TextInputContent"},{"$ref":"#/components/schemas/ImageInputContent"},{"$ref":"#/components/schemas/AudioInputContent"},{"$ref":"#/components/schemas/VideoInputContent"},{"$ref":"#/components/schemas/DocumentInputContent"},{"$ref":"#/components/schemas/BinaryInputContent"}],"discriminator":{"propertyName":"type","mapping":{"audio":"#/components/schemas/AudioInputContent","binary":"#/components/schemas/BinaryInputContent","document":"#/components/schemas/DocumentInputContent","image":"#/components/schemas/ImageInputContent","text":"#/components/schemas/TextInputContent","video":"#/components/schemas/VideoInputContent"}}},"type":"array"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"UserMessage","description":"A user message supporting text or multimodal content."},"UserStatsSchema":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"total_memories":{"type":"integer","minimum":0.0,"title":"Total Memories","description":"Total number of memories for this user"},"last_memory_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Memory Updated At","description":"Timestamp of the most recent memory update"}},"type":"object","required":["user_id","total_memories"],"title":"UserStatsSchema","description":"Schema for user memory statistics"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"ValidationErrorResponse","example":{"detail":"Validation error","error_code":"VALIDATION_ERROR"}},"VectorDbSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the vector database"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the vector database"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the vector database"},"search_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Search Types","description":"List of supported search types (vector, keyword, hybrid)"}},"type":"object","required":["id"],"title":"VectorDbSchema"},"VectorSearchRequestSchema":{"properties":{"query":{"type":"string","title":"Query","description":"The search query text"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database ID to search in"},"knowledge_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledge Id","description":"Knowledge base ID to search in"},"vector_db_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vector Db Ids","description":"List of vector database IDs to search in"},"search_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Type","description":"The type of search to perform (vector, keyword, hybrid)"},"max_results":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Max Results","description":"The maximum number of results to return"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Filters to apply to the search results"},"meta":{"anyOf":[{"$ref":"#/components/schemas/Meta"},{"type":"null"}],"description":"Pagination metadata. Limit and page number to return a subset of results."}},"type":"object","required":["query"],"title":"VectorSearchRequestSchema","description":"Schema for vector search request."},"VectorSearchResult":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the search result document"},"content":{"type":"string","title":"Content","description":"Content text of the document"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the document"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Metadata associated with the document"},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"Usage statistics (e.g., token counts)"},"reranking_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reranking Score","description":"Reranking score for relevance"},"content_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Id","description":"ID of the source content"},"content_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Origin","description":"Origin URL or source of the content"},"size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"}},"type":"object","required":["id","content"],"title":"VectorSearchResult","description":"Schema for search result documents."},"VideoInputContent":{"properties":{"type":{"type":"string","const":"video","title":"Type","default":"video"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"VideoInputContent","description":"A video input content fragment."},"WhatsAppWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status","default":"ok"}},"type":"object","title":"WhatsAppWebhookResponse"},"WorkflowResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema","description":"Input schema for the workflow"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps","description":"List of workflow steps"},"agent":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"type":"null"}],"description":"Agent configuration if used"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamResponse"},{"type":"null"}],"description":"Team configuration if used"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"workflow_agent":{"type":"boolean","title":"Workflow Agent","description":"Whether this workflow uses a WorkflowAgent","default":false},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowResponse"},"WorkflowRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the workflow run"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the workflow"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was executed"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the workflow"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"Type of content returned"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status of the workflow run"},"step_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Results","description":"Results from each workflow step"},"step_executor_runs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Executor Runs","description":"Executor runs for each step"},"step_requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Requirements","description":"HITL step requirements (resolved state for historical display)"},"pause_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Kind","description":"Kind of HITL pause: 'step' or 'executor'"},"paused_step_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Step Name","description":"Name of the step that caused the pause"},"paused_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Paused Step Index","description":"Index of the step that caused the pause"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the workflow"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the workflow"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the workflow"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the workflow"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the workflow"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"}},"type":"object","required":["run_id"],"title":"WorkflowRunSchema"},"WorkflowSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID used in this session"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name","description":"Name of the workflow"},"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Data","description":"Complete session data"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current workflow state"},"workflow_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Data","description":"Workflow-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["session_id","session_name"],"title":"WorkflowSessionDetailSchema"},"WorkflowSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowSummaryResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} +{"openapi":"3.1.0","info":{"title":"Agno API Reference","description":"The all-in-one, private, secure agent platform that runs in your cloud.","version":"2.7.4"},"paths":{"/":{"get":{"tags":["Home"],"summary":"API Information","description":"Return the AgentOS instance name, ID, and version.","operationId":"get_api_info","responses":{"200":{"description":"API information retrieved successfully","content":{"application/json":{"schema":{"properties":{"name":{"type":"string","title":"Name"},"id":{"type":"string","title":"Id"},"version":{"type":"string","title":"Version"}},"type":"object","required":["name","id","version"],"title":"ApiInfoResponse"},"examples":{"home":{"summary":"Example home response","value":{"name":"AgentOS API","id":"demo-os","version":"1.0.0"}}}}}}}}},"/health":{"get":{"tags":["Health"],"summary":"Health Check","description":"Check the health status of the AgentOS API. Returns a simple status indicator.","operationId":"health_check","responses":{"200":{"description":"API is healthy and operational","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"},"example":{"status":"ok","instantiated_at":"2025-06-10T12:00:00Z"}}}}}}},"/info":{"get":{"tags":["Core"],"summary":"Get OS Info","description":"Return lightweight, unauthenticated metadata about this AgentOS instance.","operationId":"get_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoResponse"}}}}}}},"/config":{"get":{"tags":["Core"],"summary":"Get OS Configuration","description":"Retrieve the complete configuration of the AgentOS instance, including:\n\n- Available models and databases\n- Registered agents, teams, and workflows\n- Chat, session, memory, knowledge, and evaluation configurations\n- Available interfaces and their routes","operationId":"get_config","responses":{"200":{"description":"OS configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"},"example":{"description":"Example AgentOS configuration","available_models":[],"databases":["9c884dc4-9066-448c-9074-ef49ec7eb73c"],"session":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Sessions"}}]},"metrics":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Metrics"}}]},"memory":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Memory"}}]},"knowledge":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Knowledge"}}]},"evals":{"dbs":[{"db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c","domain_config":{"display_name":"Evals"}}]},"agents":[{"id":"main-agent","name":"Main Agent","db_id":"9c884dc4-9066-448c-9074-ef49ec7eb73c"}],"teams":[],"workflows":[],"interfaces":[],"os_id":"demo"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/models":{"get":{"tags":["Core"],"summary":"Get Available Models","description":"Retrieve a list of all unique models currently used by agents and teams in this OS instance. This includes the model ID and provider information for each model.","operationId":"get_models","responses":{"200":{"description":"List of models retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Response Get Models"},"example":[{"id":"gpt-4","provider":"openai"},{"id":"claude-3-sonnet","provider":"anthropic"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/agents/{agent_id}/runs":{"post":{"tags":["Agents"],"summary":"Create Agent Run","description":"Execute an agent with a message and optional media files. Supports both streaming and non-streaming responses.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_agent_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_agent_run"}}}},"responses":{"200":{"description":"Agent run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"examples":{"event_stream":{"summary":"Example event stream response","value":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Agents"],"summary":"List Agent Runs","description":"List runs for an agent within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_agent_runs","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED","title":"Status"},"description":"Filter by run status: PENDING, RUNNING, COMPLETED, PAUSED, CANCELLED, ERROR, or REGENERATED"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RunSchema"},"type":"array","title":"Response List Agent Runs"}}}},"400":{"description":"Run listing is unavailable for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Agent resolution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/cancel":{"post":{"tags":["Agents"],"summary":"Cancel Agent Run","description":"Request cancellation for `run_id`. After any required ownership check, local and factory agents store cancellation intent keyed by run ID. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote agent.","operationId":"cancel_agent_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.","title":"Session Id"},"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it."}],"responses":{"200":{"description":"Cancellation request accepted. The empty response does not confirm run existence or remote delivery.","content":{"application/json":{"schema":{}}}},"400":{"description":"A user-scoped caller omitted session_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found, or the run could not be verified in the caller's session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run cancellation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/continue":{"post":{"tags":["Agents"],"summary":"Continue Agent Run","description":"Advance a persisted agent run from its current state. Dispatches on the body shape and the persisted run state (see ADR-003 in specs/agno/features/checkpointing/decisions.md).\n\n**Variants:**\n- PAUSED + tools provided \u2192 apply HITL tool results, resume\n- PAUSED + resolved admin approval (empty tools) \u2192 apply resolution, resume\n- RUNNING / ERROR (no unresolved HITL requirements) \u2192 resume from last persisted state\n- COMPLETED + new tools \u2192 continue with appended messages\n\n**Tools Parameter:**\nJSON string containing array of tool execution objects with results. Optional \u2014 only required when the persisted run has unresolved HITL requirements.","operationId":"continue_agent_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_agent_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid tools or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Agent run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"The selected agent does not support run continuation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"503":{"description":"Remote agent is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/agents/{agent_id}/sessions/{session_id}/fork":{"post":{"tags":["Agents"],"summary":"Fork Agent Session","description":"Deep-copy a session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_agent_session","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents":{"get":{"tags":["Agents"],"summary":"List All Agents","description":"Retrieve a comprehensive list of all agents configured in this OS instance.\n\n**Returns:**\n- Agent metadata (ID, name, description)\n- Model configuration and capabilities\n- Available tools and their configurations\n- Session, knowledge, memory, and reasoning settings\n- Only meaningful (non-default) configurations are included","operationId":"get_agents","responses":{"200":{"description":"List of agents retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentResponse"},"type":"array","title":"Response Get Agents"},"example":[{"id":"main-agent","name":"Main Agent","db_id":"c6bf0644-feb8-4930-a305-380dae5ad6aa","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Details","description":"Retrieve detailed configuration and capabilities of a specific agent.\n\n**Returns comprehensive agent information including:**\n- Model configuration and provider details\n- Complete tool inventory and configurations\n- Session management settings\n- Knowledge base and memory configurations\n- Reasoning capabilities and settings\n- System prompts and response formatting options","operationId":"get_agent","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Agent details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"},"example":{"id":"main-agent","name":"Main Agent","db_id":"9e064c70-6821-4840-a333-ce6230908a70","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"sessions":{"session_table":"agno_sessions"},"knowledge":{"knowledge_table":"main_knowledge"},"system_message":{"markdown":true,"add_datetime_to_context":true}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}":{"get":{"tags":["Agents"],"summary":"Get Agent Run","description":"Retrieve the status and output of an agent run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_agent_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Agents"],"summary":"List Agent Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_agent_run_checkpoints","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointListResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Agents"],"summary":"Get Agent Run Checkpoint Snapshot","description":"Return a derived run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_agent_run_checkpoint_snapshot","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointSnapshotResponse"}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/agents/{agent_id}/runs/{run_id}/resume":{"post":{"tags":["Agents"],"summary":"Resume Agent Run Stream","description":"Resume an SSE stream for an agent run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_agent_run_stream","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_agent_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Not supported for remote agents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs":{"post":{"tags":["Teams"],"summary":"Create Team Run","description":"Execute a team collaboration with multiple agents working together on a task.\n\n**Features:**\n- Text message input with optional session management\n- Multi-media support: images (PNG, JPEG, WebP), audio (WAV, MP3), video (MP4, WebM, etc.)\n- Document processing: PDF, CSV, DOCX, TXT, JSON\n- Real-time streaming responses with Server-Sent Events (SSE)\n- User and session context preservation\n\n**Streaming Response:**\nWhen `stream=true`, returns SSE events with `event` and `data` fields.","operationId":"create_team_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_team_run"}}}},"responses":{"200":{"description":"Team run executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid request or unsupported file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Teams"],"summary":"List Team Runs","description":"List runs for a team within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_team_runs","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR)"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/cancel":{"post":{"tags":["Teams"],"summary":"Cancel Team Run","description":"Request cancellation for `run_id`. After any required ownership check, local and factory teams store cancellation intent keyed by run ID and mark known member runs for cancellation. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote team.","operationId":"cancel_team_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.","title":"Session Id"},"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it."}],"responses":{"200":{"description":"Cancellation request accepted. The empty response does not confirm run existence or remote delivery.","content":{"application/json":{"schema":{}}}},"400":{"description":"A user-scoped caller omitted session_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found, or the run could not be verified in the caller's session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel team run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/resume":{"post":{"tags":["Teams"],"summary":"Resume Team Run Stream","description":"Resume an SSE stream for a team run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_team_run_stream","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_team_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory teams. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/continue":{"post":{"tags":["Teams"],"summary":"Continue Team Run","description":"Continue a paused or incomplete team run with updated requirements.\n\n**Use Cases:**\n- Resume execution after tool approval/rejection\n- Provide manual tool execution results\n- Resume after admin approval (requirements can be empty; resolution fetched from DB)\n\n**Requirements Parameter:**\nJSON string containing array of requirement objects with tool execution results.\nCan be empty when an admin-required approval has been resolved.","operationId":"continue_team_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_team_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}},"text/event-stream":{"example":"event: RunContent\ndata: {\"created_at\": 1757348314, \"run_id\": \"123...\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid requirements or continuation boundary, missing local session ID, rejected input, or background streaming requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Team run access denied, or a required admin approval is unresolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is in a state that cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Remote team is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/teams/{team_id}/sessions/{session_id}/fork":{"post":{"tags":["Teams"],"summary":"Fork Team Session","description":"Deep-copy a team session into a new independent session. Every run is copied with a fresh ``run_id``; the new session has a fresh ``session_id``. The original is untouched. Use to explore alternative conversation paths without mutating the source.\n\nDistinct from ``/continue?fork=true``: that creates a sibling **run** inside the **same** session. This creates a sibling **session**.","operationId":"fork_team_session","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Session forked successfully","content":{"application/json":{"schema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"ID of the new independent session."},"forked_from_session_id":{"type":"string","title":"Forked From Session Id","description":"ID of the source session."}},"type":"object","required":["session_id","forked_from_session_id"],"title":"ForkSessionResponse"}}}},"400":{"description":"Source session is empty or missing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams":{"get":{"tags":["Teams"],"summary":"List Accessible Teams","description":"Retrieve configured team metadata, models, members, knowledge, and memory settings. When authorization is enabled, in-memory team registrations are filtered by caller scopes. Database-loaded team components are also included.","operationId":"get_teams","responses":{"200":{"description":"List of teams retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamResponse"},"type":"array","title":"Response Get Teams"},"example":[{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"agno_memories","app_url":"/memory/1","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/teams/{team_id}":{"get":{"tags":["Teams"],"summary":"Get Team Details","description":"Retrieve detailed configuration and member information for a specific team.","operationId":"get_team","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamResponse"},"example":{"team_id":"basic-team","name":"Basic Team","mode":"coordinate","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"},"tools":[{"name":"transfer_task_to_member","description":"Use this function to transfer a task to the selected team member.\nYou must provide a clear and concise description of the task the member should achieve AND the expected output.","parameters":{"type":"object","properties":{"member_id":{"type":"string","description":"(str) The ID of the member to transfer the task to. Use only the ID of the member, not the ID of the team followed by the ID of the member."},"task_description":{"type":"string","description":"(str) A clear and concise description of the task the member should achieve."},"expected_output":{"type":"string","description":"(str) The expected output from the member (optional)."}},"additionalProperties":false,"required":["member_id","task_description"]}}],"members":[{"agent_id":"basic-agent","name":"Basic Agent","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI gpt-4o"},"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"session_table":"agno_sessions","memory_table":"agno_memories"}],"enable_agentic_context":false,"memory":{"app_name":"Memory","model":{"name":"OpenAIChat","model":"gpt-4o","provider":"OpenAI"}},"async_mode":false,"session_table":"agno_sessions","memory_table":"agno_memories"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}":{"get":{"tags":["Teams"],"summary":"Get Team Run","description":"Retrieve the status and output of a team run. Use this to poll for background run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_team_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints":{"get":{"tags":["Teams"],"summary":"List Team Run Checkpoints","description":"List FE-friendly continuation boundaries derived from the current stored team run. No separate checkpoint table is used; entries are inferred from message-level checkpoint markers and the terminal end of the transcript.","operationId":"list_team_run_checkpoints","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoints retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointListResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/teams/{team_id}/runs/{run_id}/checkpoints/{message_index}":{"get":{"tags":["Teams"],"summary":"Get Team Run Checkpoint Snapshot","description":"Return a derived team run snapshot truncated at a message boundary. Use the returned message_index as `continue_from` when continuing this run.","operationId":"get_team_run_checkpoint_snapshot","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"message_index","in":"path","required":true,"schema":{"type":"integer","title":"Message Index"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"}],"responses":{"200":{"description":"Run checkpoint snapshot retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheckpointSnapshotResponse"}}}},"400":{"description":"Invalid checkpoint message index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows":{"get":{"tags":["Workflows"],"summary":"List Workflows","description":"Return workflow ID, name, description, database ID, factory metadata, and Builder version metadata. When authorization is enabled, caller scopes filter in-memory workflow registrations. Database-loaded Builder workflows are appended separately.","operationId":"get_workflows","responses":{"200":{"description":"List of workflows retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Response Get Workflows"},"example":[{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/workflows/{workflow_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Details","description":"Retrieve detailed configuration and step information for a specific workflow.","operationId":"get_workflow","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Workflow version to retrieve","title":"Version"},"description":"Workflow version to retrieve"}],"responses":{"200":{"description":"Workflow details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"},"example":{"id":"content-creation-workflow","name":"Content Creation Workflow","description":"Automated content creation from blog posts to social media","db_id":"123"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs":{"post":{"tags":["Workflows"],"summary":"Execute Workflow","description":"Execute a workflow with the provided input data. Workflows can run in streaming or batch mode.\n\n**Execution Modes:**\n- **Streaming (`stream=true`)**: Real-time step-by-step execution updates via SSE\n- **Non-Streaming (`stream=false`)**: Complete workflow execution with final result\n\n**Workflow Execution Process:**\n1. Input validation against workflow schema\n2. Sequential or parallel step execution based on workflow design\n3. Data flow between steps with transformation\n4. Error handling and automatic retries where configured\n5. Final result compilation and response\n\n**Session Management:**\nWorkflows support session continuity for stateful execution across multiple runs.","operationId":"create_workflow_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_run"}}}},"responses":{"200":{"description":"Workflow executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: RunStarted\ndata: {\"content\": \"Hello!\", \"run_id\": \"123...\"}\n\n"}}},"202":{"description":"Background run accepted when `background=true` and `stream=false`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackgroundRunResponse"}}}},"400":{"description":"Invalid input data or workflow configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Workflow execution error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"List Workflow Runs","description":"List runs for a workflow within a session, optionally filtered by status.\n\nUseful for monitoring background runs and viewing run history.","operationId":"list_workflow_runs","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID to list runs for","title":"Session Id"},"description":"Session ID to list runs for"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)","title":"Status"},"description":"Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"List of runs retrieved successfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/continue":{"post":{"tags":["Workflows"],"summary":"Continue Workflow Run","description":"Continue a paused workflow run with resolved requirements.\n\n**Use Cases:**\n- Resume after step-level HITL (confirmation, user input, router selection)\n- Resume after executor-level HITL (agent/team tool confirmation within a step)\n\n**Requirements Parameter:**\nJSON string containing the resolved step requirements.","operationId":"continue_workflow_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_continue_workflow_run"}}}},"responses":{"200":{"description":"A non-streaming run response or a server-sent event stream. Streaming execution failures are delivered as events after the stream starts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}},"text/event-stream":{"example":"event: StepCompleted\ndata: {\"step_name\": \"step1\"}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid step requirements or factory input, missing required session ID, rejected input, or remote workflow continuation requested","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow, session, or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Run is not paused and cannot be continued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/cancel":{"post":{"tags":["Workflows"],"summary":"Cancel Workflow Run","description":"Request cancellation for `run_id`. After any required ownership check, local and factory workflows store cancellation intent keyed by run ID and mark known agent or team executor runs for cancellation. For admins and otherwise unscoped callers, this also supports cancel-before-start for an unregistered ID. Cancellation is cooperative and may not be immediate. HTTP 200 does not confirm that an active run existed or that cancellation was delivered to a remote workflow.","operationId":"cancel_workflow_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it.","title":"Session Id"},"description":"Session ID used to verify run ownership. Required when the caller is user-scoped: service accounts, and non-admin JWT users when user isolation is enabled. Admin and otherwise unscoped callers can omit it."}],"responses":{"200":{"description":"Cancellation request accepted. The empty response does not confirm run existence or remote delivery.","content":{"application/json":{"schema":{}}}},"400":{"description":"A user-scoped caller omitted session_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found, or the run could not be verified in the caller's session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to cancel workflow run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}/resume":{"post":{"tags":["Workflows"],"summary":"Resume Workflow Run Stream","description":"Resume an SSE stream for a workflow run after disconnection.\n\nSends missed events since `last_event_index`, then continues streaming live events if the run is still active.\n\n**Three reconnection paths:**\n1. **Run still active**: Sends catch-up events + continues live streaming\n2. **Run completed (in buffer)**: Replays missed buffered events\n3. **Run completed (in database)**: Replays events from database\n\n**Client usage:**\nTrack `event_index` from each SSE event. On reconnection, pass the last received `event_index` as `last_event_index`.","operationId":"resume_workflow_run_stream","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_resume_workflow_run_stream"}}}},"responses":{"200":{"description":"SSE stream of catch-up and/or live events","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Stream resumption is unavailable for remote and factory workflows. Non-admin callers must provide `session_id`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/workflows/{workflow_id}/runs/{run_id}":{"get":{"tags":["Workflows"],"summary":"Get Workflow Run","description":"Retrieve the status and output of a workflow run. Use this to poll for run completion.\n\nRequires the `session_id` that was returned when the run was created.","operationId":"get_workflow_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Session ID for the run","title":"Session Id"},"description":"Session ID for the run"},{"name":"factory_input","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction","title":"Factory Input"},"description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}],"responses":{"200":{"description":"Run output retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/slack/events":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Receives incoming Slack events (messages, mentions, thread starts).\n\n**URL Verification:** On first setup, Slack sends a `url_verification` challenge. The endpoint echoes back the challenge string.\n\n**Event Processing:** Normal events are acknowledged immediately with `{\"status\": \"ok\"}` and processed in the background. This prevents Slack's 3-second retry timeout.\n\n**Retry Handling:** Events with `X-Slack-Retry-Num` header are duplicates and return 200 without reprocessing.\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Event Subscriptions > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for creating a Slack App or use the [manifest](/agent-os/interfaces/slack/setup#2-create-the-slack-app) for quick setup.\n","operationId":"slack_events_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SlackChallengeResponse"},{"$ref":"#/components/schemas/SlackEventResponse"}],"title":"Response Slack Events Simple Agent"}}}},"400":{"description":"Missing Slack headers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured, or the event body is not valid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number (present on retried events)"}]}},"/slack/interactions":{"post":{"tags":["Slack"],"summary":"Slack Interactions","description":"Handles Slack interactive components for Human-in-the-Loop (HITL) workflows.\n\n**Supported Actions:**\n- `row_approve` - Approve a pending tool call\n- `row_reject` - Reject a pending tool call\n- `submit_pause` - Submit form data for a paused workflow\n- `check_status` - Check an admin approval and resume an approved run\n\n**Setup:** Configure this URL in your [Slack App](https://api.slack.com/apps) under **Interactivity & Shortcuts > Request URL**.\n\nSee the [setup guide](/agent-os/interfaces/slack/setup) for step-by-step instructions or the [HITL guide](/agent-os/interfaces/slack/hitl) for approval workflows.\n","operationId":"slack_interactions_simple_agent","responses":{"200":{"description":"Interaction accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackEventResponse"}}}},"400":{"description":"Missing Slack headers or malformed interaction payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid Slack signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Slack signing is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Slack-Request-Timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp when Slack sent the request"},{"name":"X-Slack-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC signature for request verification (v0=hash)"},{"name":"X-Slack-Retry-Num","in":"header","required":false,"schema":{"type":"string"},"description":"Retry attempt number. Retried interactions return 200 without reprocessing."}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"URL-encoded JSON interaction payload (Slack sends interactive component data as a single form field)"}}}}}}}},"/whatsapp/status":{"get":{"tags":["Whatsapp"],"summary":"Status","operationId":"whatsapp_status_simple_agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"WhatsAppStatusResponse","example":{"status":"available"}}}}}}}},"/whatsapp/webhook":{"get":{"tags":["Whatsapp"],"summary":"Whatsapp Verify","description":"Handle WhatsApp webhook verification","operationId":"whatsapp_verify_simple_agent","responses":{"200":{"description":"Webhook challenge accepted","content":{"text/plain":{"schema":{"type":"string"},"example":"challenge-token"}}},"400":{"description":"No challenge was provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"403":{"description":"Invalid verify token or mode","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Webhook verification is not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"hub.mode","in":"query","required":true,"schema":{"type":"string"},"description":"Webhook verification mode. Meta sends `subscribe`."},{"name":"hub.verify_token","in":"query","required":true,"schema":{"type":"string"},"description":"Verification token configured for the WhatsApp interface."},{"name":"hub.challenge","in":"query","required":true,"schema":{"type":"string"},"description":"Challenge returned as plain text after successful verification."}]},"post":{"tags":["Whatsapp"],"summary":"Whatsapp Webhook","description":"Process incoming WhatsApp messages","operationId":"whatsapp_webhook_simple_agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppWebhookResponse"}}}},"403":{"description":"Invalid webhook signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"500":{"description":"Signature validation is not configured, or the JSON body is malformed or is not an object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"parameters":[{"name":"X-Hub-Signature-256","in":"header","required":true,"schema":{"type":"string"},"description":"SHA-256 HMAC signature for the raw request body, prefixed with `sha256=`"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}},"/telegram/status":{"get":{"tags":["Telegram"],"summary":"Telegram Status","operationId":"telegram_status_simple-agent","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramStatusResponse"}}}}}}},"/telegram/webhook":{"post":{"tags":["Telegram"],"summary":"Telegram Webhook","operationId":"telegram_webhook_simple-agent","responses":{"200":{"description":"Event processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramWebhookResponse"}}}},"403":{"description":"Invalid webhook secret token"}}}},"/agui":{"post":{"tags":["AGUI"],"summary":"Run Agent","operationId":"run_agent_agui_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentInput"}}},"required":true},"responses":{"200":{"description":"Server-sent event stream","content":{"text/event-stream":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/status":{"get":{"tags":["AGUI"],"summary":"Get Status","operationId":"get_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/a2a/agents/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Agent Card","operationId":"get_agent_card_a2a_agents__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/a2a/agents/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Agent","description":"Send a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"A2A is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/agents/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Agent Task","description":"Get the status and result of an agent task by ID. `params.contextId` identifies the session containing the task.","operationId":"get_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent task retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Missing task or context ID, or task polling requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"Task polling is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/get","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/agents/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Agent Task","description":"Cancel a running agent task. Scoped non-admin callers must identify the task's session with `params.contextId`.","operationId":"cancel_agent_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Agent task canceled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"canceled"}}}}}},"400":{"description":"Missing task or required context ID, or task cancellation requested for a remote agent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"501":{"description":"Task cancellation is not supported for this agent type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/cancel","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/agents/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Agent","description":"Stream a message to an Agno Agent. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/teams/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Team Card","operationId":"get_team_card_a2a_teams__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/a2a/teams/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Team","description":"Send a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"202":{"description":"Message accepted for background execution when `blocking=false`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/teams/{id}/v1/tasks:get":{"post":{"tags":["A2A"],"summary":"Get Team Task","description":"Get the status and result of a team task by ID. `params.contextId` identifies the session containing the task.","operationId":"get_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team task retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Missing task or context ID, or task polling requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/get","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/teams/{id}/v1/tasks:cancel":{"post":{"tags":["A2A"],"summary":"Cancel Team Task","description":"Cancel a running team task. Scoped non-admin callers must identify the task's session with `params.contextId`.","operationId":"cancel_team_task","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Team task canceled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"canceled"}}}}}},"400":{"description":"Missing task or required context ID, or task cancellation requested for a remote team","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team, session, or task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelTaskRequest"},"example":{"jsonrpc":"2.0","id":"request-123","method":"tasks/cancel","params":{"id":"task-456","contextId":"context-789"}}}}}}},"/a2a/teams/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Team","description":"Stream a message to an Agno Team. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_team","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Team not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/workflows/{id}/.well-known/agent-card.json":{"get":{"tags":["A2A"],"summary":"Get Workflow Card","operationId":"get_workflow_card_a2a_workflows__id___well_known_agent_card_json_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Workflow card retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCard"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/a2a/workflows/{id}/v1/message:send":{"post":{"tags":["A2A"],"summary":"Run Message Workflow","description":"Send a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential.","operationId":"run_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/workflows/{id}/v1/message:stream":{"post":{"tags":["A2A"],"summary":"Stream Message Workflow","description":"Stream a message to an Agno Workflow. Anonymous requests can set `X-User-ID` or `params.message.metadata.userId` for attribution. Authenticated requests use the identity from the credential. The response is a server-sent event stream.","operationId":"stream_message_workflow","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Workflow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/a2a/message/send":{"post":{"tags":["A2A"],"summary":"Send Message","description":"[DEPRECATED] Send a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata.","operationId":"send_message","responses":{"200":{"description":"Message sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageSuccessResponse"},"example":{"id":"request-123","jsonrpc":"2.0","result":{"contextId":"context-789","id":"task-456","kind":"task","status":{"state":"completed"}}}}}},"400":{"description":"Invalid request or unsupported method","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, team, or workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"deprecated":true,"security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"X-Agent-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Target agent, team, or workflow ID when `params.message.agentId` is omitted."},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}}}},"/a2a/message/stream":{"post":{"tags":["A2A"],"summary":"Stream Message","description":"[DEPRECATED] Stream a message to an Agno Agent, Team, or Workflow. The Agent, Team or Workflow is identified via the 'agentId' field in params.message or X-Agent-ID header. Optional: Pass user ID via X-User-ID header (recommended) or 'userId' in params.message.metadata. Returns real-time updates as Server-Sent Events (SSE).","operationId":"stream_message","responses":{"200":{"description":"Streaming response with task updates","content":{"text/event-stream":{"example":"event: TaskStatusUpdateEvent\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"taskId\":\"task-456\",\"status\":\"working\"}}\n\nevent: Message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"request-123\",\"result\":{\"messageId\":\"msg-1\",\"role\":\"agent\",\"parts\":[{\"kind\":\"text\",\"text\":\"Response\"}]}}\n\n","schema":{"type":"string"}}}},"400":{"description":"Invalid request or unsupported method","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent, team, or workflow not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"500":{"description":"Run could not be started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"deprecated":true,"security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"X-Agent-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Target agent, team, or workflow ID when `params.message.agentId` is omitted."},{"name":"X-User-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional user ID for anonymous attribution. Authenticated requests use the identity from the credential."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendStreamingMessageRequest"}}}}}},"/sessions":{"get":{"tags":["Sessions"],"summary":"List Sessions","description":"Retrieve paginated list of sessions with filtering and sorting options. Supports filtering by session type (agent, team, workflow), component, user, and name. Sessions represent conversation histories and execution contexts.","operationId":"get_sessions","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types.","title":"Type"},"description":"Type of sessions to retrieve (agent, team, or workflow). If not provided, returns all session types."},{"name":"component_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by component ID (agent/team/workflow ID)","title":"Component Id"},"description":"Filter sessions by component ID (agent/team/workflow ID)"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by user ID","title":"User Id"},"description":"Filter sessions by user ID"},{"name":"session_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions by name (partial match)","title":"Session Name"},"description":"Filter sessions by name (partial match)"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of sessions to return per page","default":20,"title":"Limit"},"description":"Number of sessions to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort sessions by","default":"created_at","title":"Sort By"},"description":"Field to sort sessions by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query sessions from","title":"Db Id"},"description":"Database ID to query sessions from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Sessions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_SessionSchema_"},"example":{"session_example":{"summary":"Example session response","value":{"data":[{"session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_state":{},"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}]}}}}}},"400":{"description":"Invalid session type or filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in query parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Sessions"],"summary":"Create New Session","description":"Create a new empty session with optional configuration. Useful for pre-creating sessions with specific session_state, metadata, or other properties before running any agent/team/workflow interactions. The session can later be used by providing its session_id in run requests.","operationId":"create_session","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SessionType","description":"Type of session to create (agent, team, or workflow)","default":"agent"},"description":"Type of session to create (agent, team, or workflow)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to create session in","title":"Db Id"},"description":"Database ID to create session in"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest","description":"Session configuration data","default":{}}}}},"responses":{"201":{"description":"Session created successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Create Session"},"examples":{"agent_session_example":{"summary":"Example created agent session","value":{"user_id":"user-123","agent_session_id":"new-session-id","session_id":"new-session-id","session_name":"New Session","session_state":{"key":"value"},"metadata":{"key":"value"},"agent_id":"agent-1","created_at":"2025-10-21T12:00:00Z","updated_at":"2025-10-21T12:00:00Z"}}}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A session with the supplied session_id already exists"},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Multiple Sessions","description":"Delete multiple sessions by their IDs in a single operation. This action cannot be undone and will permanently remove all specified sessions and their runs.","operationId":"delete_sessions","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSessionRequest"}}}},"responses":{"204":{"description":"Sessions deleted successfully"},"400":{"description":"Invalid request - session IDs and types length mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["Sessions"],"summary":"Get Session by ID","description":"Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow).","operationId":"get_session_by_id","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to retrieve","title":"Session Id"},"description":"Session ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query session from","title":"User Id"},"description":"User ID to query session from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query session from","title":"Db Id"},"description":"Database ID to query session from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query session from","title":"Table"},"description":"Table to query session from"}],"responses":{"200":{"description":"Session details retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Get Session By Id"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Sessions"],"summary":"Delete Session","description":"Permanently delete a specific session and all its associated runs. This action cannot be undone and will remove all conversation history.","operationId":"delete_session","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to delete","title":"Session Id"},"description":"Session ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope deletion to","title":"User Id"},"description":"User ID to scope deletion to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Sessions"],"summary":"Update Session","description":"Update session properties such as session_name, session_state, metadata, or summary. Use this endpoint to modify the session name, update state, add metadata, or update the session summary.","operationId":"update_session","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to update","title":"Session Id"},"description":"Session ID to update"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID","title":"User Id"},"description":"User ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update operation","title":"Db Id"},"description":"Database ID to use for update operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update operation","title":"Table"},"description":"Table to use for update operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest","description":"Session update data"}}}},"responses":{"200":{"description":"Session updated successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Update Session"},"examples":{"update_summary":{"summary":"Update session summary","value":{"summary":{"summary":"The user discussed project planning with the agent.","updated_at":"2025-10-21T14:30:00Z"}}},"update_metadata":{"summary":"Update session metadata","value":{"metadata":{"tags":["planning","project"],"priority":"high"}}},"update_session_name":{"summary":"Update session name","value":{"session_name":"Updated Session Name"}},"update_session_state":{"summary":"Update session state","value":{"session_state":{"step":"completed","context":"Project planning finished","progress":100}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs":{"get":{"tags":["Sessions"],"summary":"Get Session Runs","description":"Retrieve all runs (executions) for a specific session with optional timestamp filtering. Runs represent individual interactions or executions within a session. Response schema varies based on session type.","operationId":"get_session_runs","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get runs from","title":"Session Id"},"description":"Session ID to get runs from"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query runs from","title":"User Id"},"description":"User ID to query runs from"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created after this Unix timestamp (epoch time in seconds)","title":"Created After"},"description":"Filter runs created after this Unix timestamp (epoch time in seconds)"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter runs created before this Unix timestamp (epoch time in seconds)","title":"Created Before"},"description":"Filter runs created before this Unix timestamp (epoch time in seconds)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query runs from","title":"Db Id"},"description":"Database ID to query runs from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query runs from","title":"Table"},"description":"Table to query runs from"}],"responses":{"200":{"description":"Session runs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}]},"title":"Response Get Session Runs"},"examples":{"completed_run":{"summary":"Example completed run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"","run_input":"Which tools do you have access to?","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","run_response_format":"text","reasoning_content":"","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069},"messages":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-08 17:52:10.101003.\n\n\nYou have the capability to retain memories from previous interactions with the user, but have not had any interactions with the user yet.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757346730},{"content":"Which tools do you have access to?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757346730},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138},"created_at":1757346730}],"events":[{"created_at":1757346730,"event":"RunStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","model":"gpt-4o","model_provider":"OpenAI"},{"created_at":1757346733,"event":"MemoryUpdateStarted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"MemoryUpdateCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0"},{"created_at":1757346734,"event":"RunCompleted","agent_id":"basic-agent","agent_name":"Basic Agent","run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","session_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","content_type":"str","metrics":{"input_tokens":82,"output_tokens":56,"total_tokens":138,"time_to_first_token":0.047505500027909875,"duration":4.840060166025069}}],"created_at":"2025-09-08T15:52:10Z"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found or has no runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/runs/{run_id}":{"get":{"tags":["Sessions"],"summary":"Get Run by ID","description":"Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run).","operationId":"get_session_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to get run from","title":"Session Id"},"description":"Session ID to get run from"},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","description":"Run ID to retrieve","title":"Run Id"},"description":"Run ID to retrieve"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, the run type is inferred from the run's own fields."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query run from","title":"User Id"},"description":"User ID to query run from"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query run from","title":"Db Id"},"description":"Database ID to query run from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query run from","title":"Table"},"description":"Table to query run from"}],"responses":{"200":{"description":"Run retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"},{"$ref":"#/components/schemas/WorkflowRunSchema"}],"title":"Response Get Session Run"},"examples":{"agent_run":{"summary":"Example agent run","value":{"run_id":"fcdf50f0-7c32-4593-b2ef-68a558774340","parent_run_id":"80056af0-c7a5-4d69-b6a2-c3eba9f040e0","agent_id":"basic-agent","user_id":"user_123","run_input":"Which tools do you have access to?","content":"I don't have access to external tools.","created_at":1728499200}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session or run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/sessions/{session_id}/rename":{"post":{"tags":["Sessions"],"summary":"Rename Session","description":"Update the name of an existing session. Useful for organizing and categorizing sessions with meaningful names for better identification and management.","operationId":"rename_session","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID to rename","title":"Session Id"},"description":"Session ID to rename"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SessionType"},{"type":"null"}],"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data.","title":"Type"},"description":"Session type (agent, team, or workflow). If not provided, auto-detected from session data."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to scope rename to","title":"User Id"},"description":"User ID to scope rename to"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for rename operation","title":"Db Id"},"description":"Database ID to use for rename operation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_rename_session"}}}},"responses":{"200":{"description":"Session renamed successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentSessionDetailSchema"},{"$ref":"#/components/schemas/TeamSessionDetailSchema"},{"$ref":"#/components/schemas/WorkflowSessionDetailSchema"}],"title":"Response Rename Session"},"examples":{"agent_session_example":{"summary":"Example agent session response","value":{"user_id":"123","agent_session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_id":"6f6cfbfd-9643-479a-ae47-b8f32eb4d710","session_name":"What tools do you have?","session_summary":{"summary":"The user and assistant engaged in a conversation about the tools the agent has available.","updated_at":"2025-09-05T18:02:12.269392"},"session_state":{},"agent_id":"basic-agent","total_tokens":160,"agent_data":{"name":"Basic Agent","agent_id":"basic-agent","model":{"provider":"OpenAI","name":"OpenAIChat","id":"gpt-4o"}},"metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160,"audio_input_tokens":0,"audio_output_tokens":0,"audio_total_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"chat_history":[{"content":"\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n\n\nYou have access to memories from previous interactions with the user that you can use:\n\n\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.","from_history":false,"stop_after_tool_call":false,"role":"system","created_at":1757088129},{"content":"What tools do you have?","from_history":false,"stop_after_tool_call":false,"role":"user","created_at":1757088129},{"content":"I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!","from_history":false,"stop_after_tool_call":false,"role":"assistant","metrics":{"input_tokens":134,"output_tokens":26,"total_tokens":160},"created_at":1757088129}],"created_at":"2025-09-05T16:02:09Z","updated_at":"2025-09-05T16:02:09Z"}}}}}},"400":{"description":"Invalid session name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Invalid session type or validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories":{"post":{"tags":["Memory"],"summary":"Create Memory","description":"Create a new user memory with content and associated topics. Memories are used to store contextual information for users across conversations.","operationId":"create_memory","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for memory storage","title":"Db Id"},"description":"Database ID to use for memory storage"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for memory storage","title":"Table"},"description":"Table to use for memory storage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"mem-123","memory":"User prefers technical explanations with code examples","topics":["preferences","communication_style","technical"],"user_id":"user-456","created_at":"2024-01-15T10:30:00Z","updated_at":"2024-01-15T10:30:00Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to create memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Memory"],"summary":"Delete Multiple Memories","description":"Delete multiple user memories by their IDs in a single operation. This action cannot be undone and all specified memories will be permanently removed.","operationId":"delete_memories","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMemoriesRequest"}}}},"responses":{"204":{"description":"Memories deleted successfully"},"400":{"description":"Invalid request - empty memory_ids list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"List Memories","description":"Retrieve paginated list of user memories with filtering and search capabilities. Filter by user, agent, team, topics, or search within memory content.","operationId":"get_memories","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by user ID","title":"User Id"},"description":"Filter memories by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by agent ID","title":"Agent Id"},"description":"Filter memories by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter memories by team ID","title":"Team Id"},"description":"Filter memories by team ID"},{"name":"search_content","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fuzzy search within memory content","title":"Search Content"},"description":"Fuzzy search within memory content"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of memories to return per page","default":20,"title":"Limit"},"description":"Number of memories to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort memories by","default":"updated_at","title":"Sort By"},"description":"Field to sort memories by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memories from","title":"Db Id"},"description":"Database ID to query memories from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Comma-separated list of topics to filter by","examples":["preferences,technical,communication_style"],"title":"Topics"},"description":"Comma-separated list of topics to filter by"}],"responses":{"200":{"description":"Memories retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserMemorySchema_"},"example":{"data":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memories/{memory_id}":{"delete":{"tags":["Memory"],"summary":"Delete Memory","description":"Permanently delete a specific user memory. This action cannot be undone.","operationId":"delete_memory","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to delete","title":"Memory Id"},"description":"Memory ID to delete"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to delete memory for","title":"User Id"},"description":"User ID to delete memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"responses":{"204":{"description":"Memory deleted successfully"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Memory"],"summary":"Get Memory by ID","description":"Retrieve detailed information about a specific user memory by its ID.","operationId":"get_memory","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to retrieve","title":"Memory Id"},"description":"Memory ID to retrieve"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to query memory for","title":"User Id"},"description":"User ID to query memory for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query memory from","title":"Db Id"},"description":"Database ID to query memory from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query memory from","title":"Table"},"description":"Table to query memory from"}],"responses":{"200":{"description":"Memory retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Memory"],"summary":"Update Memory","description":"Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values.","operationId":"update_memory","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"memory_id","in":"path","required":true,"schema":{"type":"string","description":"Memory ID to update","title":"Memory Id"},"description":"Memory ID to update"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for update","title":"Db Id"},"description":"Database ID to use for update"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for update","title":"Table"},"description":"Table to use for update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemoryCreateSchema"}}}},"responses":{"200":{"description":"Memory updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMemorySchema"},"example":{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User likes coffee.","topics":["preferences"],"user_id":"123","updated_at":"2025-09-01T07:53:17Z"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Memory not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update memory","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/memory_topics":{"get":{"tags":["Memory"],"summary":"Get Memory Topics","description":"Retrieve all unique topics associated with memories in the system. Useful for filtering and categorizing memories by topic.","operationId":"get_memory_topics","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter topics for","title":"User Id"},"description":"User ID to filter topics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query topics from","title":"Db Id"},"description":"Database ID to query topics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query topics from","title":"Table"},"description":"Table to query topics from"}],"responses":{"200":{"description":"Memory topics retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Get Memory Topics"},"example":["preferences","communication_style","technical","industry","compliance","code_examples","requirements","healthcare","finance"]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/user_memory_stats":{"get":{"tags":["Memory"],"summary":"Get User Memory Statistics","description":"Retrieve paginated statistics about memory usage by user. Provides insights into user engagement and memory distribution across users.","operationId":"get_user_memory_stats","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of user statistics to return per page","default":20,"title":"Limit"},"description":"Number of user statistics to return per page"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID to filter statistics for","title":"User Id"},"description":"User ID to filter statistics for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query statistics from","title":"Table"},"description":"Table to query statistics from"}],"responses":{"200":{"description":"User memory statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UserStatsSchema_"},"example":{"data":[{"user_id":"123","total_memories":3,"last_memory_updated_at":"2025-09-01T07:53:17Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve user statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/optimize-memories":{"post":{"tags":["Memory"],"summary":"Optimize User Memories","description":"Optimize all memories for a user with the summarize strategy. The operation combines the user's memories into one summary. Set `apply=false` to preview the result without saving it. Specify a custom model as `provider:model_id`, for example `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, or `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`.","operationId":"optimize_memories","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for optimization","title":"Db Id"},"description":"Database ID to use for optimization"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for optimization","title":"Table"},"description":"Table to use for optimization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesRequest"}}}},"responses":{"200":{"description":"Memories optimized successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeMemoriesResponse"},"example":{"memories":[{"memory_id":"f9361a69-2997-40c7-ae4e-a5861d434047","memory":"User has a 3-year-old golden retriever named Max who loves fetch and walks. Lives in San Francisco's Mission district, works as a product manager in tech. Enjoys hiking Bay Area trails, trying new restaurants (especially Japanese, Thai, Mexican), and learning piano for 1.5 years.","topics":["pets","location","work","hobbies","food_preferences"],"user_id":"user2","updated_at":"2025-11-18T10:30:00Z"}],"memories_before":4,"memories_after":1,"tokens_before":450,"tokens_after":180,"tokens_saved":270,"reduction_percentage":60.0}}}},"400":{"description":"Bad request - User ID is required or invalid model string format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No memories found for user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to optimize memories","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/learnings":{"get":{"tags":["Learnings"],"summary":"List Learnings","description":"List learning records with pagination and optional filters. For a scoped (non-admin) caller with user isolation enabled, results are bound to that user and also include records with no owner (`user_id IS NULL`) \u2014 this covers global, agent, team, session, and entity-scoped learnings; passing a `user_id` that differs from the caller is rejected with 403. Admins and unscoped callers see all records (optionally filtered by `user_id`).","operationId":"list_learnings","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by learning type","title":"Learning Type"},"description":"Filter by learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"namespace","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by namespace","title":"Namespace"},"description":"Filter by namespace"},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity ID","title":"Entity Id"},"description":"Filter by entity ID"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by entity type","title":"Entity Type"},"description":"Filter by entity type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":100,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used).","title":"Sort By"},"description":"Field to sort by, e.g. `created_at` or `updated_at` (the default). An unrecognised field is ignored (the default ordering is used)."},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"post":{"tags":["Learnings"],"summary":"Create Learning","description":"Create a new learning record. For the identity-keyed learning types (`user_profile`, `user_memory`, `session_context`, `entity_memory`) the record id is derived deterministically from the identity fields so it reconciles with what the agent reads/writes \u2014 provide those fields (else 422), and if a record already exists the request is rejected with 409 (use PATCH to update it). Other types get a generated id. For a scoped (non-admin) caller, the body's `user_id` must be omitted/null or match the caller (mismatch \u2192 403); admins and unscoped callers may set any `user_id`.","operationId":"create_learning","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"An identity-keyed learning already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/users":{"get":{"tags":["Learnings"],"summary":"List Learning Users","description":"List the users that own learning records, with a per-user count and last-updated timestamp. Intended as the entry point for a per-user view: list users here, then drill into a single user's learnings via `GET /learnings?user_id=...`. Records with no owner (`user_id IS NULL`) are excluded. Pass `learning_type` to restrict the grouping to a single store (e.g. `user_profile` or `user_memory`). For a scoped (non-admin) caller results are bound to that user; an explicit `user_id` that differs is rejected with 403. Admins and unscoped callers list all users. Sortable by `user_id` or `last_learning_updated_at` (the default).","operationId":"list_learning_users","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the grouping to a single learning type","title":"Learning Type"},"description":"Restrict the grouping to a single learning type"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict the result to a single user","title":"User Id"},"description":"Restrict the result to a single user"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Page size","default":20,"title":"Limit"},"description":"Page size"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"1-indexed page number","default":1,"title":"Page"},"description":"1-indexed page number"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by: user_id or last_learning_updated_at (the default)","title":"Sort By"},"description":"Field to sort by: user_id or last_learning_updated_at (the default)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_LearningUserStats_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/users/{user_id}":{"delete":{"tags":["Learnings"],"summary":"Delete Learning User","description":"Delete the learning records owned by a user. By default removes every learning type backed by the agno_learnings table (user_profile, user_memory, and any user-scoped entity records); pass `learning_type` to restrict deletion to a single store. Records with no owner (`user_id IS NULL`) are not affected. For a scoped (non-admin) caller, only their own learnings may be deleted; a different `user_id` is rejected with 403. Admins and unscoped callers may delete any user's learnings. Returns 204 even if the user had no matching records.","operationId":"delete_learning_user","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The user whose learnings should be deleted","title":"User Id"},"description":"The user whose learnings should be deleted"},{"name":"learning_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings","title":"Learning Type"},"description":"Restrict deletion to a single learning type; omit to delete all of the user's learnings"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/learnings/{learning_id}":{"get":{"tags":["Learnings"],"summary":"Get Learning","description":"Retrieve a single learning record by its ID.","operationId":"get_learning","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query","title":"Db Id"},"description":"Database ID to query"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"patch":{"tags":["Learnings"],"summary":"Update Learning","description":"Update a learning record. Only `content` and `metadata` may be modified; identity fields (user_id, agent_id, team_id, etc.) are immutable. Provided fields fully replace the existing values. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) are readable by any caller but may only be modified by an admin.","operationId":"update_learning","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}},"delete":{"tags":["Learnings"],"summary":"Delete Learning","description":"Permanently delete a learning record by its ID. Records with no owner (`user_id IS NULL` \u2014 shared agent/team/session/entity learnings) may only be deleted by an admin.","operationId":"delete_learning","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"learning_id","in":"path","required":true,"schema":{"type":"string","description":"The learning ID","title":"Learning Id"},"description":"The learning ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use (requires db_id)","title":"Table"},"description":"The database table to use (requires db_id)"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Learnings are unavailable for remote or unsupported databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/eval-runs":{"get":{"tags":["Evals"],"summary":"List Evaluation Runs","description":"Retrieve paginated evaluation runs with filtering and sorting options. Filter by agent, team, workflow, model, or evaluation type.","operationId":"get_eval_runs","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Team ID","title":"Team Id"},"description":"Team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Workflow ID","title":"Workflow Id"},"description":"Workflow ID"},{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model ID","title":"Model Id"},"description":"Model ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EvalFilterType"},{"type":"null"}],"description":"Filter type","title":"Type"},"description":"Filter type"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of eval runs to return","default":20,"title":"Limit"},"description":"Number of eval runs to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"},{"name":"eval_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)","examples":["accuracy,agent_as_judge,performance,reliability"],"title":"Eval Types"},"description":"Comma-separated eval types (accuracy,agent_as_judge,performance,reliability)"}],"responses":{"200":{"description":"Evaluation runs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_EvalSchema_"},"example":{"data":[{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Evals"],"summary":"Delete Evaluation Runs","description":"Delete multiple evaluation runs by their IDs. This action cannot be undone.","operationId":"delete_eval_runs","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for deletion","title":"Db Id"},"description":"Database ID to use for deletion"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for deletion","title":"Table"},"description":"Table to use for deletion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEvalRunsRequest"}}}},"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Deletion failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Evals"],"summary":"Execute Evaluation","description":"Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both.","operationId":"run_eval","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for evaluation","title":"Db Id"},"description":"Database ID to use for evaluation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for evaluation","title":"Table"},"description":"Table to use for evaluation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRunInput"}}}},"responses":{"200":{"description":"Evaluation executed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"f2b2d72f-e9e2-4f0e-8810-0a7e1ff58614","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Invalid request - provide either agent_id or team_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Agent or team not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/eval-runs/{eval_run_id}":{"get":{"tags":["Evals"],"summary":"Get Evaluation Run","description":"Retrieve detailed results and metrics for a specific evaluation run.","operationId":"get_eval_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to query eval run from","title":"Table"},"description":"Table to query eval run from"}],"responses":{"200":{"description":"Evaluation run details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Evals"],"summary":"Update Evaluation Run","description":"Update the name or other properties of an existing evaluation run.","operationId":"update_eval_run","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"eval_run_id","in":"path","required":true,"schema":{"type":"string","title":"Eval Run Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for rename operation","title":"Table"},"description":"Table to use for rename operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvalRunRequest"}}}},"responses":{"200":{"description":"Evaluation run updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalSchema"},"example":{"id":"a03fa2f4-900d-482d-afe0-470d4cd8d1f4","agent_id":"basic-agent","model_id":"gpt-4o","model_provider":"OpenAI","name":"Test ","eval_type":"reliability","eval_data":{"eval_status":"PASSED","failed_tool_calls":[],"passed_tool_calls":["multiply"]},"eval_input":{"expected_tool_calls":["multiply"]},"created_at":"2025-08-27T15:41:59Z","updated_at":"2025-08-27T15:41:59Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Evaluation run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to update evaluation run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics":{"get":{"tags":["Metrics"],"summary":"Get AgentOS Metrics","description":"Retrieve AgentOS metrics and analytics data for a specified date range. If no date range is specified, returns all available metrics.","operationId":"get_metrics","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"starting_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Starting date for metrics range (YYYY-MM-DD format)","title":"Starting Date"},"description":"Starting date for metrics range (YYYY-MM-DD format)"},{"name":"ending_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Ending date for metrics range (YYYY-MM-DD format)","title":"Ending Date"},"description":"Ending date for metrics range (YYYY-MM-DD format)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query metrics from","title":"Db Id"},"description":"Database ID to query metrics from"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The database table to use","title":"Table"},"description":"The database table to use"}],"responses":{"200":{"description":"Metrics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"},"example":{"metrics":[{"id":"7bf39658-a00a-484c-8a28-67fd8a9ddb2a","agent_runs_count":5,"agent_sessions_count":5,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":448,"output_tokens":148,"total_tokens":596,"audio_tokens":0,"input_audio_tokens":0,"output_audio_tokens":0,"cached_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":5}],"date":"2025-07-31T00:00:00Z","created_at":"2025-07-31T12:38:52Z","updated_at":"2025-07-31T12:49:01Z"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Metrics retrieval failed. In Agno 2.7.4, invalid or ambiguous database selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/metrics/refresh":{"post":{"tags":["Metrics"],"summary":"Refresh Metrics","description":"Manually trigger recalculation of system metrics from raw data. This operation analyzes system activity logs and regenerates aggregated metrics. Useful for ensuring metrics are up-to-date or after system maintenance.","operationId":"refresh_metrics","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for metrics calculation","title":"Db Id"},"description":"Database ID to use for metrics calculation"},{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Table to use for metrics calculation","title":"Table"},"description":"Table to use for metrics calculation"}],"responses":{"200":{"description":"Metrics refreshed successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"title":"Response Refresh Metrics"},"example":[{"id":"e77c9531-818b-47a5-99cd-59fed61e5403","agent_runs_count":2,"agent_sessions_count":2,"team_runs_count":0,"team_sessions_count":0,"workflow_runs_count":0,"workflow_sessions_count":0,"users_count":1,"token_metrics":{"input_tokens":256,"output_tokens":441,"total_tokens":697,"audio_total_tokens":0,"audio_input_tokens":0,"audio_output_tokens":0,"cache_read_tokens":0,"cache_write_tokens":0,"reasoning_tokens":0},"model_metrics":[{"model_id":"gpt-4o","model_provider":"OpenAI","count":2}],"date":"2025-08-12T00:00:00Z","created_at":"2025-08-12T08:01:47Z","updated_at":"2025-08-12T08:01:47Z"}]}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Refresh failed. In Agno 2.7.4, failures including invalid database or table selections surface as 500 responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content":{"post":{"tags":["Knowledge"],"summary":"Upload Content","description":"Upload content to the knowledge base. Supports file uploads, text content, or URLs. Content is processed asynchronously in the background. Supports custom readers and chunking strategies.","operationId":"upload_content","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_content"}}}},"responses":{"202":{"description":"Content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-123","name":"example-document.pdf","description":"Sample document for processing","metadata":{"category":"documentation","priority":"high"},"status":"processing"}}}},"400":{"description":"Invalid request - malformed metadata or missing content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in form data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"List Content","description":"Return a paginated, sorted list of content for the selected knowledge base. Use `limit`, `page`, `sort_by`, and `sort_order` to control the result. Agno 2.7.4 exposes no status, content type, or metadata filter parameters on this endpoint. Named local knowledge instances scope rows by the stored `linked_to` value.","operationId":"get_content","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Number of content entries to return","default":20,"title":"Limit"},"description":"Number of content entries to return"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by","default":"created_at","title":"Sort By"},"description":"Field to sort by"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SortOrder"},{"type":"null"}],"description":"Sort order (asc or desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc or desc)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ContentResponseSchema_"},"example":{"data":[{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":null,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z","linked_to":null}],"meta":{"page":1,"limit":20,"total_pages":1,"total_count":2}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete All Content","description":"Permanently remove all content from the knowledge base. This is a destructive operation that cannot be undone. Use with extreme caution.","operationId":"delete_all_content","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete all content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/remote-content":{"post":{"tags":["Knowledge"],"summary":"Upload Remote Content","description":"Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.","operationId":"upload_remote_content","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use for content storage","title":"Db Id"},"description":"Database ID to use for content storage"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to upload to","title":"Knowledge Id"},"description":"Knowledge base ID to upload to"}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_upload_remote_content"}}}},"responses":{"202":{"description":"Remote content upload accepted for processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"content-456","name":"reports/q1-2024.pdf","description":"Q1 Report from S3","metadata":{"source":"s3-docs"},"status":"processing"}}}},"400":{"description":"Invalid request - unknown config or missing path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation error in request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Remote content upload is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/knowledge/content/{content_id}":{"patch":{"tags":["Knowledge"],"summary":"Update Content","description":"Update content name, description, or metadata without re-uploading it. In Agno 2.7.4, this endpoint accepts `reader_id`. Local knowledge validates the value, but the content patch does not apply or persist the reader change.","operationId":"update_content","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","description":"Content ID","title":"Content Id"},"description":"Content ID"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_update_content"}}}},"responses":{"200":{"description":"Content updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":null,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z","linked_to":null}}}},"400":{"description":"Invalid request - malformed metadata or invalid reader_id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Knowledge"],"summary":"Get Content by ID","description":"Retrieve detailed information about a specific content item including processing status and metadata.","operationId":"get_content_by_id","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"},"example":{"id":"3c2fc685-d451-4d47-b0c0-b9a544c672b7","name":"example.pdf","description":"","type":"application/pdf","size":"251261","metadata":{},"access_count":null,"status":"completed","status_message":"","created_at":"2025-09-08T15:22:53Z","updated_at":"2025-09-08T15:22:54Z","linked_to":null}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Knowledge"],"summary":"Delete Content by ID","description":"Permanently remove a specific content item from the knowledge base. This action cannot be undone.","operationId":"delete_content_by_id","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Content not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to delete content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/content/{content_id}/status":{"get":{"tags":["Knowledge"],"summary":"Get Content Status","description":"Return the processing status for a content ID. For local knowledge in Agno 2.7.4, an unknown content ID returns HTTP 200 with `status=\"failed\"` and `status_message=\"Content not found\"`.","operationId":"get_content_status","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Content status returned. An unknown local content ID is represented by status \"failed\".","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentStatusResponse"},"examples":{"completed":{"summary":"Completed content","value":{"id":"content-123","status":"completed","status_message":""}},"content_not_found":{"summary":"Unknown local content ID","value":{"id":"missing-content","status":"failed","status_message":"Content not found"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Selected knowledge base or database ID not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/search":{"post":{"tags":["Knowledge"],"summary":"Search Knowledge","description":"Search the knowledge base for relevant documents using query, filters and search type.","operationId":"search_knowledge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VectorSearchRequestSchema"}}},"required":true},"responses":{"200":{"description":"Search results retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_VectorSearchResult_"},"example":{"data":[{"id":"doc_123","content":"Jordan Mitchell - Software Engineer with skills in JavaScript, React, Python","name":"cv_1","meta_data":{"page":1,"chunk":1},"usage":{"total_tokens":14},"reranking_score":0.95,"content_id":"content_456"}],"meta":{"page":1,"limit":20,"total_pages":2,"total_count":35}}}}},"400":{"description":"Invalid search parameters"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"No documents found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/knowledge/config":{"get":{"tags":["Knowledge"],"summary":"Get Config","description":"Retrieve available readers, chunkers, and configuration options for content processing. This endpoint provides metadata about supported file types, processing strategies, and filters.","operationId":"get_knowledge_config","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to use","title":"Db Id"},"description":"Database ID to use"},{"name":"knowledge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Knowledge base ID to use","title":"Knowledge Id"},"description":"Knowledge base ID to use"}],"responses":{"200":{"description":"Knowledge configuration retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponseSchema"},"example":{"readers":{"website":{"id":"website","name":"WebsiteReader","description":"Reads website files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"firecrawl":{"id":"firecrawl","name":"FirecrawlReader","description":"Reads firecrawl files","chunkers":["SemanticChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"youtube":{"id":"youtube","name":"YoutubeReader","description":"Reads youtube files","chunkers":["RecursiveChunker","AgenticChunker","DocumentChunker","SemanticChunker","FixedSizeChunker"]},"web_search":{"id":"web_search","name":"WebSearchReader","description":"Reads web_search files","chunkers":["AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"arxiv":{"id":"arxiv","name":"ArxivReader","description":"Reads arxiv files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"csv":{"id":"csv","name":"CsvReader","description":"Reads csv files","chunkers":["RowChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker"]},"docling":{"id":"docling","name":"DoclingReader","description":"Converts multiple document formats like PDF, DOCX, PPTX, images, HTML, etc. using IBM's Docling library","chunkers":["AgenticChunker","CodeChunker","DocumentChunker","FixedSizeChunker","RecursiveChunker","SemanticChunker"]},"docx":{"id":"docx","name":"DocxReader","description":"Reads docx files","chunkers":["DocumentChunker","FixedSizeChunker","SemanticChunker","AgenticChunker","RecursiveChunker"]},"gcs":{"id":"gcs","name":"GcsReader","description":"Reads gcs files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"json":{"id":"json","name":"JsonReader","description":"Reads json files","chunkers":["FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]},"markdown":{"id":"markdown","name":"MarkdownReader","description":"Reads markdown files","chunkers":["MarkdownChunker","DocumentChunker","AgenticChunker","RecursiveChunker","SemanticChunker","FixedSizeChunker"]},"pdf":{"id":"pdf","name":"PdfReader","description":"Reads pdf files","chunkers":["DocumentChunker","FixedSizeChunker","AgenticChunker","SemanticChunker","RecursiveChunker"]},"text":{"id":"text","name":"TextReader","description":"Reads text files","chunkers":["CodeChunker","FixedSizeChunker","AgenticChunker","DocumentChunker","RecursiveChunker","SemanticChunker"]}},"readersForType":{"url":["url","website","firecrawl","youtube","web_search","gcs"],"youtube":["youtube"],"text":["web_search"],"topic":["arxiv"],"file":["csv","gcs"],".csv":["csv","field_labeled_csv","docling"],".xlsx":["excel","docling"],".xls":["excel"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["excel"],"application/vnd.ms-excel":["excel"],".docx":["docx","docling"],".dotx":["docling"],".docm":["docling"],".dotm":["docling"],".pptx":["docling","pptx"],".potx":["docling"],".ppsx":["docling"],".pptm":["docling"],".ppsm":["docling"],".potm":["docling"],".doc":["docx"],".json":["json"],".md":["markdown","docling"],".pdf":["pdf","docling"],".txt":["text"],".html":["docling"],".htm":["docling"],".xhtml":["docling"],".xml":["docling"],".nxml":["docling"],".xbrl":["docling"],".adoc":["docling"],".asciidoc":["docling"],".asc":["docling"],".xlsm":["docling"],".tex":["docling"],".latex":["docling"],".tar.gz":["docling"],".vtt":["docling"],".png":["docling"],".jpeg":["docling"],".jpg":["docling"],".tiff":["docling"],".tif":["docling"],".bmp":["docling"],".webp":["docling"],".wav":["docling"],".mp3":["docling"],".m4a":["docling"],".aac":["docling"],".ogg":["docling"],".flac":["docling"],".mp4":["docling"],".avi":["docling"],".mov":["docling"]},"chunkers":{"AgenticChunker":{"key":"AgenticChunker","name":"AgenticChunker","description":"Chunking strategy that uses an LLM to determine natural breakpoints in the text","metadata":{"chunk_size":5000}},"CodeChunker":{"key":"CodeChunker","name":"CodeChunker","description":"The CodeChunker splits code into chunks based on its structure, leveraging Abstract Syntax Trees (ASTs) to create contextually relevant segments","metadata":{"chunk_size":2048}},"DocumentChunker":{"key":"DocumentChunker","name":"DocumentChunker","description":"A chunking strategy that splits text based on document structure like paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"FixedSizeChunker":{"key":"FixedSizeChunker","name":"FixedSizeChunker","description":"Chunking strategy that splits text into fixed-size chunks with optional overlap","metadata":{"chunk_size":5000,"chunk_overlap":0}},"MarkdownChunker":{"key":"MarkdownChunker","name":"MarkdownChunker","description":"A chunking strategy that splits markdown based on structure like headers, paragraphs and sections","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RecursiveChunker":{"key":"RecursiveChunker","name":"RecursiveChunker","description":"Chunking strategy that recursively splits text into chunks by finding natural break points","metadata":{"chunk_size":5000,"chunk_overlap":0}},"RowChunker":{"key":"RowChunker","name":"RowChunker","description":"RowChunking chunking strategy","metadata":{}},"SemanticChunker":{"key":"SemanticChunker","name":"SemanticChunker","description":"Chunking strategy that splits text into semantic chunks using chonkie","metadata":{"chunk_size":5000}}},"vector_dbs":[{"id":"vector_db_1","name":"Vector DB 1","description":"Vector DB 1 description","search_types":["vector","keyword","hybrid"]}],"filters":["filter_tag_1","filter_tag2"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/knowledge/{knowledge_id}/sources":{"get":{"tags":["Knowledge"],"summary":"List Content Sources","description":"List all registered content sources (S3, GCS, SharePoint, GitHub) for the knowledge base.","operationId":"list_content_sources","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Content sources retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"title":"Response List Content Sources"},"example":[{"id":"company-s3","name":"Company Documents","type":"s3","prefix":"documents/"}]}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Content source listing is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/knowledge/{knowledge_id}/sources/{source_id}/files":{"get":{"tags":["Knowledge"],"summary":"List Files in Source","description":"List available files and folders in a specific content source. Supports pagination and folder navigation.","operationId":"list_source_files","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the knowledge base","title":"Knowledge Id"},"description":"ID of the knowledge base"},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","description":"ID of the content source","title":"Source Id"},"description":"ID of the content source"},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Path prefix to filter files","title":"Prefix"},"description":"Path prefix to filter files"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of files per page","default":100,"title":"Limit"},"description":"Number of files per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"delimiter","in":"query","required":false,"schema":{"type":"string","description":"Folder delimiter (enables folder grouping)","default":"/","title":"Delimiter"},"description":"Folder delimiter (enables folder grouping)"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ID of the database to use","title":"Db Id"},"description":"The ID of the database to use"}],"responses":{"200":{"description":"Files listed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceFilesResponseSchema"},"example":{"source_id":"company-s3","source_name":"Company Documents","prefix":"reports/","folders":[{"prefix":"reports/2024/","name":"2024","is_empty":false}],"files":[{"key":"reports/annual-summary.pdf","name":"annual-summary.pdf","size":102400,"last_modified":"2024-01-15T10:30:00Z","content_type":"application/pdf"}],"meta":{"page":1,"limit":100,"total_pages":1,"total_count":1}}}}},"400":{"description":"Unsupported source type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Knowledge base or content source not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"Source file listing is unavailable for remote knowledge bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}}}}},"/traces":{"get":{"tags":["Traces","Traces"],"summary":"List Traces","description":"Retrieve a paginated list of execution traces with optional filtering.\n\n**Traces provide observability into:**\n- Agent execution flows\n- Model invocations and token usage\n- Tool calls and their results\n- Errors and performance bottlenecks\n\n**Filtering Options:**\n- By run, session, user, or agent ID\n- By status (OK, ERROR)\n- By time range\n\n**Pagination:**\n- Use `page` (1-indexed) and `limit` parameters\n- Response includes pagination metadata (total_pages, total_count, etc.)\n\n**Response Format:**\nReturns summary information for each trace. Use GET `/traces/{trace_id}` for detailed hierarchy.","operationId":"get_traces","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run ID","title":"Run Id"},"description":"Filter by run ID"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by session ID","title":"Session Id"},"description":"Filter by session ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status (OK, ERROR)","title":"Status"},"description":"Filter by status (OK, ERROR)"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter traces starting after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter traces ending before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater.","default":1,"title":"Page"},"description":"1-based page number. Agno 2.7.4 also accepts 0 at request validation, but the pagination implementation is 1-based. Use 1 or greater."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of traces per page","default":20,"title":"Limit"},"description":"Number of traces per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"responses":{"200":{"description":"List of traces retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSummary_"},"example":{"data":[{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","total_spans":4,"error_count":0,"input":"What is the stock price of NVDA?","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"agent_stock","created_at":"2025-11-19T10:30:00+00:00"}],"meta":{"page":1,"limit":20,"total_pages":5,"total_count":95}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/filter-schema":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Filter Schema","description":"Returns the available filterable fields, their types, valid operators, and enum values.\n\nThe frontend uses this to dynamically build the filter bar UI:\n- Field dropdown populated from `fields[].key`\n- Operator dropdown changes per field type\n- Value input shows autocomplete for enum fields (e.g., status)\n- Logical operators (AND, OR) for combining clauses","operationId":"get_traces_filter_schema","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterSchemaResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}},"security":[{},{"HTTPBearer":[]}]}},"/traces/{trace_id}":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace or Span Detail","description":"Retrieve detailed trace information with hierarchical span tree, or a specific span within the trace.\n\n**Without span_id parameter:**\nReturns the full trace with hierarchical span tree:\n- Trace metadata (ID, status, duration, context)\n- Hierarchical tree of all spans\n- Each span includes timing, status, and type-specific metadata\n\n**With span_id parameter:**\nReturns details for a specific span within the trace:\n- Span metadata (ID, name, type, timing)\n- Status and error information\n- Type-specific attributes (model, tokens, tool params, etc.)\n\n**Span Hierarchy (full trace):**\nThe `tree` field contains root spans, each with potential `children`.\nThis recursive structure represents the execution flow:\n```\nAgent.run (root)\n \u251c\u2500 LLM.invoke\n \u251c\u2500 Tool.execute\n \u2502 \u2514\u2500 LLM.invoke (nested)\n \u2514\u2500 LLM.invoke\n```\n\n**Span Types:**\n- `AGENT`: Agent execution with input/output\n- `LLM`: Model invocations with tokens and prompts\n- `TOOL`: Tool calls with parameters and results","operationId":"get_trace","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}},{"name":"span_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Span ID to retrieve specific span","title":"Span Id"},"description":"Optional: Span ID to retrieve specific span"},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: Run ID to retrieve trace for","title":"Run Id"},"description":"Optional: Run ID to retrieve trace for"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query trace from","title":"Db Id"},"description":"Database ID to query trace from"}],"responses":{"200":{"description":"Trace or span detail retrieved successfully","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TraceDetail"},{"$ref":"#/components/schemas/TraceNode"}],"title":"Response Get Trace"},"examples":{"full_trace":{"summary":"Full trace with hierarchy (no span_id)","value":{"trace_id":"a1b2c3d4","name":"Stock_Price_Agent.run","status":"OK","duration":"1.2s","start_time":"2025-11-19T10:30:00.000000+00:00","end_time":"2025-11-19T10:30:01.200000+00:00","total_spans":4,"error_count":0,"input":"What is Tesla stock price?","output":"The current price of Tesla (TSLA) is $245.67.","run_id":"run123","session_id":"session456","user_id":"user789","agent_id":"stock_agent","created_at":"2025-11-19T10:30:00+00:00","tree":[{"id":"span1","name":"Stock_Price_Agent.run","type":"AGENT","duration":"1.2s","status":"OK","spans":[]}]}},"single_span":{"summary":"Single span detail (with span_id)","value":{"id":"span2","name":"gpt-4o-mini.invoke","type":"LLM","duration":"800ms","status":"OK","metadata":{"model":"gpt-4o-mini","input_tokens":120}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Trace or span not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/trace_session_stats":{"get":{"tags":["Traces","Traces"],"summary":"Get Trace Statistics by Session","description":"Retrieve aggregated trace statistics grouped by session ID with pagination.\n\n**Provides insights into:**\n- Total traces per session\n- First and last trace timestamps per session\n- Associated user and agent information\n\n**Filtering Options:**\n- By user ID\n- By agent ID\n\n**Use Cases:**\n- Monitor session-level activity\n- Track conversation flows\n- Identify high-activity sessions\n- Analyze user engagement patterns","operationId":"get_trace_stats","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"},"description":"Filter by agent ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by team ID","title":"Team Id"},"description":"Filter by team ID"},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow ID","title":"Workflow Id"},"description":"Filter by workflow ID"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison.","title":"Start Time"},"description":"Filter sessions with traces created after this time (ISO 8601 format with timezone, e.g., '2025-11-19T10:00:00Z' or '2025-11-19T15:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison.","title":"End Time"},"description":"Filter sessions with traces created before this time (ISO 8601 format with timezone, e.g., '2025-11-19T11:00:00Z' or '2025-11-19T16:30:00+05:30'). Times are converted to UTC for comparison."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of sessions per page","default":20,"title":"Limit"},"description":"Number of sessions per page"},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query statistics from","title":"Db Id"},"description":"Database ID to query statistics from"}],"responses":{"200":{"description":"Trace statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"},"example":{"data":[{"session_id":"37029bc6-1794-4ba8-a629-1efedc53dcad","user_id":"kaustubh@agno.com","agent_id":"hackernews-agent","total_traces":5,"first_trace_at":"2025-11-19T10:15:16+00:00","last_trace_at":"2025-11-19T10:21:30+00:00"}],"meta":{"page":1,"limit":20,"total_pages":3,"total_count":45}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to retrieve statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/traces/search":{"post":{"tags":["Traces","Traces"],"summary":"Search Traces with Advanced Filters","description":"Search traces using the FilterExpr DSL for complex, composable queries.\n\n**Group By Mode:**\n- `run` (default): Returns `PaginatedResponse[TraceDetail]` with full span trees\n- `session`: Returns `PaginatedResponse[TraceSessionStats]` with aggregated session stats\n\n**Supported Operators:**\n- Comparison: `EQ`, `NEQ`, `GT`, `GTE`, `LT`, `LTE`\n- Inclusion: `IN`\n- String matching: `CONTAINS` (case-insensitive substring), `STARTSWITH` (prefix)\n- Logical: `AND`, `OR`, `NOT`\n\n**Filterable Fields:**\ntrace_id, name, status, start_time, end_time, duration_ms, run_id, session_id, user_id, agent_id, team_id, workflow_id, created_at\n\n**Example Request Body (runs):**\n```json\n{\n \"filter\": {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n}\n```\n\n**Example Request Body (sessions):**\n```json\n{\n \"filter\": {\"op\": \"CONTAINS\", \"key\": \"agent_id\", \"value\": \"stock\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n}\n```","operationId":"search_traces","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Database ID to query traces from","title":"Db Id"},"description":"Database ID to query traces from"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PaginatedResponse_TraceDetail_"},{"$ref":"#/components/schemas/PaginatedResponse_TraceSessionStats_"}],"title":"Response Search Traces"}}}},"400":{"description":"Invalid filter expression","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/all/migrate":{"post":{"tags":["Database"],"summary":"Migrate All Databases","description":"Migrate all database schemas to the given target version. If a target version is not provided, all databases will be migrated to the latest version.","operationId":"migrate_all_databases","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"All databases migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"All databases migrated successfully to version 3.0.0"}}}},"207":{"description":"Some database migrations failed","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"},"failed":{"type":"object","additionalProperties":{"type":"string"},"title":"Failed"}},"type":"object","required":["message","failed"],"title":"PartialMigrationResponse"},"example":{"message":"Migrated 2/3 databases to latest version","failed":{"archive-db":"Migration failed"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/databases/{db_id}/migrate":{"post":{"tags":["Database"],"summary":"Migrate Database","description":"Migrate the given database schema to the given target version. If a target version is not provided, the database will be migrated to the latest version.","operationId":"migrate_database","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"target_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Version"}}],"responses":{"200":{"description":"Database migrated successfully","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MigrationResponse"},"example":{"message":"Database migrated successfully to version 3.0.0"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Database not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Failed to migrate database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components":{"get":{"tags":["Components"],"summary":"List Components","description":"Retrieve a paginated list of components with optional filtering by type.","operationId":"list_components","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ComponentType"},{"type":"null"}],"description":"Filter by type: agent, team, workflow","title":"Component Type"},"description":"Filter by type: agent, team, workflow"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ComponentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Component","description":"Create a new component (agent, team, or workflow) with initial config.","operationId":"create_component","security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}":{"get":{"tags":["Components"],"summary":"Get Component","description":"Retrieve a component by ID.","operationId":"get_component","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"patch":{"tags":["Components"],"summary":"Update Component","description":"Partially update a component by ID.","operationId":"update_component","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentUpdate","description":"Component fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Component","description":"Soft-delete a component by ID. Component configs and links remain stored.","operationId":"delete_component","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs":{"get":{"tags":["Components"],"summary":"List Configs","description":"List all configs for a component.","operationId":"list_configs","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"include_config","in":"query","required":false,"schema":{"type":"boolean","description":"Include full config blob","default":true,"title":"Include Config"},"description":"Include full config blob"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComponentConfigResponse"},"title":"Response List Configs"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"post":{"tags":["Components"],"summary":"Create Config Version","description":"Create a new config version for a component.","operationId":"create_config","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigCreate","description":"Config data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}":{"patch":{"tags":["Components"],"summary":"Update Draft Config","description":"Update an existing draft config. Cannot update published configs.","operationId":"update_config","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigUpdate","description":"Config fields to update"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"get":{"tags":["Components"],"summary":"Get Config Version","description":"Get a specific config version by number.","operationId":"get_config_version","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}},"delete":{"tags":["Components"],"summary":"Delete Config Version","description":"Delete a specific config version. Agno v2.7.4 rejects the current version. Synchronous SQLite and PostgreSQL storage allow deletion of a published non-current version.","operationId":"delete_config","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/current":{"get":{"tags":["Components"],"summary":"Get Current Config","description":"Get the current config version for a component.","operationId":"get_current_config","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentConfigResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/components/{component_id}/configs/{version}/set-current":{"post":{"tags":["Components"],"summary":"Set Current Config Version","description":"Set a published config version as current (for rollback).","operationId":"set_current_config","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"component_id","in":"path","required":true,"schema":{"type":"string","description":"Component ID","title":"Component Id"},"description":"Component ID"},{"name":"version","in":"path","required":true,"schema":{"type":"integer","description":"Version number","title":"Version"},"description":"Version number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}},"/schedules":{"get":{"tags":["Schedules"],"summary":"List Schedules","operationId":"list_schedules_schedules_get","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"post":{"tags":["Schedules"],"summary":"Create Schedule","operationId":"create_schedule_schedules_post","security":[{},{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule","operationId":"get_schedule_schedules__schedule_id__get","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"patch":{"tags":["Schedules"],"summary":"Update Schedule","operationId":"update_schedule_schedules__schedule_id__patch","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"A schedule with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Schedules"],"summary":"Delete Schedule","operationId":"delete_schedule_schedules__schedule_id__delete","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/enable":{"post":{"tags":["Schedules"],"summary":"Enable Schedule","operationId":"enable_schedule_schedules__schedule_id__enable_post","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be enabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler dependencies or storage are unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/disable":{"post":{"tags":["Schedules"],"summary":"Disable Schedule","operationId":"disable_schedule_schedules__schedule_id__disable_post","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleStateResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Schedule could not be disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/trigger":{"post":{"tags":["Schedules"],"summary":"Trigger Schedule","operationId":"trigger_schedule_schedules__schedule_id__trigger_post","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Schedule is disabled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler is not running or storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs":{"get":{"tags":["Schedules"],"summary":"List Schedule Runs","operationId":"list_schedule_runs_schedules__schedule_id__runs_get","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ScheduleRunResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/schedules/{schedule_id}/runs/{run_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule Run","operationId":"get_schedule_run_schedules__schedule_id__runs__run_id__get","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRunResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Schedule run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Scheduler storage is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals":{"get":{"tags":["Approvals"],"summary":"List Approvals","operationId":"list_approvals_approvals_get","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","approved","rejected","expired","cancelled"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"source_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"}},{"name":"approval_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["required","audit"],"type":"string"},{"type":"null"}],"title":"Approval Type"}},{"name":"pause_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"schedule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"}},{"name":"run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ApprovalResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approvals could not be listed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/count":{"get":{"tags":["Approvals"],"summary":"Get Approval Count","operationId":"get_approval_count_approvals_count_get","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalCountResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval count could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/status":{"get":{"tags":["Approvals"],"summary":"Get Approval Status","operationId":"get_approval_status_approvals__approval_id__status_get","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalStatusResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval status could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}":{"get":{"tags":["Approvals"],"summary":"Get Approval","operationId":"get_approval_approvals__approval_id__get","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not visible to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"delete":{"tags":["Approvals"],"summary":"Delete Approval","operationId":"delete_approval_approvals__approval_id__delete","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval is not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/approvals/{approval_id}/resolve":{"post":{"tags":["Approvals"],"summary":"Resolve Approval","operationId":"resolve_approval_approvals__approval_id__resolve_post","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResolve"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Approval not found or not available to the caller","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"409":{"description":"Approval has already been resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Approval could not be resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Approvals are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts":{"post":{"tags":["Service Accounts"],"summary":"Create Service Account","description":"Mint a service account token. The plaintext token is returned exactly once.","operationId":"create_service_account_service_accounts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceAccountCreateResponse"}}}},"400":{"description":"Requested scopes are invalid, or privileged scopes were not explicitly allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"409":{"description":"An active service account with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}},"get":{"tags":["Service Accounts"],"summary":"List Service Accounts","description":"List service accounts. Returns metadata and display prefixes only - never hashes or plaintext.","operationId":"list_service_accounts_service_accounts_get","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Revoked"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ServiceAccountResponse_"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/service-accounts/{service_account_id}":{"delete":{"tags":["Service Accounts"],"summary":"Revoke Service Account","description":"Revoke an existing service account.\n\nTakes effect immediately on this worker (the local verification cache entry is evicted) and within the cache TTL on other workers.","operationId":"revoke_service_account_service_accounts__service_account_id__delete","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"service_account_id","in":"path","required":true,"schema":{"type":"string","title":"Service Account Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Service account not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Service account could not be revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"503":{"description":"Service accounts are not supported by the configured database","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableResponse"}}}}}}},"/registry":{"get":{"tags":["Registry"],"summary":"List Registry","description":"List all resources in the registry with optional filtering.","operationId":"list_registry","security":[{},{"HTTPBearer":[]}],"parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RegistryResourceType"},{"type":"null"}],"description":"Filter by resource type","title":"Resource Type"},"description":"Filter by resource type"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (partial match)","title":"Name"},"description":"Filter by name (partial match)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_RegistryContentResponse_"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthenticatedResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}}}}}},"components":{"schemas":{"A2ACard_APIKeySecurityScheme":{"description":"Defines a security scheme using an API key.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"in":{"$ref":"#/components/schemas/A2ACard_In"},"name":{"title":"Name","type":"string"},"type":{"const":"apiKey","default":"apiKey","title":"Type","type":"string"}},"required":["in","name"],"title":"APIKeySecurityScheme","type":"object"},"A2ACard_AgentCapabilities":{"description":"Defines optional capabilities supported by an agent.","properties":{"extensions":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentExtension"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"pushNotifications":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Pushnotifications"},"stateTransitionHistory":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Statetransitionhistory"},"streaming":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Streaming"}},"title":"AgentCapabilities","type":"object"},"A2ACard_AgentCardSignature":{"description":"AgentCardSignature represents a JWS signature of an AgentCard.\nThis follows the JSON format of an RFC 7515 JSON Web Signature (JWS).","properties":{"header":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Header"},"protected":{"title":"Protected","type":"string"},"signature":{"title":"Signature","type":"string"}},"required":["protected","signature"],"title":"AgentCardSignature","type":"object"},"A2ACard_AgentExtension":{"description":"A declaration of a protocol extension supported by an Agent.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"params":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Params"},"required":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Required"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"AgentExtension","type":"object"},"A2ACard_AgentInterface":{"description":"Declares a combination of a target URL and a transport protocol for interacting with the agent.\nThis allows agents to expose the same functionality over multiple transport mechanisms.","properties":{"transport":{"examples":["JSONRPC","GRPC","HTTP+JSON"],"title":"Transport","type":"string"},"url":{"examples":["https://api.example.com/a2a/v1","https://grpc.example.com/a2a","https://rest.example.com/v1"],"title":"Url","type":"string"}},"required":["transport","url"],"title":"AgentInterface","type":"object"},"A2ACard_AgentProvider":{"description":"Represents the service provider of an agent.","properties":{"organization":{"title":"Organization","type":"string"},"url":{"title":"Url","type":"string"}},"required":["organization","url"],"title":"AgentProvider","type":"object"},"A2ACard_AgentSkill":{"description":"Represents a distinct capability or function that an agent can perform.","properties":{"description":{"title":"Description","type":"string"},"examples":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"examples":[["I need a recipe for bread"]],"title":"Examples"},"id":{"title":"Id","type":"string"},"inputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Inputmodes"},"name":{"title":"Name","type":"string"},"outputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Outputmodes"},"security":{"anyOf":[{"items":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},"type":"array"},{"type":"null"}],"default":null,"examples":[[{"google":["oidc"]}]],"title":"Security"},"tags":{"examples":[["cooking","customer support","billing"]],"items":{"type":"string"},"title":"Tags","type":"array"}},"required":["description","id","name","tags"],"title":"AgentSkill","type":"object"},"A2ACard_AuthorizationCodeOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Authorization Code flow.","properties":{"authorizationUrl":{"title":"Authorizationurl","type":"string"},"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["authorizationUrl","scopes","tokenUrl"],"title":"AuthorizationCodeOAuthFlow","type":"object"},"A2ACard_ClientCredentialsOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Client Credentials flow.","properties":{"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["scopes","tokenUrl"],"title":"ClientCredentialsOAuthFlow","type":"object"},"A2ACard_HTTPAuthSecurityScheme":{"description":"Defines a security scheme using HTTP authentication.","properties":{"bearerFormat":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Bearerformat"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"scheme":{"title":"Scheme","type":"string"},"type":{"const":"http","default":"http","title":"Type","type":"string"}},"required":["scheme"],"title":"HTTPAuthSecurityScheme","type":"object"},"A2ACard_ImplicitOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Implicit flow.","properties":{"authorizationUrl":{"title":"Authorizationurl","type":"string"},"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"}},"required":["authorizationUrl","scopes"],"title":"ImplicitOAuthFlow","type":"object"},"A2ACard_In":{"description":"The location of the API key.","enum":["cookie","header","query"],"title":"In","type":"string"},"A2ACard_MutualTLSSecurityScheme":{"description":"Defines a security scheme using mTLS authentication.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"type":{"const":"mutualTLS","default":"mutualTLS","title":"Type","type":"string"}},"title":"MutualTLSSecurityScheme","type":"object"},"A2ACard_OAuth2SecurityScheme":{"description":"Defines a security scheme using OAuth 2.0.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"flows":{"$ref":"#/components/schemas/A2ACard_OAuthFlows"},"oauth2MetadataUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Oauth2Metadataurl"},"type":{"const":"oauth2","default":"oauth2","title":"Type","type":"string"}},"required":["flows"],"title":"OAuth2SecurityScheme","type":"object"},"A2ACard_OAuthFlows":{"description":"Defines the configuration for the supported OAuth 2.0 flows.","properties":{"authorizationCode":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_AuthorizationCodeOAuthFlow"},{"type":"null"}],"default":null},"clientCredentials":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_ClientCredentialsOAuthFlow"},{"type":"null"}],"default":null},"implicit":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_ImplicitOAuthFlow"},{"type":"null"}],"default":null},"password":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_PasswordOAuthFlow"},{"type":"null"}],"default":null}},"title":"OAuthFlows","type":"object"},"A2ACard_OpenIdConnectSecurityScheme":{"description":"Defines a security scheme using OpenID Connect.","properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"openIdConnectUrl":{"title":"Openidconnecturl","type":"string"},"type":{"const":"openIdConnect","default":"openIdConnect","title":"Type","type":"string"}},"required":["openIdConnectUrl"],"title":"OpenIdConnectSecurityScheme","type":"object"},"A2ACard_PasswordOAuthFlow":{"description":"Defines configuration details for the OAuth 2.0 Resource Owner Password flow.","properties":{"refreshUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Refreshurl"},"scopes":{"additionalProperties":{"type":"string"},"title":"Scopes","type":"object"},"tokenUrl":{"title":"Tokenurl","type":"string"}},"required":["scopes","tokenUrl"],"title":"PasswordOAuthFlow","type":"object"},"A2ACard_SecurityScheme":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_APIKeySecurityScheme"},{"$ref":"#/components/schemas/A2ACard_HTTPAuthSecurityScheme"},{"$ref":"#/components/schemas/A2ACard_OAuth2SecurityScheme"},{"$ref":"#/components/schemas/A2ACard_OpenIdConnectSecurityScheme"},{"$ref":"#/components/schemas/A2ACard_MutualTLSSecurityScheme"}],"title":"SecurityScheme"},"A2ARequest_DataPart":{"description":"Represents a structured data segment (e.g., JSON) within a message or artifact.","properties":{"data":{"additionalProperties":true,"title":"Data","type":"object"},"kind":{"const":"data","default":"data","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["data"],"title":"DataPart","type":"object"},"A2ARequest_FilePart":{"description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI.","properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_FileWithBytes"},{"$ref":"#/components/schemas/A2ARequest_FileWithUri"}],"title":"File"},"kind":{"const":"file","default":"file","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["file"],"title":"FilePart","type":"object"},"A2ARequest_FileWithBytes":{"description":"Represents a file with its content provided directly as a base64-encoded string.","properties":{"bytes":{"title":"Bytes","type":"string"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"}},"required":["bytes"],"title":"FileWithBytes","type":"object"},"A2ARequest_FileWithUri":{"description":"Represents a file with its content located at a specific URI.","properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"},"uri":{"title":"Uri","type":"string"}},"required":["uri"],"title":"FileWithUri","type":"object"},"A2ARequest_Message":{"description":"Represents a single message in the conversation between a user and an agent.","properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Extensions"},"kind":{"const":"message","default":"message","title":"Kind","type":"string"},"messageId":{"title":"Messageid","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/A2ARequest_Part"},"title":"Parts","type":"array"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/A2ARequest_Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Taskid"},"agentId":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Agent ID","description":"Target agent, team, or workflow ID for deprecated dynamic-dispatch endpoints."}},"required":["messageId","parts","role"],"title":"Message","type":"object"},"A2ARequest_MessageSendConfiguration":{"description":"Defines configuration options for a `message/send` or `message/stream` request.","properties":{"acceptedOutputModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Acceptedoutputmodes"},"blocking":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Blocking"},"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"pushNotificationConfig":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationConfig"},{"type":"null"}],"default":null}},"title":"MessageSendConfiguration","type":"object"},"A2ARequest_MessageSendParams":{"description":"Defines the parameters for a request to send a message to an agent. This can be used\nto create a new task, continue an existing one, or restart a task.","properties":{"configuration":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_MessageSendConfiguration"},{"type":"null"}],"default":null},"message":{"$ref":"#/components/schemas/A2ARequest_Message"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"}},"required":["message"],"title":"MessageSendParams","type":"object"},"A2ARequest_Part":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_TextPart"},{"$ref":"#/components/schemas/A2ARequest_FilePart"},{"$ref":"#/components/schemas/A2ARequest_DataPart"}],"title":"Part"},"A2ARequest_PushNotificationAuthenticationInfo":{"description":"Defines authentication details for a push notification endpoint.","properties":{"credentials":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Credentials"},"schemes":{"items":{"type":"string"},"title":"Schemes","type":"array"}},"required":["schemes"],"title":"PushNotificationAuthenticationInfo","type":"object"},"A2ARequest_PushNotificationConfig":{"description":"Defines the configuration for setting up push notifications for task updates.","properties":{"authentication":{"anyOf":[{"$ref":"#/components/schemas/A2ARequest_PushNotificationAuthenticationInfo"},{"type":"null"}],"default":null},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Id"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Token"},"url":{"title":"Url","type":"string"}},"required":["url"],"title":"PushNotificationConfig","type":"object"},"A2ARequest_Role":{"description":"Identifies the sender of the message. `user` for the client, `agent` for the service.","enum":["agent","user"],"title":"Role","type":"string"},"A2ARequest_TaskIdParams":{"description":"Defines parameters containing a task ID, used for simple task operations.","properties":{"id":{"title":"Id","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"contextId":{"type":"string","title":"Context ID","description":"Agno session ID containing the task."}},"required":["id"],"title":"TaskIdParams","type":"object"},"A2ARequest_TaskQueryParams":{"description":"Defines parameters for querying a task, with an option to limit history length.","properties":{"historyLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Historylength"},"id":{"title":"Id","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"contextId":{"type":"string","title":"Context ID","description":"Agno session ID containing the task."}},"required":["id","contextId"],"title":"TaskQueryParams","type":"object"},"A2ARequest_TextPart":{"description":"Represents a text segment within a message or artifact.","properties":{"kind":{"const":"text","default":"text","title":"Kind","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Metadata"},"text":{"title":"Text","type":"string"}},"required":["text"],"title":"TextPart","type":"object"},"ActivityMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"activity","title":"Role","default":"activity"},"activityType":{"type":"string","title":"Activitytype"},"content":{"additionalProperties":true,"type":"object","title":"Content"}},"additionalProperties":true,"type":"object","required":["id","activityType","content"],"title":"ActivityMessage","description":"An activity progress message emitted between chat messages."},"AgentCard":{"description":"The AgentCard is a self-describing manifest for an agent. It provides essential\nmetadata including the agent's identity, capabilities, skills, supported\ncommunication methods, and security requirements.","properties":{"additionalInterfaces":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentInterface"},"type":"array"},{"type":"null"}],"default":null,"title":"Additionalinterfaces"},"capabilities":{"$ref":"#/components/schemas/A2ACard_AgentCapabilities"},"defaultInputModes":{"items":{"type":"string"},"title":"Defaultinputmodes","type":"array"},"defaultOutputModes":{"items":{"type":"string"},"title":"Defaultoutputmodes","type":"array"},"description":{"examples":["Agent that helps users with recipes and cooking."],"title":"Description","type":"string"},"documentationUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Documentationurl"},"iconUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Iconurl"},"name":{"examples":["Recipe Agent"],"title":"Name","type":"string"},"preferredTransport":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"JSONRPC","examples":["JSONRPC","GRPC","HTTP+JSON"],"title":"Preferredtransport"},"protocolVersion":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"0.3.0","title":"Protocolversion"},"provider":{"anyOf":[{"$ref":"#/components/schemas/A2ACard_AgentProvider"},{"type":"null"}],"default":null},"security":{"anyOf":[{"items":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},"type":"array"},{"type":"null"}],"default":null,"examples":[[{"oauth":["read"]},{"api-key":[],"mtls":[]}]],"title":"Security"},"securitySchemes":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/A2ACard_SecurityScheme"},"type":"object"},{"type":"null"}],"default":null,"title":"Securityschemes"},"signatures":{"anyOf":[{"items":{"$ref":"#/components/schemas/A2ACard_AgentCardSignature"},"type":"array"},{"type":"null"}],"default":null,"title":"Signatures"},"skills":{"items":{"$ref":"#/components/schemas/A2ACard_AgentSkill"},"title":"Skills","type":"array"},"supportsAuthenticatedExtendedCard":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Supportsauthenticatedextendedcard"},"url":{"examples":["https://api.example.com/a2a/v1"],"title":"Url","type":"string"},"version":{"examples":["1.0.0"],"title":"Version","type":"string"}},"required":["capabilities","defaultInputModes","defaultOutputModes","description","name","skills","url","version"],"title":"AgentCard","type":"object"},"AgentResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"extra_messages":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Messages"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"AgentResponse"},"AgentSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_session_id":{"type":"string","title":"Agent Session Id","description":"Unique agent session identifier"},"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID used in this session"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"agent_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Data","description":"Agent-specific data"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["agent_session_id","session_id","session_name"],"title":"AgentSessionDetailSchema"},"AgentSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the agent"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the agent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the agent"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the agent"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","title":"AgentSummaryResponse"},"ApprovalCountResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"ApprovalCountResponse","description":"Response model for pending approval count."},"ApprovalResolve":{"properties":{"status":{"type":"string","pattern":"^(approved|rejected)$","title":"Status"},"resolved_by":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Resolved By"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"}},"type":"object","required":["status"],"title":"ApprovalResolve","description":"Request body for resolving (approve/reject) an approval."},"ApprovalResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"},"source_type":{"type":"string","title":"Source Type"},"approval_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Type"},"pause_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Type"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Args"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Id"},"schedule_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Run Id"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"resolution_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Data"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"},"run_status":{"anyOf":[{"$ref":"#/components/schemas/RunStatus"},{"type":"null"}]}},"type":"object","required":["id","run_id","session_id","status","source_type"],"title":"ApprovalResponse","description":"Response model for a single approval."},"ApprovalStatusResponse":{"properties":{"approval_id":{"type":"string","title":"Approval Id"},"status":{"type":"string","title":"Status"},"run_id":{"type":"string","title":"Run Id"},"resolved_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"}},"type":"object","required":["approval_id","status","run_id"],"title":"ApprovalStatusResponse","description":"Lightweight response model for polling approval status."},"Artifact":{"properties":{"artifactId":{"type":"string","title":"Artifactid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"}},"type":"object","required":["artifactId","parts"],"title":"Artifact","description":"Represents a file, data structure, or other resource generated by an agent during a task."},"AssistantMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"assistant","title":"Role","default":"assistant"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"},"toolCalls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},{"type":"null"}],"title":"Toolcalls"}},"additionalProperties":true,"type":"object","required":["id"],"title":"AssistantMessage","description":"An assistant message."},"AudioInputContent":{"properties":{"type":{"type":"string","const":"audio","title":"Type","default":"audio"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"AudioInputContent","description":"An audio input content fragment."},"BackgroundRunResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the background run."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the background run."},"status":{"type":"string","title":"Status","description":"Initial run status."}},"type":"object","required":["run_id","session_id","status"],"title":"BackgroundRunResponse"},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"BadRequestResponse","example":{"detail":"Bad request","error_code":"BAD_REQUEST"}},"BinaryInputContent":{"properties":{"type":{"type":"string","const":"binary","title":"Type","default":"binary"},"mimeType":{"type":"string","title":"Mimetype"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"additionalProperties":true,"type":"object","required":["mimeType"],"title":"BinaryInputContent","description":"A deprecated binary payload reference in a multimodal user message."},"Body_continue_agent_run":{"properties":{"tools":{"type":"string","title":"Tools","description":"JSON string of tool call results to continue the paused run","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Optional new user-message text to append to the run before resuming. Use for continuing a COMPLETED run with a follow-up, or adding context to a RUNNING/ERROR resume."},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","description":"When true, clone the run with a new ``run_id`` before resuming. The original is untouched; the clone becomes a sibling within the same session, with ``forked_from_run_id`` set.","default":false},"regenerate":{"type":"boolean","title":"Regenerate","description":"Sugar: regenerate the last response of this run. Auto-computes ``continue_from='last_user'`` to land just after the last user message. Pair with ``additional_instructions`` to steer the new output. By default the original response is hidden from history (replaced); pass ``replace_original=false`` to keep both the original and the regenerated response visible side by side.","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original","description":"Only valid with ``regenerate=true``. Controls history visibility of the original response; the original run is always retained in storage. Defaults to true: the original is marked REGENERATED and hidden from history so the new response replaces it. Pass false to keep both the original and regenerated responses visible."},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions","description":"Only valid with ``regenerate=true``: extra guidance appended as a user message before re-generation. Friendly alias for ``input``."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run continue in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false}},"type":"object","title":"Body_continue_agent_run"},"Body_continue_team_run":{"properties":{"requirements":{"type":"string","title":"Requirements","default":""},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input"},"continue_from":{"type":"string","title":"Continue From","description":"Continuation boundary. Use 'end', 'last_user', or a numeric message index.","default":"end"},"fork":{"type":"boolean","title":"Fork","default":false},"regenerate":{"type":"boolean","title":"Regenerate","default":false},"replace_original":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replace Original"},"additional_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Instructions"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"stream":{"type":"boolean","title":"Stream","default":true},"background":{"type":"boolean","title":"Background","default":false}},"type":"object","title":"Body_continue_team_run"},"Body_continue_workflow_run":{"properties":{"step_requirements":{"type":"string","title":"Step Requirements","description":"JSON string of step requirement objects with resolution status","default":""},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for the paused run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow reconstruction"}},"type":"object","title":"Body_continue_workflow_run"},"Body_create_agent_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the agent"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Agent version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic agent construction"}},"type":"object","required":["message"],"title":"Body_create_agent_run"},"Body_create_team_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the team"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"monitor":{"type":"boolean","title":"Monitor","description":"Enable monitoring and logging for this run","default":true},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"files":{"anyOf":[{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files to upload (images, audio, video, or documents)"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Team version to use for this run"},"background":{"type":"boolean","title":"Background","description":"Run in background and return immediately with run metadata (requires database)","default":false},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic team construction"}},"type":"object","required":["message"],"title":"Body_create_team_run"},"Body_create_workflow_run":{"properties":{"message":{"type":"string","title":"Message","description":"The input message or prompt to send to the workflow"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses via Server-Sent Events (SSE)","default":true},"background":{"type":"boolean","title":"Background","description":"Run workflow in background (survives client disconnect). Requires database. Use /resume to reconnect.","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for conversation continuity. If not provided, a new session is created"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User identifier for tracking and personalization"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Workflow version to use for this run"},"factory_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factory Input","description":"JSON object with factory-specific parameters for dynamic workflow construction"}},"type":"object","required":["message"],"title":"Body_create_workflow_run"},"Body_rename_session":{"properties":{"session_name":{"type":"string","title":"Session Name","description":"New name for the session"}},"type":"object","required":["session_name"],"title":"Body_rename_session"},"Body_resume_agent_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_agent_run_stream"},"Body_resume_team_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_team_run_stream"},"Body_resume_workflow_run_stream":{"properties":{"last_event_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Event Index","description":"Index of last event received by client (0-based)"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID for database fallback"}},"type":"object","title":"Body_resume_workflow_run_stream"},"Body_update_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"Content metadata as JSON string"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"Reader ID. In Agno 2.7.4, local knowledge validates the value, but the content patch does not apply or persist the reader change."}},"type":"object","title":"Body_update_content"},"Body_upload_content":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated from file/URL if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description for context"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"URL to fetch content from (JSON array or single URL string)"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object for additional content properties"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File","description":"File to upload for processing"},"text_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Content","description":"Raw text content to process"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for content processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply during processing"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size to use for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap to use for processing"}},"type":"object","title":"Body_upload_content"},"Body_upload_remote_content":{"properties":{"config_id":{"type":"string","title":"Config Id","description":"ID of the configured remote content source (from /knowledge/config)"},"path":{"type":"string","title":"Path","description":"Path to file or folder in the remote source"},"source_params":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Params","description":"JSON object of per-request parameters forwarded to the source's factory. Used for provider-specific routing that shouldn't be baked into the config. Currently supported keys: GitHub accepts 'repo' ('owner/repo'), letting one configured GitHub source serve multiple repositories the credentials can access."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Content name (auto-generated if not provided)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Content description"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"JSON metadata object"},"reader_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reader Id","description":"ID of the reader to use for processing"},"chunker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunker","description":"Chunking strategy to apply"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","description":"Chunk size for processing"},"chunk_overlap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Overlap","description":"Chunk overlap for processing"}},"type":"object","required":["config_id","path"],"title":"Body_upload_remote_content"},"CancelTaskRequest":{"description":"Represents a JSON-RPC request for the `tasks/cancel` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"tasks/cancel","default":"tasks/cancel","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_TaskIdParams"}},"required":["id","params"],"title":"CancelTaskRequest","type":"object"},"CancelTaskSuccessResponse":{"description":"Represents a successful JSON-RPC response for the `tasks/cancel` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"default":null,"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"result":{"$ref":"#/components/schemas/Task"}},"required":["result"],"title":"CancelTaskSuccessResponse","type":"object"},"ChatConfig":{"properties":{"quick_prompts":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Quick Prompts"}},"type":"object","required":["quick_prompts"],"title":"ChatConfig","description":"Configuration for the Chat page of the AgentOS"},"ChunkerSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["key"],"title":"ChunkerSchema"},"ComponentConfigResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"version":{"type":"integer","title":"Version"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"type":"string","title":"Stage"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","version","stage","config","created_at"],"title":"ComponentConfigResponse"},"ComponentCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Display name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id","description":"Unique identifier for the entity. Auto-generated from name if not provided."},"component_type":{"$ref":"#/components/schemas/ComponentType","description":"Type of entity: agent, team, or workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config","description":"Optional configuration"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["name","component_type"],"title":"ComponentCreate"},"ComponentResponse":{"properties":{"component_id":{"type":"string","title":"Component Id"},"component_type":{"$ref":"#/components/schemas/ComponentType"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"integer","title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["component_id","component_type","created_at"],"title":"ComponentResponse"},"ComponentType":{"type":"string","enum":["agent","team","workflow"],"title":"ComponentType"},"ComponentUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"component_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"}},"type":"object","title":"ComponentUpdate"},"ConfigCreate":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config","description":"The configuration data"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Optional version number"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Optional label (e.g., 'stable')"},"stage":{"type":"string","title":"Stage","description":"Stage: 'draft' or 'published'","default":"draft"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links","description":"Optional links to child components"},"set_current":{"type":"boolean","title":"Set Current","description":"Set as current version","default":true}},"type":"object","required":["config"],"title":"ConfigCreate"},"ConfigResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the OS instance"},"available_models":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Models","description":"List of available models"},"os_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Database","description":"ID of the database used for the OS instance"},"databases":{"items":{"type":"string"},"type":"array","title":"Databases","description":"List of database IDs used by the components of the OS instance"},"chat":{"anyOf":[{"$ref":"#/components/schemas/ChatConfig"},{"type":"null"}],"description":"Chat configuration"},"manifest":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Manifest"},"type":"object"},{"type":"null"}],"title":"Manifest","description":"Per-entity UI metadata keyed by agent/team/workflow id"},"session":{"anyOf":[{"$ref":"#/components/schemas/SessionConfig"},{"type":"null"}],"description":"Session configuration"},"metrics":{"anyOf":[{"$ref":"#/components/schemas/MetricsConfig"},{"type":"null"}],"description":"Metrics configuration"},"memory":{"anyOf":[{"$ref":"#/components/schemas/MemoryConfig"},{"type":"null"}],"description":"Memory configuration"},"learning":{"anyOf":[{"$ref":"#/components/schemas/LearningConfig"},{"type":"null"}],"description":"Learning configuration"},"knowledge":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeConfig"},{"type":"null"}],"description":"Knowledge configuration"},"evals":{"anyOf":[{"$ref":"#/components/schemas/EvalsConfig"},{"type":"null"}],"description":"Evaluations configuration"},"traces":{"anyOf":[{"$ref":"#/components/schemas/TracesConfig"},{"type":"null"}],"description":"Traces configuration"},"agents":{"items":{"$ref":"#/components/schemas/AgentSummaryResponse"},"type":"array","title":"Agents","description":"List of registered agents"},"teams":{"items":{"$ref":"#/components/schemas/TeamSummaryResponse"},"type":"array","title":"Teams","description":"List of registered teams"},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowSummaryResponse"},"type":"array","title":"Workflows","description":"List of registered workflows"},"interfaces":{"items":{"$ref":"#/components/schemas/InterfaceResponse"},"type":"array","title":"Interfaces","description":"List of available interfaces"}},"type":"object","required":["os_id","databases","agents","teams","workflows","interfaces"],"title":"ConfigResponse","description":"Response schema for the general config endpoint"},"ConfigResponseSchema":{"properties":{"readers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ReaderSchema"},"type":"object"},{"type":"null"}],"title":"Readers","description":"Available content readers"},"readersForType":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Readersfortype","description":"Mapping of content types to reader IDs"},"chunkers":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ChunkerSchema"},"type":"object"},{"type":"null"}],"title":"Chunkers","description":"Available chunking strategies"},"filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filters","description":"Available filter tags"},"vector_dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/VectorDbSchema"},"type":"array"},{"type":"null"}],"title":"Vector Dbs","description":"Configured vector databases"},"remote_content_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/RemoteContentSourceSchema"},"type":"array"},{"type":"null"}],"title":"Remote Content Sources","description":"Configured remote content sources (S3, GCS, SharePoint, GitHub)"}},"type":"object","title":"ConfigResponseSchema"},"ConfigUpdate":{"properties":{"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"links":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","title":"ConfigUpdate"},"ConflictResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ConflictResponse","example":{"detail":"Resource conflict"}},"ContentResponseSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the content"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"MIME type of the content"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"},"linked_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linked To","description":"Knowledge instance name used for content isolation. Local Agno 2.7.4 responses return null because response conversion does not propagate the stored value."},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata as key-value pairs"},"access_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Access Count","description":"Stored access count. Local Agno 2.7.4 responses return null because response conversion does not propagate the stored value."},"status":{"anyOf":[{"$ref":"#/components/schemas/ContentStatus"},{"type":"null"}],"description":"Processing status of the content"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message","description":"Status message or error details"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when content was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when content was last updated"}},"type":"object","required":["id"],"title":"ContentResponseSchema"},"ContentStatus":{"type":"string","enum":["processing","completed","failed"],"title":"ContentStatus","description":"Enumeration of possible content processing statuses."},"ContentStatusResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Content ID"},"status":{"$ref":"#/components/schemas/ContentStatus","description":"Current processing status of the content"},"status_message":{"type":"string","title":"Status Message","description":"Status message or error details","default":""}},"type":"object","required":["status"],"title":"ContentStatusResponse","description":"Response model for content status endpoint."},"Context":{"properties":{"description":{"type":"string","title":"Description"},"value":{"type":"string","title":"Value"}},"additionalProperties":true,"type":"object","required":["description","value"],"title":"Context","description":"Additional context for the agent."},"CreateSessionRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session ID (generated if not provided)"},"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Initial session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"}},"type":"object","title":"CreateSessionRequest"},"DataPart":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data"},"kind":{"type":"string","const":"data","title":"Kind","default":"data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["data"],"title":"DataPart","description":"Represents a structured data segment (e.g., JSON) within a message or artifact."},"DatabaseConfig_EvalsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/EvalsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[EvalsDomainConfig]"},"DatabaseConfig_LearningDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/LearningDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[LearningDomainConfig]"},"DatabaseConfig_MemoryDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MemoryDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MemoryDomainConfig]"},"DatabaseConfig_MetricsDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/MetricsDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[MetricsDomainConfig]"},"DatabaseConfig_SessionDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/SessionDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[SessionDomainConfig]"},"DatabaseConfig_TracesDomainConfig_":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/TracesDomainConfig"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"}},"type":"object","required":["db_id"],"title":"DatabaseConfig[TracesDomainConfig]"},"DayAggregatedMetrics":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the metrics record"},"agent_runs_count":{"type":"integer","minimum":0.0,"title":"Agent Runs Count","description":"Total number of agent runs"},"agent_sessions_count":{"type":"integer","minimum":0.0,"title":"Agent Sessions Count","description":"Total number of agent sessions"},"team_runs_count":{"type":"integer","minimum":0.0,"title":"Team Runs Count","description":"Total number of team runs"},"team_sessions_count":{"type":"integer","minimum":0.0,"title":"Team Sessions Count","description":"Total number of team sessions"},"workflow_runs_count":{"type":"integer","minimum":0.0,"title":"Workflow Runs Count","description":"Total number of workflow runs"},"workflow_sessions_count":{"type":"integer","minimum":0.0,"title":"Workflow Sessions Count","description":"Total number of workflow sessions"},"users_count":{"type":"integer","minimum":0.0,"title":"Users Count","description":"Total number of unique users"},"token_metrics":{"additionalProperties":true,"type":"object","title":"Token Metrics","description":"Token usage metrics (input, output, cached, etc.)"},"model_metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Model Metrics","description":"Metrics grouped by model (model_id, provider, count)"},"date":{"type":"string","format":"date-time","title":"Date","description":"Date for which these metrics are aggregated"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when metrics were created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when metrics were last updated"}},"type":"object","required":["id","agent_runs_count","agent_sessions_count","team_runs_count","team_sessions_count","workflow_runs_count","workflow_sessions_count","users_count","token_metrics","model_metrics","date","created_at","updated_at"],"title":"DayAggregatedMetrics","description":"Aggregated metrics for a given day"},"DeleteEvalRunsRequest":{"properties":{"eval_run_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Eval Run Ids","description":"List of evaluation run IDs to delete"}},"type":"object","required":["eval_run_ids"],"title":"DeleteEvalRunsRequest"},"DeleteMemoriesRequest":{"properties":{"memory_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Memory Ids","description":"List of memory IDs to delete"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID to filter memories for deletion"}},"type":"object","required":["memory_ids"],"title":"DeleteMemoriesRequest"},"DeleteSessionRequest":{"properties":{"session_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Session Ids","description":"List of session IDs to delete"},"session_types":{"items":{"$ref":"#/components/schemas/SessionType"},"type":"array","minItems":1,"title":"Session Types","description":"Types of sessions to delete"}},"type":"object","required":["session_ids","session_types"],"title":"DeleteSessionRequest"},"DeveloperMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"developer","title":"Role","default":"developer"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"DeveloperMessage","description":"A developer message."},"DocumentInputContent":{"properties":{"type":{"type":"string","const":"document","title":"Type","default":"document"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"DocumentInputContent","description":"A document input content fragment."},"EvalFilterType":{"type":"string","enum":["agent","team","workflow"],"title":"EvalFilterType"},"EvalRunInput":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID to evaluate"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID to evaluate"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID to use for evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation to run (accuracy, performance, or reliability)"},"input":{"type":"string","minLength":1,"title":"Input","description":"Input text/query for the evaluation"},"additional_guidelines":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Guidelines","description":"Additional guidelines for the evaluation"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for the evaluation"},"num_iterations":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Num Iterations","description":"Number of times to run the evaluation","default":1},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for this evaluation run"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output","description":"Expected output for accuracy evaluation"},"criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criteria","description":"Evaluation criteria for agent-as-judge evaluation"},"scoring_strategy":{"anyOf":[{"type":"string","enum":["numeric","binary"]},{"type":"null"}],"title":"Scoring Strategy","description":"Scoring strategy: 'numeric' (1-10 with threshold) or 'binary' (PASS/FAIL)","default":"binary"},"threshold":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Threshold","description":"Score threshold for pass/fail (1-10), only used with numeric scoring","default":7},"warmup_runs":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Warmup Runs","description":"Number of warmup runs before measuring performance","default":0},"expected_tool_calls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expected Tool Calls","description":"Expected tool calls for reliability evaluation"},"allow_additional_tool_calls":{"type":"boolean","title":"Allow Additional Tool Calls","description":"When True, tool calls not in expected_tool_calls are allowed (subset matching)","default":false},"expected_tool_call_arguments":{"anyOf":[{"additionalProperties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Expected Tool Call Arguments","description":"Expected arguments for specific tool calls, e.g. {\"tool_name\": {\"arg_name\": \"expected_value\"}} or {\"tool_name\": [{\"arg_name\": \"val1\"}, {\"arg_name\": \"val2\"}]}"}},"type":"object","required":["eval_type","input"],"title":"EvalRunInput"},"EvalSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the evaluation run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that was evaluated"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id","description":"Model ID used in evaluation"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider","description":"Model provider name"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that was evaluated"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was evaluated"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the evaluation run"},"evaluated_component_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluated Component Name","description":"Name of the evaluated component"},"eval_type":{"$ref":"#/components/schemas/EvalType","description":"Type of evaluation (accuracy, performance, or reliability)"},"eval_data":{"additionalProperties":true,"type":"object","title":"Eval Data","description":"Evaluation results and metrics"},"eval_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eval Input","description":"Input parameters used for the evaluation"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when evaluation was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when evaluation was last updated"}},"type":"object","required":["id","eval_type","eval_data"],"title":"EvalSchema"},"EvalType":{"type":"string","enum":["accuracy","agent_as_judge","performance","reliability"],"title":"EvalType"},"EvalsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_EvalsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"EvalsConfig","description":"Configuration for the Evals domain of the AgentOS"},"EvalsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"EvalsDomainConfig","description":"Configuration for the Evals domain of the AgentOS"},"FilePart":{"properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/FileWithBytes"},{"$ref":"#/components/schemas/FileWithUri"}],"title":"File"},"kind":{"type":"string","const":"file","title":"Kind","default":"file"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["file"],"title":"FilePart","description":"Represents a file segment within a message or artifact. The file content can be\nprovided either directly as bytes or as a URI."},"FileWithBytes":{"properties":{"bytes":{"type":"string","title":"Bytes"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["bytes"],"title":"FileWithBytes","description":"Represents a file with its content provided directly as a base64-encoded string."},"FileWithUri":{"properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uri":{"type":"string","title":"Uri"}},"type":"object","required":["uri"],"title":"FileWithUri","description":"Represents a file with its content located at a specific URI."},"FilterFieldSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Column/field name used in filter expressions"},"label":{"type":"string","title":"Label","description":"Human-readable display label for the UI"},"type":{"type":"string","title":"Type","description":"Field data type: string, number, datetime, enum"},"operators":{"items":{"type":"string"},"type":"array","title":"Operators","description":"List of valid filter operators for this field"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values","description":"Allowed enum values (for autocomplete/dropdown)"}},"type":"object","required":["key","label","type","operators"],"title":"FilterFieldSchema","description":"Schema describing a single filterable field for the frontend filter bar."},"FilterSchemaResponse":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FilterFieldSchema"},"type":"array","title":"Fields","description":"Available filterable fields"},"logical_operators":{"items":{"type":"string"},"type":"array","title":"Logical Operators","description":"Logical operators for combining filter clauses","default":["AND","OR"]}},"type":"object","required":["fields"],"title":"FilterSchemaResponse","description":"Response for the filter schema endpoint. Tells the FE what fields, operators, and values are available."},"ForbiddenResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ForbiddenResponse","example":{"detail":"Insufficient permissions"}},"FunctionCall":{"properties":{"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"additionalProperties":true,"type":"object","required":["name","arguments"],"title":"FunctionCall","description":"Name and arguments of a function call."},"GetTaskRequest":{"description":"Represents a JSON-RPC request for the `tasks/get` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"tasks/get","default":"tasks/get","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_TaskQueryParams"}},"required":["id","params"],"title":"GetTaskRequest","type":"object"},"GetTaskSuccessResponse":{"description":"Represents a successful JSON-RPC response for the `tasks/get` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"default":null,"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"result":{"$ref":"#/components/schemas/Task"}},"required":["result"],"title":"GetTaskSuccessResponse","type":"object"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Health status of the service"},"instantiated_at":{"type":"string","format":"date-time","title":"Instantiated At","description":"Timestamp when service was instantiated"}},"type":"object","required":["status","instantiated_at"],"title":"HealthResponse","example":{"instantiated_at":"2025-06-10T12:00:00Z","status":"ok"}},"ImageInputContent":{"properties":{"type":{"type":"string","const":"image","title":"Type","default":"image"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"ImageInputContent","description":"An image input content fragment."},"InfoResponse":{"properties":{"os_id":{"type":"string","title":"Os Id","description":"Unique identifier for the OS instance"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the OS instance"},"agno_version":{"type":"string","title":"Agno Version","description":"Version of the agno framework"},"agent_count":{"type":"integer","title":"Agent Count","description":"Number of agents registered in the OS","default":0},"team_count":{"type":"integer","title":"Team Count","description":"Number of teams registered in the OS","default":0},"workflow_count":{"type":"integer","title":"Workflow Count","description":"Number of workflows registered in the OS","default":0},"mcp":{"$ref":"#/components/schemas/McpInfo","description":"MCP server availability for this OS instance"},"auth_mode":{"type":"string","enum":["none","security_key","jwt"],"title":"Auth Mode","description":"Authentication mode enforced on the REST/WS plane of this OS instance. MCP OAuth, when enabled, is described separately under `mcp.oauth`.","default":"none"}},"type":"object","required":["os_id","agno_version"],"title":"InfoResponse","description":"Response schema for the /info endpoint returning lightweight OS metadata."},"InputContentDataSource":{"properties":{"type":{"type":"string","const":"data","title":"Type","default":"data"},"value":{"type":"string","title":"Value"},"mimeType":{"type":"string","title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value","mimeType"],"title":"InputContentDataSource","description":"Inline base64-encoded source."},"InputContentUrlSource":{"properties":{"type":{"type":"string","const":"url","title":"Type","default":"url"},"value":{"type":"string","title":"Value"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"}},"additionalProperties":true,"type":"object","required":["value"],"title":"InputContentUrlSource","description":"URL-referenced source."},"InterfaceResponse":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the interface"},"version":{"type":"string","title":"Version","description":"Version of the interface"},"route":{"type":"string","title":"Route","description":"API route path"}},"type":"object","required":["type","version","route"],"title":"InterfaceResponse"},"InternalServerErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"InternalServerErrorResponse","example":{"detail":"Internal server error","error_code":"INTERNAL_SERVER_ERROR"}},"KnowledgeConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeDatabaseConfig"},"type":"array"},{"type":"null"}],"title":"Dbs"},"knowledge_instances":{"anyOf":[{"items":{"$ref":"#/components/schemas/KnowledgeInstanceConfig"},"type":"array"},{"type":"null"}],"title":"Knowledge Instances"}},"type":"object","title":"KnowledgeConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeDatabaseConfig":{"properties":{"db_id":{"type":"string","title":"Db Id"},"domain_config":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeDomainConfig"},{"type":"null"}]},"tables":{"items":{"type":"string"},"type":"array","title":"Tables","default":[]}},"type":"object","required":["db_id"],"title":"KnowledgeDatabaseConfig","description":"Configuration for a knowledge database with its tables"},"KnowledgeDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"KnowledgeDomainConfig","description":"Configuration for the Knowledge domain of the AgentOS"},"KnowledgeInstanceConfig":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"db_id":{"type":"string","title":"Db Id"},"table":{"type":"string","title":"Table"}},"type":"object","required":["id","name","db_id","table"],"title":"KnowledgeInstanceConfig","description":"Configuration for a single knowledge instance"},"LearningConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_LearningDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"LearningConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningCreate":{"properties":{"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"content":{"additionalProperties":true,"type":"object","title":"Content","description":"The learning content payload"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID. When the request is authenticated, must match the JWT subject or be omitted/null (which creates a global / non-user-scoped record)."},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"}},"type":"object","required":["learning_type","content"],"title":"LearningCreate","description":"Request body for creating a learning record."},"LearningDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"LearningDomainConfig","description":"Configuration for the Learning domain of the AgentOS"},"LearningResponse":{"properties":{"learning_id":{"type":"string","title":"Learning Id","description":"Unique identifier for the learning record"},"learning_type":{"type":"string","title":"Learning Type","description":"Type of learning (e.g. 'user_profile', 'entity_memory')"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace","description":"Namespace for scoping ('user', 'global', or custom)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id","description":"Associated entity ID (for entity-specific learnings)"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type","description":"Entity type (e.g. 'person', 'company')"},"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"The learning content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Optional metadata"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Creation timestamp (Unix epoch seconds)"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp (Unix epoch seconds)"}},"type":"object","required":["learning_id","learning_type"],"title":"LearningResponse","description":"A single learning record as returned by the API."},"LearningUpdate":{"properties":{"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Replacement content payload"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Replacement metadata"}},"type":"object","title":"LearningUpdate","description":"Request body for updating a learning record. Identity fields are immutable."},"LearningUserStats":{"properties":{"user_id":{"type":"string","title":"User Id","description":"The user ID"},"last_learning_updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Learning Updated At","description":"Most recent learning update for this user (Unix epoch seconds)"}},"type":"object","required":["user_id"],"title":"LearningUserStats","description":"A user that owns learning records, with their most recent activity.\n\nUsed as a lightweight index for the per-user view: list users here, then drill into a\nsingle user's records via ``GET /learnings?user_id=...``. No per-user count is returned\n-- the user-scoped stores (``user_profile``, ``user_memory``) keep a single record per\nuser, so a record count would always be 1; the actual memory count lives in that\nrecord's ``content``."},"Manifest":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"},"quick_prompts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quick Prompts"}},"type":"object","title":"Manifest","description":"OS-level UI metadata for an agent/team/workflow.\n\nFields here are AgentOS UI metadata only. ``description`` is unrelated to\n``Agent.description`` / ``Team.description`` / ``Workflow.description``,\nwhich are sent to the model.\n\nRendering surfaces:\n- ``description``, ``labels``: home/landing card\n- ``quick_prompts``: chat page"},"McpInfo":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether the MCP server is enabled on this OS instance","default":false},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Path where the MCP server is mounted, null when disabled"},"oauth":{"anyOf":[{"$ref":"#/components/schemas/McpOAuthInfo"},{"type":"null"}],"description":"OAuth discovery details when the MCP endpoint is OAuth-protected, null otherwise"}},"type":"object","title":"McpInfo","description":"MCP server availability for the /info endpoint."},"McpOAuthInfo":{"properties":{"authorization_servers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorization Servers","description":"Issuer URL(s) of the authorization server(s) protecting the MCP endpoint"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource","description":"RFC 9728 resource URL advertised for the MCP endpoint"}},"type":"object","title":"McpOAuthInfo","description":"OAuth discovery details for an MCP endpoint protected by ``AgentOS(mcp_auth=...)``."},"MemoryConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MemoryDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MemoryConfig","description":"Configuration for the Memory domain of the AgentOS"},"MemoryDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MemoryDomainConfig","description":"Configuration for the Memory domain of the AgentOS"},"Message":{"properties":{"contextId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contextid"},"extensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extensions"},"kind":{"type":"string","const":"message","title":"Kind","default":"message"},"messageId":{"type":"string","title":"Messageid"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parts":{"items":{"$ref":"#/components/schemas/Part"},"type":"array","title":"Parts"},"referenceTaskIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referencetaskids"},"role":{"$ref":"#/components/schemas/Role"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taskid"}},"type":"object","required":["messageId","parts","role"],"title":"Message","description":"Represents a single message in the conversation between a user and an agent."},"Meta":{"properties":{"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of results per page","default":20},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number","default":1}},"type":"object","title":"Meta","description":"Inline metadata schema for pagination."},"MetricsConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_MetricsDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"MetricsConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"MetricsDomainConfig","description":"Configuration for the Metrics domain of the AgentOS"},"MetricsResponse":{"properties":{"metrics":{"items":{"$ref":"#/components/schemas/DayAggregatedMetrics"},"type":"array","title":"Metrics","description":"List of daily aggregated metrics"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp of the most recent metrics update"}},"type":"object","required":["metrics"],"title":"MetricsResponse"},"Model":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"Model"},"ModelResponse":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the model"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model identifier"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Model provider name"}},"type":"object","title":"ModelResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"NotFoundResponse","example":{"detail":"Not found","error_code":"NOT_FOUND"}},"NotImplementedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"NotImplementedResponse","example":{"detail":"Operation not supported for this resource type"}},"OptimizeMemoriesRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID to optimize memories for"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model in `provider:model_id` format. Current examples include `openai:gpt-5.4-mini`, `anthropic:claude-sonnet-4-6`, and `google:gemini-3.5-flash`. If omitted, Agno v2.7.4 uses MemoryManager's default model, `gpt-4o`."},"apply":{"type":"boolean","title":"Apply","description":"If True, apply optimization changes to database. If False, return preview only without saving.","default":true}},"type":"object","required":["user_id"],"title":"OptimizeMemoriesRequest","description":"Schema for memory optimization request"},"OptimizeMemoriesResponse":{"properties":{"memories":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Memories","description":"List of optimized memory objects"},"memories_before":{"type":"integer","minimum":0.0,"title":"Memories Before","description":"Number of memories before optimization"},"memories_after":{"type":"integer","minimum":0.0,"title":"Memories After","description":"Number of memories after optimization"},"tokens_before":{"type":"integer","minimum":0.0,"title":"Tokens Before","description":"Token count before optimization"},"tokens_after":{"type":"integer","minimum":0.0,"title":"Tokens After","description":"Token count after optimization"},"tokens_saved":{"type":"integer","minimum":0.0,"title":"Tokens Saved","description":"Number of tokens saved through optimization"},"reduction_percentage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Reduction Percentage","description":"Percentage of token reduction achieved"}},"type":"object","required":["memories","memories_before","memories_after","tokens_before","tokens_after","tokens_saved","reduction_percentage"],"title":"OptimizeMemoriesResponse","description":"Schema for memory optimization response"},"PaginatedResponse_ApprovalResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ApprovalResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ApprovalResponse]"},"PaginatedResponse_ComponentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ComponentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ComponentResponse]"},"PaginatedResponse_ContentResponseSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentResponseSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ContentResponseSchema]"},"PaginatedResponse_EvalSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EvalSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[EvalSchema]"},"PaginatedResponse_LearningResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningResponse]"},"PaginatedResponse_LearningUserStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LearningUserStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[LearningUserStats]"},"PaginatedResponse_RegistryContentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RegistryContentResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[RegistryContentResponse]"},"PaginatedResponse_ScheduleResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleResponse]"},"PaginatedResponse_ScheduleRunResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ScheduleRunResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ScheduleRunResponse]"},"PaginatedResponse_ServiceAccountResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ServiceAccountResponse"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[ServiceAccountResponse]"},"PaginatedResponse_SessionSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SessionSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[SessionSchema]"},"PaginatedResponse_TraceDetail_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceDetail"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceDetail]"},"PaginatedResponse_TraceSessionStats_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSessionStats"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSessionStats]"},"PaginatedResponse_TraceSummary_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TraceSummary"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[TraceSummary]"},"PaginatedResponse_UserMemorySchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserMemorySchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserMemorySchema]"},"PaginatedResponse_UserStatsSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserStatsSchema"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[UserStatsSchema]"},"PaginatedResponse_VectorSearchResult_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VectorSearchResult"},"type":"array","title":"Data","description":"List of items for the current page"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["data","meta"],"title":"PaginatedResponse[VectorSearchResult]"},"PaginationInfo":{"properties":{"page":{"type":"integer","minimum":0.0,"title":"Page","description":"Page value returned by the endpoint. AgentOS paginated routes use 1-based page numbers. Some Agno 2.7.4 routes accept and echo 0 even though their pagination implementation is 1-based.","default":0},"limit":{"type":"integer","minimum":1.0,"title":"Limit","description":"Number of items per page","default":20},"total_pages":{"type":"integer","minimum":0.0,"title":"Total Pages","description":"Total number of pages","default":0},"total_count":{"type":"integer","minimum":0.0,"title":"Total Count","description":"Total count of items","default":0},"search_time_ms":{"type":"number","minimum":0.0,"title":"Search Time Ms","description":"Search execution time in milliseconds","default":0}},"type":"object","title":"PaginationInfo"},"Part":{"anyOf":[{"$ref":"#/components/schemas/TextPart"},{"$ref":"#/components/schemas/FilePart"},{"$ref":"#/components/schemas/DataPart"}],"title":"Part"},"ReaderSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the reader"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the reader"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the reader's capabilities"},"chunkers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chunkers","description":"List of supported chunking strategies"}},"type":"object","required":["id"],"title":"ReaderSchema"},"ReasoningMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"reasoning","title":"Role","default":"reasoning"},"content":{"type":"string","title":"Content"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"ReasoningMessage","description":"A reasoning message containing the agent's internal reasoning process."},"RegistryContentResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/RegistryResourceType"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name","type"],"title":"RegistryContentResponse"},"RegistryResourceType":{"type":"string","enum":["tool","model","db","vector_db","schema","function","agent","team","knowledge","memory_manager","session_summary_manager"],"title":"RegistryResourceType","description":"Types of resources that can be stored in a registry."},"RemoteContentSourceSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the content source"},"name":{"type":"string","title":"Name","description":"Display name for the content source"},"type":{"type":"string","title":"Type","description":"Type of content source (s3, gcs, sharepoint, github, azureblob)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Default path prefix for this source"}},"type":"object","required":["id","name","type"],"title":"RemoteContentSourceSchema","description":"Schema for remote content source configuration."},"ResumeEntry":{"properties":{"interruptId":{"type":"string","title":"Interruptid"},"status":{"type":"string","enum":["resolved","cancelled"],"title":"Status"},"payload":{"anyOf":[{},{"type":"null"}],"title":"Payload"}},"additionalProperties":true,"type":"object","required":["interruptId","status"],"title":"ResumeEntry","description":"A per-interrupt response in the resume array of a RunAgentInput."},"Role":{"type":"string","enum":["agent","user"],"title":"Role","description":"Identifies the sender of the message. `user` for the client, `agent` for the service."},"RunAgentInput":{"properties":{"threadId":{"type":"string","title":"Threadid"},"runId":{"type":"string","title":"Runid"},"parentRunId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentrunid"},"state":{"title":"State"},"messages":{"items":{"oneOf":[{"$ref":"#/components/schemas/DeveloperMessage"},{"$ref":"#/components/schemas/SystemMessage"},{"$ref":"#/components/schemas/AssistantMessage"},{"$ref":"#/components/schemas/UserMessage"},{"$ref":"#/components/schemas/ToolMessage"},{"$ref":"#/components/schemas/ActivityMessage"},{"$ref":"#/components/schemas/ReasoningMessage"}],"discriminator":{"propertyName":"role","mapping":{"activity":"#/components/schemas/ActivityMessage","assistant":"#/components/schemas/AssistantMessage","developer":"#/components/schemas/DeveloperMessage","reasoning":"#/components/schemas/ReasoningMessage","system":"#/components/schemas/SystemMessage","tool":"#/components/schemas/ToolMessage","user":"#/components/schemas/UserMessage"}}},"type":"array","title":"Messages"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","title":"Tools"},"context":{"items":{"$ref":"#/components/schemas/Context"},"type":"array","title":"Context"},"forwardedProps":{"title":"Forwardedprops"},"resume":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResumeEntry"},"type":"array"},{"type":"null"}],"title":"Resume"}},"additionalProperties":true,"type":"object","required":["threadId","runId","state","messages","tools","context","forwardedProps"],"title":"RunAgentInput","description":"Input for running an agent."},"RunCheckpointEntry":{"properties":{"checkpoint_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Checkpoint Id","description":"One-based display ID, or null when the requested boundary is not on the checkpoint timeline."},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Run that contains the checkpoint."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session that contains the run."},"message_index":{"type":"integer","minimum":0,"title":"Message Index","description":"Message boundary represented by the checkpoint."},"continue_from":{"type":"integer","minimum":0,"title":"Continue From","description":"Value to send as continue_from when continuing the run."},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Checkpoint status or current run status."},"reason":{"type":"string","title":"Reason","description":"Why this boundary was returned."},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At","description":"Unix timestamp for the checkpoint or run."},"message_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Id","description":"Message ID at the checkpoint boundary."},"message_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Role","description":"Role of the message at the checkpoint boundary."},"message_preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Preview","description":"Truncated message content at the checkpoint boundary."},"is_latest":{"type":"boolean","title":"Is Latest","description":"Whether this is the final message boundary in the stored run."}},"type":"object","required":["checkpoint_id","run_id","session_id","message_index","continue_from","status","reason","created_at","message_id","message_role","message_preview","is_latest"],"title":"RunCheckpointEntry","description":"A continuation boundary derived from a stored run transcript."},"RunCheckpointListResponse":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Run whose checkpoints were listed."},"session_id":{"type":"string","title":"Session Id","description":"Session that contains the run."},"checkpoints":{"type":"array","items":{"$ref":"#/components/schemas/RunCheckpointEntry"},"title":"Checkpoints","description":"Checkpoint boundaries in message order."}},"type":"object","required":["run_id","session_id","checkpoints"],"title":"RunCheckpointListResponse"},"RunCheckpointSnapshotResponse":{"properties":{"checkpoint":{"$ref":"#/components/schemas/RunCheckpointEntry"},"snapshot":{"anyOf":[{"$ref":"#/components/schemas/RunSchema"},{"$ref":"#/components/schemas/TeamRunSchema"}],"title":"Snapshot","description":"Agent or team run serialized at the requested message boundary."}},"type":"object","required":["checkpoint","snapshot"],"title":"RunCheckpointSnapshotResponse"},"RunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID that executed this run"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"RunSchema"},"RunStatus":{"type":"string","enum":["PENDING","RUNNING","COMPLETED","PAUSED","CANCELLED","ERROR","REGENERATED"],"title":"RunStatus","description":"State of the main run response"},"ScheduleCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"cron_expr":{"type":"string","maxLength":128,"title":"Cron Expr"},"endpoint":{"type":"string","maxLength":512,"title":"Endpoint"},"method":{"type":"string","maxLength":10,"title":"Method","default":"POST"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"type":"string","maxLength":64,"title":"Timezone","default":"UTC"},"timeout_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Timeout Seconds","default":3600},"max_retries":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Max Retries","default":0},"retry_delay_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Retry Delay Seconds","default":60}},"type":"object","required":["name","cron_expr","endpoint"],"title":"ScheduleCreate"},"ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"cron_expr":{"type":"string","title":"Cron Expr"},"timezone":{"type":"string","title":"Timezone"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"max_retries":{"type":"integer","title":"Max Retries"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","method","endpoint","cron_expr","timezone","timeout_seconds","max_retries","retry_delay_seconds","enabled"],"title":"ScheduleResponse"},"ScheduleRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"schedule_id":{"type":"string","title":"Schedule Id"},"attempt":{"type":"integer","title":"Attempt"},"triggered_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triggered At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"status":{"type":"string","title":"Status"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output"},"requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Requirements"},"created_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","schedule_id","attempt","status"],"title":"ScheduleRunResponse"},"ScheduleStateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"next_run_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Run At"},"updated_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name","enabled"],"title":"ScheduleStateResponse","description":"Trimmed response for state-changing operations (enable/disable)."},"ScheduleUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"cron_expr":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Cron Expr"},"endpoint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Endpoint"},"method":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Method"},"description":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Description"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Timezone"},"timeout_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":1.0},{"type":"null"}],"title":"Timeout Seconds"},"max_retries":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Max Retries"},"retry_delay_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":1.0},{"type":"null"}],"title":"Retry Delay Seconds"}},"type":"object","title":"ScheduleUpdate"},"ScopeItem":{"properties":{"scope":{"type":"string","title":"Scope","description":"Scope string, e.g. 'agents:*:run'"},"effect":{"type":"string","enum":["allow","deny"],"title":"Effect","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["scope"],"title":"ScopeItem","description":"Write shape for one scope grant \u2014 the canonical RBAC payload for every scope-bearing API.\n\nEndpoints that take scopes accept these objects only (a bare string is a validation\nerror). ``effect`` is constrained here so every consumer rejects typos at the model\nlayer; whether ``deny`` is *semantically* legal stays per-endpoint (roles support\ndeny rules, service-account tokens are pure grants and reject it)."},"ScopeSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Scope id (always null here; kept for shape parity with the cloud RBAC API, which addresses scopes individually)"},"raw":{"type":"string","title":"Raw","description":"Original scope string, e.g. 'agents:*:run'"},"namespace":{"type":"string","title":"Namespace","description":"Resource namespace, e.g. 'agents'"},"sub_namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Namespace","description":"Specific resource id or wildcard '*'"},"permission":{"type":"string","title":"Permission","description":"Action, e.g. 'read' / 'run' / 'write'"},"value":{"type":"string","title":"Value","description":"'allow' or 'deny'","default":"allow"}},"type":"object","required":["raw","namespace","permission"],"title":"ScopeSchema","description":"Read shape for one scope \u2014 the parsed RBAC payload shared by every scope-bearing API.\n\nMirrors the cloud RBAC scope shape ({raw, namespace, sub_namespace, permission, value})\nso a frontend renders scopes from any AgentOS API with one integration."},"SendMessageRequest":{"description":"Represents a JSON-RPC request for the `message/send` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/send","default":"message/send","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendMessageRequest","type":"object"},"SendMessageSuccessResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id"},"jsonrpc":{"type":"string","const":"2.0","title":"Jsonrpc","default":"2.0"},"result":{"anyOf":[{"$ref":"#/components/schemas/Task"},{"$ref":"#/components/schemas/Message"}],"title":"Result"}},"type":"object","required":["result"],"title":"SendMessageSuccessResponse","description":"Represents a successful JSON-RPC response for the `message/send` method."},"SendStreamingMessageRequest":{"description":"Represents a JSON-RPC request for the `message/stream` method.","properties":{"id":{"anyOf":[{"type":"string"},{"type":"integer"}],"title":"Id"},"jsonrpc":{"const":"2.0","default":"2.0","title":"Jsonrpc","type":"string"},"method":{"const":"message/stream","default":"message/stream","title":"Method","type":"string"},"params":{"$ref":"#/components/schemas/A2ARequest_MessageSendParams"}},"required":["id","params"],"title":"SendStreamingMessageRequest","type":"object"},"ServiceAccountCreate":{"properties":{"name":{"type":"string","maxLength":63,"title":"Name","description":"Machine identity name (lowercase slug), e.g. 'claude-code' or 'github-actions'"},"scopes":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScopeItem"},"type":"array"},{"type":"null"}],"title":"Scopes","description":"Scopes granted to the token, as {scope, effect} objects (the shared RBAC write shape; token scopes are grants, so only effect='allow' is accepted). Defaults to run and read scopes: agents:run, teams:run, workflows:run, sessions:read"},"expires_in_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Expires In Days","description":"Days until the token expires (default: 90)","default":90},"never_expires":{"type":"boolean","title":"Never Expires","description":"Mint a non-expiring token. Must be set explicitly; overrides expires_in_days.","default":false},"allow_privileged_scopes":{"type":"boolean","title":"Allow Privileged Scopes","description":"Required to grant privileged scopes: any write or delete action, the admin scope, or any service_accounts scope. Privileged tokens must be deliberate, never accidental.","default":false}},"type":"object","required":["name"],"title":"ServiceAccountCreate"},"ServiceAccountCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"token":{"type":"string","title":"Token","description":"The plaintext token. Shown exactly once - store it securely now."}},"type":"object","required":["id","name","principal","token_prefix","created_at","token"],"title":"ServiceAccountCreateResponse","description":"Returned once, at creation. The token is never retrievable again."},"ServiceAccountResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"principal":{"type":"string","title":"Principal","description":"The user_id attached to runs made with this token, e.g. 'sa:claude-code'"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The user this account belongs to; None for workspace-level accounts. Distinct from created_by, which records who minted the token."},"token_prefix":{"type":"string","title":"Token Prefix","description":"First characters of the token, for display only"},"scopes":{"items":{"$ref":"#/components/schemas/ScopeSchema"},"type":"array","title":"Scopes","description":"Scopes granted to the token, in the shared RBAC read shape"},"created_at":{"type":"integer","title":"Created At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","name","principal","token_prefix","created_at"],"title":"ServiceAccountResponse","description":"Service account metadata. Never includes the token hash or plaintext."},"ServiceUnavailableResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"}},"type":"object","required":["detail"],"title":"ServiceUnavailableResponse","example":{"detail":"Feature not supported by the configured service"}},"SessionConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_SessionDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"SessionConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"SessionDomainConfig","description":"Configuration for the Session domain of the AgentOS"},"SessionSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier for the session"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable name for the session"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state data of the session"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp when session was created"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when session was last updated"},"session_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type","description":"Type of session: agent, team, or workflow"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID if this is an agent session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID if this is a team session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID if this is a workflow session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of session interactions"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["session_id","session_name"],"title":"SessionSchema"},"SessionType":{"type":"string","enum":["agent","team","workflow"],"title":"SessionType"},"SlackChallengeResponse":{"properties":{"challenge":{"type":"string","title":"Challenge","description":"Challenge string to echo back to Slack"}},"type":"object","required":["challenge"],"title":"SlackChallengeResponse"},"SlackEventResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"}},"type":"object","title":"SlackEventResponse"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"SourceFileSchema":{"properties":{"key":{"type":"string","title":"Key","description":"Full path/key of the file"},"name":{"type":"string","title":"Name","description":"Display name (filename)"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"File size in bytes"},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified","description":"ISO 8601 timestamp of last modification"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"MIME type of the file"}},"type":"object","required":["key","name"],"title":"SourceFileSchema","description":"Schema for a file in a content source."},"SourceFilesResponseSchema":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"ID of the content source"},"source_name":{"type":"string","title":"Source Name","description":"Name of the content source"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix","description":"Prefix filter that was applied"},"folders":{"items":{"$ref":"#/components/schemas/SourceFolderSchema"},"type":"array","title":"Folders","description":"Subfolders at this level"},"files":{"items":{"$ref":"#/components/schemas/SourceFileSchema"},"type":"array","title":"Files","description":"List of files at this level"},"meta":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination metadata"}},"type":"object","required":["source_id","source_name","meta"],"title":"SourceFilesResponseSchema","description":"Response schema for listing files in a content source."},"SourceFolderSchema":{"properties":{"prefix":{"type":"string","title":"Prefix","description":"Full prefix to use for navigating into this folder"},"name":{"type":"string","title":"Name","description":"Display name of the folder"},"is_empty":{"type":"boolean","title":"Is Empty","description":"Whether the folder contains any files","default":false}},"type":"object","required":["prefix","name"],"title":"SourceFolderSchema","description":"Schema for a folder in a content source."},"SystemMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"system","title":"Role","default":"system"},"content":{"type":"string","title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"SystemMessage","description":"A system message."},"Task":{"properties":{"artifacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Artifact"},"type":"array"},{"type":"null"}],"title":"Artifacts"},"contextId":{"type":"string","title":"Contextid"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"History"},"id":{"type":"string","title":"Id"},"kind":{"type":"string","const":"task","title":"Kind","default":"task"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"status":{"$ref":"#/components/schemas/TaskStatus"}},"type":"object","required":["contextId","id","status"],"title":"Task","description":"Represents a single, stateful operation or conversation between a client and an agent."},"TaskState":{"type":"string","enum":["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"],"title":"TaskState","description":"Defines the lifecycle states of a Task."},"TaskStatus":{"properties":{"message":{"anyOf":[{"$ref":"#/components/schemas/Message"},{"type":"null"}]},"state":{"$ref":"#/components/schemas/TaskState"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp","examples":["2023-10-27T10:00:00Z"]}},"type":"object","required":["state"],"title":"TaskStatus","description":"Represents the status of a task at a specific point in time."},"TeamResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"model":{"anyOf":[{"$ref":"#/components/schemas/ModelResponse"},{"type":"null"}]},"tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tools"},"sessions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sessions"},"knowledge":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Knowledge"},"memory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory"},"reasoning":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reasoning"},"default_tools":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Tools"},"system_message":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Message"},"response_settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Settings"},"introduction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introduction"},"streaming":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Streaming"},"members":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"$ref":"#/components/schemas/TeamResponse"}]},"type":"array"},{"type":"null"}],"title":"Members"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"is_factory":{"type":"boolean","title":"Is Factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema"},"is_component":{"type":"boolean","title":"Is Component","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},"type":"object","title":"TeamResponse"},"TeamRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the team run"},"parent_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Run Id","description":"Parent run ID if this is a nested run"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID that executed this run"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the team run"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the run"},"run_response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Response Format","description":"Format of the response (text/json)"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools","description":"Tools used in the run"},"messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Messages","description":"Message history for the run"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the run"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the run"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Session state at the end of the run"},"input_media":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Media","description":"Input media attachments"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the run"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the run"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the run"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the run"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"},"followups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Followups","description":"Followup suggestions generated after the run"},"forked_from_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Run Id","description":"If this team run was forked from another run, the source run's ID"},"forked_from_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Forked From Message Index","description":"If this team run was forked, the message index at which the source was truncated"},"forked_from_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forked From Session Id","description":"If this team run was created via session branch, the source session's ID"},"regenerated_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regenerated From","description":"If this team run was produced via regenerate=true, the source run's ID"},"last_checkpoint_at_message_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Checkpoint At Message Index","description":"Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)"}},"type":"object","required":["run_id"],"title":"TeamRunSchema"},"TeamSessionDetailSchema":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID used in this session"},"session_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Summary","description":"Summary of team interactions"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current state of the session"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Session metrics"},"team_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Team Data","description":"Team-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"chat_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat History","description":"Complete chat history"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens used in this session"}},"type":"object","required":["session_id","session_name"],"title":"TeamSessionDetailSchema"},"TeamSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the team"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the team"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the team"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Team execution mode (coordinate, route, broadcast, tasks)"},"model":{"anyOf":[{"$ref":"#/components/schemas/Model"},{"type":"null"}],"description":"Model used by the team leader"}},"type":"object","title":"TeamSummaryResponse"},"TelegramStatusResponse":{"properties":{"status":{"type":"string","title":"Status","default":"available"}},"type":"object","title":"TelegramStatusResponse"},"TelegramWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status"}},"type":"object","required":["status"],"title":"TelegramWebhookResponse"},"TextInputContent":{"properties":{"type":{"type":"string","const":"text","title":"Type","default":"text"},"text":{"type":"string","title":"Text"}},"additionalProperties":true,"type":"object","required":["text"],"title":"TextInputContent","description":"A text fragment in a multimodal user message."},"TextPart":{"properties":{"kind":{"type":"string","const":"text","title":"Kind","default":"text"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"TextPart","description":"Represents a text segment within a message or artifact."},"Tool":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{},{"type":"null"}],"title":"Parameters"}},"additionalProperties":true,"type":"object","required":["name","description"],"title":"Tool","description":"A tool definition."},"ToolCall":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/FunctionCall"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","function"],"title":"ToolCall","description":"A tool call, modelled after OpenAI tool calls."},"ToolMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"tool","title":"Role","default":"tool"},"content":{"type":"string","title":"Content"},"toolCallId":{"type":"string","title":"Toolcallid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content","toolCallId"],"title":"ToolMessage","description":"A tool result message."},"TraceDetail":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent/workflow"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the agent/workflow"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"},"tree":{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array","title":"Tree","description":"Hierarchical tree of spans (root nodes)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at","tree"],"title":"TraceDetail","description":"Detailed trace information with hierarchical span tree"},"TraceNode":{"properties":{"id":{"type":"string","title":"Id","description":"Span ID"},"name":{"type":"string","title":"Name","description":"Span name (e.g., 'agent.run', 'llm.invoke')"},"type":{"type":"string","title":"Type","description":"Span kind (AGENT, TEAM, WORKFLOW, LLM, TOOL)"},"duration":{"type":"string","title":"Duration","description":"Human-readable duration (e.g., '123ms', '1.5s')"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"End time (Pydantic auto-serializes to ISO 8601)"},"status":{"type":"string","title":"Status","description":"Status code (OK, ERROR)"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the span"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Output from the span"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if status is ERROR"},"spans":{"anyOf":[{"items":{"$ref":"#/components/schemas/TraceNode"},"type":"array"},{"type":"null"}],"title":"Spans","description":"Child spans in the trace hierarchy"},"step_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Type","description":"Workflow step type (Step, Condition, function, Agent, Team)"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional span attributes and data"},"extra_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Data","description":"Flexible field for custom attributes and additional data"}},"type":"object","required":["id","name","type","duration","start_time","end_time","status"],"title":"TraceNode","description":"Recursive node structure for rendering trace hierarchy in the frontend"},"TraceSearchGroupBy":{"type":"string","enum":["run","session"],"title":"TraceSearchGroupBy","description":"Grouping options for trace search results."},"TraceSearchRequest":{"properties":{"filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter","description":"FilterExpr DSL as JSON dict. Supports operators: EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH, AND, OR, NOT."},"group_by":{"$ref":"#/components/schemas/TraceSearchGroupBy","description":"Grouping mode: 'run' returns individual TraceDetail, 'session' returns aggregated TraceSessionStats.","default":"run"},"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Page number (1-indexed)","default":1},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"Number of traces per page (max 100)","default":20}},"type":"object","title":"TraceSearchRequest","description":"Request body for POST /traces/search with advanced filtering.\n\nThe filter field accepts a FilterExpr DSL dict supporting composable queries\nwith AND/OR/NOT logic and operators like EQ, NEQ, GT, GTE, LT, LTE, IN, CONTAINS, STARTSWITH.\n\nExample for run grouping (default):\n {\n \"filter\": {\n \"op\": \"AND\",\n \"conditions\": [\n {\"op\": \"EQ\", \"key\": \"status\", \"value\": \"OK\"},\n {\"op\": \"CONTAINS\", \"key\": \"user_id\", \"value\": \"admin\"}\n ]\n },\n \"group_by\": \"run\",\n \"page\": 1,\n \"limit\": 20\n }\n\nExample for session grouping:\n {\n \"filter\": {\"op\": \"EQ\", \"key\": \"agent_id\", \"value\": \"my-agent\"},\n \"group_by\": \"session\",\n \"page\": 1,\n \"limit\": 20\n }"},"TraceSessionStats":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Session identifier"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID(s) used in the session"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID associated with the session"},"total_traces":{"type":"integer","title":"Total Traces","description":"Total number of traces in this session"},"first_trace_at":{"type":"string","format":"date-time","title":"First Trace At","description":"Time of first trace (Pydantic auto-serializes to ISO 8601)"},"last_trace_at":{"type":"string","format":"date-time","title":"Last Trace At","description":"Time of last trace (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["session_id","total_traces","first_trace_at","last_trace_at"],"title":"TraceSessionStats","description":"Aggregated trace statistics grouped by session"},"TraceSummary":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"name":{"type":"string","title":"Name","description":"Trace name (usually root span name)"},"status":{"type":"string","title":"Status","description":"Overall status (OK, ERROR, UNSET)"},"duration":{"type":"string","title":"Duration","description":"Human-readable total duration"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Trace start time (Pydantic auto-serializes to ISO 8601)"},"end_time":{"type":"string","format":"date-time","title":"End Time","description":"Trace end time (Pydantic auto-serializes to ISO 8601)"},"total_spans":{"type":"integer","title":"Total Spans","description":"Total number of spans in this trace"},"error_count":{"type":"integer","title":"Error Count","description":"Number of spans with errors"},"input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input","description":"Input to the agent"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Associated run ID"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Associated session ID"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Associated user ID"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Associated agent ID"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Associated team ID"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Associated workflow ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when trace was created (Pydantic auto-serializes to ISO 8601)"}},"type":"object","required":["trace_id","name","status","duration","start_time","end_time","total_spans","error_count","created_at"],"title":"TraceSummary","description":"Summary information for trace list view"},"TracesConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"dbs":{"anyOf":[{"items":{"$ref":"#/components/schemas/DatabaseConfig_TracesDomainConfig_"},"type":"array"},{"type":"null"}],"title":"Dbs"}},"type":"object","title":"TracesConfig","description":"Configuration for the Traces domain of the AgentOS"},"TracesDomainConfig":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","title":"TracesDomainConfig","description":"Configuration for the Traces domain of the AgentOS"},"UnauthenticatedResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"UnauthenticatedResponse","example":{"detail":"Unauthenticated access","error_code":"UNAUTHENTICATED"}},"UpdateEvalRunRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"New name for the evaluation run"}},"type":"object","required":["name"],"title":"UpdateEvalRunRequest"},"UpdateSessionRequest":{"properties":{"session_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Name","description":"Updated session name"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Updated session state"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Updated metadata"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary","description":"Session summary"}},"type":"object","title":"UpdateSessionRequest"},"UserMemoryCreateSchema":{"properties":{"memory":{"type":"string","maxLength":5000,"minLength":1,"title":"Memory","description":"Memory content text"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags to categorize the memory"}},"type":"object","required":["memory"],"title":"UserMemoryCreateSchema","description":"Define the payload expected for creating a new user memory"},"UserMemorySchema":{"properties":{"memory_id":{"type":"string","title":"Memory Id","description":"Unique identifier for the memory"},"memory":{"type":"string","title":"Memory","description":"Memory content text"},"topics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Topics","description":"Topics or tags associated with the memory"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent ID associated with this memory"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"Team ID associated with this memory"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID who owns this memory"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Timestamp when memory was last updated"}},"type":"object","required":["memory_id","memory"],"title":"UserMemorySchema"},"UserMessage":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","const":"user","title":"Role","default":"user"},"content":{"anyOf":[{"type":"string"},{"items":{"oneOf":[{"$ref":"#/components/schemas/TextInputContent"},{"$ref":"#/components/schemas/ImageInputContent"},{"$ref":"#/components/schemas/AudioInputContent"},{"$ref":"#/components/schemas/VideoInputContent"},{"$ref":"#/components/schemas/DocumentInputContent"},{"$ref":"#/components/schemas/BinaryInputContent"}],"discriminator":{"propertyName":"type","mapping":{"audio":"#/components/schemas/AudioInputContent","binary":"#/components/schemas/BinaryInputContent","document":"#/components/schemas/DocumentInputContent","image":"#/components/schemas/ImageInputContent","text":"#/components/schemas/TextInputContent","video":"#/components/schemas/VideoInputContent"}}},"type":"array"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"encryptedValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryptedvalue"}},"additionalProperties":true,"type":"object","required":["id","content"],"title":"UserMessage","description":"A user message supporting text or multimodal content."},"UserStatsSchema":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"total_memories":{"type":"integer","minimum":0.0,"title":"Total Memories","description":"Total number of memories for this user"},"last_memory_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Memory Updated At","description":"Timestamp of the most recent memory update"}},"type":"object","required":["user_id","total_memories"],"title":"UserStatsSchema","description":"Schema for user memory statistics"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","description":"Error detail message"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"Error code for categorization"}},"type":"object","required":["detail"],"title":"ValidationErrorResponse","example":{"detail":"Validation error","error_code":"VALIDATION_ERROR"}},"VectorDbSchema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the vector database"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the vector database"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the vector database"},"search_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Search Types","description":"List of supported search types (vector, keyword, hybrid)"}},"type":"object","required":["id"],"title":"VectorDbSchema"},"VectorSearchRequestSchema":{"properties":{"query":{"type":"string","title":"Query","description":"The search query text"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database ID to search in"},"knowledge_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledge Id","description":"Knowledge base ID to search in"},"vector_db_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vector Db Ids","description":"List of vector database IDs to search in"},"search_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Type","description":"The type of search to perform (vector, keyword, hybrid)"},"max_results":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Max Results","description":"The maximum number of results to return"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Filters to apply to the search results"},"meta":{"anyOf":[{"$ref":"#/components/schemas/Meta"},{"type":"null"}],"description":"Pagination metadata. Limit and page number to return a subset of results."}},"type":"object","required":["query"],"title":"VectorSearchRequestSchema","description":"Schema for vector search request."},"VectorSearchResult":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the search result document"},"content":{"type":"string","title":"Content","description":"Content text of the document"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the document"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Metadata associated with the document"},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"Usage statistics (e.g., token counts)"},"reranking_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reranking Score","description":"Reranking score for relevance"},"content_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Id","description":"ID of the source content"},"content_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Origin","description":"Origin URL or source of the content"},"size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Size","description":"Size of the content in bytes"}},"type":"object","required":["id","content"],"title":"VectorSearchResult","description":"Schema for search result documents."},"VideoInputContent":{"properties":{"type":{"type":"string","const":"video","title":"Type","default":"video"},"source":{"oneOf":[{"$ref":"#/components/schemas/InputContentDataSource"},{"$ref":"#/components/schemas/InputContentUrlSource"}],"title":"Source","discriminator":{"propertyName":"type","mapping":{"data":"#/components/schemas/InputContentDataSource","url":"#/components/schemas/InputContentUrlSource"}}},"metadata":{"anyOf":[{},{"type":"null"}],"title":"Metadata"}},"additionalProperties":true,"type":"object","required":["source"],"title":"VideoInputContent","description":"A video input content fragment."},"WhatsAppWebhookResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Processing status","default":"ok"}},"type":"object","title":"WhatsAppWebhookResponse"},"WorkflowResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema","description":"Input schema for the workflow"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps","description":"List of workflow steps"},"agent":{"anyOf":[{"$ref":"#/components/schemas/AgentResponse"},{"type":"null"}],"description":"Agent configuration if used"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamResponse"},{"type":"null"}],"description":"Team configuration if used"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"workflow_agent":{"type":"boolean","title":"Workflow Agent","description":"Whether this workflow uses a WorkflowAgent","default":false},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowResponse"},"WorkflowRunSchema":{"properties":{"run_id":{"type":"string","title":"Run Id","description":"Unique identifier for the workflow run"},"run_input":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Input","description":"Input provided to the workflow"},"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events","description":"Events generated during the workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID that was executed"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the run"},"content":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Output content from the workflow"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"Type of content returned"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status of the workflow run"},"step_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Results","description":"Results from each workflow step"},"step_executor_runs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Executor Runs","description":"Executor runs for each step"},"step_requirements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Step Requirements","description":"HITL step requirements (resolved state for historical display)"},"pause_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Kind","description":"Kind of HITL pause: 'step' or 'executor'"},"paused_step_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Step Name","description":"Name of the step that caused the pause"},"paused_step_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Paused Step Index","description":"Index of the step that caused the pause"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"Performance and usage metrics"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Run creation timestamp"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content","description":"Reasoning content if reasoning was enabled"},"reasoning_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Steps","description":"List of reasoning steps"},"references":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"References","description":"References cited in the workflow"},"citations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Citations","description":"Citations from the model (e.g., from Gemini grounding/search)"},"reasoning_messages":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Reasoning Messages","description":"Reasoning process messages"},"images":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images included in the workflow"},"videos":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Videos","description":"Videos included in the workflow"},"audio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Audio","description":"Audio files included in the workflow"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"Files included in the workflow"},"response_audio":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Audio","description":"Audio response if generated"}},"type":"object","required":["run_id"],"title":"WorkflowRunSchema"},"WorkflowSessionDetailSchema":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID associated with the session"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"Workflow ID used in this session"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name","description":"Name of the workflow"},"session_id":{"type":"string","title":"Session Id","description":"Unique session identifier"},"session_name":{"type":"string","title":"Session Name","description":"Human-readable session name"},"session_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session Data","description":"Complete session data"},"session_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Session State","description":"Current workflow state"},"workflow_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Data","description":"Workflow-specific data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Session creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["session_id","session_name"],"title":"WorkflowSessionDetailSchema"},"WorkflowSummaryResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier for the workflow"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the workflow"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the workflow"},"db_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Id","description":"Database identifier"},"is_factory":{"type":"boolean","title":"Is Factory","description":"Whether this workflow is a factory","default":false},"factory_input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Factory Input Schema","description":"JSON Schema for factory_input"},"is_component":{"type":"boolean","title":"Is Component","description":"Whether this workflow was created via Builder","default":false},"current_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version","description":"Current published version number"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","description":"Stage of the loaded config (draft/published)"}},"type":"object","title":"WorkflowSummaryResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} diff --git a/reference-api/openapi.yaml b/reference-api/openapi.yaml index 578a924e1..c87642548 100644 --- a/reference-api/openapi.yaml +++ b/reference-api/openapi.yaml @@ -12124,7 +12124,6 @@ paths: description: Mint a service account token. The plaintext token is returned exactly once. operationId: create_service_account_service_accounts_post security: - - {} - HTTPBearer: [] requestBody: required: true diff --git a/scripts/README.md b/scripts/README.md index e0369b1cb..ddb856980 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -27,7 +27,7 @@ The rest need a venv with agno installed; run them with that venv's python: | Script | Venv needs | |--------|-----------| | `reference_drift.py` | `agno` importable. `agno[os,mcp]` plus provider SDKs widen runtime-introspection coverage; unimportable modules fall back to pure-AST extraction. | -| `make_openapi.py` | `agno[os,mcp,telegram,agui,a2a,slack]` and `pyyaml`. Missing interface extras exclude their routes and are reported in the diff output. | +| `make_openapi.py` | A clean Agno v2.7.4 checkout selected with `AGNO_REPO`, plus `agno[os,mcp,telegram,agui,a2a,slack]` dependencies and `pyyaml`. Missing interface extras exclude their routes and are reported in the diff output. | | `check_imports.py` | `agno` installed. Statements failing only on missing third-party deps still pass via the static source check. | ## Environment variables @@ -55,7 +55,7 @@ the release tag: reports. 5. `python scripts/reference_drift.py`, then work through `out/drift-report.json` against the `reference/**` tables. -6. At GA only: `python scripts/make_openapi.py`, review `out/openapi-diff.md`, +6. At GA only: `AGNO_REPO=/path/to/sealed-agno python scripts/make_openapi.py`, review `out/openapi-diff.md`, and copy `out/openapi.yaml` over `reference-api/openapi.yaml`. The generator preserves the curated Slack header parameters, form request body, and HITL descriptions because the Slack router reads those values imperatively. diff --git a/scripts/examples_sync/apply_oneoffs.py b/scripts/examples_sync/apply_oneoffs.py index a53dad27e..4db5d7616 100644 --- a/scripts/examples_sync/apply_oneoffs.py +++ b/scripts/examples_sync/apply_oneoffs.py @@ -1375,21 +1375,30 @@ def pin_agno_clone_commands() -> None: print(f" pinned {total} Agno clone commands in {len(matches)} files") +AGNO_COOKBOOK_LINK_RE = re.compile( + r"(https://github\.com/agno-agi/agno/(?:blob|tree)/)" + r"([^\s)\"'`]+?)(/cookbook/)" +) + + +def pin_agno_cookbook_link_revisions(text: str) -> tuple[str, int]: + """Return text with every cookbook link pinned and the replacement count.""" + count = 0 + + def replace(match: re.Match[str]) -> str: + nonlocal count + if match.group(2) == gen.EXPECTED_AGNO_TAG: + return match.group(0) + count += 1 + return f"{match.group(1)}{gen.EXPECTED_AGNO_TAG}{match.group(3)}" + + return AGNO_COOKBOOK_LINK_RE.sub(replace, text), count + + def pin_agno_cookbook_links() -> None: """Pin tracked MDX cookbook links to the sealed docs source tag.""" global would_apply - replacements = ( - ( - "https://github.com/agno-agi/agno/blob/main/cookbook/", - "https://github.com/agno-agi/agno/blob/" - f"{gen.EXPECTED_AGNO_TAG}/cookbook/", - ), - ( - "https://github.com/agno-agi/agno/tree/main/cookbook/", - "https://github.com/agno-agi/agno/tree/" - f"{gen.EXPECTED_AGNO_TAG}/cookbook/", - ), - ) + result = subprocess.run( ["git", "-C", str(ROOT), "ls-files", "*.mdx"], check=True, @@ -1400,13 +1409,11 @@ def pin_agno_cookbook_links() -> None: for relative_path in result.stdout.splitlines(): path = ROOT / relative_path text = path.read_text(encoding="utf-8") - count = sum(text.count(old) for old, _ in replacements) + pinned_text, count = pin_agno_cookbook_link_revisions(text) if count: matches.append((path, count)) if not CHECK: - for old, new in replacements: - text = text.replace(old, new) - path.write_text(text, encoding="utf-8") + path.write_text(pinned_text, encoding="utf-8") if not matches: print(f" Agno cookbook links already pinned to {gen.EXPECTED_AGNO_TAG}") return diff --git a/scripts/examples_sync/check_integrity.py b/scripts/examples_sync/check_integrity.py index df668ddd5..96bf68ece 100644 --- a/scripts/examples_sync/check_integrity.py +++ b/scripts/examples_sync/check_integrity.py @@ -3,7 +3,8 @@ Reads the plan from out/sync-plan.json (run plan.py first) and verifies: (a) frontmatter shape, fence balance, and source field on every generated page - (b) every cookbook path referenced under examples/ exists in the cookbook + (b) every cookbook path referenced under examples/ exists in the cookbook, + and every tracked cookbook link is pinned to the sealed source revision (c) every generated page carries the complete, byte-matching cookbook source (d) curated_source bindings carry the complete cookbook source (e) file inventory report (mdx count, stray non-mdx files, git status summary) @@ -125,19 +126,19 @@ def extract_first_code_block(text: str) -> str | None: problems += [f"(a) {s}: {w}" for s, w in a_bad] # --------------------------------------------------------------------------- -# (b) every cookbook path referenced anywhere under examples/ exists +# (b) every cookbook path referenced anywhere under examples/ exists, and +# every tracked GitHub cookbook link resolves at the sealed revision # --------------------------------------------------------------------------- ref_res = [ re.compile(r"^source: (cookbook/\S+)$", re.M), re.compile(r"^curated_source: (cookbook/\S+)$", re.M), re.compile(r"cd agno/(cookbook/[^\s`\"']+)"), - re.compile(r"github\.com/agno-agi/agno/(?:blob|tree)/[^/\s]+/(cookbook/[^)\s\"'`]+)"), ] gen_slugs = {t[0] for t in gen_tasks} b_bad_gen, b_bad_other = [], [] -wrong_cookbook_revisions = [] cookbook_link_re = re.compile( - r"github\.com/agno-agi/agno/(?:blob|tree)/([^/\s]+)/(cookbook/[^)\s\"'`]+)" + r"github\.com/agno-agi/agno/(?:blob|tree)/" + r"([^\s)\"'`]+?)/(cookbook/[^)\s\"'`]+)" ) all_mdx = sorted((DOCS_ROOT / "examples").rglob("*.mdx")) for p in all_mdx: @@ -150,17 +151,41 @@ def extract_first_code_block(text: str) -> str | None: target = COOKBOOK / tail if not (target.is_file() or target.is_dir()): (b_bad_gen if slug in gen_slugs else b_bad_other).append((slug, ref)) + +tracked_result = subprocess.run( + ["git", "-C", str(DOCS_ROOT), "ls-files", "*.mdx"], + check=True, + capture_output=True, + text=True, +) +tracked_mdx = [DOCS_ROOT / relative for relative in tracked_result.stdout.splitlines()] +wrong_cookbook_revisions = [] +dead_cookbook_links = [] +tracked_cookbook_links = 0 +for p in tracked_mdx: + slug = str(p.relative_to(DOCS_ROOT)).removesuffix(".mdx") + text = p.read_text(encoding="utf-8") for revision, ref in cookbook_link_re.findall(text): + tracked_cookbook_links += 1 + clean_ref = ref.split("#", 1)[0].split("?", 1)[0].rstrip(".,)") + target = AGNO_ROOT / clean_ref if revision != gen.EXPECTED_AGNO_TAG: - wrong_cookbook_revisions.append((slug, revision, ref.rstrip(".,)"))) -print(f"(b) cookbook refs: {len(all_mdx)} files scanned; " - f"{len(b_bad_gen)} dead refs in generated pages, {len(b_bad_other)} in preserved pages, " - f"{len(wrong_cookbook_revisions)} wrong revisions") + wrong_cookbook_revisions.append((slug, revision, clean_ref)) + if not (target.is_file() or target.is_dir()): + dead_cookbook_links.append((slug, clean_ref)) + +print(f"(b) cookbook refs: {len(all_mdx)} example files scanned; " + f"{len(b_bad_gen)} dead refs in generated pages, {len(b_bad_other)} in preserved pages") +print(f" tracked links: {tracked_cookbook_links} across {len(tracked_mdx)} MDX files; " + f"{len(dead_cookbook_links)} dead, {len(wrong_cookbook_revisions)} wrong revisions") for s, r in (b_bad_gen + b_bad_other)[:25]: print(" DEAD:", s, "->", r) +for s, r in dead_cookbook_links[:25]: + print(" DEAD LINK:", s, "->", r) for slug, revision, ref in wrong_cookbook_revisions[:25]: print(" WRONG REVISION:", slug, "->", revision, ref) problems += [f"(b) generated {s}: dead ref {r}" for s, r in b_bad_gen] +problems += [f"(b) {s}: dead cookbook link {r}" for s, r in dead_cookbook_links] problems += [ f"(b) {slug}: cookbook ref {ref} uses {revision}, expected {gen.EXPECTED_AGNO_TAG}" for slug, revision, ref in wrong_cookbook_revisions diff --git a/scripts/examples_sync/generate.py b/scripts/examples_sync/generate.py index 1d9f0d629..5427547c2 100644 --- a/scripts/examples_sync/generate.py +++ b/scripts/examples_sync/generate.py @@ -61,14 +61,18 @@ def git(*args: str) -> str: head = git("rev-parse", "HEAD") tag_head = git("rev-parse", f"refs/tags/{EXPECTED_AGNO_TAG}^{{commit}}") status = git("status", "--porcelain=v1") - assert head == EXPECTED_AGNO_SHA, ( - f"Agno source HEAD {head} does not match {EXPECTED_AGNO_TAG} " - f"({EXPECTED_AGNO_SHA})" - ) - assert tag_head == EXPECTED_AGNO_SHA, ( - f"Agno tag {EXPECTED_AGNO_TAG} resolves to {tag_head}, expected {EXPECTED_AGNO_SHA}" - ) - assert not status, f"Agno source checkout is dirty: {root}" + if head != EXPECTED_AGNO_SHA: + raise RuntimeError( + f"Agno source HEAD {head} does not match {EXPECTED_AGNO_TAG} " + f"({EXPECTED_AGNO_SHA})" + ) + if tag_head != EXPECTED_AGNO_SHA: + raise RuntimeError( + f"Agno tag {EXPECTED_AGNO_TAG} resolves to {tag_head}, " + f"expected {EXPECTED_AGNO_SHA}" + ) + if status: + raise RuntimeError(f"Agno source checkout is dirty: {root}") return EXPECTED_AGNO_TAG # --------------------------------------------------------------------------- diff --git a/scripts/make_openapi.py b/scripts/make_openapi.py index d99d9436c..7d06950ab 100644 --- a/scripts/make_openapi.py +++ b/scripts/make_openapi.py @@ -8,8 +8,9 @@ Never touches reference-api/ itself. It carries forward the reviewed Slack request metadata that FastAPI cannot derive from the router implementation. -Run with a venv where agno[os,mcp,telegram,agui,a2a,slack] is importable: - python scripts/make_openapi.py +Run with a venv where agno[os,mcp,telegram,agui,a2a,slack] dependencies are +importable and point AGNO_REPO at the clean, sealed source checkout: + AGNO_REPO=/path/to/agno-v2.7.4 python scripts/make_openapi.py Interfaces whose optional dependency is missing (e.g. a2a-sdk for A2A) are excluded from the app and reported in the generator notes. @@ -28,6 +29,15 @@ NEW_YAML = OUT_DIR / "openapi.yaml" DIFF_MD = OUT_DIR / "openapi-diff.md" +EXAMPLES_SYNC_DIR = REPO_ROOT / "scripts/examples_sync" +sys.path.insert(0, str(EXAMPLES_SYNC_DIR)) +import generate as sync_generate # noqa: E402 + +AGNO_ROOT = Path(os.environ.get("AGNO_REPO") or REPO_ROOT / "agno").resolve() +sync_generate.validate_agno_source(AGNO_ROOT) +AGNO_PACKAGE_ROOT = (AGNO_ROOT / "libs/agno").resolve() +sys.path.insert(0, str(AGNO_PACKAGE_ROOT)) + # Fake credentials: everything is constructed offline, nothing is called. os.environ.setdefault("OPENAI_API_KEY", "sk-fake-not-a-real-key") os.environ.setdefault("SLACK_TOKEN", "xoxb-fake-token") @@ -40,7 +50,7 @@ os.environ.setdefault("AGNO_TELEMETRY", "false") import yaml # noqa: E402 -from agno import __version__ as agno_version # noqa: E402 +import agno # noqa: E402 from agno.agent import Agent # noqa: E402 from agno.db.sqlite import SqliteDb # noqa: E402 from agno.knowledge.knowledge import Knowledge # noqa: E402 @@ -52,9 +62,18 @@ from agno.workflow.step import Step # noqa: E402 EXPECTED_AGNO_VERSION = "2.7.4" -assert agno_version == EXPECTED_AGNO_VERSION, ( - f"OpenAPI generator imported Agno {agno_version}, expected {EXPECTED_AGNO_VERSION}" -) +agno_version = agno.__version__ +if agno_version != EXPECTED_AGNO_VERSION: + raise RuntimeError( + f"OpenAPI generator imported Agno {agno_version}, " + f"expected {EXPECTED_AGNO_VERSION}" + ) +imported_agno_path = Path(agno.__file__).resolve() +if not imported_agno_path.is_relative_to(AGNO_PACKAGE_ROOT): + raise RuntimeError( + f"OpenAPI generator imported Agno from {imported_agno_path}, " + f"expected source under {AGNO_PACKAGE_ROOT}" + ) NOTES = [] # inclusion/exclusion notes surfaced at the end of the run @@ -1932,6 +1951,7 @@ def nullable_string_schema() -> dict: assert response_schema == {} response_schema.update(deepcopy(fork_response_schema)) + always_authenticated_operations = {("/service-accounts", "post")} normalized_bearer_operations: list[tuple[str, str]] = [] for path, path_item in spec["paths"].items(): for method in ("get", "post", "put", "patch", "delete", "head", "options", "trace"): @@ -1939,14 +1959,21 @@ def nullable_string_schema() -> dict: if not isinstance(operation, dict): continue security = operation.get("security") - if security == [{"HTTPBearer": []}]: + operation_key = (path, method) + if security == [{"HTTPBearer": []}] and operation_key not in always_authenticated_operations: # The dependency accepts anonymous requests when AgentOS runs # without a security key or JWT configuration. Authentication # becomes required when the deployment enables either mode. operation["security"] = [{}, {"HTTPBearer": []}] normalized_bearer_operations.append((path, method)) elif security: - assert security == [{}, {"HTTPBearer": []}], (path, method, security) + expected_security = ( + [{"HTTPBearer": []}] + if operation_key in always_authenticated_operations + else [{}, {"HTTPBearer": []}] + ) + if security != expected_security: + raise RuntimeError(f"Unexpected security for {method.upper()} {path}: {security}") if not operation.get("security"): continue if "401" not in operation["responses"]: @@ -1956,7 +1983,17 @@ def nullable_string_schema() -> dict: if (path, method) != ("/status", "get") and "403" not in operation["responses"]: add_response(operation, "403", "Forbidden", "ForbiddenResponse") sort_responses(operation) - assert len(normalized_bearer_operations) == 115, len(normalized_bearer_operations) + if len(normalized_bearer_operations) != 114: + raise RuntimeError( + f"Normalized {len(normalized_bearer_operations)} conditionally authenticated " + "operations; expected 114" + ) + service_account_create_security = spec["paths"]["/service-accounts"]["post"]["security"] + if service_account_create_security != [{"HTTPBearer": []}]: + raise RuntimeError( + "POST /service-accounts must require bearer authentication because open " + "instances reject anonymous credential minting" + ) spec["components"]["schemas"] = dict(sorted(schemas.items())) return spec diff --git a/tools/toolkits/local/file.mdx b/tools/toolkits/local/file.mdx index 10ae3806a..00c8f1751 100644 --- a/tools/toolkits/local/file.mdx +++ b/tools/toolkits/local/file.mdx @@ -15,6 +15,10 @@ agent = Agent(tools=[FileTools()]) agent.print_response("What is the most advanced LLM currently? Save the answer to a file.", markdown=True) ``` + +`FileTools()` defaults `base_dir` to the process working directory. Set `base_dir` to a narrow directory that contains only the files the agent needs to access. + + ## Toolkit Params | Parameter | Type | Default | Description | @@ -50,4 +54,4 @@ agent.print_response("What is the most advanced LLM currently? Save the answer t ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/file.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/file.py) diff --git a/tools/toolkits/others/composio.mdx b/tools/toolkits/others/composio.mdx index 769c8ce80..7939f0cbd 100644 --- a/tools/toolkits/others/composio.mdx +++ b/tools/toolkits/others/composio.mdx @@ -14,6 +14,12 @@ uv pip install composio-agno openai composio add github # Login into Github ``` +Set the `OPENAI_API_KEY` environment variable. + +```shell +export OPENAI_API_KEY=**** +``` + ## Example The following agent will use Github Tool from Composio Toolkit to star a repo. diff --git a/tools/toolkits/others/docling.mdx b/tools/toolkits/others/docling.mdx index 0fbafbc77..d67f86c2c 100644 --- a/tools/toolkits/others/docling.mdx +++ b/tools/toolkits/others/docling.mdx @@ -120,6 +120,6 @@ ocr_agent.print_response( ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/docling.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/docling.py) - [Cookbook Examples](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/91_tools/docling_tools) - [Docling Documentation](https://docling-project.github.io/docling/) diff --git a/tools/toolkits/others/eleven-labs.mdx b/tools/toolkits/others/eleven-labs.mdx index 4755046d4..a7de6ac82 100644 --- a/tools/toolkits/others/eleven-labs.mdx +++ b/tools/toolkits/others/eleven-labs.mdx @@ -13,10 +13,11 @@ You need to install the `elevenlabs` library and an API key which can be obtaine uv pip install elevenlabs google-genai ``` -Set the `ELEVEN_LABS_API_KEY` environment variable. +Set the `ELEVEN_LABS_API_KEY` and `GOOGLE_API_KEY` environment variables. ```bash export ELEVEN_LABS_API_KEY=**** +export GOOGLE_API_KEY=**** ``` ## Example From 78b715f5614cce96348c9a25446961636de62fb8 Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 12:50:05 +0100 Subject: [PATCH 39/47] docs: correct Agent Platform skill counts --- agent-platform/create-agent.mdx | 2 +- agent-platform/next-steps.mdx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/agent-platform/create-agent.mdx b/agent-platform/create-agent.mdx index 28a050832..3dfd2960f 100644 --- a/agent-platform/create-agent.mdx +++ b/agent-platform/create-agent.mdx @@ -5,7 +5,7 @@ description: "Use Claude Code to create a new agent." Next we're going to create a new agent using Claude Code. -Because you're running a unified platform (i.e. code, data and logs live in one place), coding agents can manage it end-to-end. The codebase ships five skills that cover the full agent development lifecycle. +Because you're running a unified platform (i.e. code, data and logs live in one place), coding agents can manage it end-to-end. The codebase ships six skills that cover the full agent development lifecycle. Let's try `/create-new-agent`. diff --git a/agent-platform/next-steps.mdx b/agent-platform/next-steps.mdx index 77f033e2e..935e15222 100644 --- a/agent-platform/next-steps.mdx +++ b/agent-platform/next-steps.mdx @@ -79,7 +79,7 @@ agent_os = AgentOS( ## Keep the repo coherent -As you ship more agents, configuration drifts, env vars rot, and new agents miss imports. The template ships a fifth skill for the recurring sweep: +As you ship more agents, configuration drifts, env vars rot, and new agents miss imports. The template ships a sixth skill for the recurring sweep: ```text /review-and-improve @@ -89,4 +89,4 @@ It auto-fixes mechanical drift (stale paths, missing `example.env` entries, agen ## You're done -You now have a platform that runs locally and on Railway with JWT auth, persists sessions, memory, and traces in Postgres, supports Postgres-backed knowledge, and includes five coding-agent skills for ongoing development and maintenance. +You now have a platform that runs locally and on Railway with JWT auth, persists sessions, memory, and traces in Postgres, supports Postgres-backed knowledge, and includes six coding-agent skills for ongoing development and maintenance. From f23d30dc36831fcef8db0145540d255bd65bb6bf Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 12:54:18 +0100 Subject: [PATCH 40/47] docs: pin Agno implementation links to v2.7.4 --- agent-os/interfaces/slack/setup.mdx | 2 +- features/interfaces.mdx | 2 +- other/database-migrations.mdx | 4 +- other/v2-migration.mdx | 2 +- reference/storage/migrations.mdx | 2 +- scripts/examples_sync/apply_oneoffs.py | 29 +++++++------- scripts/examples_sync/check_integrity.py | 39 ++++++++++--------- tools/mcp/mcp-toolbox.mdx | 2 +- tools/toolkits/agent-os/scheduler.mdx | 2 +- tools/toolkits/agent-os/studio.mdx | 2 +- tools/toolkits/database/csv.mdx | 2 +- tools/toolkits/database/duckdb.mdx | 2 +- tools/toolkits/database/google-bigquery.mdx | 2 +- tools/toolkits/database/neo4j.mdx | 2 +- tools/toolkits/database/pandas.mdx | 2 +- tools/toolkits/database/postgres.mdx | 2 +- tools/toolkits/database/redshift.mdx | 2 +- tools/toolkits/database/sql.mdx | 2 +- tools/toolkits/database/zep.mdx | 2 +- .../file-generation/file-generation.mdx | 2 +- tools/toolkits/local/calculator.mdx | 2 +- tools/toolkits/local/coding.mdx | 2 +- tools/toolkits/local/docker.mdx | 2 +- tools/toolkits/local/local-file-system.mdx | 2 +- tools/toolkits/local/python.mdx | 2 +- tools/toolkits/local/shell.mdx | 2 +- tools/toolkits/local/sleep.mdx | 2 +- tools/toolkits/local/workspace.mdx | 2 +- tools/toolkits/models/azure-openai.mdx | 2 +- tools/toolkits/models/gemini.mdx | 2 +- tools/toolkits/models/groq.mdx | 2 +- tools/toolkits/models/morph.mdx | 2 +- tools/toolkits/models/nebius.mdx | 2 +- tools/toolkits/models/openai.mdx | 2 +- tools/toolkits/others/airflow.mdx | 2 +- tools/toolkits/others/antigravity.mdx | 2 +- tools/toolkits/others/apify.mdx | 2 +- tools/toolkits/others/aws-lambda.mdx | 2 +- tools/toolkits/others/aws-ses.mdx | 2 +- tools/toolkits/others/bitbucket.mdx | 2 +- tools/toolkits/others/brandfetch.mdx | 2 +- tools/toolkits/others/calcom.mdx | 2 +- tools/toolkits/others/cartesia.mdx | 2 +- tools/toolkits/others/clickup.mdx | 2 +- tools/toolkits/others/confluence.mdx | 2 +- tools/toolkits/others/custom-api.mdx | 2 +- tools/toolkits/others/dalle.mdx | 2 +- tools/toolkits/others/daytona.mdx | 2 +- tools/toolkits/others/desi-vocal.mdx | 2 +- tools/toolkits/others/e2b.mdx | 2 +- tools/toolkits/others/eleven-labs.mdx | 2 +- tools/toolkits/others/evm.mdx | 2 +- tools/toolkits/others/fal.mdx | 2 +- tools/toolkits/others/financial-datasets.mdx | 2 +- tools/toolkits/others/giphy.mdx | 2 +- tools/toolkits/others/github.mdx | 2 +- tools/toolkits/others/gitlab.mdx | 2 +- tools/toolkits/others/google-drive.mdx | 2 +- tools/toolkits/others/google-maps.mdx | 2 +- tools/toolkits/others/google-sheets.mdx | 2 +- tools/toolkits/others/google-slides.mdx | 2 +- tools/toolkits/others/googlecalendar.mdx | 2 +- tools/toolkits/others/jira.mdx | 2 +- tools/toolkits/others/knowledge.mdx | 2 +- tools/toolkits/others/linear.mdx | 2 +- tools/toolkits/others/llms-txt.mdx | 2 +- tools/toolkits/others/lumalabs.mdx | 2 +- tools/toolkits/others/mem0.mdx | 2 +- tools/toolkits/others/mlx-transcribe.mdx | 2 +- tools/toolkits/others/models-labs.mdx | 2 +- tools/toolkits/others/moviepy.mdx | 2 +- tools/toolkits/others/nano-banana.mdx | 2 +- tools/toolkits/others/notion.mdx | 2 +- tools/toolkits/others/openbb.mdx | 2 +- tools/toolkits/others/opencv.mdx | 2 +- tools/toolkits/others/openweather.mdx | 2 +- tools/toolkits/others/reasoning.mdx | 2 +- tools/toolkits/others/replicate.mdx | 2 +- tools/toolkits/others/resend.mdx | 2 +- tools/toolkits/others/salesforce.mdx | 2 +- tools/toolkits/others/shopify.mdx | 2 +- tools/toolkits/others/spotify.mdx | 2 +- tools/toolkits/others/superserve.mdx | 2 +- tools/toolkits/others/todoist.mdx | 2 +- tools/toolkits/others/trello.mdx | 2 +- tools/toolkits/others/twelvelabs.mdx | 2 +- tools/toolkits/others/user-control-flow.mdx | 2 +- tools/toolkits/others/user-feedback.mdx | 2 +- tools/toolkits/others/visualization.mdx | 2 +- tools/toolkits/others/web-browser.mdx | 2 +- tools/toolkits/others/webtools.mdx | 2 +- tools/toolkits/others/yfinance.mdx | 2 +- tools/toolkits/others/youtube.mdx | 2 +- tools/toolkits/others/zendesk.mdx | 2 +- tools/toolkits/search/arxiv.mdx | 2 +- tools/toolkits/search/baidusearch.mdx | 2 +- tools/toolkits/search/bravesearch.mdx | 2 +- tools/toolkits/search/duckduckgo.mdx | 2 +- tools/toolkits/search/exa.mdx | 2 +- tools/toolkits/search/hackernews.mdx | 2 +- tools/toolkits/search/linkup.mdx | 2 +- tools/toolkits/search/perplexity.mdx | 2 +- tools/toolkits/search/pubmed.mdx | 2 +- tools/toolkits/search/scavio.mdx | 2 +- tools/toolkits/search/searchapi.mdx | 2 +- tools/toolkits/search/searxng.mdx | 2 +- tools/toolkits/search/seltz.mdx | 2 +- tools/toolkits/search/serpapi.mdx | 2 +- tools/toolkits/search/tavily.mdx | 2 +- tools/toolkits/search/valyu.mdx | 2 +- tools/toolkits/search/websearch.mdx | 2 +- tools/toolkits/search/wikipedia.mdx | 2 +- tools/toolkits/social/discord.mdx | 2 +- tools/toolkits/social/email.mdx | 2 +- tools/toolkits/social/gmail.mdx | 2 +- tools/toolkits/social/plivo.mdx | 2 +- tools/toolkits/social/reddit.mdx | 2 +- tools/toolkits/social/slack.mdx | 2 +- tools/toolkits/social/telegram.mdx | 2 +- tools/toolkits/social/twilio.mdx | 2 +- tools/toolkits/social/webex.mdx | 2 +- tools/toolkits/social/whatsapp.mdx | 2 +- tools/toolkits/social/x.mdx | 2 +- tools/toolkits/social/zoom.mdx | 2 +- tools/toolkits/web-scrape/agentql.mdx | 2 +- tools/toolkits/web-scrape/brightdata.mdx | 2 +- tools/toolkits/web-scrape/browserbase.mdx | 2 +- tools/toolkits/web-scrape/crawl4ai.mdx | 2 +- tools/toolkits/web-scrape/firecrawl.mdx | 2 +- tools/toolkits/web-scrape/jina-reader.mdx | 2 +- tools/toolkits/web-scrape/newspaper.mdx | 2 +- tools/toolkits/web-scrape/newspaper4k.mdx | 2 +- tools/toolkits/web-scrape/oxylabs.mdx | 2 +- tools/toolkits/web-scrape/scrapegraph.mdx | 4 +- tools/toolkits/web-scrape/spider.mdx | 2 +- tools/toolkits/web-scrape/trafilatura.mdx | 2 +- tools/toolkits/web-scrape/website.mdx | 2 +- 137 files changed, 172 insertions(+), 170 deletions(-) diff --git a/agent-os/interfaces/slack/setup.mdx b/agent-os/interfaces/slack/setup.mdx index c99f9420d..5630b92b7 100644 --- a/agent-os/interfaces/slack/setup.mdx +++ b/agent-os/interfaces/slack/setup.mdx @@ -50,7 +50,7 @@ Create a Slack app for your agent and configure the permissions and events it ne The manifest is the quickest setup path. It pre-configures the scopes, events, and settings needed for DMs, @mentions, and [Human-in-the-Loop](/hitl/overview) interactions. -1. Download [manifest.json](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/os/interfaces/slack/manifest.json) and replace `https://YOUR-URL` with your ngrok URL +1. Download [manifest.json](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/os/interfaces/slack/manifest.json) and replace `https://YOUR-URL` with your ngrok URL 2. Go to [api.slack.com/apps](https://api.slack.com/apps) → **Create New App** → **From a manifest** 3. Select your workspace, choose **JSON**, and paste the manifest contents 4. Click **Next**, review the summary, then click **Create** diff --git a/features/interfaces.mdx b/features/interfaces.mdx index dbad95f5d..e89ae2bac 100644 --- a/features/interfaces.mdx +++ b/features/interfaces.mdx @@ -123,7 +123,7 @@ The [Scout](/deploy/templates/scout/overview), [Dash](/deploy/templates/dash/ove ## Custom interfaces and one-off webhooks -The interface API is small. Subclass `BaseInterface`, return your routes from `get_router`, and dispatch incoming messages to the agent. See [BaseInterface](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/os/interfaces/base.py) for the full surface. +The interface API is small. Subclass `BaseInterface`, return your routes from `get_router`, and dispatch incoming messages to the agent. See [BaseInterface](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/os/interfaces/base.py) for the full surface. For one-off webhooks (a CRM event, a GitHub action, a custom dashboard), don't write an interface. Add a route directly to the FastAPI app: diff --git a/other/database-migrations.mdx b/other/database-migrations.mdx index ffb9a7365..b14800a38 100644 --- a/other/database-migrations.mdx +++ b/other/database-migrations.mdx @@ -42,7 +42,7 @@ if __name__ == "__main__": asyncio.run(run_migrations()) ``` -You can find the supporting scripts to handle your migration needs in the [`libs/agno/migrations`](https://github.com/agno-agi/agno/tree/main/libs/agno/migrations) directory. +You can find the supporting scripts to handle your migration needs in the [`libs/agno/migrations`](https://github.com/agno-agi/agno/tree/v2.7.4/libs/agno/migrations) directory. ## About the MigrationManager @@ -154,6 +154,6 @@ if __name__ == "__main__": If you started using Agno during its v1 and want to move to v2, we have a migration script that can help you update your database tables. -You can find the script in the [`libs/agno/migrations/v1_to_v2/migrate_to_v2.py`](https://github.com/agno-agi/agno/blob/main/libs/agno/migrations/v1_to_v2/migrate_to_v2.py) file. +You can find the script in the [`libs/agno/migrations/v1_to_v2/migrate_to_v2.py`](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/migrations/v1_to_v2/migrate_to_v2.py) file. You can find more information about migrating from v1 to v2 in the [Migrating to Agno v2 guide](/other/v2-migration). diff --git a/other/v2-migration.mdx b/other/v2-migration.mdx index b6c5acc8c..80f67e7f4 100644 --- a/other/v2-migration.mdx +++ b/other/v2-migration.mdx @@ -29,7 +29,7 @@ The `os` and `agui` extras and `openai` cover the examples in this guide. If you used our `Storage` or `Memory` functionalities to store Agent sessions and memories in your database, you can start by migrating your tables. -Use our migration script: [`libs/agno/migrations/v1_to_v2/migrate_to_v2.py`](https://github.com/agno-agi/agno/blob/main/libs/agno/migrations/v1_to_v2/migrate_to_v2.py) +Use our migration script: [`libs/agno/migrations/v1_to_v2/migrate_to_v2.py`](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/migrations/v1_to_v2/migrate_to_v2.py) The script supports PostgreSQL, MySQL, SQLite, and MongoDB. Update the database connection settings, the batch size (useful if you are migrating large tables) in the script and run it. diff --git a/reference/storage/migrations.mdx b/reference/storage/migrations.mdx index fba9bc562..6b8512811 100644 --- a/reference/storage/migrations.mdx +++ b/reference/storage/migrations.mdx @@ -170,5 +170,5 @@ The following table types can be migrated: ## See Also - [Database Migrations Guide](/other/database-migrations) -- [Migration Scripts](https://github.com/agno-agi/agno/tree/main/libs/agno/agno/db/migrations) +- [Migration Scripts](https://github.com/agno-agi/agno/tree/v2.7.4/libs/agno/agno/db/migrations) diff --git a/scripts/examples_sync/apply_oneoffs.py b/scripts/examples_sync/apply_oneoffs.py index 4db5d7616..e7380d6cd 100644 --- a/scripts/examples_sync/apply_oneoffs.py +++ b/scripts/examples_sync/apply_oneoffs.py @@ -1375,14 +1375,14 @@ def pin_agno_clone_commands() -> None: print(f" pinned {total} Agno clone commands in {len(matches)} files") -AGNO_COOKBOOK_LINK_RE = re.compile( +AGNO_RELEASE_LINK_RE = re.compile( r"(https://github\.com/agno-agi/agno/(?:blob|tree)/)" - r"([^\s)\"'`]+?)(/cookbook/)" + r"([^\s)\"'`]+?)(/(?:cookbook|libs/agno)/)" ) -def pin_agno_cookbook_link_revisions(text: str) -> tuple[str, int]: - """Return text with every cookbook link pinned and the replacement count.""" +def pin_agno_release_link_revisions(text: str) -> tuple[str, int]: + """Return text with release-owned source links pinned and the replacement count.""" count = 0 def replace(match: re.Match[str]) -> str: @@ -1392,11 +1392,11 @@ def replace(match: re.Match[str]) -> str: count += 1 return f"{match.group(1)}{gen.EXPECTED_AGNO_TAG}{match.group(3)}" - return AGNO_COOKBOOK_LINK_RE.sub(replace, text), count + return AGNO_RELEASE_LINK_RE.sub(replace, text), count -def pin_agno_cookbook_links() -> None: - """Pin tracked MDX cookbook links to the sealed docs source tag.""" +def pin_agno_release_links() -> None: + """Pin tracked MDX cookbook and implementation links to the sealed tag.""" global would_apply result = subprocess.run( @@ -1409,20 +1409,20 @@ def pin_agno_cookbook_links() -> None: for relative_path in result.stdout.splitlines(): path = ROOT / relative_path text = path.read_text(encoding="utf-8") - pinned_text, count = pin_agno_cookbook_link_revisions(text) + pinned_text, count = pin_agno_release_link_revisions(text) if count: matches.append((path, count)) if not CHECK: path.write_text(pinned_text, encoding="utf-8") if not matches: - print(f" Agno cookbook links already pinned to {gen.EXPECTED_AGNO_TAG}") + print(f" Agno release links already pinned to {gen.EXPECTED_AGNO_TAG}") return total = sum(count for _, count in matches) if CHECK: would_apply += len(matches) - print(f" would pin {total} Agno cookbook links in {len(matches)} files") + print(f" would pin {total} Agno release links in {len(matches)} files") else: - print(f" pinned {total} Agno cookbook links in {len(matches)} files") + print(f" pinned {total} Agno release links in {len(matches)} files") def docs_path(slug: str) -> Path: @@ -4474,9 +4474,10 @@ async def handle_stripe(event: dict): # corresponding entries in the hand-maintained complete index. repair_toolkit_index() - # Keep every tracked cookbook link on the same sealed source as its code - # fence and clone command. Run this after fixes that add resource links. - pin_agno_cookbook_links() + # Keep every tracked cookbook and implementation link on the same sealed + # source as its code fence and clone command. Run this after fixes that add + # resource links. + pin_agno_release_links() # 13. Preserve the reviewed byte-level terminal-newline convention after # deterministic reconstruction. diff --git a/scripts/examples_sync/check_integrity.py b/scripts/examples_sync/check_integrity.py index 96bf68ece..b359f083a 100644 --- a/scripts/examples_sync/check_integrity.py +++ b/scripts/examples_sync/check_integrity.py @@ -4,7 +4,8 @@ Reads the plan from out/sync-plan.json (run plan.py first) and verifies: (a) frontmatter shape, fence balance, and source field on every generated page (b) every cookbook path referenced under examples/ exists in the cookbook, - and every tracked cookbook link is pinned to the sealed source revision + and every tracked cookbook or implementation link is pinned to the + sealed source revision (c) every generated page carries the complete, byte-matching cookbook source (d) curated_source bindings carry the complete cookbook source (e) file inventory report (mdx count, stray non-mdx files, git status summary) @@ -127,7 +128,7 @@ def extract_first_code_block(text: str) -> str | None: # --------------------------------------------------------------------------- # (b) every cookbook path referenced anywhere under examples/ exists, and -# every tracked GitHub cookbook link resolves at the sealed revision +# every tracked GitHub release-source link resolves at the sealed revision # --------------------------------------------------------------------------- ref_res = [ re.compile(r"^source: (cookbook/\S+)$", re.M), @@ -136,9 +137,9 @@ def extract_first_code_block(text: str) -> str | None: ] gen_slugs = {t[0] for t in gen_tasks} b_bad_gen, b_bad_other = [], [] -cookbook_link_re = re.compile( +release_link_re = re.compile( r"github\.com/agno-agi/agno/(?:blob|tree)/" - r"([^\s)\"'`]+?)/(cookbook/[^)\s\"'`]+)" + r"([^\s)\"'`]+?)/((?:cookbook|libs/agno)/[^)\s\"'`]+)" ) all_mdx = sorted((DOCS_ROOT / "examples").rglob("*.mdx")) for p in all_mdx: @@ -159,36 +160,36 @@ def extract_first_code_block(text: str) -> str | None: text=True, ) tracked_mdx = [DOCS_ROOT / relative for relative in tracked_result.stdout.splitlines()] -wrong_cookbook_revisions = [] -dead_cookbook_links = [] -tracked_cookbook_links = 0 +wrong_release_revisions = [] +dead_release_links = [] +tracked_release_links = 0 for p in tracked_mdx: slug = str(p.relative_to(DOCS_ROOT)).removesuffix(".mdx") text = p.read_text(encoding="utf-8") - for revision, ref in cookbook_link_re.findall(text): - tracked_cookbook_links += 1 + for revision, ref in release_link_re.findall(text): + tracked_release_links += 1 clean_ref = ref.split("#", 1)[0].split("?", 1)[0].rstrip(".,)") target = AGNO_ROOT / clean_ref if revision != gen.EXPECTED_AGNO_TAG: - wrong_cookbook_revisions.append((slug, revision, clean_ref)) + wrong_release_revisions.append((slug, revision, clean_ref)) if not (target.is_file() or target.is_dir()): - dead_cookbook_links.append((slug, clean_ref)) + dead_release_links.append((slug, clean_ref)) print(f"(b) cookbook refs: {len(all_mdx)} example files scanned; " f"{len(b_bad_gen)} dead refs in generated pages, {len(b_bad_other)} in preserved pages") -print(f" tracked links: {tracked_cookbook_links} across {len(tracked_mdx)} MDX files; " - f"{len(dead_cookbook_links)} dead, {len(wrong_cookbook_revisions)} wrong revisions") +print(f" tracked release links: {tracked_release_links} across {len(tracked_mdx)} MDX files; " + f"{len(dead_release_links)} dead, {len(wrong_release_revisions)} wrong revisions") for s, r in (b_bad_gen + b_bad_other)[:25]: print(" DEAD:", s, "->", r) -for s, r in dead_cookbook_links[:25]: - print(" DEAD LINK:", s, "->", r) -for slug, revision, ref in wrong_cookbook_revisions[:25]: +for s, r in dead_release_links[:25]: + print(" DEAD RELEASE LINK:", s, "->", r) +for slug, revision, ref in wrong_release_revisions[:25]: print(" WRONG REVISION:", slug, "->", revision, ref) problems += [f"(b) generated {s}: dead ref {r}" for s, r in b_bad_gen] -problems += [f"(b) {s}: dead cookbook link {r}" for s, r in dead_cookbook_links] +problems += [f"(b) {s}: dead release link {r}" for s, r in dead_release_links] problems += [ - f"(b) {slug}: cookbook ref {ref} uses {revision}, expected {gen.EXPECTED_AGNO_TAG}" - for slug, revision, ref in wrong_cookbook_revisions + f"(b) {slug}: release ref {ref} uses {revision}, expected {gen.EXPECTED_AGNO_TAG}" + for slug, revision, ref in wrong_release_revisions ] # --------------------------------------------------------------------------- diff --git a/tools/mcp/mcp-toolbox.mdx b/tools/mcp/mcp-toolbox.mdx index f2d18797f..78b56cdda 100644 --- a/tools/mcp/mcp-toolbox.mdx +++ b/tools/mcp/mcp-toolbox.mdx @@ -245,7 +245,7 @@ You can use `include_tools` or `exclude_tools` to modify the list of tools the a ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/mcp_toolbox.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/mcp_toolbox.py) - [Cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/91_tools/mcp/mcp_toolbox_demo) See the [MCP Toolbox for Databases documentation](https://googleapis.github.io/genai-toolbox/getting-started/introduction/). diff --git a/tools/toolkits/agent-os/scheduler.mdx b/tools/toolkits/agent-os/scheduler.mdx index 951a8b484..dd5b46416 100644 --- a/tools/toolkits/agent-os/scheduler.mdx +++ b/tools/toolkits/agent-os/scheduler.mdx @@ -78,5 +78,5 @@ All functions have sync and async variants. - [Scheduler examples](/examples/agent-os/scheduler/overview) - [Scheduler overview](/agent-os/scheduler/overview) -- [Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/scheduler.py) +- [Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/scheduler.py) diff --git a/tools/toolkits/agent-os/studio.mdx b/tools/toolkits/agent-os/studio.mdx index 3c4ebf65d..0cba8f1b3 100644 --- a/tools/toolkits/agent-os/studio.mdx +++ b/tools/toolkits/agent-os/studio.mdx @@ -136,6 +136,6 @@ With `versions=True`, the toolkit also exposes `list_versions`, `get_version`, ` - [StudioTools with HITL](/agent-os/studio/tools) - [AgentOS Studio](/agent-os/studio/introduction) -- [Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/studio.py) +- [Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/studio.py) - [StudioTools cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/05_agent_os/studio_tool) - [Components examples](/examples/components/overview) \ No newline at end of file diff --git a/tools/toolkits/database/csv.mdx b/tools/toolkits/database/csv.mdx index ee7741496..ced36a5b5 100644 --- a/tools/toolkits/database/csv.mdx +++ b/tools/toolkits/database/csv.mdx @@ -77,4 +77,4 @@ agent.print_response( ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/csv_toolkit.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/csv_toolkit.py) diff --git a/tools/toolkits/database/duckdb.mdx b/tools/toolkits/database/duckdb.mdx index 4c4428759..84911e511 100644 --- a/tools/toolkits/database/duckdb.mdx +++ b/tools/toolkits/database/duckdb.mdx @@ -65,4 +65,4 @@ You can use `include_tools` or `exclude_tools` to modify the list of tools the a ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/duckdb.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/duckdb.py) diff --git a/tools/toolkits/database/google-bigquery.mdx b/tools/toolkits/database/google-bigquery.mdx index 21b1584b3..9c01e3e78 100644 --- a/tools/toolkits/database/google-bigquery.mdx +++ b/tools/toolkits/database/google-bigquery.mdx @@ -66,6 +66,6 @@ agent.print_response("List all tables in the dataset and describe the sales tabl ## Developer Resources -- [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/google/bigquery.py) +- [Tools Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/google/bigquery.py) - [BigQuery Documentation](https://cloud.google.com/bigquery/docs) - [BigQuery SQL Reference](https://cloud.google.com/bigquery/docs/reference/standard-sql/) diff --git a/tools/toolkits/database/neo4j.mdx b/tools/toolkits/database/neo4j.mdx index eeb0716f8..abc9e029a 100644 --- a/tools/toolkits/database/neo4j.mdx +++ b/tools/toolkits/database/neo4j.mdx @@ -88,6 +88,6 @@ python neo4j_tools.py ## Developer Resources -- [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/neo4j.py) +- [Tools Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/neo4j.py) - [Neo4j Documentation](https://neo4j.com/docs/) - [Cypher Query Language](https://neo4j.com/docs/cypher-manual/current/) diff --git a/tools/toolkits/database/pandas.mdx b/tools/toolkits/database/pandas.mdx index 85c06cfa1..f833102a6 100644 --- a/tools/toolkits/database/pandas.mdx +++ b/tools/toolkits/database/pandas.mdx @@ -62,4 +62,4 @@ Please perform these tasks: ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/pandas.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/pandas.py) diff --git a/tools/toolkits/database/postgres.mdx b/tools/toolkits/database/postgres.mdx index e07216a83..cb9caa3c2 100644 --- a/tools/toolkits/database/postgres.mdx +++ b/tools/toolkits/database/postgres.mdx @@ -82,4 +82,4 @@ You can use `include_tools` or `exclude_tools` to modify the list of tools the a ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/postgres.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/postgres.py) diff --git a/tools/toolkits/database/redshift.mdx b/tools/toolkits/database/redshift.mdx index 443083dc9..a60896ae1 100644 --- a/tools/toolkits/database/redshift.mdx +++ b/tools/toolkits/database/redshift.mdx @@ -78,5 +78,5 @@ You can use `include_tools` or `exclude_tools` to modify the list of tools the a ## Developer Resources -- [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/redshift.py) +- [Tools Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/redshift.py) - [Example](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/redshift_tools.py) diff --git a/tools/toolkits/database/sql.mdx b/tools/toolkits/database/sql.mdx index 1b742e367..9788d4738 100644 --- a/tools/toolkits/database/sql.mdx +++ b/tools/toolkits/database/sql.mdx @@ -90,4 +90,4 @@ agent.print_response("List the tables in the database. Tell me about contents of ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/sql.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/sql.py) diff --git a/tools/toolkits/database/zep.mdx b/tools/toolkits/database/zep.mdx index 718198a2b..0233efce6 100644 --- a/tools/toolkits/database/zep.mdx +++ b/tools/toolkits/database/zep.mdx @@ -85,5 +85,5 @@ The `ZepAsyncTools` class provides asynchronous versions of the toolkit function ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/zep.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/zep.py) diff --git a/tools/toolkits/file-generation/file-generation.mdx b/tools/toolkits/file-generation/file-generation.mdx index b74ec5fd1..da54eba46 100644 --- a/tools/toolkits/file-generation/file-generation.mdx +++ b/tools/toolkits/file-generation/file-generation.mdx @@ -98,4 +98,4 @@ Generated files are always available on the `RunOutput` object. Set `output_dire ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/file_generation.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/file_generation.py) diff --git a/tools/toolkits/local/calculator.mdx b/tools/toolkits/local/calculator.mdx index 705d0ea9d..7dd0b1de8 100644 --- a/tools/toolkits/local/calculator.mdx +++ b/tools/toolkits/local/calculator.mdx @@ -38,4 +38,4 @@ You can use `include_tools` or `exclude_tools` to modify the list of tools the a ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/calculator.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/calculator.py) diff --git a/tools/toolkits/local/coding.mdx b/tools/toolkits/local/coding.mdx index 2e32f2172..f08ba0fdd 100644 --- a/tools/toolkits/local/coding.mdx +++ b/tools/toolkits/local/coding.mdx @@ -64,7 +64,7 @@ agent.print_response( ## Developer Resources -- [Tools source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/coding.py) +- [Tools source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/coding.py) - [Basic usage](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/coding_tools/01_basic_usage.py) - [All tools](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/coding_tools/02_all_tools.py) - [Workspace toolkit](/tools/toolkits/local/workspace) for a confirmation-gated alternative diff --git a/tools/toolkits/local/docker.mdx b/tools/toolkits/local/docker.mdx index 7ff327566..10021395a 100644 --- a/tools/toolkits/local/docker.mdx +++ b/tools/toolkits/local/docker.mdx @@ -124,4 +124,4 @@ DockerTools registers all functions below by default. Limit them with the base t ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/docker.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/docker.py) diff --git a/tools/toolkits/local/local-file-system.mdx b/tools/toolkits/local/local-file-system.mdx index 9fcc1e427..20118bea9 100644 --- a/tools/toolkits/local/local-file-system.mdx +++ b/tools/toolkits/local/local-file-system.mdx @@ -44,6 +44,6 @@ agent.print_response("Save this meeting summary to a file: 'Discussed Q4 goals a ## Developer Resources -- [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/local_file_system.py) +- [Tools Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/local_file_system.py) - [Python pathlib Documentation](https://docs.python.org/3/library/pathlib.html) - [File I/O Best Practices](https://docs.python.org/3/tutorial/inputoutput.html) diff --git a/tools/toolkits/local/python.mdx b/tools/toolkits/local/python.mdx index 2d9d665e2..5671e0635 100644 --- a/tools/toolkits/local/python.mdx +++ b/tools/toolkits/local/python.mdx @@ -46,4 +46,4 @@ You can use `include_tools` or `exclude_tools` to modify the list of tools the a ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/python.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/python.py) diff --git a/tools/toolkits/local/shell.mdx b/tools/toolkits/local/shell.mdx index 17952d762..608e58675 100644 --- a/tools/toolkits/local/shell.mdx +++ b/tools/toolkits/local/shell.mdx @@ -41,4 +41,4 @@ agent.print_response("Show me the contents of the current directory", markdown=T ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/shell.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/shell.py) diff --git a/tools/toolkits/local/sleep.mdx b/tools/toolkits/local/sleep.mdx index a7dd5cc64..d03a8165b 100644 --- a/tools/toolkits/local/sleep.mdx +++ b/tools/toolkits/local/sleep.mdx @@ -36,4 +36,4 @@ agent.print_response("Sleep for 5 seconds") ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/sleep.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/sleep.py) diff --git a/tools/toolkits/local/workspace.mdx b/tools/toolkits/local/workspace.mdx index 9617e243f..4a04d3476 100644 --- a/tools/toolkits/local/workspace.mdx +++ b/tools/toolkits/local/workspace.mdx @@ -108,7 +108,7 @@ See [Workspace with confirmation](https://github.com/agno-agi/agno/blob/v2.7.4/c ## Developer Resources -- [Tools source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/workspace.py) +- [Tools source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/workspace.py) - [Basic usage](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/workspace_tools/basic_usage.py) - [With confirmation](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/workspace_tools/workspace_tools_with_confirmation.py) - [WorkspaceContextProvider](/context-providers/providers/workspace) wraps this toolkit read-only as a context provider diff --git a/tools/toolkits/models/azure-openai.mdx b/tools/toolkits/models/azure-openai.mdx index 3c8d9bd0b..fb1f784c5 100644 --- a/tools/toolkits/models/azure-openai.mdx +++ b/tools/toolkits/models/azure-openai.mdx @@ -52,5 +52,5 @@ agent.print_response("Generate an image of a sunset over mountains", stream=True ## Developer Resources -- [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/models/azure_openai.py) +- [Tools Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/models/azure_openai.py) - [Azure image-generation migration guidance](https://learn.microsoft.com/en-us/azure/foundry/openai/how-to/dall-e) diff --git a/tools/toolkits/models/gemini.mdx b/tools/toolkits/models/gemini.mdx index 6b51339ab..b7e55d738 100644 --- a/tools/toolkits/models/gemini.mdx +++ b/tools/toolkits/models/gemini.mdx @@ -110,6 +110,6 @@ if response.videos: ## Developer Resources -- [Toolkit](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/models/gemini.py) +- [Toolkit](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/models/gemini.py) - [Image Generation Guide](https://ai.google.dev/gemini-api/docs/image-generation) - [Video Generation Guide](https://ai.google.dev/gemini-api/docs/video) diff --git a/tools/toolkits/models/groq.mdx b/tools/toolkits/models/groq.mdx index 669baa37d..d0e42af78 100644 --- a/tools/toolkits/models/groq.mdx +++ b/tools/toolkits/models/groq.mdx @@ -132,7 +132,7 @@ The `GroqTools` toolkit provides the following functions: ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/models/groq.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/models/groq.py) - [Transcription Example](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/groq/transcription_agent.py) - [Translation Example](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/90_models/groq/translation_agent.py) diff --git a/tools/toolkits/models/morph.mdx b/tools/toolkits/models/morph.mdx index dfd736209..079871d0f 100644 --- a/tools/toolkits/models/morph.mdx +++ b/tools/toolkits/models/morph.mdx @@ -56,6 +56,6 @@ agent.print_response("Refactor this Python function to be more efficient and add ## Developer Resources -- [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/models/morph.py) +- [Tools Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/models/morph.py) - [Morph API Documentation](https://docs.morphllm.com/) - [Fast Apply API Reference](https://api.morphllm.com/docs) diff --git a/tools/toolkits/models/nebius.mdx b/tools/toolkits/models/nebius.mdx index 2df07e6d1..413da05f3 100644 --- a/tools/toolkits/models/nebius.mdx +++ b/tools/toolkits/models/nebius.mdx @@ -59,6 +59,6 @@ agent.print_response("Generate an image of a futuristic city with flying cars at ## Developer Resources -- [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/models/nebius.py) +- [Tools Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/models/nebius.py) - [Nebius Token Factory Documentation](https://docs.tokenfactory.nebius.com/) - [Nebius API Reference](https://api.tokenfactory.nebius.com/docs) diff --git a/tools/toolkits/models/openai.mdx b/tools/toolkits/models/openai.mdx index 2c88edad7..1510bca83 100644 --- a/tools/toolkits/models/openai.mdx +++ b/tools/toolkits/models/openai.mdx @@ -167,7 +167,7 @@ The `OpenAITools` toolkit provides the following functions: ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/openai.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/openai.py) - [OpenAI Transcription Guide](https://platform.openai.com/docs/guides/speech-to-text) - [OpenAI Image Generation Guide](https://platform.openai.com/docs/guides/image-generation?image-generation-model=gpt-image-2) - [OpenAI Text-to-Speech Guide](https://platform.openai.com/docs/guides/text-to-speech) diff --git a/tools/toolkits/others/airflow.mdx b/tools/toolkits/others/airflow.mdx index 45b4d7ae6..4c0d724d9 100644 --- a/tools/toolkits/others/airflow.mdx +++ b/tools/toolkits/others/airflow.mdx @@ -78,4 +78,4 @@ agent.print_response("Read the contents of 'example_dag.py'") ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/airflow.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/airflow.py) diff --git a/tools/toolkits/others/antigravity.mdx b/tools/toolkits/others/antigravity.mdx index 5d3a8f52f..8f8959e8a 100644 --- a/tools/toolkits/others/antigravity.mdx +++ b/tools/toolkits/others/antigravity.mdx @@ -118,6 +118,6 @@ AntigravityTools(agent_directory="./my-agent") ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/antigravity.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/antigravity.py) - [Cookbook examples](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/91_tools/antigravity) - [Antigravity as an external agent](/agent-os/multi-framework/antigravity) diff --git a/tools/toolkits/others/apify.mdx b/tools/toolkits/others/apify.mdx index 29a426485..c1614ae3a 100644 --- a/tools/toolkits/others/apify.mdx +++ b/tools/toolkits/others/apify.mdx @@ -145,7 +145,7 @@ agent.print_response( ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/apify.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/apify.py) ## Resources diff --git a/tools/toolkits/others/aws-lambda.mdx b/tools/toolkits/others/aws-lambda.mdx index cbb9f98e0..baaa4f70a 100644 --- a/tools/toolkits/others/aws-lambda.mdx +++ b/tools/toolkits/others/aws-lambda.mdx @@ -75,4 +75,4 @@ agent.print_response("Invoke the 'hello-world' Lambda function with an empty pay ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/aws_lambda.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/aws_lambda.py) diff --git a/tools/toolkits/others/aws-ses.mdx b/tools/toolkits/others/aws-ses.mdx index 71b80d6d3..c8f426aa0 100644 --- a/tools/toolkits/others/aws-ses.mdx +++ b/tools/toolkits/others/aws-ses.mdx @@ -88,5 +88,5 @@ agent.print_response( ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/aws_ses.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/aws_ses.py) - [Amazon SES Documentation](https://docs.aws.amazon.com/ses/latest/dg/) diff --git a/tools/toolkits/others/bitbucket.mdx b/tools/toolkits/others/bitbucket.mdx index 85142c29c..85fae86ac 100644 --- a/tools/toolkits/others/bitbucket.mdx +++ b/tools/toolkits/others/bitbucket.mdx @@ -70,5 +70,5 @@ You can use `include_tools` or `exclude_tools` to modify the list of tools the a ## Developer Resources -- [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/bitbucket.py) +- [Tools Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/bitbucket.py) - [Bitbucket API Documentation](https://developer.atlassian.com/bitbucket/api/2/reference/) diff --git a/tools/toolkits/others/brandfetch.mdx b/tools/toolkits/others/brandfetch.mdx index 8c87f024e..d681b8cd3 100644 --- a/tools/toolkits/others/brandfetch.mdx +++ b/tools/toolkits/others/brandfetch.mdx @@ -58,5 +58,5 @@ Async versions of both functions run automatically when you call `agent.arun()` ## Developer Resources -- [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/brandfetch.py) +- [Tools Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/brandfetch.py) - [Brandfetch API Documentation](https://docs.brandfetch.com/) diff --git a/tools/toolkits/others/calcom.mdx b/tools/toolkits/others/calcom.mdx index a72fa879c..9d4edb3b8 100644 --- a/tools/toolkits/others/calcom.mdx +++ b/tools/toolkits/others/calcom.mdx @@ -73,4 +73,4 @@ agent.print_response("What are my bookings for tomorrow?") ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/calcom.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/calcom.py) diff --git a/tools/toolkits/others/cartesia.mdx b/tools/toolkits/others/cartesia.mdx index edc7b2692..1dea39a88 100644 --- a/tools/toolkits/others/cartesia.mdx +++ b/tools/toolkits/others/cartesia.mdx @@ -109,4 +109,4 @@ if response.audio: ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/cartesia.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/cartesia.py) diff --git a/tools/toolkits/others/clickup.mdx b/tools/toolkits/others/clickup.mdx index 35bf52c58..3f09f04b9 100644 --- a/tools/toolkits/others/clickup.mdx +++ b/tools/toolkits/others/clickup.mdx @@ -61,5 +61,5 @@ You can use `include_tools` or `exclude_tools` to modify the list of tools the a ## Developer Resources -- [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/clickup.py) +- [Tools Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/clickup.py) - [ClickUp API Documentation](https://clickup.com/api/) diff --git a/tools/toolkits/others/confluence.mdx b/tools/toolkits/others/confluence.mdx index 1ad6e413f..2f1190052 100644 --- a/tools/toolkits/others/confluence.mdx +++ b/tools/toolkits/others/confluence.mdx @@ -63,4 +63,4 @@ You can use `include_tools` or `exclude_tools` to modify the list of tools the a ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/confluence.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/confluence.py) diff --git a/tools/toolkits/others/custom-api.mdx b/tools/toolkits/others/custom-api.mdx index b1ef03e43..7268cae8c 100644 --- a/tools/toolkits/others/custom-api.mdx +++ b/tools/toolkits/others/custom-api.mdx @@ -53,4 +53,4 @@ agent.print_response( ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/api.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/api.py) diff --git a/tools/toolkits/others/dalle.mdx b/tools/toolkits/others/dalle.mdx index 1d54d7a35..d90af3505 100644 --- a/tools/toolkits/others/dalle.mdx +++ b/tools/toolkits/others/dalle.mdx @@ -85,4 +85,4 @@ if response.images and response.images[0].url: ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/dalle.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/dalle.py) diff --git a/tools/toolkits/others/daytona.mdx b/tools/toolkits/others/daytona.mdx index 399db0660..8d23b79ba 100644 --- a/tools/toolkits/others/daytona.mdx +++ b/tools/toolkits/others/daytona.mdx @@ -93,5 +93,5 @@ You can use `include_tools` or `exclude_tools` to modify the list of tools the a ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/daytona.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/daytona.py) - [Daytona Documentation](https://www.daytona.io/docs/) diff --git a/tools/toolkits/others/desi-vocal.mdx b/tools/toolkits/others/desi-vocal.mdx index cb974becb..dd34a87da 100644 --- a/tools/toolkits/others/desi-vocal.mdx +++ b/tools/toolkits/others/desi-vocal.mdx @@ -63,5 +63,5 @@ agent.print_response("Convert this text to speech: 'Namaste, welcome to our serv ## Developer Resources -- [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/desi_vocal.py) +- [Tools Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/desi_vocal.py) - [DesiVocal sunset notice](https://www.desivocal.com/pricing) diff --git a/tools/toolkits/others/e2b.mdx b/tools/toolkits/others/e2b.mdx index 6e856044d..2a79c1a34 100644 --- a/tools/toolkits/others/e2b.mdx +++ b/tools/toolkits/others/e2b.mdx @@ -126,4 +126,4 @@ You can use `include_tools` or `exclude_tools` to modify the list of tools the a ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/e2b.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/e2b.py) diff --git a/tools/toolkits/others/eleven-labs.mdx b/tools/toolkits/others/eleven-labs.mdx index a7de6ac82..380847fe5 100644 --- a/tools/toolkits/others/eleven-labs.mdx +++ b/tools/toolkits/others/eleven-labs.mdx @@ -80,4 +80,4 @@ if response.audio: ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/eleven_labs.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/eleven_labs.py) diff --git a/tools/toolkits/others/evm.mdx b/tools/toolkits/others/evm.mdx index 89195fad4..190f1c132 100644 --- a/tools/toolkits/others/evm.mdx +++ b/tools/toolkits/others/evm.mdx @@ -54,6 +54,6 @@ agent.print_response("Send 0.01 ETH to 0x742d35Cc6634C0532925a3b8D4034DfA8e5D5C4 ## Developer Resources -- [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/evm.py) +- [Tools Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/evm.py) - [Web3.py Documentation](https://web3py.readthedocs.io/) - [Ethereum Documentation](https://ethereum.org/developers/) diff --git a/tools/toolkits/others/fal.mdx b/tools/toolkits/others/fal.mdx index 0e19a4804..998394af4 100644 --- a/tools/toolkits/others/fal.mdx +++ b/tools/toolkits/others/fal.mdx @@ -68,4 +68,4 @@ fal_agent.print_response("Generate video of balloon in the ocean") ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/fal.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/fal.py) diff --git a/tools/toolkits/others/financial-datasets.mdx b/tools/toolkits/others/financial-datasets.mdx index 6fae5f887..cc81f366e 100644 --- a/tools/toolkits/others/financial-datasets.mdx +++ b/tools/toolkits/others/financial-datasets.mdx @@ -82,4 +82,4 @@ The Financial Datasets API applies rate limits based on your subscription tier. ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/financial_datasets.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/financial_datasets.py) diff --git a/tools/toolkits/others/giphy.mdx b/tools/toolkits/others/giphy.mdx index eb1b6b3ce..2ced1a74f 100644 --- a/tools/toolkits/others/giphy.mdx +++ b/tools/toolkits/others/giphy.mdx @@ -53,4 +53,4 @@ gif_agent.print_response("I want a gif to send to a friend for their birthday.") ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/giphy.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/giphy.py) diff --git a/tools/toolkits/others/github.mdx b/tools/toolkits/others/github.mdx index d6c1991aa..d717a3e0c 100644 --- a/tools/toolkits/others/github.mdx +++ b/tools/toolkits/others/github.mdx @@ -102,4 +102,4 @@ You can use `include_tools` or `exclude_tools` to modify the list of tools the a ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/github.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/github.py) diff --git a/tools/toolkits/others/gitlab.mdx b/tools/toolkits/others/gitlab.mdx index f521120c6..da0fe2587 100644 --- a/tools/toolkits/others/gitlab.mdx +++ b/tools/toolkits/others/gitlab.mdx @@ -79,4 +79,4 @@ Use the `enable_*` constructor toggles to register only selected GitLab tools. Y ## Developer Resources -- [GitlabTools source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/gitlab.py) +- [GitlabTools source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/gitlab.py) diff --git a/tools/toolkits/others/google-drive.mdx b/tools/toolkits/others/google-drive.mdx index a715858f1..74952a44a 100644 --- a/tools/toolkits/others/google-drive.mdx +++ b/tools/toolkits/others/google-drive.mdx @@ -117,7 +117,7 @@ All functions have sync and async variants. ## Developer Resources -- [Tools source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/google/drive.py) +- [Tools source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/google/drive.py) - [Drive tools example](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/drive/basic.py) - [File search example](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/google/drive/file_search.py) - [Google Drive context provider](/context-providers/providers/drive) diff --git a/tools/toolkits/others/google-maps.mdx b/tools/toolkits/others/google-maps.mdx index e0a18a28d..3f352c081 100644 --- a/tools/toolkits/others/google-maps.mdx +++ b/tools/toolkits/others/google-maps.mdx @@ -76,4 +76,4 @@ Google Maps APIs have usage limits and quotas that vary by service and billing p ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/google/maps.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/google/maps.py) diff --git a/tools/toolkits/others/google-sheets.mdx b/tools/toolkits/others/google-sheets.mdx index 8a0c8583a..78dd19f26 100644 --- a/tools/toolkits/others/google-sheets.mdx +++ b/tools/toolkits/others/google-sheets.mdx @@ -96,4 +96,4 @@ agent.print_response("Please tell me about the contents of the spreadsheet") ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/google/sheets.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/google/sheets.py) diff --git a/tools/toolkits/others/google-slides.mdx b/tools/toolkits/others/google-slides.mdx index 4883fc501..09b1f8439 100644 --- a/tools/toolkits/others/google-slides.mdx +++ b/tools/toolkits/others/google-slides.mdx @@ -208,5 +208,5 @@ The `add_slide` function supports the following Google Slides predefined layouts ## Developer Resources -- [Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/google/slides.py) +- [Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/google/slides.py) - [Cookbook](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/91_tools/google/slides) diff --git a/tools/toolkits/others/googlecalendar.mdx b/tools/toolkits/others/googlecalendar.mdx index 067280806..eb0b18f1b 100644 --- a/tools/toolkits/others/googlecalendar.mdx +++ b/tools/toolkits/others/googlecalendar.mdx @@ -213,5 +213,5 @@ The agno cookbook includes several Google Calendar examples demonstrating differ ## Developer Resources -- [Source Code](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/google/calendar.py) +- [Source Code](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/google/calendar.py) - [Cookbook Examples](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/91_tools/google) diff --git a/tools/toolkits/others/jira.mdx b/tools/toolkits/others/jira.mdx index ef23a86e6..e9b2d9ef8 100644 --- a/tools/toolkits/others/jira.mdx +++ b/tools/toolkits/others/jira.mdx @@ -58,4 +58,4 @@ agent.print_response("Find all issues in project PROJ", markdown=True) ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/jira.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/jira.py) diff --git a/tools/toolkits/others/knowledge.mdx b/tools/toolkits/others/knowledge.mdx index cd325a776..f25620536 100644 --- a/tools/toolkits/others/knowledge.mdx +++ b/tools/toolkits/others/knowledge.mdx @@ -74,6 +74,6 @@ agent.print_response("How do I build a team of agents in Agno?", stream=True) ## Developer Resources -- [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/knowledge.py) +- [Tools Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/knowledge.py) - [Knowledge overview](/knowledge/overview) - [Vector stores](/knowledge/vector-stores/index) diff --git a/tools/toolkits/others/linear.mdx b/tools/toolkits/others/linear.mdx index fba0037fe..f15445c35 100644 --- a/tools/toolkits/others/linear.mdx +++ b/tools/toolkits/others/linear.mdx @@ -57,4 +57,4 @@ You can use `include_tools` or `exclude_tools` to modify the list of tools the a ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/linear.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/linear.py) diff --git a/tools/toolkits/others/llms-txt.mdx b/tools/toolkits/others/llms-txt.mdx index 0b6b4b8ac..b018c1bcc 100644 --- a/tools/toolkits/others/llms-txt.mdx +++ b/tools/toolkits/others/llms-txt.mdx @@ -86,6 +86,6 @@ All functions have sync and async variants. ## Developer Resources -- [Tools source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/llms_txt.py) +- [Tools source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/llms_txt.py) - [Agentic mode example](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/llms_txt_tools.py) - [Knowledge mode example](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/llms_txt_tools_knowledge.py) diff --git a/tools/toolkits/others/lumalabs.mdx b/tools/toolkits/others/lumalabs.mdx index 7d949fcb4..4ffd88eb7 100644 --- a/tools/toolkits/others/lumalabs.mdx +++ b/tools/toolkits/others/lumalabs.mdx @@ -71,4 +71,4 @@ luma_agent.run("Generate a video of a car in a sky") ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/lumalab.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/lumalab.py) diff --git a/tools/toolkits/others/mem0.mdx b/tools/toolkits/others/mem0.mdx index 317c75ad2..f723dddae 100644 --- a/tools/toolkits/others/mem0.mdx +++ b/tools/toolkits/others/mem0.mdx @@ -75,6 +75,6 @@ agent.print_response("Remember that I prefer vegetarian meals and I'm allergic t ## Developer Resources -- [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/mem0.py) +- [Tools Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/mem0.py) - [Mem0 Documentation](https://docs.mem0.ai/) - [Mem0 Platform](https://mem0.ai/) diff --git a/tools/toolkits/others/mlx-transcribe.mdx b/tools/toolkits/others/mlx-transcribe.mdx index bce8feebd..6b1adc8cb 100644 --- a/tools/toolkits/others/mlx-transcribe.mdx +++ b/tools/toolkits/others/mlx-transcribe.mdx @@ -91,4 +91,4 @@ agent.print_response("Summarize the reid hoffman ted talk, split into sections", ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/mlx_transcribe.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/mlx_transcribe.py) diff --git a/tools/toolkits/others/models-labs.mdx b/tools/toolkits/others/models-labs.mdx index a1d518628..98204927c 100644 --- a/tools/toolkits/others/models-labs.mdx +++ b/tools/toolkits/others/models-labs.mdx @@ -84,4 +84,4 @@ if response.audio and response.audio[0].url: ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/models_labs.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/models_labs.py) diff --git a/tools/toolkits/others/moviepy.mdx b/tools/toolkits/others/moviepy.mdx index 90ebc3af1..9aec6a3d0 100644 --- a/tools/toolkits/others/moviepy.mdx +++ b/tools/toolkits/others/moviepy.mdx @@ -86,4 +86,4 @@ These parameters are passed to the `MoviePyVideoTools` constructor: ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/moviepy_video.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/moviepy_video.py) diff --git a/tools/toolkits/others/nano-banana.mdx b/tools/toolkits/others/nano-banana.mdx index e947bf64b..e260cc94d 100644 --- a/tools/toolkits/others/nano-banana.mdx +++ b/tools/toolkits/others/nano-banana.mdx @@ -90,4 +90,4 @@ if response.images and response.images[0].content: ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/nano_banana.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/nano_banana.py) diff --git a/tools/toolkits/others/notion.mdx b/tools/toolkits/others/notion.mdx index b9f12a5fb..55b82e214 100644 --- a/tools/toolkits/others/notion.mdx +++ b/tools/toolkits/others/notion.mdx @@ -199,4 +199,4 @@ These parameters are passed to the `NotionTools` constructor: ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/notion.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/notion.py) diff --git a/tools/toolkits/others/openbb.mdx b/tools/toolkits/others/openbb.mdx index 9a49931b5..ee3797a5e 100644 --- a/tools/toolkits/others/openbb.mdx +++ b/tools/toolkits/others/openbb.mdx @@ -74,4 +74,4 @@ agent.print_response( ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/openbb.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/openbb.py) diff --git a/tools/toolkits/others/opencv.mdx b/tools/toolkits/others/opencv.mdx index 30678e457..31e5f5006 100644 --- a/tools/toolkits/others/opencv.mdx +++ b/tools/toolkits/others/opencv.mdx @@ -56,5 +56,5 @@ agent.print_response("Take a photo using the webcam", stream=True) ## Developer Resources -- [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/opencv.py) +- [Tools Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/opencv.py) - [OpenCV Documentation](https://docs.opencv.org/) diff --git a/tools/toolkits/others/openweather.mdx b/tools/toolkits/others/openweather.mdx index 01d88703e..db4abc00c 100644 --- a/tools/toolkits/others/openweather.mdx +++ b/tools/toolkits/others/openweather.mdx @@ -63,4 +63,4 @@ agent.print_response("What's the current weather in Tokyo?", markdown=True) ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/openweather.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/openweather.py) diff --git a/tools/toolkits/others/reasoning.mdx b/tools/toolkits/others/reasoning.mdx index 7362fc808..a7c14fb89 100644 --- a/tools/toolkits/others/reasoning.mdx +++ b/tools/toolkits/others/reasoning.mdx @@ -47,5 +47,5 @@ agent.print_response("Analyze the pros and cons of remote work for software deve ## Developer Resources -- [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/reasoning.py) +- [Tools Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/reasoning.py) - [Reasoning overview](/reasoning/overview) diff --git a/tools/toolkits/others/replicate.mdx b/tools/toolkits/others/replicate.mdx index 82fcd9ece..fe6533837 100644 --- a/tools/toolkits/others/replicate.mdx +++ b/tools/toolkits/others/replicate.mdx @@ -64,4 +64,4 @@ image_agent.print_response("Generate an image of a horse in the dessert.") ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/replicate.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/replicate.py) diff --git a/tools/toolkits/others/resend.mdx b/tools/toolkits/others/resend.mdx index 1f70ab7bf..714038abc 100644 --- a/tools/toolkits/others/resend.mdx +++ b/tools/toolkits/others/resend.mdx @@ -49,4 +49,4 @@ agent.print_response(f"Send an email to {to_email} greeting them with hello worl ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/resend.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/resend.py) diff --git a/tools/toolkits/others/salesforce.mdx b/tools/toolkits/others/salesforce.mdx index 08e1e8b2c..fe88fd783 100644 --- a/tools/toolkits/others/salesforce.mdx +++ b/tools/toolkits/others/salesforce.mdx @@ -115,5 +115,5 @@ You can use `include_tools` or `exclude_tools` to modify the list of tools the a ## Developer Resources -- [Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/salesforce.py) +- [Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/salesforce.py) - [Cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/salesforce_tools.py) diff --git a/tools/toolkits/others/shopify.mdx b/tools/toolkits/others/shopify.mdx index 98c060104..096ebe02b 100644 --- a/tools/toolkits/others/shopify.mdx +++ b/tools/toolkits/others/shopify.mdx @@ -92,5 +92,5 @@ sales_agent.print_response( ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/shopify.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/shopify.py) diff --git a/tools/toolkits/others/spotify.mdx b/tools/toolkits/others/spotify.mdx index 70adb329e..0db7cdcb6 100644 --- a/tools/toolkits/others/spotify.mdx +++ b/tools/toolkits/others/spotify.mdx @@ -92,4 +92,4 @@ print(response.content) ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/spotify.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/spotify.py) diff --git a/tools/toolkits/others/superserve.mdx b/tools/toolkits/others/superserve.mdx index c58804dc5..01470e6ce 100644 --- a/tools/toolkits/others/superserve.mdx +++ b/tools/toolkits/others/superserve.mdx @@ -133,6 +133,6 @@ Each function has an async variant with the same tool name, used automatically w ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/superserve.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/superserve.py) - [Superserve cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/superserve_tools.py) - [Superserve Documentation](https://superserve.ai) diff --git a/tools/toolkits/others/todoist.mdx b/tools/toolkits/others/todoist.mdx index c17bb8166..bf623d732 100644 --- a/tools/toolkits/others/todoist.mdx +++ b/tools/toolkits/others/todoist.mdx @@ -82,4 +82,4 @@ You can use `include_tools` or `exclude_tools` to modify the list of tools the a ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/todoist.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/todoist.py) diff --git a/tools/toolkits/others/trello.mdx b/tools/toolkits/others/trello.mdx index f70d96814..1e5c6b6af 100644 --- a/tools/toolkits/others/trello.mdx +++ b/tools/toolkits/others/trello.mdx @@ -83,4 +83,4 @@ You can use `include_tools` or `exclude_tools` to modify the list of tools the a ## Developer Resources -- [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/trello.py) +- [Tools Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/trello.py) diff --git a/tools/toolkits/others/twelvelabs.mdx b/tools/toolkits/others/twelvelabs.mdx index dab29ce6e..1a6918ae8 100644 --- a/tools/toolkits/others/twelvelabs.mdx +++ b/tools/toolkits/others/twelvelabs.mdx @@ -76,5 +76,5 @@ embedding_agent.print_response( ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/twelvelabs.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/twelvelabs.py) - [Cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/twelvelabs_tools.py) diff --git a/tools/toolkits/others/user-control-flow.mdx b/tools/toolkits/others/user-control-flow.mdx index c8ce886cf..05635d845 100644 --- a/tools/toolkits/others/user-control-flow.mdx +++ b/tools/toolkits/others/user-control-flow.mdx @@ -57,6 +57,6 @@ The run pauses each time the agent calls `get_user_input`. Fill the requested fi ## Developer Resources -- [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/user_control_flow.py) +- [Tools Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/user_control_flow.py) - [Human-in-the-Loop overview](/hitl/overview) - [Dynamic User Input](/hitl/dynamic-user-input) diff --git a/tools/toolkits/others/user-feedback.mdx b/tools/toolkits/others/user-feedback.mdx index 50f3f5a02..e900032ca 100644 --- a/tools/toolkits/others/user-feedback.mdx +++ b/tools/toolkits/others/user-feedback.mdx @@ -78,6 +78,6 @@ Each `AskUserOption` has a `label` (1-5 words) and an optional `description`. ## Developer Resources -- [Tools source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/user_feedback.py) +- [Tools source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/user_feedback.py) - [Cookbook example](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/02_agents/10_human_in_the_loop/user_feedback.py) - [Human-in-the-Loop overview](/hitl/overview) diff --git a/tools/toolkits/others/visualization.mdx b/tools/toolkits/others/visualization.mdx index 61ca7cb99..91680c3c7 100644 --- a/tools/toolkits/others/visualization.mdx +++ b/tools/toolkits/others/visualization.mdx @@ -56,5 +56,5 @@ agent.print_response("Create a bar chart showing sales by quarter: Q1=100, Q2=15 ## Developer Resources -- [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/visualization.py) +- [Tools Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/visualization.py) - [Matplotlib Documentation](https://matplotlib.org/stable/contents.html) diff --git a/tools/toolkits/others/web-browser.mdx b/tools/toolkits/others/web-browser.mdx index c452c07a0..4494e045a 100644 --- a/tools/toolkits/others/web-browser.mdx +++ b/tools/toolkits/others/web-browser.mdx @@ -46,5 +46,5 @@ agent.print_response("Find an article explaining MCP and open it in the web brow ## Developer Resources -- [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/webbrowser.py) +- [Tools Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/webbrowser.py) - [Cookbook Example](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/webbrowser_tools.py) diff --git a/tools/toolkits/others/webtools.mdx b/tools/toolkits/others/webtools.mdx index b6a363dc4..89fb1610d 100644 --- a/tools/toolkits/others/webtools.mdx +++ b/tools/toolkits/others/webtools.mdx @@ -40,6 +40,6 @@ agent.print_response("Expand this shortened URL: https://tinyurl.com/57bmajz4", ## Developer Resources -- [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/webtools.py) +- [Tools Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/webtools.py) - [HTTPX Documentation](https://www.python-httpx.org/) - [URL Standards](https://tools.ietf.org/html/rfc3986) diff --git a/tools/toolkits/others/yfinance.mdx b/tools/toolkits/others/yfinance.mdx index c4aa5f053..997cec7a4 100644 --- a/tools/toolkits/others/yfinance.mdx +++ b/tools/toolkits/others/yfinance.mdx @@ -65,4 +65,4 @@ You can use `include_tools` or `exclude_tools` to modify the list of tools the a ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/yfinance.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/yfinance.py) diff --git a/tools/toolkits/others/youtube.mdx b/tools/toolkits/others/youtube.mdx index 869b0f701..7aa50ff82 100644 --- a/tools/toolkits/others/youtube.mdx +++ b/tools/toolkits/others/youtube.mdx @@ -51,4 +51,4 @@ agent.print_response("Summarize this video https://www.youtube.com/watch?v=Iv9de ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/youtube.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/youtube.py) diff --git a/tools/toolkits/others/zendesk.mdx b/tools/toolkits/others/zendesk.mdx index b675b0ce9..7a99a9b5a 100644 --- a/tools/toolkits/others/zendesk.mdx +++ b/tools/toolkits/others/zendesk.mdx @@ -50,4 +50,4 @@ agent.print_response("How do I login?", markdown=True) ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/zendesk.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/zendesk.py) diff --git a/tools/toolkits/search/arxiv.mdx b/tools/toolkits/search/arxiv.mdx index 0b5c35a56..3dad01c00 100644 --- a/tools/toolkits/search/arxiv.mdx +++ b/tools/toolkits/search/arxiv.mdx @@ -43,4 +43,4 @@ agent.print_response("Search arxiv for 'language models'", markdown=True) ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/arxiv.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/arxiv.py) diff --git a/tools/toolkits/search/baidusearch.mdx b/tools/toolkits/search/baidusearch.mdx index a28824592..a277597d6 100644 --- a/tools/toolkits/search/baidusearch.mdx +++ b/tools/toolkits/search/baidusearch.mdx @@ -53,4 +53,4 @@ agent.print_response("What are the latest advancements in AI?", markdown=True) ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/baidusearch.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/baidusearch.py) diff --git a/tools/toolkits/search/bravesearch.mdx b/tools/toolkits/search/bravesearch.mdx index 9ecc4e6e5..af0a0ef33 100644 --- a/tools/toolkits/search/bravesearch.mdx +++ b/tools/toolkits/search/bravesearch.mdx @@ -51,4 +51,4 @@ agent.print_response("AI Agents", markdown=True) ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/bravesearch.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/bravesearch.py) diff --git a/tools/toolkits/search/duckduckgo.mdx b/tools/toolkits/search/duckduckgo.mdx index 290607de3..8a5d29732 100644 --- a/tools/toolkits/search/duckduckgo.mdx +++ b/tools/toolkits/search/duckduckgo.mdx @@ -55,4 +55,4 @@ For backward compatibility, the aliases `duckduckgo_search` and `duckduckgo_news ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/duckduckgo.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/duckduckgo.py) diff --git a/tools/toolkits/search/exa.mdx b/tools/toolkits/search/exa.mdx index cc1bdb0bf..8fe1b98aa 100644 --- a/tools/toolkits/search/exa.mdx +++ b/tools/toolkits/search/exa.mdx @@ -90,4 +90,4 @@ Available categories for filtering: ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/exa.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/exa.py) diff --git a/tools/toolkits/search/hackernews.mdx b/tools/toolkits/search/hackernews.mdx index c5d3d3baa..51f9eb9a0 100644 --- a/tools/toolkits/search/hackernews.mdx +++ b/tools/toolkits/search/hackernews.mdx @@ -51,4 +51,4 @@ agent.print_response( ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/hackernews.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/hackernews.py) diff --git a/tools/toolkits/search/linkup.mdx b/tools/toolkits/search/linkup.mdx index 2ede781e8..7a08ddfbf 100644 --- a/tools/toolkits/search/linkup.mdx +++ b/tools/toolkits/search/linkup.mdx @@ -54,6 +54,6 @@ agent.print_response("Search for the latest developments in quantum computing", ## Developer Resources -- [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/linkup.py) +- [Tools Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/linkup.py) - [Linkup SDK Documentation](https://docs.linkup.so/) - [Linkup API Reference](https://docs.linkup.so/pages/documentation/endpoints/search/reference) diff --git a/tools/toolkits/search/perplexity.mdx b/tools/toolkits/search/perplexity.mdx index 3e3969b62..ad91147b2 100644 --- a/tools/toolkits/search/perplexity.mdx +++ b/tools/toolkits/search/perplexity.mdx @@ -75,5 +75,5 @@ Use PerplexitySearch when you need: ## Developer Resources - [Example](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/perplexity_tools.py) -- [PerplexitySearch source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/perplexity.py) +- [PerplexitySearch source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/perplexity.py) - [Perplexity API docs](https://docs.perplexity.ai/) diff --git a/tools/toolkits/search/pubmed.mdx b/tools/toolkits/search/pubmed.mdx index d84fa6730..02006d5dc 100644 --- a/tools/toolkits/search/pubmed.mdx +++ b/tools/toolkits/search/pubmed.mdx @@ -43,4 +43,4 @@ agent.print_response("Tell me about ulcerative colitis.") ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/pubmed.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/pubmed.py) diff --git a/tools/toolkits/search/scavio.mdx b/tools/toolkits/search/scavio.mdx index 997b4217c..14f2ad019 100644 --- a/tools/toolkits/search/scavio.mdx +++ b/tools/toolkits/search/scavio.mdx @@ -97,5 +97,5 @@ Each function returns the Scavio response as a JSON string. Errors are returned ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/scavio.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/scavio.py) - [Cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/scavio_tools.py) diff --git a/tools/toolkits/search/searchapi.mdx b/tools/toolkits/search/searchapi.mdx index 460a4a846..330e3cb46 100644 --- a/tools/toolkits/search/searchapi.mdx +++ b/tools/toolkits/search/searchapi.mdx @@ -54,4 +54,4 @@ agent.print_response("What are the latest developments in AI agents?", markdown= ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/searchapi.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/searchapi.py) diff --git a/tools/toolkits/search/searxng.mdx b/tools/toolkits/search/searxng.mdx index 07bf79701..180bf2ee6 100644 --- a/tools/toolkits/search/searxng.mdx +++ b/tools/toolkits/search/searxng.mdx @@ -62,4 +62,4 @@ You can use `include_tools` or `exclude_tools` to modify the list of tools the a ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/searxng.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/searxng.py) diff --git a/tools/toolkits/search/seltz.mdx b/tools/toolkits/search/seltz.mdx index 63e40c5a3..8ad6e5047 100644 --- a/tools/toolkits/search/seltz.mdx +++ b/tools/toolkits/search/seltz.mdx @@ -58,4 +58,4 @@ agent.print_response("Search for current AI safety reports") ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/seltz.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/seltz.py) diff --git a/tools/toolkits/search/serpapi.mdx b/tools/toolkits/search/serpapi.mdx index c80639efa..4a579870d 100644 --- a/tools/toolkits/search/serpapi.mdx +++ b/tools/toolkits/search/serpapi.mdx @@ -47,4 +47,4 @@ agent.print_response("What's happening in the USA?", markdown=True) ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/serpapi.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/serpapi.py) diff --git a/tools/toolkits/search/tavily.mdx b/tools/toolkits/search/tavily.mdx index 262407a6d..ace6ea007 100644 --- a/tools/toolkits/search/tavily.mdx +++ b/tools/toolkits/search/tavily.mdx @@ -72,4 +72,4 @@ agent.print_response("Search tavily for 'language models'") ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/tavily.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/tavily.py) diff --git a/tools/toolkits/search/valyu.mdx b/tools/toolkits/search/valyu.mdx index 25c933b5d..7b01212f6 100644 --- a/tools/toolkits/search/valyu.mdx +++ b/tools/toolkits/search/valyu.mdx @@ -66,6 +66,6 @@ agent.print_response("Find recent research papers about machine learning in heal ## Developer Resources -- [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/valyu.py) +- [Tools Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/valyu.py) - [Valyu API Documentation](https://docs.valyu.ai/overview) - [Academic Search Best Practices](https://docs.valyu.ai/use-cases/academic) diff --git a/tools/toolkits/search/websearch.mdx b/tools/toolkits/search/websearch.mdx index ab54b787d..c67ab9cd6 100644 --- a/tools/toolkits/search/websearch.mdx +++ b/tools/toolkits/search/websearch.mdx @@ -70,5 +70,5 @@ The `backend` parameter supports the following options: ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/websearch.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/websearch.py) - [Cookbook](https://github.com/agno-agi/agno/blob/v2.7.4/cookbook/91_tools/websearch_tools.py) diff --git a/tools/toolkits/search/wikipedia.mdx b/tools/toolkits/search/wikipedia.mdx index 8b481c29b..e489f1dbf 100644 --- a/tools/toolkits/search/wikipedia.mdx +++ b/tools/toolkits/search/wikipedia.mdx @@ -42,4 +42,4 @@ agent.print_response("Search wikipedia for 'ai'") ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/wikipedia.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/wikipedia.py) diff --git a/tools/toolkits/social/discord.mdx b/tools/toolkits/social/discord.mdx index 437994b64..78d1815bf 100644 --- a/tools/toolkits/social/discord.mdx +++ b/tools/toolkits/social/discord.mdx @@ -55,4 +55,4 @@ agent.print_response("Send 'Hello World!' to channel 1234567890", markdown=True) ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/discord.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/discord.py) diff --git a/tools/toolkits/social/email.mdx b/tools/toolkits/social/email.mdx index f4f3f4a95..9da63750c 100644 --- a/tools/toolkits/social/email.mdx +++ b/tools/toolkits/social/email.mdx @@ -57,4 +57,4 @@ agent.print_response("send an email to ") ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/email.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/email.py) diff --git a/tools/toolkits/social/gmail.mdx b/tools/toolkits/social/gmail.mdx index 0397915de..c267d6715 100644 --- a/tools/toolkits/social/gmail.mdx +++ b/tools/toolkits/social/gmail.mdx @@ -256,5 +256,5 @@ The agno cookbook includes several Gmail examples demonstrating different use ca ## Developer Resources -- [Source Code](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/google/gmail.py) +- [Source Code](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/google/gmail.py) - [Cookbook Examples](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/91_tools/google/gmail) diff --git a/tools/toolkits/social/plivo.mdx b/tools/toolkits/social/plivo.mdx index 1494fecad..9e12f8bc2 100644 --- a/tools/toolkits/social/plivo.mdx +++ b/tools/toolkits/social/plivo.mdx @@ -66,4 +66,4 @@ agent.print_response("Look up carrier info for +1234567890", markdown=True) ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/plivo.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/plivo.py) diff --git a/tools/toolkits/social/reddit.mdx b/tools/toolkits/social/reddit.mdx index dcd78faba..14da05f9e 100644 --- a/tools/toolkits/social/reddit.mdx +++ b/tools/toolkits/social/reddit.mdx @@ -66,6 +66,6 @@ You can use `include_tools` or `exclude_tools` to modify the list of tools the a ## Developer Resources -- [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/reddit.py) +- [Tools Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/reddit.py) - [Reddit API Documentation](https://www.reddit.com/dev/api/) - [PRAW Documentation](https://praw.readthedocs.io/) diff --git a/tools/toolkits/social/slack.mdx b/tools/toolkits/social/slack.mdx index 182facb38..e4a6a4482 100644 --- a/tools/toolkits/social/slack.mdx +++ b/tools/toolkits/social/slack.mdx @@ -97,7 +97,7 @@ SlackTools also exposes `download_file_bytes(file_id)` for programmatic use. It Streaming, sessions, file handling, and behavior details. - + SlackTools implementation: methods, defaults, and instruction building. diff --git a/tools/toolkits/social/telegram.mdx b/tools/toolkits/social/telegram.mdx index cf66520c0..c4beb131a 100644 --- a/tools/toolkits/social/telegram.mdx +++ b/tools/toolkits/social/telegram.mdx @@ -76,5 +76,5 @@ All methods return a JSON string with `{"status": "success", "message_id": ...}` ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/telegram.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/telegram.py) - [Telegram interface docs](/agent-os/interfaces/telegram/introduction) diff --git a/tools/toolkits/social/twilio.mdx b/tools/toolkits/social/twilio.mdx index bdb724b86..59e417ebc 100644 --- a/tools/toolkits/social/twilio.mdx +++ b/tools/toolkits/social/twilio.mdx @@ -67,4 +67,4 @@ agent.print_response( ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/twilio.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/twilio.py) diff --git a/tools/toolkits/social/webex.mdx b/tools/toolkits/social/webex.mdx index 62a8deb37..7fb248aec 100644 --- a/tools/toolkits/social/webex.mdx +++ b/tools/toolkits/social/webex.mdx @@ -69,4 +69,4 @@ agent.print_response( ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/webex.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/webex.py) diff --git a/tools/toolkits/social/whatsapp.mdx b/tools/toolkits/social/whatsapp.mdx index ceca47341..0823922c4 100644 --- a/tools/toolkits/social/whatsapp.mdx +++ b/tools/toolkits/social/whatsapp.mdx @@ -125,5 +125,5 @@ from agno.tools.whatsapp import ReplyButton, ListSection, ListRow ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/whatsapp.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/whatsapp.py) - [WhatsApp Interface Cookbooks](https://github.com/agno-agi/agno/tree/v2.7.4/cookbook/05_agent_os/interfaces/whatsapp) diff --git a/tools/toolkits/social/x.mdx b/tools/toolkits/social/x.mdx index 823197fd5..822de1f27 100644 --- a/tools/toolkits/social/x.mdx +++ b/tools/toolkits/social/x.mdx @@ -141,4 +141,4 @@ You can use `include_tools` or `exclude_tools` to modify the list of tools the a ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/x.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/x.py) diff --git a/tools/toolkits/social/zoom.mdx b/tools/toolkits/social/zoom.mdx index 3e3fef564..83ba4b042 100644 --- a/tools/toolkits/social/zoom.mdx +++ b/tools/toolkits/social/zoom.mdx @@ -90,4 +90,4 @@ For exact per-plan values, refer to [Zoom API Rate Limits](https://developers.zo ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/zoom.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/zoom.py) diff --git a/tools/toolkits/web-scrape/agentql.mdx b/tools/toolkits/web-scrape/agentql.mdx index 2b5b39fa2..8520981f4 100644 --- a/tools/toolkits/web-scrape/agentql.mdx +++ b/tools/toolkits/web-scrape/agentql.mdx @@ -58,4 +58,4 @@ agent.print_response("https://docs.agno.com/introduction", markdown=True) ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/agentql.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/agentql.py) diff --git a/tools/toolkits/web-scrape/brightdata.mdx b/tools/toolkits/web-scrape/brightdata.mdx index 792e30321..114d30415 100644 --- a/tools/toolkits/web-scrape/brightdata.mdx +++ b/tools/toolkits/web-scrape/brightdata.mdx @@ -130,4 +130,4 @@ agent.print_response( ## Developer Resources -- [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/brightdata.py) +- [Tools Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/brightdata.py) diff --git a/tools/toolkits/web-scrape/browserbase.mdx b/tools/toolkits/web-scrape/browserbase.mdx index 18cb13a80..e35225704 100644 --- a/tools/toolkits/web-scrape/browserbase.mdx +++ b/tools/toolkits/web-scrape/browserbase.mdx @@ -73,4 +73,4 @@ agent.print_response(""" ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/browserbase.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/browserbase.py) diff --git a/tools/toolkits/web-scrape/crawl4ai.mdx b/tools/toolkits/web-scrape/crawl4ai.mdx index 081f7fc60..0e7ed057b 100644 --- a/tools/toolkits/web-scrape/crawl4ai.mdx +++ b/tools/toolkits/web-scrape/crawl4ai.mdx @@ -51,4 +51,4 @@ agent.print_response("Tell me about https://github.com/agno-agi/agno.") ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/crawl4ai.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/crawl4ai.py) diff --git a/tools/toolkits/web-scrape/firecrawl.mdx b/tools/toolkits/web-scrape/firecrawl.mdx index 423f3645f..7f4b19418 100644 --- a/tools/toolkits/web-scrape/firecrawl.mdx +++ b/tools/toolkits/web-scrape/firecrawl.mdx @@ -56,4 +56,4 @@ agent.print_response("Summarize this https://finance.yahoo.com/") ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/firecrawl.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/firecrawl.py) diff --git a/tools/toolkits/web-scrape/jina-reader.mdx b/tools/toolkits/web-scrape/jina-reader.mdx index fc9e09f9c..86b56e1b2 100644 --- a/tools/toolkits/web-scrape/jina-reader.mdx +++ b/tools/toolkits/web-scrape/jina-reader.mdx @@ -54,4 +54,4 @@ agent.print_response("Summarize: https://github.com/agno-agi/agno") ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/jina.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/jina.py) diff --git a/tools/toolkits/web-scrape/newspaper.mdx b/tools/toolkits/web-scrape/newspaper.mdx index f8ca10228..c15f11ac0 100644 --- a/tools/toolkits/web-scrape/newspaper.mdx +++ b/tools/toolkits/web-scrape/newspaper.mdx @@ -40,4 +40,4 @@ agent.print_response("Please summarize https://en.wikipedia.org/wiki/Language_mo ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/newspaper.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/newspaper.py) diff --git a/tools/toolkits/web-scrape/newspaper4k.mdx b/tools/toolkits/web-scrape/newspaper4k.mdx index b6eea8fe9..f2b0df8e5 100644 --- a/tools/toolkits/web-scrape/newspaper4k.mdx +++ b/tools/toolkits/web-scrape/newspaper4k.mdx @@ -42,4 +42,4 @@ agent.print_response("Please summarize https://www.rockymountaineer.com/blog/exp ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/newspaper4k.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/newspaper4k.py) diff --git a/tools/toolkits/web-scrape/oxylabs.mdx b/tools/toolkits/web-scrape/oxylabs.mdx index 447b8202f..53b882ef3 100644 --- a/tools/toolkits/web-scrape/oxylabs.mdx +++ b/tools/toolkits/web-scrape/oxylabs.mdx @@ -68,4 +68,4 @@ agent.print_response( ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/oxylabs.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/oxylabs.py) diff --git a/tools/toolkits/web-scrape/scrapegraph.mdx b/tools/toolkits/web-scrape/scrapegraph.mdx index 68b6741f8..abe2b479c 100644 --- a/tools/toolkits/web-scrape/scrapegraph.mdx +++ b/tools/toolkits/web-scrape/scrapegraph.mdx @@ -142,5 +142,5 @@ Use any appropriate scraping method to extract comprehensive information from ht ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/scrapegraph.py) -- [Tests](https://github.com/agno-agi/agno/blob/main/libs/agno/tests/unit/tools/test_scrapegraph.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/scrapegraph.py) +- [Tests](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/tests/unit/tools/test_scrapegraph.py) diff --git a/tools/toolkits/web-scrape/spider.mdx b/tools/toolkits/web-scrape/spider.mdx index e39558c54..26358e11d 100644 --- a/tools/toolkits/web-scrape/spider.mdx +++ b/tools/toolkits/web-scrape/spider.mdx @@ -47,4 +47,4 @@ agent.print_response('Can you scrape the first search result from a search on "n ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/spider.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/spider.py) diff --git a/tools/toolkits/web-scrape/trafilatura.mdx b/tools/toolkits/web-scrape/trafilatura.mdx index d7a5e2095..e8afb7354 100644 --- a/tools/toolkits/web-scrape/trafilatura.mdx +++ b/tools/toolkits/web-scrape/trafilatura.mdx @@ -71,6 +71,6 @@ agent.print_response("Extract the main content from https://example.com/article" ## Developer Resources -- [Tools Source](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/trafilatura.py) +- [Tools Source](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/trafilatura.py) - [Trafilatura Documentation](https://trafilatura.readthedocs.io/) - [Web Scraping Best Practices](https://trafilatura.readthedocs.io/en/latest/corefunctions.html) diff --git a/tools/toolkits/web-scrape/website.mdx b/tools/toolkits/web-scrape/website.mdx index 247825fc1..51bbaa360 100644 --- a/tools/toolkits/web-scrape/website.mdx +++ b/tools/toolkits/web-scrape/website.mdx @@ -40,4 +40,4 @@ agent.print_response("Search web page: 'https://docs.agno.com/introduction'", ma ## Developer Resources -- [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/website.py) +- [Tools](https://github.com/agno-agi/agno/blob/v2.7.4/libs/agno/agno/tools/website.py) From c0f10725b85a18d7339f791886e92a04be6028c6 Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 13:17:51 +0100 Subject: [PATCH 41/47] docs: correct final v2.7.4 runtime mismatches --- agent-os/introduction.mdx | 44 +++++++++++-------- agent-platform/next-steps.mdx | 2 +- .../usage/performance-team-with-memory.mdx | 5 ++- ...eam-response-with-memory-and-reasoning.mdx | 8 ++++ .../team-response-with-memory-simple.mdx | 8 ++++ examples/storage/mongo/mongodb-for-agent.mdx | 5 +++ faq/openai-key-request-for-other-models.mdx | 12 ++--- knowledge/concepts/embedder/overview.mdx | 6 +-- learning/quickstart.mdx | 6 ++- scripts/examples_sync/apply_oneoffs.py | 7 ++- scripts/examples_sync/generate.py | 20 +++++++++ tools/toolkits/local/coding.mdx | 6 +-- 12 files changed, 95 insertions(+), 34 deletions(-) diff --git a/agent-os/introduction.mdx b/agent-os/introduction.mdx index a8bc38b87..04fba7745 100644 --- a/agent-os/introduction.mdx +++ b/agent-os/introduction.mdx @@ -4,17 +4,17 @@ sidebarTitle: "Introduction" description: "The runtime for your agent platform." --- -**AgentOS is a FastAPI app that turns your agents into a platform.** It's a backend service that: +**AgentOS is a FastAPI app that turns your agents into a platform.** The backend service: 1. Runs agents via REST API, MCP, or interfaces like Slack, WhatsApp and Telegram. -2. Maintains long-running stateful sessions that last from minutes to days to weeks. -3. Is durable across restarts, replicas, and infrastructure failures. -4. Is secure against unauthenticated access. -5. Logs, traces and audits every run and action. +2. Stores sessions, memory, knowledge, and traces in your configured databases. +3. Preserves database-backed state across restarts and replicas when all instances use the same persistent stores. +4. Supports JWT authorization, service account tokens, and security-key authentication. +5. Supports database-backed tracing for agents, teams, and workflows. Build your agents using the [Agno SDK](/sdk/introduction). Run them using the AgentOS runtime. -Here's the smallest possible AgentOS: +A minimal AgentOS: ```python agno_assist.py from agno.agent import Agent @@ -32,14 +32,18 @@ agent_os = AgentOS(agents=[agent]) app = agent_os.get_app() ``` + +Authorization and tracing are disabled by default. Telemetry is enabled by default. Configure authentication before exposing AgentOS, and review [Agno telemetry](/telemetry) before deployment. + + ## Key Features - **Production API**: 50+ ready to use endpoints with SSE-compatible streaming. -- **Data Ownership**: Sessions, memory, knowledge, and traces stored in your database. -- **Request Isolation**: No state bleed between users, agents, or sessions. -- **Security**: JWT-based RBAC with hierarchical scopes. -- **Observability**: Traces stored in your database with no third-party egress or vendor lock-in. -- **Governance**: Guardrails, human-in-the-loop, and approval flows for full control. +- **Data Ownership**: Sessions, memory, knowledge, and traces stored in your configured databases. +- **Request Context**: User and session IDs scope persisted runs. JWT user isolation can bind these IDs to authenticated callers. +- **Security**: Optional JWT-based RBAC with hierarchical scopes, service account tokens, or a shared security key. +- **Observability**: Optional traces stored in your database. +- **Governance**: Guardrails, human-in-the-loop, and approval flows. - **Multi-framework**: Serve agents built with the Claude Agent SDK, LangGraph and DSPy alongside native Agno agents. See [Multi-Framework Support](/agent-os/multi-framework/overview). ## Architecture @@ -63,20 +67,24 @@ The runtime exposes the APIs that power both the control plane and your AI produ alt="AgentOS Architecture" /> -## Private by Design +## Data Flow and Storage + +The AgentOS runtime runs in your infrastructure. Sessions, memory, knowledge, and enabled traces are stored in your configured databases. The [control plane](/agent-os/control-plane) connects from your browser to the runtime. -Most AI tooling stores your data on their servers. You pay retention costs, deal with egress fees, and depend on their security. AgentOS runs entirely in your infrastructure: the runtime runs as a container in your cloud, and the [control plane](/agent-os/control-plane) connects directly from your browser. No proxies. No data relays. +Network traffic depends on your configuration: -- **Your database**: Sessions, memory, knowledge, traces. All stored where you control it. -- **Zero transmission**: No conversations, logs, or metrics sent to Agno. -- **From browser to runtime**: The control plane connects from your browser to the runtime. Agno stores no data except for your runtime endpoint. All data resides in your database. +| Destination | Data | +|-------------|------| +| Configured model and tool providers | Requests required by those providers and tools | +| `https://os-api.agno.com` | Usage metadata when telemetry is enabled. Prompts and responses are excluded. | +| Your AgentOS runtime | Control plane requests sent directly from the browser | -See [AgentOS Security](/agent-os/security/overview) for more details. +AgentOS telemetry is enabled by default. Set `telemetry=False` on `AgentOS` to disable its launch event. Agents, teams, workflows, and evals have separate telemetry controls. See [Agno telemetry](/telemetry) for payload details and [AgentOS Security](/agent-os/security/overview) for authentication options. AgentOS Security and Privacy Architecture diff --git a/agent-platform/next-steps.mdx b/agent-platform/next-steps.mdx index 935e15222..b291e526f 100644 --- a/agent-platform/next-steps.mdx +++ b/agent-platform/next-steps.mdx @@ -31,7 +31,7 @@ The scheduler is on by default in `app/main.py`, and the template prepares two w | Workflow | What it does when enabled | Toggle | | -------------------- | ------------------------------------------------------- | -------------------------------------------- | | **Deployment check** | Checks daily that the AgentOS is wired correctly. | `ENABLE_DEPLOY_CHECK` (on by default) | -| **Run evals** | Runs the `smoke` profile eval cases daily. | `ENABLE_SCHEDULED_EVALS` (off by default) | +| **Run evals** | Runs eval cases with the `smoke` tag daily. | `ENABLE_SCHEDULED_EVALS` (off by default) | Schedule your own agents and workflows the same way: diff --git a/evals/performance/usage/performance-team-with-memory.mdx b/evals/performance/usage/performance-team-with-memory.mdx index 6e122f321..48207d71b 100644 --- a/evals/performance/usage/performance-team-with-memory.mdx +++ b/evals/performance/usage/performance-team-with-memory.mdx @@ -68,11 +68,12 @@ description: Example showing how to evaluate team performance with memory tracki async def run_team(): random_city = random.choice(cities) - _ = team.arun( + async for _ in team.arun( input=f"I love {random_city}! What weather can I expect in {random_city}?", stream=True, stream_events=True, - ) + ): + pass return "Successfully ran team" diff --git a/examples/evals/performance/team-response-with-memory-and-reasoning.mdx b/examples/evals/performance/team-response-with-memory-and-reasoning.mdx index 966c03c74..086c55a55 100644 --- a/examples/evals/performance/team-response-with-memory-and-reasoning.mdx +++ b/examples/evals/performance/team-response-with-memory-and-reasoning.mdx @@ -6,6 +6,10 @@ source: cookbook/09_evals/performance/team_response_with_memory_and_reasoning.py Demonstrates memory growth performance for a reasoning-enabled team. + + The source calls a streaming team four times without consuming any returned async generator. Those calls never execute, so the evaluation does not build the intended history or memory. Update the saved file before running. + + ```python team_response_with_memory_and_reasoning.py """ Team Memory and Reasoning Performance Evaluation @@ -1146,6 +1150,10 @@ if __name__ == "__main__": + + Set `stream=False` and `stream_events=False` on the `Team`, then replace each `_ = team.arun(` in `run_team_for_user` with `_ = await team.arun(`. + + Save the code above as `team_response_with_memory_and_reasoning.py`, then run: ```bash diff --git a/examples/evals/performance/team-response-with-memory-simple.mdx b/examples/evals/performance/team-response-with-memory-simple.mdx index aae3936ba..015ab725b 100644 --- a/examples/evals/performance/team-response-with-memory-simple.mdx +++ b/examples/evals/performance/team-response-with-memory-simple.mdx @@ -6,6 +6,10 @@ source: cookbook/09_evals/performance/team_response_with_memory_simple.py Demonstrates team response performance with memory enabled. + + The source creates a streaming `Team.arun()` async generator and returns without consuming it. The team never runs, so the memory-growth result is invalid. Update the saved file before running. + + ```python team_response_with_memory_simple.py """ Simple Team Memory Performance Evaluation @@ -141,6 +145,10 @@ if __name__ == "__main__": + + Replace the `_ = team.arun(...)` block with `async for _ in team.arun(...): pass`. Preserve the existing arguments and indent `pass` inside the loop. + + Save the code above as `team_response_with_memory_simple.py`, then run: ```bash diff --git a/examples/storage/mongo/mongodb-for-agent.mdx b/examples/storage/mongo/mongodb-for-agent.mdx index d28e4c3e7..dcb510771 100644 --- a/examples/storage/mongo/mongodb-for-agent.mdx +++ b/examples/storage/mongo/mongodb-for-agent.mdx @@ -59,5 +59,10 @@ cd agno ./scripts/demo_setup.sh source .venvs/demo/bin/activate +uv pip install pymongo +./cookbook/scripts/run_mongodb.sh + python cookbook/06_storage/mongo/mongodb_for_agent.py + +docker rm -f local-mongo ``` diff --git a/faq/openai-key-request-for-other-models.mdx b/faq/openai-key-request-for-other-models.mdx index 374ddc66a..84b9b12ed 100644 --- a/faq/openai-key-request-for-other-models.mdx +++ b/faq/openai-key-request-for-other-models.mdx @@ -1,13 +1,15 @@ --- title: OpenAI Key Request While Using Other Models sidebarTitle: OpenAI Key Request While Using Other Models -description: "Agno defaults to OpenAI for models and embedders. Set both explicitly to remove the OPENAI_API_KEY requirement." +description: "Identify whether the default agent model or a vector database embedder is requesting OPENAI_API_KEY." --- -If you see a request for an OpenAI API key but haven't configured OpenAI, it's because Agno uses OpenAI by default in two places: +If you see a request for an OpenAI API key but haven't configured OpenAI, check these defaults: - The default model when `Agent` has no `model` set -- The default embedder (`OpenAIEmbedder`) for vector databases +- The default `OpenAIEmbedder` used by many vector database implementations + +Vector database defaults vary. `PgVector` creates an `OpenAIEmbedder` when `embedder` is omitted. `UpstashVectorDb` uses Upstash hosted embeddings instead. ## Quick fix: Configure a Different Model @@ -30,9 +32,9 @@ agent.print_response("Share a 2 sentence horror story.") See [Models](/models/overview) for the full provider list. -## Quick fix: Configure a Different Embedder +## Quick fix: Configure the Vector Database Embedder -The same applies to embeddings. To use an embedder other than `OpenAIEmbedder`, configure it explicitly. +If your vector database defaults to `OpenAIEmbedder`, pass a different embedder explicitly. For example, to use Google's Gemini as an embedder, use `GeminiEmbedder`: diff --git a/knowledge/concepts/embedder/overview.mdx b/knowledge/concepts/embedder/overview.mdx index 1995cc99e..d200108b1 100644 --- a/knowledge/concepts/embedder/overview.mdx +++ b/knowledge/concepts/embedder/overview.mdx @@ -27,7 +27,7 @@ knowledge = Knowledge( 2. **Store**: Vectors are saved in your vector database 3. **Search**: Queries are embedded and matched against stored vectors by similarity -Agno uses `OpenAIEmbedder` by default, but you can swap in any supported embedder. +Many vector database implementations, including `PgVector`, use `OpenAIEmbedder` when `embedder` is omitted. Provider-hosted implementations can differ. `UpstashVectorDb` uses Upstash hosted embeddings when `embedder` is omitted. ## Configuration @@ -91,7 +91,7 @@ Embedders with batch support: OpenAI, Azure OpenAI, Gemini, Cohere, Voyage AI, M | Embedder | Type | Cost | Notes | |----------|------|------|-------| -| [OpenAI](/knowledge/concepts/embedder/openai/openai-embedder) | Hosted | $$ | Default, excellent quality | +| [OpenAI](/knowledge/concepts/embedder/openai/openai-embedder) | Hosted | $$ | Default for PgVector and many other vector databases | | [Gemini](/knowledge/concepts/embedder/gemini/gemini-embedder) | Hosted | $$ | Multilingual, Google ecosystem | | [Cohere](/knowledge/concepts/embedder/cohere/cohere-embedder) | Hosted | $$ | Strong retrieval performance | | [Voyage AI](/knowledge/concepts/embedder/voyageai/voyageai-embedder) | Hosted | $$$ | Specialized for retrieval | @@ -140,4 +140,4 @@ Embedders with batch support: OpenAI, Azure OpenAI, Gemini, Cohere, Voyage AI, M Prepare content for embedding - \ No newline at end of file + diff --git a/learning/quickstart.mdx b/learning/quickstart.mdx index 881269330..e67d3f3fb 100644 --- a/learning/quickstart.mdx +++ b/learning/quickstart.mdx @@ -88,10 +88,14 @@ agent = Agent( | Mode | How it works | |------|--------------| -| **Always** | Extraction runs automatically after each response | +| **Always** | Extraction runs automatically from the messages prepared for the current model call | | **Agentic** | Agent receives tools and decides what to save | | **Propose** | Agent proposes learnings, you approve before saving | + +In Agno v2.7.4, Always-mode extraction starts before the model call. It sees the current input and any history included in that call. The generated response becomes available to extraction when it appears in a later run's history. + + See [Learning Modes](/learning/learning-modes) for details. ## Production Database diff --git a/scripts/examples_sync/apply_oneoffs.py b/scripts/examples_sync/apply_oneoffs.py index e7380d6cd..09c6b9dcf 100644 --- a/scripts/examples_sync/apply_oneoffs.py +++ b/scripts/examples_sync/apply_oneoffs.py @@ -3104,7 +3104,12 @@ def main() -> None: ./scripts/demo_setup.sh source .venvs/demo/bin/activate -python cookbook/06_storage/mongo/mongodb_for_agent.py""", +uv pip install pymongo +./cookbook/scripts/run_mongodb.sh + +python cookbook/06_storage/mongo/mongodb_for_agent.py + +docker rm -f local-mongo""", ) sub( "tools/superserve-tools.mdx", diff --git a/scripts/examples_sync/generate.py b/scripts/examples_sync/generate.py index 5427547c2..6e601b350 100644 --- a/scripts/examples_sync/generate.py +++ b/scripts/examples_sync/generate.py @@ -787,6 +787,26 @@ def git(*args: str) -> str: ) SOURCE_RENDER_OVERRIDES: dict[str, dict[str, object]] = { + "09_evals/performance/team_response_with_memory_simple.py": { + "pre_code_warning": "The source creates a streaming `Team.arun()` async generator and returns without consuming it. The team never runs, so the memory-growth result is invalid. Update the saved file before running.", + "pre_run_steps": [ + ( + "Consume the team stream", + "Replace the `_ = team.arun(...)` block with `async for _ in team.arun(...): pass`. Preserve the existing arguments and indent `pass` inside the loop.", + None, + ) + ], + }, + "09_evals/performance/team_response_with_memory_and_reasoning.py": { + "pre_code_warning": "The source calls a streaming team four times without consuming any returned async generator. Those calls never execute, so the evaluation does not build the intended history or memory. Update the saved file before running.", + "pre_run_steps": [ + ( + "Execute all four team runs", + "Set `stream=False` and `stream_events=False` on the `Team`, then replace each `_ = team.arun(` in `run_team_for_user` with `_ = await team.arun(`.", + None, + ) + ], + }, "integrations/parallel/07_research_workflow.py": { "intro_override": "Run source gathering and cited-brief writing as defined workflow steps. Agent outputs can vary between runs.", }, diff --git a/tools/toolkits/local/coding.mdx b/tools/toolkits/local/coding.mdx index f08ba0fdd..2ee7373b1 100644 --- a/tools/toolkits/local/coding.mdx +++ b/tools/toolkits/local/coding.mdx @@ -1,6 +1,6 @@ --- title: Coding -description: "CodingTools gives an agent four core file/shell tools to perform any coding task in a scoped directory." +description: "CodingTools gives an agent file tools scoped to a directory and an allowlisted shell tool." --- `CodingTools` is a minimal toolkit for coding agents. Four core tools (read, edit, write, shell) let an agent run tests, use git, install packages, and edit code. Three exploration tools (grep, find, ls) are opt-in. @@ -26,7 +26,7 @@ agent.print_response( ``` -`CodingTools` can run arbitrary shell commands. By default `restrict_to_base_dir=True` scopes file and shell operations to `base_dir` and only allows commands in `allowed_commands`. Keep human supervision for untrusted prompts, and run inside a sandbox (container, VM, or [Daytona](/tools/toolkits/others/daytona)) for untrusted code execution. +`CodingTools` can run arbitrary shell commands. By default, `restrict_to_base_dir=True` keeps file-tool paths under `base_dir` and rejects shell commands or path-like arguments that fail its text checks. Allowed commands and interpreters retain the host process's filesystem permissions. Keep human supervision for untrusted prompts, and run inside a sandbox (container, VM, or [Daytona](/tools/toolkits/others/daytona)) to isolate untrusted code execution. ## Toolkit Params @@ -34,7 +34,7 @@ agent.print_response( | Parameter | Type | Default | Description | | --------------------- | --------------------- | -------------- | -------------------------------------------------------------------- | | `base_dir` | `Optional[Path\|str]` | `cwd` | Root directory for file operations. | -| `restrict_to_base_dir`| `bool` | `True` | When True, file and shell operations cannot escape `base_dir`. | +| `restrict_to_base_dir`| `bool` | `True` | Keep file-tool paths under `base_dir`; allowlist and text-check shell commands. Process isolation requires a sandbox. | | `max_lines` | `int` | `2000` | Maximum lines returned before truncating. | | `max_bytes` | `int` | `50000` | Maximum bytes returned before truncating. | | `shell_timeout` | `int` | `120` | Timeout in seconds for shell commands. | From f3187eba9659b29438d105c73d3170d209504cb8 Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 13:48:17 +0100 Subject: [PATCH 42/47] docs: fix v2.7.4 convergence findings --- database/providers/clickhouse/overview.mdx | 18 +++++++++-- evals/reliability/overview.mdx | 2 +- examples/tools/mcp/mcp-toolbox-demo/agent.mdx | 10 ++++++- examples/tools/mcp/mcp-toolbox-for-db.mdx | 8 +++++ .../examples_sync/description-overrides.json | 2 +- scripts/examples_sync/generate.py | 20 +++++++++++-- sessions/workflow-sessions.mdx | 8 +++-- tools/mcp/mcp-toolbox.mdx | 30 +++++++++---------- 8 files changed, 72 insertions(+), 26 deletions(-) diff --git a/database/providers/clickhouse/overview.mdx b/database/providers/clickhouse/overview.mdx index 1125ad802..4d7a19f92 100644 --- a/database/providers/clickhouse/overview.mdx +++ b/database/providers/clickhouse/overview.mdx @@ -87,9 +87,23 @@ app = agent_os.get_app() Always enable `batch_processing=True` with ClickHouse. The default `SimpleSpanProcessor` issues one insert per span and will hit the server's `parts_to_throw_insert` limit under load. ClickHouse strongly prefers a smaller number of larger inserts. -### Run ClickHouse +### Run PostgreSQL and ClickHouse -Install [Docker Desktop](https://docs.docker.com/desktop/install/mac-install/) and run **ClickHouse** on port **8123** (HTTP) and **9000** (native) using: +Install [Docker Desktop](https://docs.docker.com/desktop/install/mac-install/), then start the PostgreSQL row store on port `5532`: + +```bash +docker run -d \ + -e POSTGRES_DB=ai \ + -e POSTGRES_USER=ai \ + -e POSTGRES_PASSWORD=ai \ + -e PGDATA=/var/lib/postgresql \ + -v pgvolume:/var/lib/postgresql \ + -p 5532:5432 \ + --name pgvector \ + agnohq/pgvector:18 +``` + +Start ClickHouse on port `8123` for HTTP and `9000` for its native protocol: ```bash docker run -d \ diff --git a/evals/reliability/overview.mdx b/evals/reliability/overview.mdx index 2cb5376f2..6cd1705df 100644 --- a/evals/reliability/overview.mdx +++ b/evals/reliability/overview.mdx @@ -204,7 +204,7 @@ evaluation = AccuracyEval( agent=basic_agent, # team=basic_team, ) -# evaluation.run(print_results=True) +evaluation.run(print_results=True) # Setup the Agno API App agent_os = AgentOS( diff --git a/examples/tools/mcp/mcp-toolbox-demo/agent.mdx b/examples/tools/mcp/mcp-toolbox-demo/agent.mdx index 039b61da9..9f9f120eb 100644 --- a/examples/tools/mcp/mcp-toolbox-demo/agent.mdx +++ b/examples/tools/mcp/mcp-toolbox-demo/agent.mdx @@ -1,11 +1,15 @@ --- title: "Agent" -description: "Load MCPToolbox hotel-management and booking-system toolsets, or load them manually with auth token getters and bound params, then drive an interactive CLI hotel agent." +description: "Load MCPToolbox hotel-management and booking-system toolsets at initialization or select subsets manually, then drive an interactive CLI hotel agent." source: cookbook/91_tools/mcp/mcp_toolbox_demo/agent.py --- Simple test script that connects to the MCP toolbox server + + The source's manual-loading path constructs `MCPToolbox` without a selector, so its first `load_toolset()` call fails. In v2.7.4, `auth_token_getters` and `bound_params` are also discarded when the loaded core tools are mapped to Agno MCP functions. Apply the correction below before running that path. + + ```python agent.py """ Simple test script that connects to the MCP toolbox server @@ -150,6 +154,10 @@ if __name__ == "__main__": ``` + + In `run_agent_manual_loading`, initialize `MCPToolbox` with `toolsets=["hotel-management", "booking-system"]`. Remove `auth_token_getters` and `bound_params` from both `load_toolset()` calls because v2.7.4 does not apply them when invoking the returned MCP functions. + + Run the example from the repository root: ```bash diff --git a/examples/tools/mcp/mcp-toolbox-for-db.mdx b/examples/tools/mcp/mcp-toolbox-for-db.mdx index 8b02b8951..2da780c64 100644 --- a/examples/tools/mcp/mcp-toolbox-for-db.mdx +++ b/examples/tools/mcp/mcp-toolbox-for-db.mdx @@ -6,6 +6,10 @@ source: cookbook/91_tools/mcp/mcp_toolbox_for_db.py Example code showcasing how to connect to the MCP toolbox server using the MCPToolbox Toolkit + + The source's manual-loading path constructs `MCPToolbox` without a selector, so its first `load_toolset()` call fails. In v2.7.4, `auth_token_getters` and `bound_params` are also discarded when the loaded core tools are mapped to Agno MCP functions. Apply the correction below before running that path. + + ```python mcp_toolbox_for_db.py """Example code showcasing how to connect to the MCP toolbox server using the MCPToolbox Toolkit""" @@ -178,6 +182,10 @@ if __name__ == "__main__": ``` + + In `run_agent_manual_loading`, initialize `MCPToolbox` with `toolsets=["hotel-management", "booking-system"]`. Remove `auth_token_getters` and `bound_params` from both `load_toolset()` calls because v2.7.4 does not apply them when invoking the returned MCP functions. + + Run the example from the repository root: ```bash diff --git a/scripts/examples_sync/description-overrides.json b/scripts/examples_sync/description-overrides.json index 7bf1aed58..0774e03d9 100644 --- a/scripts/examples_sync/description-overrides.json +++ b/scripts/examples_sync/description-overrides.json @@ -901,7 +901,7 @@ "examples/tools/tool-hooks/tool-hooks-in-toolkit-nested": "Nest validation and logging hooks around toolkit tools to block customer ID 123 and strip the name field from results, in sync and async variants.", "examples/tools/tool-decorator/tool-decorator-with-hook": "Attach a custom duration-logging hook to a tool via @tool(tool_hooks=[...]) to time each tool call.", "examples/tools/tool-decorator/toolkit-per-tool-instructions": "Verify per-tool instructions from a bare @tool function and a Toolkit both reach agent._tool_instructions via parse_tools.", - "examples/tools/mcp/mcp-toolbox-demo/agent": "Load MCPToolbox hotel-management and booking-system toolsets, or load them manually with auth token getters and bound params, then drive an interactive CLI hotel agent.", + "examples/tools/mcp/mcp-toolbox-demo/agent": "Load MCPToolbox hotel-management and booking-system toolsets at initialization or select subsets manually, then drive an interactive CLI hotel agent.", "examples/tools/mcp/sse-transport/client": "Connect an OpenAI agent to an SSE MCP server with MCPTools, and to SSE plus stdio servers together with MultiMCPTools.", "examples/tools/mcp/airbnb": "Search Airbnb listings with an OpenAI gpt-4o agent connected to the @openbnb/mcp-server-airbnb stdio MCP server.", "examples/tools/mcp/mcp-toolbox-for-db": "Connect an agent to an MCP Toolbox for Databases server and load hotel-management and booking-system toolsets via MCPToolbox.", diff --git a/scripts/examples_sync/generate.py b/scripts/examples_sync/generate.py index 6e601b350..f7c8a579f 100644 --- a/scripts/examples_sync/generate.py +++ b/scripts/examples_sync/generate.py @@ -1652,7 +1652,15 @@ def git(*args: str) -> str: }, "91_tools/mcp/mcp_toolbox_for_db.py": { "repo_layout": True, - "pre_run_steps": [MCP_TOOLBOX_STEP], + "pre_code_warning": "The source's manual-loading path constructs `MCPToolbox` without a selector, so its first `load_toolset()` call fails. In v2.7.4, `auth_token_getters` and `bound_params` are also discarded when the loaded core tools are mapped to Agno MCP functions. Apply the correction below before running that path.", + "pre_run_steps": [ + MCP_TOOLBOX_STEP, + ( + "Correct manual toolset selection", + "In `run_agent_manual_loading`, initialize `MCPToolbox` with `toolsets=[\"hotel-management\", \"booking-system\"]`. Remove `auth_token_getters` and `bound_params` from both `load_toolset()` calls because v2.7.4 does not apply them when invoking the returned MCP functions.", + None, + ), + ], }, "11_memory/integrations/dakera_integration.py": { "intro_override": "The source-fidelity example stores memory in self-hosted Dakera, then sends recalled memory to OpenAI as agent context. Its pinned client targets an older Dakera API and requires migration before use.", @@ -2167,7 +2175,15 @@ def git(*args: str) -> str: }, "91_tools/mcp/mcp_toolbox_demo/agent.py": { "repo_layout": True, - "pre_run_steps": [MCP_TOOLBOX_STEP], + "pre_code_warning": "The source's manual-loading path constructs `MCPToolbox` without a selector, so its first `load_toolset()` call fails. In v2.7.4, `auth_token_getters` and `bound_params` are also discarded when the loaded core tools are mapped to Agno MCP functions. Apply the correction below before running that path.", + "pre_run_steps": [ + MCP_TOOLBOX_STEP, + ( + "Correct manual toolset selection", + "In `run_agent_manual_loading`, initialize `MCPToolbox` with `toolsets=[\"hotel-management\", \"booking-system\"]`. Remove `auth_token_getters` and `bound_params` from both `load_toolset()` calls because v2.7.4 does not apply them when invoking the returned MCP functions.", + None, + ), + ], }, "91_tools/mcp/mcp_toolbox_demo/hotel_management_typesafe.py": { "repo_layout": True, diff --git a/sessions/workflow-sessions.mdx b/sessions/workflow-sessions.mdx index 45c4de967..d19626f42 100644 --- a/sessions/workflow-sessions.mdx +++ b/sessions/workflow-sessions.mdx @@ -99,7 +99,7 @@ If you're familiar with agent or team sessions, here are the main differences: | **What's stored** | Messages and conversation turns | Complete workflow runs with step results | | **History type** | Message-based (chat history) | Run-based (execution history) | | **Summaries** | Supported with `enable_session_summaries` | Not supported (stores complete runs) | -| **History format** | Messages in LLM context | Previous run results prepended to step inputs | +| **History format** | Messages in LLM context | Previous run results prepended to agent and team step inputs | ### Database Options @@ -124,7 +124,7 @@ workflow = Workflow( ## Workflow History -Workflow history lets workflow steps access results from previous runs. When enabled, Agno formats prior run results and prepends them to each step input so future executions can build on that context. +Workflow history lets workflow steps access results from previous runs. When enabled, Agno formats prior run results and prepends them to agent and team step inputs. Custom function steps access the same history through their `StepInput`. ### Enable history for your steps @@ -152,7 +152,7 @@ Why it helps: ### History format -Agno wraps past runs in a structured XML block before inserting it into each step input: +Agno wraps past runs in a structured XML block before inserting it into each agent or team step input: ```xml @@ -166,6 +166,8 @@ Workflow output: [Full output from run] ``` +Custom function steps receive a `StepInput` instead. Call `step_input.get_workflow_history()` for structured history or `step_input.get_workflow_history_context()` for the formatted XML context. + See the [workflow history implementation guide](/history/workflow/overview) for advanced controls, per-step overrides, and programmatic access patterns. ## Session Naming diff --git a/tools/mcp/mcp-toolbox.mdx b/tools/mcp/mcp-toolbox.mdx index 78b56cdda..d5675548b 100644 --- a/tools/mcp/mcp-toolbox.mdx +++ b/tools/mcp/mcp-toolbox.mdx @@ -157,33 +157,31 @@ if __name__ == "__main__": asyncio.run(run_agent(message=None)) ``` -### Custom Authentication and Parameters +### Manual Toolset Selection -For production scenarios with authentication: +Initialize the toolbox with every toolset that the manual calls can select. In v2.7.4, the constructor selection initializes the underlying Toolbox client and registers the matching MCP functions. ```python async def production_example(): - async with MCPToolbox(url=url) as toolbox: - # Load with authentication and bound parameters - hotel_tools = await toolbox.load_toolset( - "hotel-management", - auth_token_getters={"hotel_api": lambda: "your-hotel-api-key"}, - bound_params={"region": "us-east-1"}, - ) + async with MCPToolbox( + url=url, + toolsets=["hotel-management", "booking-system"], + ) as toolbox: + hotel_tools = await toolbox.load_toolset("hotel-management") - booking_tools = await toolbox.load_toolset( - "booking-system", - auth_token_getters={"booking_api": lambda: "your-booking-api-key"}, - bound_params={"environment": "production"}, - ) + booking_tools = await toolbox.load_toolset("booking-system") # Use individual tools instead of the toolbox all_tools = hotel_tools + booking_tools[:2] # First 2 booking tools only - agent = Agent(tools=all_tools, instructions="Hotel management with auth.") + agent = Agent(tools=all_tools, instructions="Hotel management.") await agent.aprint_response("Book a hotel for tonight") ``` + +In v2.7.4, `auth_token_getters` and `bound_params` passed to the manual load methods are not applied when Agno invokes the returned MCP functions. Do not rely on those arguments for runtime authentication or parameter binding in this release. + + ### Manual Connection Management For explicit control over connections: @@ -225,7 +223,7 @@ Only one of `toolsets` or `tool_name` can be specified. The implementation valid | Function | Description | | -------- | ----------- | | `async connect()` | Initialize and connect to both MCP server and toolbox client | -| `async load_tool(tool_name, auth_token_getters={}, bound_params={})` | Load a single tool by name with optional authentication | +| `async load_tool(tool_name, auth_token_getters={}, bound_params={})` | Select a single tool by name | | `async load_toolset(toolset_name, auth_token_getters={}, bound_params={}, strict=False)` | Load all tools from a specific toolset | | `async load_multiple_toolsets(toolset_names, auth_token_getters={}, bound_params={}, strict=False)` | Load tools from multiple toolsets | | `async load_toolset_safe(toolset_name)` | Safely load a toolset and return tool names for error handling | From e5a2ca906f8b545b99bf5a1cddf99d82dceb634a Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 14:10:14 +0100 Subject: [PATCH 43/47] docs: add Anthropic setup to agent tutorial --- agents/building-agents.mdx | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/agents/building-agents.mdx b/agents/building-agents.mdx index cf443a0e5..e505e339d 100644 --- a/agents/building-agents.mdx +++ b/agents/building-agents.mdx @@ -6,7 +6,29 @@ keywords: [agent, agents, ai agents, introduction] mode: wide --- -To build effective agents, start simple: a model, tools, and instructions. Once that works, layer in more functionality as needed. For example, here's the simplest possible agent with access to `HackerNews`: +To build effective agents, start simple: a model, tools, and instructions. Once that works, layer in more functionality as needed. + +This page builds on [Install & Setup](/sdk/setup). Install the Anthropic model extra: + +```bash +uv pip install -U "agno[anthropic]" +``` + +Set your Anthropic API key: + + + +```bash Mac/Linux +export ANTHROPIC_API_KEY="your_anthropic_api_key" +``` + +```powershell Windows +$Env:ANTHROPIC_API_KEY="your_anthropic_api_key" +``` + + + +Start with an agent that can access Hacker News: ```python hackernews_agent.py from agno.agent import Agent From dde9c499b6aee2458e81745e1ef3e05f7041026a Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 14:34:54 +0100 Subject: [PATCH 44/47] docs: correct Slack session ID format --- agent-os/interfaces/slack/features.mdx | 2 +- features/interfaces.mdx | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/agent-os/interfaces/slack/features.mdx b/agent-os/interfaces/slack/features.mdx index 5f92d0bc3..88b1eb309 100644 --- a/agent-os/interfaces/slack/features.mdx +++ b/agent-os/interfaces/slack/features.mdx @@ -42,7 +42,7 @@ agent = Agent( Each Slack thread maps to one session. DMs work the same way. All responses are sent as thread replies, keeping channel conversations organized. Conversations persist across server restarts. -Session format: `{entity_id}:{thread_ts}`. For example, an agent named "Support Bot" gets the auto-generated ID `support-bot` and produces session IDs like `support-bot:1719000000.000100`. +New session format: `{entity_id}:{channel_id}:{thread_ts}`. For example, an agent named "Support Bot" with channel ID `C012345` produces session IDs like `support-bot:C012345:1719000000.000100`. The interface reuses an existing `{entity_id}:{thread_ts}` session when it finds one from an earlier version. ## Files diff --git a/features/interfaces.mdx b/features/interfaces.mdx index e89ae2bac..23dcaa178 100644 --- a/features/interfaces.mdx +++ b/features/interfaces.mdx @@ -67,13 +67,15 @@ Every interface maps surface state to AgentOS sessions, so a conversation in Sla | Interface | Session ID | User ID | |-----------|-----------|---------| -| Slack | `:` | Slack user ID, or resolved email when enabled | +| Slack | `::` | Slack user ID, or resolved email when enabled | | Telegram | `tg::` with an optional topic suffix | Telegram user ID | | WhatsApp | `wa::` | Phone number or encrypted user ID | | Discord | Thread ID | Discord user ID | | A2A | A2A context ID | JWT subject, or request metadata when anonymous | | AG-UI | Client thread ID | JWT subject, or client-supplied when anonymous | +Slack checks for an existing legacy `:` session before creating the channel-scoped ID. This preserves history created by earlier versions. + ### Resolving Slack user IDs By default Slack hands you opaque user IDs like `U07ABCXYZ`. Set `resolve_user_identity=True` to use the member's email as `user_id` when Slack provides one: From 28fe006f7eed42747027ca217cf23043f3f1a12a Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 14:51:24 +0100 Subject: [PATCH 45/47] docs: fix final runnable example defects --- agent-os/remote-execution/remote-workflow.mdx | 158 +++++++++++------- examples/tools/google/gmail/draft-reply.mdx | 10 +- scripts/examples_sync/generate.py | 11 ++ tools/toolkits/others/cartesia.mdx | 4 +- 4 files changed, 116 insertions(+), 67 deletions(-) diff --git a/agent-os/remote-execution/remote-workflow.mdx b/agent-os/remote-execution/remote-workflow.mdx index 0f52ff4ef..b69bc9f70 100644 --- a/agent-os/remote-execution/remote-workflow.mdx +++ b/agent-os/remote-execution/remote-workflow.mdx @@ -36,24 +36,29 @@ asyncio.run(main()) Stream workflow responses in real-time: ```python +import asyncio + from agno.workflow import RemoteWorkflow -workflow = RemoteWorkflow( - base_url="http://localhost:7778", # Running on localhost for this example - workflow_id="story-workflow", -) +async def main(): + workflow = RemoteWorkflow( + base_url="http://localhost:7778", # Running on localhost for this example + workflow_id="story-workflow", + ) -print("Workflow Response: ", end="", flush=True) -async for event in workflow.arun( - "Write a story about space exploration", - stream=True, -): - # Handle content from agent steps or workflow completion - if event.event == "RunContent" and hasattr(event, "content"): - print(event.content, end="", flush=True) - elif event.event == "WorkflowAgentCompleted" and hasattr(event, "content"): - if event.content: + print("Workflow Response: ", end="", flush=True) + async for event in workflow.arun( + "Write a story about space exploration", + stream=True, + ): + # Handle content from agent steps or workflow completion + if event.event == "RunContent" and hasattr(event, "content"): print(event.content, end="", flush=True) + elif event.event == "WorkflowAgentCompleted" and hasattr(event, "content"): + if event.content: + print(event.content, end="", flush=True) + +asyncio.run(main()) ``` ## Passing Additional Data @@ -61,20 +66,25 @@ async for event in workflow.arun( Send additional structured data to the workflow: ```python +import asyncio + from agno.workflow import RemoteWorkflow -workflow = RemoteWorkflow( - base_url="http://localhost:7778", # Running on localhost for this example - workflow_id="analysis-workflow", -) +async def main(): + workflow = RemoteWorkflow( + base_url="http://localhost:7778", # Running on localhost for this example + workflow_id="analysis-workflow", + ) -response = await workflow.arun( - "Analyze the data", - additional_data={ - "metrics": {"revenue": 1000000, "growth": 0.15}, - "period": "Q4 2024", - }, -) + await workflow.arun( + "Analyze the data", + additional_data={ + "metrics": {"revenue": 1000000, "growth": 0.15}, + "period": "Q4 2024", + }, + ) + +asyncio.run(main()) ``` ## Configuration Access @@ -82,22 +92,27 @@ response = await workflow.arun( Access the remote workflow's configuration: ```python +import asyncio + from agno.workflow import RemoteWorkflow -workflow = RemoteWorkflow( - base_url="http://localhost:7778", # Running on localhost for this example - workflow_id="qa-workflow", -) +async def main(): + workflow = RemoteWorkflow( + base_url="http://localhost:7778", # Running on localhost for this example + workflow_id="qa-workflow", + ) + + # Access cached properties + print(f"Name: {workflow.name}") + print(f"Description: {workflow.description}") -# Access cached properties -print(f"Name: {workflow.name}") -print(f"Description: {workflow.description}") + # Get fresh configuration + await workflow.get_workflow_config() -# Get fresh configuration -config = await workflow.get_workflow_config() + # Force refresh cache + await workflow.refresh_config() -# Force refresh cache -await workflow.refresh_config() +asyncio.run(main()) ``` ## Using in Gateway @@ -127,35 +142,45 @@ if __name__ == "__main__": For authenticated AgentOS instances: ```python +import asyncio + from agno.workflow import RemoteWorkflow -workflow = RemoteWorkflow( - base_url="http://localhost:7777", - workflow_id="qa-workflow", -) +async def main(): + workflow = RemoteWorkflow( + base_url="http://localhost:7777", + workflow_id="qa-workflow", + ) -response = await workflow.arun( - "Process this request", - auth_token="your-jwt-token", -) + await workflow.arun( + "Process this request", + auth_token="your-jwt-token", + ) + +asyncio.run(main()) ``` ## Error Handling ```python +import asyncio + from agno.workflow import RemoteWorkflow from agno.exceptions import RemoteServerUnavailableError -workflow = RemoteWorkflow( - base_url="http://localhost:7777", - workflow_id="qa-workflow", -) +async def main(): + workflow = RemoteWorkflow( + base_url="http://localhost:7777", + workflow_id="qa-workflow", + ) + + try: + await workflow.arun("Hello") + except RemoteServerUnavailableError as e: + print(f"Cannot connect to server: {e.message}") + # Handle fallback logic -try: - response = await workflow.arun("Hello") -except RemoteServerUnavailableError as e: - print(f"Cannot connect to server: {e.message}") - # Handle fallback logic +asyncio.run(main()) ``` ## A2A Protocol Support @@ -165,21 +190,26 @@ except RemoteServerUnavailableError as e: ### Connecting to Agno AgentOS via A2A interface ```python +import asyncio + from agno.workflow import RemoteWorkflow -workflow = RemoteWorkflow( - base_url="http://localhost:7778/a2a/workflows/my-workflow", # Running on localhost for this example - workflow_id="my-workflow", - protocol="a2a", -) +async def main(): + workflow = RemoteWorkflow( + base_url="http://localhost:7778/a2a/workflows/my-workflow", # Running on localhost for this example + workflow_id="my-workflow", + protocol="a2a", + ) -response = await workflow.arun("Write a story about space exploration") -print(response.content) + response = await workflow.arun("Write a story about space exploration") + print(response.content) -# Streaming is also supported -async for event in workflow.arun("Run the workflow", stream=True): - if event.event == "RunContent" and hasattr(event, "content"): - print(event.content, end="", flush=True) + # Streaming is also supported + async for event in workflow.arun("Run the workflow", stream=True): + if event.event == "RunContent" and hasattr(event, "content"): + print(event.content, end="", flush=True) + +asyncio.run(main()) ``` ## Reference diff --git a/examples/tools/google/gmail/draft-reply.mdx b/examples/tools/google/gmail/draft-reply.mdx index 72c17529e..2eacc2bde 100644 --- a/examples/tools/google/gmail/draft-reply.mdx +++ b/examples/tools/google/gmail/draft-reply.mdx @@ -4,7 +4,11 @@ description: "Reads a conversation thread and drafts a contextual reply." source: cookbook/91_tools/google/gmail/draft_reply.py --- -Reads a conversation thread and drafts a contextual reply. The agent never sends -- it only creates drafts for human review. +Read a Gmail conversation and create a contextual reply draft for human review. + + + The source's draft-only instruction is prompt guidance. `GmailTools()` exposes `send_email` and `send_email_reply` by default. Disable the send tools before running. + ```python draft_reply.py """ @@ -91,6 +95,10 @@ if __name__ == "__main__": + + Replace `GmailTools()` with `GmailTools(send_email=False, send_email_reply=False, send_draft=False)`. + + Save the code above as `draft_reply.py`, then run: ```bash diff --git a/scripts/examples_sync/generate.py b/scripts/examples_sync/generate.py index f7c8a579f..b2242e872 100644 --- a/scripts/examples_sync/generate.py +++ b/scripts/examples_sync/generate.py @@ -838,6 +838,17 @@ def git(*args: str) -> str: "intro_override": "Configure GoogleBigQueryTools with a Google Cloud project, location, and dataset.", "pre_code_warning": "The pinned source docstring names `BQTools`, and its Agent instruction names `run_sql`. The imported toolkit is `GoogleBigQueryTools`; its registered SQL function is `run_sql_query`.", }, + "91_tools/google/gmail/draft_reply.py": { + "intro_override": "Read a Gmail conversation and create a contextual reply draft for human review.", + "pre_code_warning": "The source's draft-only instruction is prompt guidance. `GmailTools()` exposes `send_email` and `send_email_reply` by default. Disable the send tools before running.", + "pre_run_steps": [ + ( + "Disable send tools", + "Replace `GmailTools()` with `GmailTools(send_email=False, send_email_reply=False, send_draft=False)`.", + None, + ) + ], + }, "02_agents/01_quickstart/agent_with_tools.py": { "suppress_intro": True, }, diff --git a/tools/toolkits/others/cartesia.mdx b/tools/toolkits/others/cartesia.mdx index 1dea39a88..80e042485 100644 --- a/tools/toolkits/others/cartesia.mdx +++ b/tools/toolkits/others/cartesia.mdx @@ -41,7 +41,7 @@ response = agent.run( # Save the generated audio if response.audio: - write_audio_to_file(audio=response.audio[0].content, filename="tmp/greeting.mp3") + write_audio_to_file(audio=response.audio[0].to_base64(), filename="tmp/greeting.mp3") ``` @@ -82,7 +82,7 @@ response = agent.run( if response.audio: write_audio_to_file( - audio=response.audio[0].content, + audio=response.audio[0].to_base64(), filename="french_weather.mp3", ) ``` From 1dfa30f9996d353dc883403bf96d6f475d890a82 Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 15:07:35 +0100 Subject: [PATCH 46/47] docs: fix Dash deployment and connection steps --- agent-os/connect-your-os.mdx | 4 ++-- deploy/templates/dash/overview.mdx | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/agent-os/connect-your-os.mdx b/agent-os/connect-your-os.mdx index 0a999763a..f20956d1d 100644 --- a/agent-os/connect-your-os.mdx +++ b/agent-os/connect-your-os.mdx @@ -6,7 +6,7 @@ description: "Connect your AgentOS to the control plane for monitoring and manag ## Connect Your AgentOS 1. Open [os.agno.com](https://os.agno.com) and sign in -2. Click **"Add new OS"** +2. Click **Connect OS** From e4ff38a9c212dbb308afa047c538f36bb581a4c6 Mon Sep 17 00:00:00 2001 From: Ashpreet Date: Sun, 19 Jul 2026 15:29:49 +0100 Subject: [PATCH 47/47] docs: make A2A client examples runnable --- reference/clients/a2a-client.mdx | 183 +++++++++++++++++++++---------- 1 file changed, 125 insertions(+), 58 deletions(-) diff --git a/reference/clients/a2a-client.mdx b/reference/clients/a2a-client.mdx index 897828822..090cac1f3 100644 --- a/reference/clients/a2a-client.mdx +++ b/reference/clients/a2a-client.mdx @@ -9,14 +9,20 @@ The `A2AClient` provides an async interface for communicating with any [A2A prot ## Basic Usage ```python +import asyncio + from agno.client.a2a import A2AClient -# Connect to an Agno AgentOS A2A endpoint -client = A2AClient("http://localhost:7003/a2a/agents/my-agent") -# Send a message -result = await client.send_message(message="Hello!") -print(result.content) +async def main(): + client = A2AClient("http://localhost:7003/a2a/agents/my-agent") + + result = await client.send_message(message="Hello!") + print(result.content) + + +if __name__ == "__main__": + asyncio.run(main()) ``` ## Parameters @@ -34,13 +40,20 @@ print(result.content) For Agno servers with A2A interface enabled, include the full agent path in the URL: ```python +import asyncio + from agno.client.a2a import A2AClient -# The URL includes the A2A path to the specific agent -client = A2AClient("http://localhost:7003/a2a/agents/my-agent") -result = await client.send_message(message="What can you help me with?") -print(result.content) +async def main(): + client = A2AClient("http://localhost:7003/a2a/agents/my-agent") + + result = await client.send_message(message="What can you help me with?") + print(result.content) + + +if __name__ == "__main__": + asyncio.run(main()) ``` ### Google ADK @@ -48,13 +61,20 @@ print(result.content) Google ADK uses pure JSON-RPC mode. Set `protocol="json-rpc"`: ```python +import asyncio + from agno.client.a2a import A2AClient -# Google ADK uses JSON-RPC at the root endpoint -client = A2AClient("http://localhost:8001/", protocol="json-rpc") -result = await client.send_message(message="Tell me an interesting fact") -print(result.content) +async def main(): + client = A2AClient("http://localhost:8001/", protocol="json-rpc") + + result = await client.send_message(message="Tell me an interesting fact") + print(result.content) + + +if __name__ == "__main__": + asyncio.run(main()) ``` ## Methods @@ -64,14 +84,25 @@ print(result.content) Send a message to an A2A agent and wait for the complete response. ```python -result = await client.send_message( - message="What is the capital of France?", - user_id="user-123", - context_id="session-456", -) -print(result.content) -print(f"Task ID: {result.task_id}") -print(f"Context ID: {result.context_id}") +import asyncio + +from agno.client.a2a import A2AClient + + +async def main(): + client = A2AClient("http://localhost:7003/a2a/agents/my-agent") + result = await client.send_message( + message="What is the capital of France?", + user_id="user-123", + context_id="session-456", + ) + print(result.content) + print(f"Task ID: {result.task_id}") + print(f"Context ID: {result.context_id}") + + +if __name__ == "__main__": + asyncio.run(main()) ``` **Parameters:** @@ -99,15 +130,26 @@ print(f"Context ID: {result.context_id}") Stream a message response in real-time. ```python -async for event in client.stream_message( - message="Tell me a story", - user_id="user-123", -): - if event.is_content and event.content: - print(event.content, end="", flush=True) - - if event.is_final: - print("\n--- Stream complete ---") +import asyncio + +from agno.client.a2a import A2AClient + + +async def main(): + client = A2AClient("http://localhost:7003/a2a/agents/my-agent") + async for event in client.stream_message( + message="Tell me a story", + user_id="user-123", + ): + if event.is_content and event.content: + print(event.content, end="", flush=True) + + if event.is_final: + print("\n--- Stream complete ---") + + +if __name__ == "__main__": + asyncio.run(main()) ``` **Parameters:** Same as `send_message` @@ -138,11 +180,22 @@ if card: Get the agent card for capability discovery asynchronously. ```python -card = await client.aget_agent_card() -if card: - print(f"Agent: {card.name}") - print(f"Description: {card.description}") - print(f"Capabilities: {card.capabilities}") +import asyncio + +from agno.client.a2a import A2AClient + + +async def main(): + client = A2AClient("http://localhost:7003/a2a/agents/my-agent") + card = await client.aget_agent_card() + if card: + print(f"Agent: {card.name}") + print(f"Description: {card.description}") + print(f"Capabilities: {card.capabilities}") + + +if __name__ == "__main__": + asyncio.run(main()) ``` **Returns:** `AgentCard` if available, `None` otherwise @@ -205,7 +258,7 @@ Describes the capabilities of an A2A agent: | `url` | `str` | Agent URL | | `description` | `Optional[str]` | Agent description | | `version` | `Optional[str]` | Agent version | -| `capabilities` | `Dict[str, Any]` | A2A capabilities object. Agno servers return flags such as `streaming` and `pushNotifications` | +| `capabilities` | `Dict[str, Any]` at runtime | A2A capabilities object. Agno servers return flags such as `streaming` and `pushNotifications`. The v2.7.4 dataclass annotates this field as `List[str]`, but both client parsers return the server object unchanged | | `metadata` | `Optional[Dict]` | Additional metadata | @@ -214,42 +267,56 @@ Describes the capabilities of an A2A agent: Use `context_id` to maintain conversation context across multiple messages: ```python +import asyncio + from agno.client.a2a import A2AClient -client = A2AClient("http://localhost:7003/a2a/agents/my-agent") -# First message - no context_id -result1 = await client.send_message( - message="My name is Alice and I love Python.", -) -print(f"Agent: {result1.content}") +async def main(): + client = A2AClient("http://localhost:7003/a2a/agents/my-agent") + + result1 = await client.send_message( + message="My name is Alice and I love Python.", + ) + print(f"Agent: {result1.content}") + + context_id = result1.context_id -# Get context_id from response -context_id = result1.context_id + result2 = await client.send_message( + message="What is my name?", + context_id=context_id, + ) + print(f"Agent: {result2.content}") -# Follow-up message - include context_id -result2 = await client.send_message( - message="What is my name?", - context_id=context_id, -) -print(f"Agent: {result2.content}") # Should remember "Alice" + +if __name__ == "__main__": + asyncio.run(main()) ``` ## Error Handling ```python +import asyncio + from agno.client.a2a import A2AClient from agno.exceptions import RemoteServerUnavailableError from httpx import HTTPStatusError -client = A2AClient("http://localhost:7003/a2a/agents/my-agent") -try: - result = await client.send_message(message="Hello") -except RemoteServerUnavailableError as e: - print(f"Server unavailable: {e.message}") - print(f"URL: {e.base_url}") -except HTTPStatusError as e: - print(f"HTTP error: {e.response.status_code}") +async def main(): + client = A2AClient("http://localhost:7003/a2a/agents/my-agent") + + try: + result = await client.send_message(message="Hello") + print(result.content) + except RemoteServerUnavailableError as e: + print(f"Server unavailable: {e.message}") + print(f"URL: {e.base_url}") + except HTTPStatusError as e: + print(f"HTTP error: {e.response.status_code}") + + +if __name__ == "__main__": + asyncio.run(main()) ```